@dylanpiercey/work 0.0.158 → 0.0.159
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/index.mjs +509 -1984
- package/dist/public/assets/_BEMlWJ3i.js +1 -0
- package/dist/public/assets/_BF3jdOKL.js +1 -0
- package/dist/public/assets/_BN2MNMec.js +1 -0
- package/dist/public/assets/_BX85X6vL.js +1 -0
- package/dist/public/assets/_BgTyVBoz.js +1 -0
- package/dist/public/assets/_BtPnCFTI.js +1 -0
- package/dist/public/assets/_C62EU_76.js +1 -0
- package/dist/public/assets/_C9t1K6t0.js +1 -0
- package/dist/public/assets/_CV1AUMfT.js +1 -0
- package/dist/public/assets/_DONc62ot.js +1 -0
- package/dist/public/assets/_DQxAgIZ5.js +1 -0
- package/dist/public/assets/_DRrf0ps3.js +1 -0
- package/dist/public/assets/_DUwNzfo2.js +1 -0
- package/dist/public/assets/{_DUDy5h6R.js → _DgrVjbbj.js} +20 -20
- package/dist/public/assets/_DgrVjbbj.js.br +0 -0
- package/dist/public/assets/_DliuBq2F.js +1 -0
- package/dist/public/assets/_DrrcCvtP.js +1 -0
- package/dist/public/assets/_DrrcCvtP.js.br +0 -0
- package/dist/public/assets/_Dt9shJET.js +1 -0
- package/dist/public/assets/{_BxabbFws.js → _DzlXAMSp.js} +45 -45
- package/dist/public/assets/_DzlXAMSp.js.br +0 -0
- package/dist/public/assets/_KbIm5gXb.js +1 -0
- package/dist/public/assets/_kP4m5eyY.js +1 -0
- package/dist/public/assets/_kRAx7xJD.js +1 -0
- package/dist/public/assets/_wGg-Flxh.js +1 -0
- package/dist/public/assets/{app-page-LdxNfDbr.css → app-page-DkJHV2Hb.css} +1 -1
- package/dist/public/assets/app-page-DkJHV2Hb.css.br +0 -0
- package/dist/public/assets/diff-view-B7Akkn43.js +2 -0
- package/dist/public/assets/{diff-view-E8jVfABq.css → diff-view-D_kTcxOl.css} +1 -1
- package/dist/public/assets/diff-view-D_kTcxOl.css.br +0 -0
- package/dist/public/assets/{icon-arrow-down-Bh8nsodJ.css → icon-arrow-down-ptjlirxL.css} +1 -1
- package/dist/public/assets/icon-arrow-down-ptjlirxL.css.br +0 -0
- package/dist/public/assets/new-CjRAL7y8.js +1 -0
- package/dist/public/assets/settings-CjRAL7y8.js +1 -0
- package/dist/public/assets/w-CjRAL7y8.js +1 -0
- package/dist/public/assets/w._-CjRAL7y8.js +1 -0
- package/dist/public/assets/w._-DvPeuuNc.js +1 -0
- package/package.json +1 -1
- package/dist/public/assets/_1uIdjVuP.js +0 -1
- package/dist/public/assets/_B5WqV19M.js +0 -1
- package/dist/public/assets/_BNuUCPGS.js +0 -1
- package/dist/public/assets/_BOfssVLv.js +0 -1
- package/dist/public/assets/_BxIcsysD.js +0 -1
- package/dist/public/assets/_BxabbFws.js.br +0 -0
- package/dist/public/assets/_C26sXSBM.js +0 -1
- package/dist/public/assets/_CDcWSPQn.js +0 -1
- package/dist/public/assets/_Cbu4AbsN.js +0 -1
- package/dist/public/assets/_Cbu4AbsN.js.br +0 -0
- package/dist/public/assets/_Cc9DbAYY.js +0 -1
- package/dist/public/assets/_Co6pRCsQ.js +0 -1
- package/dist/public/assets/_CoptvGxA.js +0 -1
- package/dist/public/assets/_DAh4Jg7Y.js +0 -1
- package/dist/public/assets/_DDCSqngu.js +0 -1
- package/dist/public/assets/_DEaIhIVb.js +0 -1
- package/dist/public/assets/_DFqtdaJl.js +0 -1
- package/dist/public/assets/_DUDy5h6R.js.br +0 -0
- package/dist/public/assets/_Dms-dGSD.js +0 -1
- package/dist/public/assets/_Dw0cv1OC.js +0 -1
- package/dist/public/assets/_Qvk4_rZ1.js +0 -1
- package/dist/public/assets/_bF5nF4E4.js +0 -1
- package/dist/public/assets/_iA6UTJX5.js +0 -1
- package/dist/public/assets/app-page-LdxNfDbr.css.br +0 -0
- package/dist/public/assets/diff-view-BPU5rMei.js +0 -2
- package/dist/public/assets/diff-view-E8jVfABq.css.br +0 -0
- package/dist/public/assets/icon-arrow-down-Bh8nsodJ.css.br +0 -0
- package/dist/public/assets/new-Cz4e5lzk.js +0 -1
- package/dist/public/assets/settings-Cz4e5lzk.js +0 -1
- package/dist/public/assets/w-Cz4e5lzk.js +0 -1
- package/dist/public/assets/w._-AQhK6cKs.js +0 -1
- package/dist/public/assets/w._-Cz4e5lzk.js +0 -1
package/dist/index.mjs
CHANGED
|
@@ -6697,13 +6697,13 @@ var _layout_default = _template("a", (input) => {
|
|
|
6697
6697
|
* A lost events socket alone does not count — polling keeps the app live,
|
|
6698
6698
|
* so the "Reconnecting…" pill stays quiet for bus-only blips. */
|
|
6699
6699
|
var reachable = true;
|
|
6700
|
-
var listeners = /* @__PURE__ */ new Set();
|
|
6700
|
+
var listeners$1 = /* @__PURE__ */ new Set();
|
|
6701
6701
|
/** Notify only on change: the pill's grace-period timer restarts on every
|
|
6702
6702
|
* `false` it hears, which would keep it permanently armed. */
|
|
6703
6703
|
function setReachable(next) {
|
|
6704
6704
|
if (reachable === next) return;
|
|
6705
6705
|
reachable = next;
|
|
6706
|
-
for (const fn of listeners) fn(next);
|
|
6706
|
+
for (const fn of listeners$1) fn(next);
|
|
6707
6707
|
}
|
|
6708
6708
|
//#endregion
|
|
6709
6709
|
//#region src/client/session.ts
|
|
@@ -7185,6 +7185,7 @@ function setTheme(mode) {
|
|
|
7185
7185
|
//#region src/client/theme.ts
|
|
7186
7186
|
var LIGHT_CHROME = "#fafafa";
|
|
7187
7187
|
var DARK_CHROME = "#131316";
|
|
7188
|
+
var listeners = /* @__PURE__ */ new Set();
|
|
7188
7189
|
/** Force light/dark, or clear to follow the OS. The layout declares
|
|
7189
7190
|
* `:root[data-theme=…] { color-scheme: … }`; native `light-dark()` and the
|
|
7190
7191
|
* bundler's polyfill both key off that. */
|
|
@@ -7194,6 +7195,7 @@ function applyTheme(mode) {
|
|
|
7194
7195
|
if (mode === "system") root.removeAttribute("data-theme");
|
|
7195
7196
|
else root.setAttribute("data-theme", mode);
|
|
7196
7197
|
syncThemeColorMetas(mode, root.style.getPropertyValue("--accent").trim() || "");
|
|
7198
|
+
for (const listener of listeners) listener(mode);
|
|
7197
7199
|
}
|
|
7198
7200
|
/** Rebuild theme-color metas for the current force (or both media queries
|
|
7199
7201
|
* when following the system). Accent, when set, still paints the chrome. */
|
|
@@ -7267,18 +7269,18 @@ function applyInstance(inst) {
|
|
|
7267
7269
|
if (icon) icon.href = `/api/instance/icon${inst.accent ? `?v=${inst.accent.slice(1)}` : ""}`;
|
|
7268
7270
|
syncThemeColorMetas(theme(), inst.accent || "");
|
|
7269
7271
|
}
|
|
7270
|
-
var agentList = "
|
|
7271
|
-
var agentRow = "
|
|
7272
|
-
var toolGrid = "
|
|
7273
|
-
var toolRow = "
|
|
7274
|
-
var themeSeg = "
|
|
7275
|
-
var checkList = "
|
|
7276
|
-
var list$2 = "
|
|
7277
|
-
var flatCardRow = "
|
|
7278
|
-
var pop$1 = "
|
|
7279
|
-
var spinner = "
|
|
7280
|
-
var busy = "
|
|
7281
|
-
var pop = "
|
|
7272
|
+
var agentList = "_ed _ck _d1 _eb";
|
|
7273
|
+
var agentRow = "_fA _d2";
|
|
7274
|
+
var toolGrid = "_fI _eb";
|
|
7275
|
+
var toolRow = "_fJ _ec";
|
|
7276
|
+
var themeSeg = "_f7 _be";
|
|
7277
|
+
var checkList = "_gC _ci";
|
|
7278
|
+
var list$2 = "_ed _ck _d1 _eb";
|
|
7279
|
+
var flatCardRow = "_ee _ec";
|
|
7280
|
+
var pop$1 = "_fu __";
|
|
7281
|
+
var spinner = "_fx _2 _G";
|
|
7282
|
+
var busy = "_fk _fj";
|
|
7283
|
+
var pop = "_fm __";
|
|
7282
7284
|
var sectionCount = "_ch _N _O";
|
|
7283
7285
|
var iconBtn$1 = "_5 _l";
|
|
7284
7286
|
//#endregion
|
|
@@ -7320,18 +7322,18 @@ var icon_back_default = _template("R", (input) => {
|
|
|
7320
7322
|
var page_head_default = _template("u", (input) => {
|
|
7321
7323
|
const $scope0_reason = _scope_reason(), $sg__input_backHref__OR__input_onBack__OR__input_meta__OR__input_actions = _serialize_guard($scope0_reason, 3), $sg__input_meta = _serialize_guard($scope0_reason, 6), $sg__input_actions = _serialize_guard($scope0_reason, 7), $si__input_backHref__OR__input_onBack = _serialize_if($scope0_reason, 1), $si__input_meta = _serialize_if($scope0_reason, 6), $si__input_actions = _serialize_if($scope0_reason, 7);
|
|
7322
7324
|
const $scope0_id = _scope_id();
|
|
7323
|
-
_html(`<header${_attr_class("
|
|
7325
|
+
_html(`<header${_attr_class("_dW")}>`);
|
|
7324
7326
|
_if(() => {
|
|
7325
7327
|
if (input.backHref) {
|
|
7326
7328
|
const $scope1_id = _scope_id();
|
|
7327
|
-
_html(`<a${_attr("href", input.backHref)}${_attr_class([iconBtnRow, "
|
|
7329
|
+
_html(`<a${_attr("href", input.backHref)}${_attr_class([iconBtnRow, "_gM"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
|
|
7328
7330
|
icon_back_default({ size: 14 });
|
|
7329
7331
|
_html(`</a>${_el_resume($scope1_id, "a", _serialize_guard($scope0_reason, 0))}`);
|
|
7330
7332
|
_serialize_if($scope0_reason, 2) && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 0) && _scope_with_id($scope0_id) });
|
|
7331
7333
|
return 0;
|
|
7332
7334
|
} else if (input.onBack) {
|
|
7333
7335
|
const $scope2_id = _scope_id();
|
|
7334
|
-
_html(`<button${_attr_class([iconBtnRow, "
|
|
7336
|
+
_html(`<button${_attr_class([iconBtnRow, "_gM"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
|
|
7335
7337
|
icon_back_default({ size: 14 });
|
|
7336
7338
|
_html(`</button>${_el_resume($scope2_id, "a")}`);
|
|
7337
7339
|
_script($scope2_id, "u0");
|
|
@@ -7339,11 +7341,11 @@ var page_head_default = _template("u", (input) => {
|
|
|
7339
7341
|
return 1;
|
|
7340
7342
|
}
|
|
7341
7343
|
}, $scope0_id, "b", _serialize_guard($scope0_reason, 2), _serialize_guard($scope0_reason, 1), $sg__input_backHref__OR__input_onBack__OR__input_meta__OR__input_actions, 0, 1);
|
|
7342
|
-
_html(`<div${_attr_class("
|
|
7344
|
+
_html(`<div${_attr_class("_dY")}><h1${_attr("id", input.titleId)}${_attr_class("_dX")}>${_text_resume($scope0_id, "e", input.title, _serialize_guard($scope0_reason, 5))}</h1>${_el_resume($scope0_id, "d", _serialize_guard($scope0_reason, 4))}`);
|
|
7343
7345
|
_if(() => {
|
|
7344
7346
|
if (input.meta) {
|
|
7345
7347
|
const $scope3_id = _scope_id();
|
|
7346
|
-
_html(`<p${_attr_class("
|
|
7348
|
+
_html(`<p${_attr_class("_dZ")}>`);
|
|
7347
7349
|
_dynamic_tag($scope3_id, "b", input.meta, {}, 0, 0, $sg__input_meta);
|
|
7348
7350
|
_html("</p>");
|
|
7349
7351
|
$si__input_meta && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
|
|
@@ -7354,7 +7356,7 @@ var page_head_default = _template("u", (input) => {
|
|
|
7354
7356
|
_if(() => {
|
|
7355
7357
|
if (input.actions) {
|
|
7356
7358
|
const $scope4_id = _scope_id();
|
|
7357
|
-
_html(`<div${_attr_class("
|
|
7359
|
+
_html(`<div${_attr_class("_d0")}>`);
|
|
7358
7360
|
_dynamic_tag($scope4_id, "b", input.actions, {}, 0, 0, $sg__input_actions);
|
|
7359
7361
|
_html("</div>");
|
|
7360
7362
|
$si__input_actions && writeScope($scope4_id, { _: _scope_with_id($scope0_id) });
|
|
@@ -7422,7 +7424,7 @@ var icon_agent_default = _template("L", (input) => {
|
|
|
7422
7424
|
n: $badge__closures
|
|
7423
7425
|
});
|
|
7424
7426
|
});
|
|
7425
|
-
var usageNote = "
|
|
7427
|
+
var usageNote = "_hc _X";
|
|
7426
7428
|
//#endregion
|
|
7427
7429
|
//#region src/tags/icons/icon-warning.marko
|
|
7428
7430
|
var icon_warning_default = _template("sb", (input) => {
|
|
@@ -7452,11 +7454,11 @@ var usage_meters_default = _template("H", (input) => {
|
|
|
7452
7454
|
const $scope0_reason = _scope_reason(), $sg__input_agent__OR__input_hideName = _serialize_guard($scope0_reason, 0), $sg__input_agent = _serialize_guard($scope0_reason, 1), $si__input_agent = _serialize_if($scope0_reason, 1), $sg__input_hideName = _serialize_guard($scope0_reason, 2), $si__input_agent__OR__input_hideName = _serialize_if($scope0_reason, 0);
|
|
7453
7455
|
const $scope0_id = _scope_id();
|
|
7454
7456
|
const agent = input.agent;
|
|
7455
|
-
_html(`<div${_attr_class(["
|
|
7457
|
+
_html(`<div${_attr_class(["_g7", { ["_g8"]: input.hideName }])}><div${_attr_class("_g9")}>`);
|
|
7456
7458
|
_if(() => {
|
|
7457
7459
|
if (!input.hideName) {
|
|
7458
7460
|
const $scope1_id = _scope_id();
|
|
7459
|
-
_html(`<strong${_attr_class("
|
|
7461
|
+
_html(`<strong${_attr_class("_hr")}>${_text_resume($scope1_id, "b", agent.agent, $sg__input_agent)}</strong>`);
|
|
7460
7462
|
$si__input_agent__OR__input_hideName && writeScope($scope1_id, { _: $si__input_agent && _scope_with_id($scope0_id) });
|
|
7461
7463
|
return 0;
|
|
7462
7464
|
}
|
|
@@ -7464,7 +7466,7 @@ var usage_meters_default = _template("H", (input) => {
|
|
|
7464
7466
|
_if(() => {
|
|
7465
7467
|
if (agent.plan && agent.plan.toLowerCase() !== agent.agent.toLowerCase()) {
|
|
7466
7468
|
const $scope2_id = _scope_id();
|
|
7467
|
-
_html(`<span${_attr_class("
|
|
7469
|
+
_html(`<span${_attr_class("_g_")}>${_text_resume($scope2_id, "b", agent.plan.replace(/^default_/, "").replaceAll("_", " "), $sg__input_agent)}</span>`);
|
|
7468
7470
|
$si__input_agent && writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
|
|
7469
7471
|
return 0;
|
|
7470
7472
|
}
|
|
@@ -7472,21 +7474,21 @@ var usage_meters_default = _template("H", (input) => {
|
|
|
7472
7474
|
_if(() => {
|
|
7473
7475
|
if (agent.stale_seconds != null) {
|
|
7474
7476
|
const $scope3_id = _scope_id();
|
|
7475
|
-
_html(`<span${_attr_class("
|
|
7477
|
+
_html(`<span${_attr_class("_ha")}${_attr("title", `${agent.note || "provider unreachable"}. Last cached numbers, ${duration(agent.stale_seconds * 1e3)} old`)}>`);
|
|
7476
7478
|
icon_warning_default({ size: 12 });
|
|
7477
7479
|
_html(` ${_text_resume($scope3_id, "c", duration(agent.stale_seconds * 1e3), $sg__input_agent * 2)} old</span>${_el_resume($scope3_id, "a", $sg__input_agent)}`);
|
|
7478
7480
|
$si__input_agent && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
|
|
7479
7481
|
return 0;
|
|
7480
7482
|
}
|
|
7481
7483
|
}, $scope0_id, "e", $sg__input_agent, $sg__input_agent, $sg__input_agent__OR__input_hideName, 0, 1);
|
|
7482
|
-
_html(`</div><div${_attr_class(["
|
|
7484
|
+
_html(`</div><div${_attr_class(["_hb", { ["_hs"]: agent.stale_seconds != null }])}>`);
|
|
7483
7485
|
_for_of(agent.windows || [], (win) => {
|
|
7484
7486
|
const $scope4_id = _scope_id();
|
|
7485
7487
|
const pct = pctText(win.used_percent);
|
|
7486
7488
|
const label = resetLabel(win.resets_at, agent.stale_seconds != null);
|
|
7487
|
-
const fillClass = win.used_percent >= 90 ? "
|
|
7488
|
-
const pctClass = win.used_percent >= 90 ? "
|
|
7489
|
-
_html(`<div${_attr_class("
|
|
7489
|
+
const fillClass = win.used_percent >= 90 ? "_hk" : win.used_percent >= 70 ? "_hj" : win.used_percent >= 40 ? "_hi" : "_hh";
|
|
7490
|
+
const pctClass = win.used_percent >= 90 ? "_hp" : win.used_percent >= 70 ? "_ho" : win.used_percent >= 40 ? "_hn" : "_hm";
|
|
7491
|
+
_html(`<div${_attr_class("_hd")}${_attr("title", `${win.window}: ${pct} used${win.resets_at ? `, resets ${new Date(win.resets_at).toLocaleString()}` : ""}`)}><span${_attr_class("_he")}>${_text_resume($scope4_id, "c", win.window, $sg__input_agent)}</span><span${_attr_class("_hf")}><span${_attr_class(["_hg", fillClass])}${_attr_style(`width:${Math.min(100, Math.max(2, win.used_percent))}%`)}></span>${_el_resume($scope4_id, "e", $sg__input_agent)}</span><span${_attr_class(["_hl", pctClass])}>${_text_resume($scope4_id, "g", pct, $sg__input_agent)}</span>${_el_resume($scope4_id, "f", $sg__input_agent)}<span${_attr_class("_hq")}>`);
|
|
7490
7492
|
_if(() => {
|
|
7491
7493
|
if (label) {
|
|
7492
7494
|
const $scope6_id = _scope_id();
|
|
@@ -7603,14 +7605,14 @@ var sso_auth_default = _template("D", (input) => {
|
|
|
7603
7605
|
localCode = null;
|
|
7604
7606
|
}
|
|
7605
7607
|
}, "D0", $scope0_id);
|
|
7606
|
-
_html(`<div${_attr_class(["
|
|
7608
|
+
_html(`<div${_attr_class(["_iz", input.class])}>`);
|
|
7607
7609
|
_for_of(input.items, (s) => {
|
|
7608
7610
|
const $scope1_id = _scope_id();
|
|
7609
|
-
_html(`<div${_attr_class("
|
|
7611
|
+
_html(`<div${_attr_class("_iA")}><span${_attr_class("_iC")}><span${_attr_class("_iD")}>${_text_resume($scope1_id, "d", s.org, $sg__input_items)}</span><span${_attr_class(["_iE", "_iF"])} title="Repos and PRs in this org stay hidden until the GitHub CLI is authorized for it.">SSO not authorized</span></span>`);
|
|
7610
7612
|
_if(() => {
|
|
7611
7613
|
if (!busy) {
|
|
7612
7614
|
const $scope2_id = _scope_id();
|
|
7613
|
-
_html(`<button type=button${_attr_class([btnSm, "_r"])} title="Re-authorize GitHub CLI (same device flow as Sign in)">Authorize</button>${_el_resume($scope2_id, "a")}<button type=button${_attr_class([btnSm, "
|
|
7615
|
+
_html(`<button type=button${_attr_class([btnSm, "_r"])} title="Re-authorize GitHub CLI (same device flow as Sign in)">Authorize</button>${_el_resume($scope2_id, "a")}<button type=button${_attr_class([btnSm, "_iG"])}${_attr("title", `Ignore ${s.org} — stop asking about it`)}>Ignore</button>${_el_resume($scope2_id, "b")}`);
|
|
7614
7616
|
_script($scope2_id, "D1");
|
|
7615
7617
|
writeScope($scope2_id, {});
|
|
7616
7618
|
return 0;
|
|
@@ -7625,13 +7627,13 @@ var sso_auth_default = _template("D", (input) => {
|
|
|
7625
7627
|
_if(() => {
|
|
7626
7628
|
if (localBusy && localCode) {
|
|
7627
7629
|
const $scope4_id = _scope_id();
|
|
7628
|
-
_html(`<div${_attr_class(["
|
|
7630
|
+
_html(`<div${_attr_class(["_iA", "_iH"])}><span${_attr_class("_G")}></span> Enter code <strong${_attr_class("_iI")}>${_text_resume($scope4_id, "d", localCode)}</strong> at <a${_attr("href", `https://${host}/login/device`)}${_attr_class("_iJ")}>${_text_resume($scope4_id, "f", host, _serialize_guard($scope0_reason, 3))}/login/device</a>${_el_resume($scope4_id, "e")}</div>`);
|
|
7629
7631
|
_script($scope4_id, "D2");
|
|
7630
7632
|
writeScope($scope4_id, {});
|
|
7631
7633
|
return 0;
|
|
7632
7634
|
} else if (localBusy) {
|
|
7633
7635
|
const $scope6_id = _scope_id();
|
|
7634
|
-
_html(`<div${_attr_class(["
|
|
7636
|
+
_html(`<div${_attr_class(["_iA", "_iH"])}><span${_attr_class("_G")}></span>Starting GitHub re-authorization…</div>`);
|
|
7635
7637
|
writeScope($scope6_id, {});
|
|
7636
7638
|
return 1;
|
|
7637
7639
|
}
|
|
@@ -7639,14 +7641,14 @@ var sso_auth_default = _template("D", (input) => {
|
|
|
7639
7641
|
_if(() => {
|
|
7640
7642
|
if (localError) {
|
|
7641
7643
|
const $scope5_id = _scope_id();
|
|
7642
|
-
_html(`<p${_attr_class(["
|
|
7644
|
+
_html(`<p${_attr_class(["_iA", "_iK"])}>${_text_resume($scope5_id, "b", localError)}</p>`);
|
|
7643
7645
|
writeScope($scope5_id, {});
|
|
7644
7646
|
return 0;
|
|
7645
7647
|
}
|
|
7646
7648
|
}, $scope0_id, "d", 1, 1, 1, 0, 1);
|
|
7647
7649
|
_for_of(skipped, (s) => {
|
|
7648
7650
|
const $scope3_id = _scope_id();
|
|
7649
|
-
_html(`<div${_attr_class(["
|
|
7651
|
+
_html(`<div${_attr_class(["_iA", "_iB"])}><span${_attr_class("_iC")}><span${_attr_class("_iD")}>${_text_resume($scope3_id, "d", s.org, $sg__input_skipped)}</span><span${_attr_class("_iE")}>Ignored</span></span><button type=button${_attr_class([btnSm, "_iG"])}${_attr("title", `Ask about ${s.org} again`)}>Undo</button>${_el_resume($scope3_id, "f")}</div>`);
|
|
7650
7652
|
_script($scope3_id, "D3");
|
|
7651
7653
|
writeScope($scope3_id, {
|
|
7652
7654
|
i: s?.org,
|
|
@@ -7714,7 +7716,7 @@ var skill_chip_default = _template("C", (input) => {
|
|
|
7714
7716
|
const $input_tags__closures = /* @__PURE__ */ new Set();
|
|
7715
7717
|
const $input_actions__closures = /* @__PURE__ */ new Set();
|
|
7716
7718
|
const $input_trailing__closures = /* @__PURE__ */ new Set();
|
|
7717
|
-
_html(`<li${_attr_class("
|
|
7719
|
+
_html(`<li${_attr_class("_fi")}>`);
|
|
7718
7720
|
_if(() => {
|
|
7719
7721
|
if (input.busy != null) {
|
|
7720
7722
|
const $scope1_id = _scope_id();
|
|
@@ -7724,11 +7726,11 @@ var skill_chip_default = _template("C", (input) => {
|
|
|
7724
7726
|
} else {
|
|
7725
7727
|
const $scope2_id = _scope_id();
|
|
7726
7728
|
const popId = _id();
|
|
7727
|
-
_html(`<button${_attr_class("
|
|
7729
|
+
_html(`<button${_attr_class("_fj")}${_attr("popovertarget", popId)}${_attr("title", `About ${input.name}`)}>${_text_resume($scope2_id, "b", input.name, $sg__input_name)}`);
|
|
7728
7730
|
_if(() => {
|
|
7729
7731
|
if (input.hint) {
|
|
7730
7732
|
const $scope3_id = _scope_id();
|
|
7731
|
-
_html(`<span${_attr_class("
|
|
7733
|
+
_html(`<span${_attr_class("_fl")}>${_text_resume($scope3_id, "b", input.hint, $sg__input_hint)}</span>`);
|
|
7732
7734
|
$si__input_busy__OR__input_hint && _subscribe($si__input_hint && $input_hint__closures, writeScope($scope3_id, { _: _scope_with_id($scope2_id) }));
|
|
7733
7735
|
return 0;
|
|
7734
7736
|
}
|
|
@@ -7776,7 +7778,7 @@ var skill_chip_default = _template("C", (input) => {
|
|
|
7776
7778
|
_if(() => {
|
|
7777
7779
|
if (input.actions) {
|
|
7778
7780
|
const $scope8_id = _scope_id();
|
|
7779
|
-
_html(`<div${_attr_class("
|
|
7781
|
+
_html(`<div${_attr_class("_fn")}>`);
|
|
7780
7782
|
_dynamic_tag($scope8_id, "b", input.actions, {}, 0, 0, $sg__input_actions);
|
|
7781
7783
|
_html("</div>");
|
|
7782
7784
|
$si__input_busy__OR__input_actions && _subscribe($si__input_actions && $input_actions__closures, writeScope($scope8_id, { _: _scope_with_id($scope2_id) }));
|
|
@@ -7887,7 +7889,7 @@ var icon_moon_default = _template("jb", (input) => {
|
|
|
7887
7889
|
});
|
|
7888
7890
|
//#endregion
|
|
7889
7891
|
//#region src/tags/prompt-dialog.css.ts
|
|
7890
|
-
var promptDlg = "
|
|
7892
|
+
var promptDlg = "_ih _hL";
|
|
7891
7893
|
//#endregion
|
|
7892
7894
|
//#region src/tags/dialog-close.marko
|
|
7893
7895
|
var dialog_close_default = _template("f", (input) => {
|
|
@@ -7911,7 +7913,7 @@ var modal_view_default = _template("s", (input) => {
|
|
|
7911
7913
|
const { label, class: inputClass, open: _open, openChange: _openChange, dismissable: _dismissable, content, footer, closedby: _closedby, onCancel: _onCancel, onClose: _onClose, "aria-label": inputAriaLabel, "aria-labelledby": inputLabelledBy, ...htmlInput } = input;
|
|
7912
7914
|
const dismissable = input.dismissable !== false;
|
|
7913
7915
|
let open = input.open;
|
|
7914
|
-
_html(`<dialog${_attr_class(["
|
|
7916
|
+
_html(`<dialog${_attr_class(["_hK", inputClass])}${_attr("aria-labelledby", inputLabelledBy)}${inputLabelledBy ? _attr("aria-label", inputAriaLabel) : _attr("aria-label", inputAriaLabel || label)} closedby=${dismissable ? "any" : "none"}${_attrs_partial({
|
|
7915
7917
|
...htmlInput,
|
|
7916
7918
|
open: null
|
|
7917
7919
|
}, {
|
|
@@ -7921,20 +7923,20 @@ var modal_view_default = _template("s", (input) => {
|
|
|
7921
7923
|
closedby: 1,
|
|
7922
7924
|
"on-cancel": 1,
|
|
7923
7925
|
"on-close": 1
|
|
7924
|
-
}, "a", $scope0_id, "dialog")}><div${_attr_class("
|
|
7926
|
+
}, "a", $scope0_id, "dialog")}><div${_attr_class("_hN")}>`);
|
|
7925
7927
|
_dynamic_tag($scope0_id, "c", content, {}, 0, 0, _serialize_guard($scope0_reason, 6));
|
|
7926
7928
|
_html("</div>");
|
|
7927
7929
|
_if(() => {
|
|
7928
7930
|
if (footer) {
|
|
7929
7931
|
const $scope1_id = _scope_id();
|
|
7930
|
-
_html(`<form method=dialog${_attr_class("
|
|
7932
|
+
_html(`<form method=dialog${_attr_class("_hO")}>`);
|
|
7931
7933
|
_dynamic_tag($scope1_id, "b", footer.content, {}, 0, 0, _serialize_guard($scope0_reason, 7));
|
|
7932
7934
|
_html("</form>");
|
|
7933
7935
|
$si__input_openChange__OR__input_footer && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 7) && _scope_with_id($scope0_id) });
|
|
7934
7936
|
return 0;
|
|
7935
7937
|
} else if (input.openChange) {
|
|
7936
7938
|
const $scope2_id = _scope_id();
|
|
7937
|
-
_html(`<form method=dialog${_attr_class("
|
|
7939
|
+
_html(`<form method=dialog${_attr_class("_hO")}>`);
|
|
7938
7940
|
dialog_close_default({
|
|
7939
7941
|
class: ["_q", "_r"],
|
|
7940
7942
|
content: _content("s0", () => {
|
|
@@ -8018,7 +8020,7 @@ var prompt_dialog_default = _template("v", (input) => {
|
|
|
8018
8020
|
content: _content("v7", () => {
|
|
8019
8021
|
_scope_reason();
|
|
8020
8022
|
const $scope2_id = _scope_id();
|
|
8021
|
-
_html(`<h2${_attr_class("
|
|
8023
|
+
_html(`<h2${_attr_class("_hM")}${_attr("id", titleId)}>${_text_resume($scope2_id, "b", input.label, $sg__input_label)}</h2><input${_attr_input_value($scope2_id, "c", value, _resume((_new_value) => {
|
|
8022
8024
|
value = _new_value;
|
|
8023
8025
|
}, "v0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "c")}`);
|
|
8024
8026
|
_script($scope2_id, "v5");
|
|
@@ -8540,7 +8542,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8540
8542
|
const githubId = _id();
|
|
8541
8543
|
const backupId = _id();
|
|
8542
8544
|
const machineId = _id();
|
|
8543
|
-
_html(`<div${_attr_class("
|
|
8545
|
+
_html(`<div${_attr_class("_dT")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_dU")}><div${_attr_class("_dV")}>`);
|
|
8544
8546
|
_set_serialize_reason({
|
|
8545
8547
|
0: _serialize_guard($scope0_reason, 4),
|
|
8546
8548
|
1: $sg__input_backHref__OR__input_onExit,
|
|
@@ -8552,7 +8554,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8552
8554
|
if (setup && !setup.ready) $meta = attrTag({ content: _content_resume("y44", () => {
|
|
8553
8555
|
_scope_reason();
|
|
8554
8556
|
const $scope4_id = _scope_id();
|
|
8555
|
-
_html(`<span${_attr_class("
|
|
8557
|
+
_html(`<span${_attr_class("_fz")}>Not ready</span>. Missing ${_text_resume($scope4_id, "b", setup.missing.map((m) => MISSING_LABEL[m] || m).join(", "), 2)}.`);
|
|
8556
8558
|
_subscribe($setup_missing__closures, writeScope($scope4_id, { _: _scope_with_id($scope0_id) }));
|
|
8557
8559
|
_resume_branch($scope4_id);
|
|
8558
8560
|
}, $scope0_id) });
|
|
@@ -8605,16 +8607,16 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8605
8607
|
_if(() => {
|
|
8606
8608
|
if (selfUpdatePending || selfUpdating) {
|
|
8607
8609
|
const $scope44_id = _scope_id();
|
|
8608
|
-
_html(`<div${_attr_class("
|
|
8610
|
+
_html(`<div${_attr_class("_ga")} role=status><div${_attr_class("_gb")}>`);
|
|
8609
8611
|
_if(() => {
|
|
8610
8612
|
if (selfUpdating) {
|
|
8611
8613
|
const $scope79_id = _scope_id();
|
|
8612
|
-
_html(`<span${_attr_class("
|
|
8614
|
+
_html(`<span${_attr_class("_gc")}><span${_attr_class("_G")}></span> Updating work…</span><span${_attr_class("_gd")}>The app restarts and reloads when it is done.</span>`);
|
|
8613
8615
|
writeScope($scope79_id, {});
|
|
8614
8616
|
return 0;
|
|
8615
8617
|
} else {
|
|
8616
8618
|
const $scope45_id = _scope_id();
|
|
8617
|
-
_html(`<span${_attr_class("
|
|
8619
|
+
_html(`<span${_attr_class("_gc")}>Update available</span><span${_attr_class("_gd")}>v${_text_resume($scope45_id, "c", self.version, 2)} → v${_text_resume($scope45_id, "d", self.latest, 2)}</span>`);
|
|
8618
8620
|
_subscribe($self_version__closures, _subscribe($self_latest__closures, writeScope($scope45_id, {})));
|
|
8619
8621
|
return 1;
|
|
8620
8622
|
}
|
|
@@ -8633,11 +8635,11 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8633
8635
|
return 0;
|
|
8634
8636
|
}
|
|
8635
8637
|
}, $scope0_id, "f", 1, 1, 1, 0, 1);
|
|
8636
|
-
_html(`<section${_attr_class("_cf")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_cg")}><h2${_attr("id", agentsId)}${_attr_class("_ct")}>Agents</h2><div${_attr_class("_z")}></div><label${_attr_class("
|
|
8638
|
+
_html(`<section${_attr_class("_cf")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_cg")}><h2${_attr("id", agentsId)}${_attr_class("_ct")}>Agents</h2><div${_attr_class("_z")}></div><label${_attr_class("_fB")}><span${_attr_class("_X")}>Default</span><span${_attr_class("_o")}>`);
|
|
8637
8639
|
_attr_select_value($scope0_id, "n", input$3.preferred, _resume(function(v) {
|
|
8638
8640
|
setPreferred(v);
|
|
8639
8641
|
}, "y2", $scope0_id), () => {
|
|
8640
|
-
_html(`<select${_attr_class(["_p", "
|
|
8642
|
+
_html(`<select${_attr_class(["_p", "_fC"])} aria-label="Default agent (starts when a workspace has no session yet)" title="Starts when a workspace has no session yet">`);
|
|
8641
8643
|
_for_of(input$3.agents.filter((a) => a !== "shell"), (id) => {
|
|
8642
8644
|
const $scope80_id = _scope_id();
|
|
8643
8645
|
_html(`<option${_attr_option_value(id)}>${_text_resume($scope80_id, "b", agentLabel(id), $sg__input_agents)}</option>${_el_resume($scope80_id, "a", $sg__input_agents)}`);
|
|
@@ -8651,7 +8653,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8651
8653
|
const rows = lone ? [] : a.instances;
|
|
8652
8654
|
const loneAccounts = lone ? accountsFor(lone.id) : [];
|
|
8653
8655
|
const extraAccounts = a.installed ? strayAccountsFor(a) : [];
|
|
8654
|
-
_html(`<li${_attr_class(agentRow)}><div${_attr_class(["
|
|
8656
|
+
_html(`<li${_attr_class(agentRow)}><div${_attr_class(["_fD", { ["_fF"]: lone && !lone.enabled }])}>`);
|
|
8655
8657
|
_set_serialize_reason(12);
|
|
8656
8658
|
const $childScope3 = _peek_scope_id();
|
|
8657
8659
|
icon_agent_default({
|
|
@@ -8671,7 +8673,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8671
8673
|
_if(() => {
|
|
8672
8674
|
if (active.has(a.id)) {
|
|
8673
8675
|
const $scope12_id = _scope_id();
|
|
8674
|
-
_html(`<span${_attr_class("
|
|
8676
|
+
_html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope12_id, "c", active.get(a.id) || "Starting…")}</span>`);
|
|
8675
8677
|
_subscribe($active__closures, writeScope($scope12_id, {}));
|
|
8676
8678
|
return 0;
|
|
8677
8679
|
} else if (!a.installed) {
|
|
@@ -8704,15 +8706,15 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8704
8706
|
_if(() => {
|
|
8705
8707
|
if (rows.length || loneAccounts.length || extraAccounts.length) {
|
|
8706
8708
|
const $scope2_id = _scope_id();
|
|
8707
|
-
_html(`<ul${_attr_class(["
|
|
8709
|
+
_html(`<ul${_attr_class(["_fH", { ["_fF"]: lone && !lone.enabled }])}>`);
|
|
8708
8710
|
_for_of(rows, (inst) => {
|
|
8709
8711
|
const $scope3_id = _scope_id();
|
|
8710
8712
|
const accounts = accountsFor(inst.id);
|
|
8711
|
-
_html(`<li${_attr_class(["
|
|
8713
|
+
_html(`<li${_attr_class(["_fE", { ["_fF"]: !inst.enabled }])}><div${_attr_class("_fD")}>`);
|
|
8712
8714
|
_set_serialize_reason(12);
|
|
8713
8715
|
const $childScope4 = _peek_scope_id();
|
|
8714
8716
|
icon_agent_default({ agent: inst.id });
|
|
8715
|
-
_html(`<span${_attr_class(["
|
|
8717
|
+
_html(`<span${_attr_class(["_fG", "_y"])}>${_text_resume($scope3_id, "e", inst.command)}</span>`);
|
|
8716
8718
|
_if(() => {
|
|
8717
8719
|
if (input$3.preferred === inst.id) {
|
|
8718
8720
|
const $scope83_id = _scope_id();
|
|
@@ -8808,7 +8810,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8808
8810
|
_if(() => {
|
|
8809
8811
|
if (setup && !addingHost) {
|
|
8810
8812
|
const $scope42_id = _scope_id();
|
|
8811
|
-
_html(`<button${_attr_class([iconBtnRow, "
|
|
8813
|
+
_html(`<button${_attr_class([iconBtnRow, "_fQ"])} title="Add Enterprise host" aria-label="Add Enterprise host">`);
|
|
8812
8814
|
icon_plus_default({ size: 16 });
|
|
8813
8815
|
_html(`</button>${_el_resume($scope42_id, "a")}`);
|
|
8814
8816
|
_script($scope42_id, "y51");
|
|
@@ -8820,10 +8822,10 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8820
8822
|
if (setup) {
|
|
8821
8823
|
const $scope41_id = _scope_id();
|
|
8822
8824
|
_html(`<form${_attr_class([
|
|
8823
|
-
"
|
|
8824
|
-
"
|
|
8825
|
-
{ ["
|
|
8826
|
-
])}><label${_attr_class(["_1", "
|
|
8825
|
+
"_fo",
|
|
8826
|
+
"_fQ",
|
|
8827
|
+
{ ["_fp"]: !addingHost }
|
|
8828
|
+
])}><label${_attr_class(["_1", "_fr"])}>`);
|
|
8827
8829
|
icon_github_default({
|
|
8828
8830
|
size: 14,
|
|
8829
8831
|
class: "_2"
|
|
@@ -8833,12 +8835,12 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8833
8835
|
}, "y3", $scope41_id))}${_attr_class([
|
|
8834
8836
|
"_Z",
|
|
8835
8837
|
"_3",
|
|
8836
|
-
"
|
|
8838
|
+
"_fs"
|
|
8837
8839
|
])} type=text placeholder=github.example.com aria-label="GitHub Enterprise host" autocomplete=off spellcheck=false>${_el_resume($scope41_id, "d")}</label><button${_attr_class([
|
|
8838
8840
|
btnSm,
|
|
8839
8841
|
"_r",
|
|
8840
|
-
"
|
|
8841
|
-
])} type=submit${_attr("hidden", !addingHost)}${_attr("disabled", !hostInput.trim() || hostBusy)}>${_text_resume($scope41_id, "f", hostBusy ? "Adding…" : "Add")}</button>${_el_resume($scope41_id, "e")}<button${_attr_class([iconBtnRow, "
|
|
8842
|
+
"_fP"
|
|
8843
|
+
])} type=submit${_attr("hidden", !addingHost)}${_attr("disabled", !hostInput.trim() || hostBusy)}>${_text_resume($scope41_id, "f", hostBusy ? "Adding…" : "Add")}</button>${_el_resume($scope41_id, "e")}<button${_attr_class([iconBtnRow, "_ft"])} type=button${_attr("hidden", !addingHost)} title=Cancel aria-label=Cancel${_attr("disabled", hostBusy)}>`);
|
|
8842
8844
|
icon_xmark_default({ size: 14 });
|
|
8843
8845
|
_html(`</button>${_el_resume($scope41_id, "g")}</form>${_el_resume($scope41_id, "a")}`);
|
|
8844
8846
|
_script($scope41_id, "y52");
|
|
@@ -8846,17 +8848,17 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8846
8848
|
return 0;
|
|
8847
8849
|
}
|
|
8848
8850
|
}, $scope0_id, "w", 1, 1, 1, 0, 1);
|
|
8849
|
-
_html(`</div><div${_attr_class(["_ck", "
|
|
8851
|
+
_html(`</div><div${_attr_class(["_ck", "_d1"])}>`);
|
|
8850
8852
|
_for_of(setup?.github || [], (h) => {
|
|
8851
8853
|
const $scope6_id = _scope_id();
|
|
8852
8854
|
const $for_content3__h_host__closures = /* @__PURE__ */ new Set();
|
|
8853
8855
|
const hostSso$1 = (h.sso || []).filter((s) => !ignoredSso.has(s.org));
|
|
8854
8856
|
const skippedSso = (h.sso || []).filter((s) => ignoredSso.has(s.org));
|
|
8855
8857
|
const busy = active.has(h.host);
|
|
8856
|
-
_html(`<div${_attr_class(["
|
|
8858
|
+
_html(`<div${_attr_class(["_d2", "_fR"])}><div${_attr_class("_fS")}>`);
|
|
8857
8859
|
icon_github_default({
|
|
8858
8860
|
size: 18,
|
|
8859
|
-
class: "
|
|
8861
|
+
class: "_fT"
|
|
8860
8862
|
});
|
|
8861
8863
|
_html(`<div${_attr_class("_cl")}><span${_attr_class("_cn")}><span${_attr_class("_cm")}>${_text_resume($scope6_id, "g", h.host)}</span>`);
|
|
8862
8864
|
_if(() => {
|
|
@@ -8871,25 +8873,25 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8871
8873
|
_if(() => {
|
|
8872
8874
|
if (busy) {
|
|
8873
8875
|
const $scope13_id = _scope_id();
|
|
8874
|
-
_html(`<span${_attr_class(["_co", "
|
|
8876
|
+
_html(`<span${_attr_class(["_co", "_fU"])}><span${_attr_class("_G")}></span>${_text_resume($scope13_id, "c", authCodes.has(h.host) ? "Waiting for the browser…" : active.get(h.host) || "Starting…")}</span>`);
|
|
8875
8877
|
_subscribe($authCodes__closures, _subscribe($active__closures, writeScope($scope13_id, { Ch2: 1 })));
|
|
8876
8878
|
return 0;
|
|
8877
8879
|
} else if (h.authed) {
|
|
8878
8880
|
const $scope89_id = _scope_id();
|
|
8879
|
-
_html(`<span${_attr_class(["_co", "
|
|
8881
|
+
_html(`<span${_attr_class(["_co", "_fU"])}>`);
|
|
8880
8882
|
icon_check_default({
|
|
8881
8883
|
size: 12,
|
|
8882
|
-
class: "
|
|
8884
|
+
class: "_fV"
|
|
8883
8885
|
});
|
|
8884
|
-
_html(` Signed in as <strong${_attr_class("
|
|
8886
|
+
_html(` Signed in as <strong${_attr_class("_fX")}>${_text_resume($scope89_id, "d", h.user || "?")}</strong></span>`);
|
|
8885
8887
|
writeScope($scope89_id, {});
|
|
8886
8888
|
return 1;
|
|
8887
8889
|
} else if (h.error) {
|
|
8888
8890
|
const $scope90_id = _scope_id();
|
|
8889
8891
|
_html(`<span${_attr_class([
|
|
8890
8892
|
"_co",
|
|
8891
|
-
"
|
|
8892
|
-
"
|
|
8893
|
+
"_fU",
|
|
8894
|
+
"_fW"
|
|
8893
8895
|
])}>`);
|
|
8894
8896
|
icon_warning_default({ size: 12 });
|
|
8895
8897
|
_html(`${_text_resume($scope90_id, "c", h.error)}</span>`);
|
|
@@ -8897,7 +8899,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8897
8899
|
return 2;
|
|
8898
8900
|
} else {
|
|
8899
8901
|
const $scope92_id = _scope_id();
|
|
8900
|
-
_html(`<span${_attr_class(["_co", "
|
|
8902
|
+
_html(`<span${_attr_class(["_co", "_fU"])}>Not signed in</span>`);
|
|
8901
8903
|
writeScope($scope92_id, {});
|
|
8902
8904
|
return 3;
|
|
8903
8905
|
}
|
|
@@ -8962,7 +8964,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8962
8964
|
_if(() => {
|
|
8963
8965
|
if (busy && authCodes.has(h.host)) {
|
|
8964
8966
|
const $scope30_id = _scope_id();
|
|
8965
|
-
_html(`<div${_attr_class("
|
|
8967
|
+
_html(`<div${_attr_class("_fY")}><span${_attr_class("_fZ")}>Enter this code at <a${_attr("href", `https://${h.host}/login/device`)} target=_blank rel=noopener${_attr_class("_f1")}>${_text_resume($scope30_id, "d", h.host)}/login/device</a>${_el_resume($scope30_id, "c")}</span><code${_attr_class("_f0")}>${_text_resume($scope30_id, "f", authCodes.get(h.host))}</code></div>`);
|
|
8966
8968
|
_subscribe($authCodes__closures, writeScope($scope30_id, { Ch4: 1 }));
|
|
8967
8969
|
return 0;
|
|
8968
8970
|
}
|
|
@@ -8974,7 +8976,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8974
8976
|
_set_serialize_reason(30);
|
|
8975
8977
|
const $childScope9 = _peek_scope_id();
|
|
8976
8978
|
sso_auth_default({
|
|
8977
|
-
class: ["
|
|
8979
|
+
class: ["_d2", "_f2"],
|
|
8978
8980
|
items: hostSso$1,
|
|
8979
8981
|
skipped: skippedSso,
|
|
8980
8982
|
busy,
|
|
@@ -9013,18 +9015,18 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9013
9015
|
return 0;
|
|
9014
9016
|
}
|
|
9015
9017
|
}, $scope0_id, "y", 1, 1, 1, 0, 1);
|
|
9016
|
-
_html(`</section><section${_attr_class("_cf")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_cg")}><h2${_attr("id", machineId)}${_attr_class("_ct")}>Machine</h2></div><div${_attr_class(["_ck", "
|
|
9018
|
+
_html(`</section><section${_attr_class("_cf")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_cg")}><h2${_attr("id", machineId)}${_attr_class("_ct")}>Machine</h2></div><div${_attr_class(["_ck", "_d1"])}><div${_attr_class(["_d2", "_d3"])}><div${_attr_class(["_d4", { ["_d5"]: skillsOpen }])}><button${_attr_class("_d6")} aria-expanded=true>`);
|
|
9017
9019
|
_set_serialize_reason(1);
|
|
9018
9020
|
const $childScope10 = _peek_scope_id();
|
|
9019
9021
|
icon_chevron_right_default({
|
|
9020
9022
|
size: 12,
|
|
9021
|
-
class: ["
|
|
9023
|
+
class: ["_d_", { ["_ea"]: skillsOpen }]
|
|
9022
9024
|
});
|
|
9023
|
-
_html(`<span${_attr_class("
|
|
9025
|
+
_html(`<span${_attr_class("_d7")}>Skills</span>`);
|
|
9024
9026
|
_if(() => {
|
|
9025
9027
|
if (skills?.global.length) {
|
|
9026
9028
|
const $scope51_id = _scope_id();
|
|
9027
|
-
_html(`<span${_attr_class("
|
|
9029
|
+
_html(`<span${_attr_class("_d8")}>${_text_resume($scope51_id, "b", skills.global.length)} installed</span>`);
|
|
9028
9030
|
writeScope($scope51_id, {});
|
|
9029
9031
|
return 0;
|
|
9030
9032
|
}
|
|
@@ -9044,7 +9046,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9044
9046
|
_if(() => {
|
|
9045
9047
|
if (skills?.available && skills.agents.length) {
|
|
9046
9048
|
const $scope14_id = _scope_id();
|
|
9047
|
-
_html(`<div${_attr_class(["
|
|
9049
|
+
_html(`<div${_attr_class(["_fo", { ["_fp"]: true }])}><label${_attr_class(["_1", "_fr"])}>`);
|
|
9048
9050
|
_if(() => {
|
|
9049
9051
|
if (skillSearching) {
|
|
9050
9052
|
const $scope96_id = _scope_id();
|
|
@@ -9064,14 +9066,14 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9064
9066
|
_html(`<input${_attr_input_value($scope14_id, "d", skillQuery, searchSkills)}${_attr_class([
|
|
9065
9067
|
"_Z",
|
|
9066
9068
|
"_3",
|
|
9067
|
-
"
|
|
9068
|
-
])} type=text placeholder="Search skills, or paste owner/repo…" aria-label="Search for a skill" autocomplete=off spellcheck=false>${_el_resume($scope14_id, "d")}</label><button${_attr_class([iconBtnRow, "
|
|
9069
|
+
"_fs"
|
|
9070
|
+
])} type=text placeholder="Search skills, or paste owner/repo…" aria-label="Search for a skill" autocomplete=off spellcheck=false>${_el_resume($scope14_id, "d")}</label><button${_attr_class([iconBtnRow, "_ft"])} type=button${_attr("hidden", true)} title="Close search" aria-label="Close search">`);
|
|
9069
9071
|
icon_xmark_default({ size: 14 });
|
|
9070
|
-
_html(`</button>${_el_resume($scope14_id, "e")}<ul${_attr_class([pop$1, "
|
|
9072
|
+
_html(`</button>${_el_resume($scope14_id, "e")}<ul${_attr_class([pop$1, "_fv"])}${_attr("hidden", true)}>`);
|
|
9071
9073
|
_if(() => {
|
|
9072
9074
|
if (skillSearching && !skillHits?.length && !looksLikeSource(skillQuery)) {
|
|
9073
9075
|
const $scope98_id = _scope_id();
|
|
9074
|
-
_html(`<li${_attr_class("
|
|
9076
|
+
_html(`<li${_attr_class("_fw")}>Searching skills.sh…</li>`);
|
|
9075
9077
|
writeScope($scope98_id, {});
|
|
9076
9078
|
return 0;
|
|
9077
9079
|
}
|
|
@@ -9079,11 +9081,11 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9079
9081
|
_if(() => {
|
|
9080
9082
|
if (looksLikeSource(skillQuery)) {
|
|
9081
9083
|
const $scope15_id = _scope_id();
|
|
9082
|
-
_html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["
|
|
9084
|
+
_html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["_fL", "_y"])}>${_text_resume($scope15_id, "d", skillQuery.trim())}</span>`);
|
|
9083
9085
|
_if(() => {
|
|
9084
9086
|
if (active.has(skillQuery.trim())) {
|
|
9085
9087
|
const $scope16_id = _scope_id();
|
|
9086
|
-
_html(`<span${_attr_class("
|
|
9088
|
+
_html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope16_id, "c", active.get(skillQuery.trim()) || "Starting…")}</span>`);
|
|
9087
9089
|
_subscribe($skillQuery__closures, _subscribe($active__closures, writeScope($scope16_id, {
|
|
9088
9090
|
Ch2: 3,
|
|
9089
9091
|
Chr: 1
|
|
@@ -9114,11 +9116,11 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9114
9116
|
_for_of(skillHits || [], (h) => {
|
|
9115
9117
|
const $scope17_id = _scope_id();
|
|
9116
9118
|
const $for_content4__h_installs__closures = /* @__PURE__ */ new Set();
|
|
9117
|
-
_html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["
|
|
9119
|
+
_html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["_fL", "_y"])}>${_text_resume($scope17_id, "d", h.name)}</span>`);
|
|
9118
9120
|
_if(() => {
|
|
9119
9121
|
if (active.has(h.skillId)) {
|
|
9120
9122
|
const $scope18_id = _scope_id();
|
|
9121
|
-
_html(`<span${_attr_class("
|
|
9123
|
+
_html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope18_id, "c", active.get(h.skillId) || "Starting…")}</span>`);
|
|
9122
9124
|
_subscribe($active__closures, writeScope($scope18_id, { Ch2: 5 }));
|
|
9123
9125
|
return 0;
|
|
9124
9126
|
} else {
|
|
@@ -9171,7 +9173,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9171
9173
|
_if(() => {
|
|
9172
9174
|
if (skillHits && !skillHits.length && !skillSearching && !looksLikeSource(skillQuery)) {
|
|
9173
9175
|
const $scope53_id = _scope_id();
|
|
9174
|
-
_html(`<li${_attr_class("
|
|
9176
|
+
_html(`<li${_attr_class("_fw")}>No skills match "${_text_resume($scope53_id, "b", skillQuery, 2)}".</li>`);
|
|
9175
9177
|
_subscribe($skillQuery__closures, writeScope($scope53_id, { Chr: 2 }));
|
|
9176
9178
|
return 0;
|
|
9177
9179
|
}
|
|
@@ -9186,7 +9188,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9186
9188
|
_if(() => {
|
|
9187
9189
|
{
|
|
9188
9190
|
const $scope19_id = _scope_id();
|
|
9189
|
-
_html(`<div${_attr_class("
|
|
9191
|
+
_html(`<div${_attr_class("_d9")}>`);
|
|
9190
9192
|
_if(() => {
|
|
9191
9193
|
if (skills && !skills.agents.length) {
|
|
9192
9194
|
const $scope103_id = _scope_id();
|
|
@@ -9201,7 +9203,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9201
9203
|
return 1;
|
|
9202
9204
|
}
|
|
9203
9205
|
}, $scope19_id, "b", 1, 1, 1, 0, 1);
|
|
9204
|
-
_html(`<ul${_attr_class("
|
|
9206
|
+
_html(`<ul${_attr_class("_fh")}>`);
|
|
9205
9207
|
_for_of(skills?.global || [], (s) => {
|
|
9206
9208
|
const $scope21_id = _scope_id();
|
|
9207
9209
|
const $for_content5__s_agents__closures = /* @__PURE__ */ new Set();
|
|
@@ -9287,14 +9289,14 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9287
9289
|
return 0;
|
|
9288
9290
|
}
|
|
9289
9291
|
}, $scope0_id, "ab", 1, 1, 1, 0, 1);
|
|
9290
|
-
_html(`</div><div${_attr_class(["
|
|
9292
|
+
_html(`</div><div${_attr_class(["_d2", "_d3"])}><div${_attr_class(["_d4", { ["_d5"]: machineOpen }])}><button${_attr_class("_d6")} aria-expanded=${machineOpen ? "true" : "false"}>`);
|
|
9291
9293
|
_set_serialize_reason(1);
|
|
9292
9294
|
const $childScope12 = _peek_scope_id();
|
|
9293
9295
|
icon_chevron_right_default({
|
|
9294
9296
|
size: 12,
|
|
9295
|
-
class: ["
|
|
9297
|
+
class: ["_d_", { ["_ea"]: machineOpen }]
|
|
9296
9298
|
});
|
|
9297
|
-
_html(`<span${_attr_class("
|
|
9299
|
+
_html(`<span${_attr_class("_d7")}>Tools</span><span${_attr_class("_d8")}>${_text_resume($scope0_id, "ai", tools.filter((t) => t.installed).length)} installed ${_text_resume($scope0_id, "aj", missingCount ? `${_to_text(" · ")}${_to_text(missingCount)} missing` : "", 2)}${_text_resume($scope0_id, "ak", outdatedIds.length ? `${_to_text(" · ")}${_to_text(outdatedIds.length)} outdated` : "", 2)}</span></button>${_el_resume($scope0_id, "ae")}`);
|
|
9298
9300
|
_if(() => {
|
|
9299
9301
|
if (outdatedIds.length > 1) {
|
|
9300
9302
|
const $scope22_id = _scope_id();
|
|
@@ -9327,7 +9329,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9327
9329
|
_if(() => {
|
|
9328
9330
|
if (setup && setup.mise.installed) {
|
|
9329
9331
|
const $scope24_id = _scope_id();
|
|
9330
|
-
_html(`<div${_attr_class(["
|
|
9332
|
+
_html(`<div${_attr_class(["_fo", { ["_fp"]: true }])}><label${_attr_class(["_1", "_fr"])}>`);
|
|
9331
9333
|
_if(() => {
|
|
9332
9334
|
if (searching) {
|
|
9333
9335
|
const $scope109_id = _scope_id();
|
|
@@ -9347,14 +9349,14 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9347
9349
|
_html(`<input${_attr_input_value($scope24_id, "d", query, search)}${_attr_class([
|
|
9348
9350
|
"_Z",
|
|
9349
9351
|
"_3",
|
|
9350
|
-
"
|
|
9351
|
-
])} type=text placeholder="Search the mise registry…" aria-label="Search the mise registry" autocomplete=off>${_el_resume($scope24_id, "d")}</label><button${_attr_class([iconBtnRow, "
|
|
9352
|
+
"_fs"
|
|
9353
|
+
])} type=text placeholder="Search the mise registry…" aria-label="Search the mise registry" autocomplete=off>${_el_resume($scope24_id, "d")}</label><button${_attr_class([iconBtnRow, "_ft"])} type=button${_attr("hidden", true)} title="Close search" aria-label="Close search">`);
|
|
9352
9354
|
icon_xmark_default({ size: 14 });
|
|
9353
|
-
_html(`</button>${_el_resume($scope24_id, "e")}<ul${_attr_class([pop$1, "
|
|
9355
|
+
_html(`</button>${_el_resume($scope24_id, "e")}<ul${_attr_class([pop$1, "_fv"])}${_attr("hidden", true)}>`);
|
|
9354
9356
|
_if(() => {
|
|
9355
9357
|
if (searching && !hits?.length) {
|
|
9356
9358
|
const $scope111_id = _scope_id();
|
|
9357
|
-
_html(`<li${_attr_class("
|
|
9359
|
+
_html(`<li${_attr_class("_fw")}>Searching the mise registry…</li>`);
|
|
9358
9360
|
writeScope($scope111_id, {});
|
|
9359
9361
|
return 0;
|
|
9360
9362
|
}
|
|
@@ -9362,18 +9364,18 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9362
9364
|
_if(() => {
|
|
9363
9365
|
if (hits && !hits.length && !searching) {
|
|
9364
9366
|
const $scope43_id = _scope_id();
|
|
9365
|
-
_html(`<li${_attr_class("
|
|
9367
|
+
_html(`<li${_attr_class("_fw")}>No tools match "${_text_resume($scope43_id, "b", query, 2)}".</li>`);
|
|
9366
9368
|
_subscribe($query__closures, writeScope($scope43_id, {}));
|
|
9367
9369
|
return 0;
|
|
9368
9370
|
}
|
|
9369
9371
|
}, $scope24_id, "i", 1, 1, 1, 0, 1);
|
|
9370
9372
|
_for_of(hits || [], (h) => {
|
|
9371
9373
|
const $scope25_id = _scope_id();
|
|
9372
|
-
_html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["
|
|
9374
|
+
_html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["_fL", "_y"])}>${_text_resume($scope25_id, "d", h.name)}</span>`);
|
|
9373
9375
|
_if(() => {
|
|
9374
9376
|
if (active.has(h.name)) {
|
|
9375
9377
|
const $scope26_id = _scope_id();
|
|
9376
|
-
_html(`<span${_attr_class("
|
|
9378
|
+
_html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope26_id, "c", active.get(h.name) || "Starting…")}</span>`);
|
|
9377
9379
|
_subscribe($active__closures, writeScope($scope26_id, { Ch2: 9 }));
|
|
9378
9380
|
return 0;
|
|
9379
9381
|
} else if (h.description) {
|
|
@@ -9423,7 +9425,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9423
9425
|
_if(() => {
|
|
9424
9426
|
if (machineOpen) {
|
|
9425
9427
|
const $scope5_id = _scope_id();
|
|
9426
|
-
_html(`<div${_attr_class("
|
|
9428
|
+
_html(`<div${_attr_class("_d9")}>`);
|
|
9427
9429
|
_if(() => {
|
|
9428
9430
|
if (setup && !setup.mise.installed) {
|
|
9429
9431
|
const $scope27_id = _scope_id();
|
|
@@ -9437,11 +9439,11 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9437
9439
|
_if(() => {
|
|
9438
9440
|
if (self) {
|
|
9439
9441
|
const $scope47_id = _scope_id();
|
|
9440
|
-
_html(`<li${_attr_class(toolRow)}><span${_attr_class(["
|
|
9442
|
+
_html(`<li${_attr_class(toolRow)}><span${_attr_class(["_fL", "_y"])}>work</span>`);
|
|
9441
9443
|
_if(() => {
|
|
9442
9444
|
if (selfUpdating) {
|
|
9443
9445
|
const $scope114_id = _scope_id();
|
|
9444
|
-
_html(`<span${_attr_class("
|
|
9446
|
+
_html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>Updating — the app restarts and reloads when it is done…</span>`);
|
|
9445
9447
|
writeScope($scope114_id, {});
|
|
9446
9448
|
return 0;
|
|
9447
9449
|
} else {
|
|
@@ -9455,7 +9457,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9455
9457
|
return 0;
|
|
9456
9458
|
} else if (self.latest && self.latest !== self.version) {
|
|
9457
9459
|
const $scope49_id = _scope_id();
|
|
9458
|
-
_html(`<button${_attr_class([btnSm, "
|
|
9460
|
+
_html(`<button${_attr_class([btnSm, "_fO"])}${_attr("title", `Update work to v${self.latest} and restart`)}>`);
|
|
9459
9461
|
icon_arrow_up_default({ size: 12 });
|
|
9460
9462
|
_html(` ${_text_resume($scope49_id, "c", self.latest, 2)}</button>${_el_resume($scope49_id, "a")}`);
|
|
9461
9463
|
_script($scope49_id, "y72");
|
|
@@ -9499,11 +9501,11 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9499
9501
|
const $for_content7__t_label__closures = /* @__PURE__ */ new Set();
|
|
9500
9502
|
const $for_content7__t_newest__closures = /* @__PURE__ */ new Set();
|
|
9501
9503
|
const $for_content7__t_id__closures = /* @__PURE__ */ new Set();
|
|
9502
|
-
_html(`<li${_attr_class([toolRow, { ["
|
|
9504
|
+
_html(`<li${_attr_class([toolRow, { ["_fK"]: !t.installed }])}><span${_attr_class(["_fL", "_y"])}>${_text_resume($scope28_id, "c", t.label)}</span>`);
|
|
9503
9505
|
_if(() => {
|
|
9504
9506
|
if (active.has(t.id)) {
|
|
9505
9507
|
const $scope29_id = _scope_id();
|
|
9506
|
-
_html(`<span${_attr_class("
|
|
9508
|
+
_html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope29_id, "c", active.get(t.id) || "Starting…")}</span>`);
|
|
9507
9509
|
_subscribe($active__closures, writeScope($scope29_id, { Ch2: 12 }));
|
|
9508
9510
|
return 0;
|
|
9509
9511
|
} else if (t.installed) {
|
|
@@ -9511,11 +9513,11 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9511
9513
|
_if(() => {
|
|
9512
9514
|
if (t.version) {
|
|
9513
9515
|
const $scope40_id = _scope_id();
|
|
9514
|
-
_html(`<button${_attr_class(["
|
|
9516
|
+
_html(`<button${_attr_class(["_fN", "_y"])}${_attr("title", `${t.path || t.label}${aliasPin(t) ? `, pinned to ${t.pin}` : ""}. Pin a version`)}>v${_text_resume($scope40_id, "b", t.version, 2)}`);
|
|
9515
9517
|
_if(() => {
|
|
9516
9518
|
if (aliasPin(t)) {
|
|
9517
9519
|
const $scope118_id = _scope_id();
|
|
9518
|
-
_html(`<span${_attr_class("
|
|
9520
|
+
_html(`<span${_attr_class("_fM")}>${_text_resume($scope118_id, "b", t.pin)}</span>`);
|
|
9519
9521
|
_subscribe($for_content7__t_pin__closures, writeScope($scope118_id, { Ca0: 1 }));
|
|
9520
9522
|
return 0;
|
|
9521
9523
|
}
|
|
@@ -9534,7 +9536,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9534
9536
|
_if(() => {
|
|
9535
9537
|
if (outdated(t)) {
|
|
9536
9538
|
const $scope59_id = _scope_id();
|
|
9537
|
-
_html(`<button${_attr_class([btnSm, "
|
|
9539
|
+
_html(`<button${_attr_class([btnSm, "_fO"])}${_attr("title", `Update to v${t.latest}`)}>`);
|
|
9538
9540
|
icon_arrow_up_default({ size: 12 });
|
|
9539
9541
|
_html(` ${_text_resume($scope59_id, "c", t.latest, 2)}</button>${_el_resume($scope59_id, "a")}`);
|
|
9540
9542
|
_script($scope59_id, "y74");
|
|
@@ -9542,7 +9544,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9542
9544
|
return 0;
|
|
9543
9545
|
} else if (t.newest) {
|
|
9544
9546
|
const $scope60_id = _scope_id();
|
|
9545
|
-
_html(`<button${_attr_class(["
|
|
9547
|
+
_html(`<button${_attr_class(["_fN", "_y"])}${_attr("title", `v${t.newest} is out; ${t.pin} holds ${t.label} at v${t.version}. Pin v${t.newest} instead`)}>${_text_resume($scope60_id, "b", t.newest)} available</button>${_el_resume($scope60_id, "a")}`);
|
|
9546
9548
|
_script($scope60_id, "y75");
|
|
9547
9549
|
_subscribe($for_content7__t_newest__closures, _subscribe($for_content7__t_pin__closures, _subscribe($for_content7__t_version__closures, _subscribe($for_content7__t_label__closures, writeScope($scope60_id, {
|
|
9548
9550
|
Cw: 1,
|
|
@@ -9658,14 +9660,14 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9658
9660
|
label: "Dark"
|
|
9659
9661
|
}
|
|
9660
9662
|
];
|
|
9661
|
-
_html(`</div></div></section><section${_attr_class("_cf")}${_attr("aria-labelledby", appearanceId)}><div${_attr_class("_cg")}><h2${_attr("id", appearanceId)}${_attr_class("_ct")}>Appearance</h2></div><div${_attr_class(["_ck", "
|
|
9663
|
+
_html(`</div></div></section><section${_attr_class("_cf")}${_attr("aria-labelledby", appearanceId)}><div${_attr_class("_cg")}><h2${_attr("id", appearanceId)}${_attr_class("_ct")}>Appearance</h2></div><div${_attr_class(["_ck", "_f3"])}><div${_attr_class("_ge")}><img${_attr_class("_gf")}${_attr("src", `/api/instance/icon${accent ? `?v=${accent.slice(1)}` : ""}`)} alt aria-hidden=true>${_el_resume($scope0_id, "av", $sg__input_instance_accent)}<span${_attr_class("_gg")}><span${_attr_class("_gh")}>${_text_resume($scope0_id, "ay", input$3.instance.name || "work", _serialize_guard($scope0_reason, 7))}</span><span${_attr_class("_gi")}>Sidebar, tab title, home-screen icon and notifications</span></span></div><label${_attr_class("_f4")}><span${_attr_class("_f5")}>Name</span><input${_attr_input_value($scope0_id, "b2", input$3.instance.name, _resume(function(v) {
|
|
9662
9664
|
setInstance({ name: v });
|
|
9663
|
-
}, "y4", $scope0_id))}${_attr_class(["_Z", "
|
|
9665
|
+
}, "y4", $scope0_id))}${_attr_class(["_Z", "_f6"])} type=text placeholder=work maxlength=32 autocomplete=off spellcheck=false>${_el_resume($scope0_id, "b2")}</label><div${_attr_class("_f4")}><span${_attr_class("_f5")}>Theme</span><span${_attr_class("_f8")}><span${_attr_class(themeSeg)} role=radiogroup aria-label="Color theme">`);
|
|
9664
9666
|
_for_of(themeOpts, (opt) => {
|
|
9665
9667
|
const $scope50_id = _scope_id();
|
|
9666
9668
|
_html(`<button type=button${_attr_class([
|
|
9667
9669
|
"_bg",
|
|
9668
|
-
"
|
|
9670
|
+
"_gj",
|
|
9669
9671
|
{ ["_bf"]: themeMode === opt.id }
|
|
9670
9672
|
])} role=radio aria-checked=${themeMode === opt.id ? "true" : "false"}>`);
|
|
9671
9673
|
if (opt.id === "system") {
|
|
@@ -9685,28 +9687,28 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9685
9687
|
_: _scope_with_id($scope0_id)
|
|
9686
9688
|
});
|
|
9687
9689
|
}, "id", $scope0_id, "b6", 1, 0, 1, 0, 1);
|
|
9688
|
-
_html(`</span><span${_attr_class(["_o", "
|
|
9690
|
+
_html(`</span><span${_attr_class(["_o", "_f9"])}>`);
|
|
9689
9691
|
_attr_select_value($scope0_id, "b8", themeMode, _resume(function(v) {
|
|
9690
9692
|
setThemeMode(v);
|
|
9691
9693
|
}, "y5", $scope0_id), () => {
|
|
9692
|
-
_html(`<select${_attr_class(["_p", "
|
|
9694
|
+
_html(`<select${_attr_class(["_p", "_f_"])} aria-label="Color theme">`);
|
|
9693
9695
|
forOf(themeOpts, (opt) => {
|
|
9694
9696
|
_scope_id();
|
|
9695
9697
|
_html(`<option${_attr_option_value(opt.id)}>${_escape(opt.label)}</option>`);
|
|
9696
9698
|
});
|
|
9697
9699
|
_html("</select>");
|
|
9698
9700
|
});
|
|
9699
|
-
_html(`${_el_resume($scope0_id, "b8")}</span></span></div><div${_attr_class("
|
|
9700
|
-
"
|
|
9701
|
-
"
|
|
9702
|
-
{ ["
|
|
9701
|
+
_html(`${_el_resume($scope0_id, "b8")}</span></span></div><div${_attr_class("_f4")}><span${_attr_class("_f5")}>Accent</span><span${_attr_class("_gk")} role=radiogroup aria-label="Accent colour"><button type=button${_attr_class([
|
|
9702
|
+
"_gl",
|
|
9703
|
+
"_go",
|
|
9704
|
+
{ ["_gm"]: !accent }
|
|
9703
9705
|
])} role=radio aria-checked=${!accent ? "true" : "false"} title="Default (blue)" aria-label="Default (blue)">`);
|
|
9704
9706
|
_if(() => {
|
|
9705
9707
|
if (!accent) {
|
|
9706
9708
|
const $scope129_id = _scope_id();
|
|
9707
9709
|
icon_check_default({
|
|
9708
9710
|
size: 12,
|
|
9709
|
-
class: "
|
|
9711
|
+
class: "_gn"
|
|
9710
9712
|
});
|
|
9711
9713
|
$si__input_instance_accent && writeScope($scope129_id, {});
|
|
9712
9714
|
return 0;
|
|
@@ -9714,13 +9716,13 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9714
9716
|
}, $scope0_id, "bc", $sg__input_instance_accent, 1, 1, "</button>", 1);
|
|
9715
9717
|
_for_of(ACCENT_PRESETS, (p) => {
|
|
9716
9718
|
const $scope77_id = _scope_id();
|
|
9717
|
-
_html(`<button type=button${_attr_class(["
|
|
9719
|
+
_html(`<button type=button${_attr_class(["_gl", { ["_gm"]: accent === p.value }])}${_attr_style(`--swatch:${p.value}`)} role=radio aria-checked=${accent === p.value ? "true" : "false"}${_attr("title", p.name)}${_attr("aria-label", p.name)}>`);
|
|
9718
9720
|
_if(() => {
|
|
9719
9721
|
if (accent === p.value) {
|
|
9720
9722
|
const $scope130_id = _scope_id();
|
|
9721
9723
|
icon_check_default({
|
|
9722
9724
|
size: 12,
|
|
9723
|
-
class: "
|
|
9725
|
+
class: "_gn"
|
|
9724
9726
|
});
|
|
9725
9727
|
$si__input_instance_accent && writeScope($scope130_id, {});
|
|
9726
9728
|
return 0;
|
|
@@ -9734,18 +9736,18 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9734
9736
|
}, "value", $scope0_id, "bd", $sg__input_instance_accent, 0, 1, 0, 1);
|
|
9735
9737
|
const customOn = !!accent && !ACCENT_PRESETS.some((p) => p.value === accent);
|
|
9736
9738
|
_html(`<label${_attr_class([
|
|
9737
|
-
"
|
|
9738
|
-
"
|
|
9739
|
-
{ ["
|
|
9739
|
+
"_gl",
|
|
9740
|
+
"_gp",
|
|
9741
|
+
{ ["_gm"]: customOn }
|
|
9740
9742
|
])}${customOn ? _attr_style(`--swatch:${accent}`) : ""}${customOn ? _attr("title", `Custom ${accent}`) : " title=\"Custom colour\""}><input${_attr_input_value($scope0_id, "bf", accent || "#3556d8", _resume(function(v) {
|
|
9741
9743
|
setInstance({ accent: v });
|
|
9742
|
-
}, "y6", $scope0_id))}${_attr_class("
|
|
9744
|
+
}, "y6", $scope0_id))}${_attr_class("_gq")} type=color aria-label="Custom accent colour">${_el_resume($scope0_id, "bf")}`);
|
|
9743
9745
|
_if(() => {
|
|
9744
9746
|
if (customOn) {
|
|
9745
9747
|
const $scope131_id = _scope_id();
|
|
9746
9748
|
icon_check_default({
|
|
9747
9749
|
size: 12,
|
|
9748
|
-
class: "
|
|
9750
|
+
class: "_gn"
|
|
9749
9751
|
});
|
|
9750
9752
|
$si__input_instance_accent && writeScope($scope131_id, {});
|
|
9751
9753
|
return 0;
|
|
@@ -9756,11 +9758,11 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9756
9758
|
return 1;
|
|
9757
9759
|
}
|
|
9758
9760
|
}, $scope0_id, "bg", $sg__input_instance_accent, $sg__input_instance_accent, 1, 0, 1);
|
|
9759
|
-
_html(`</label>${_el_resume($scope0_id, "be", $sg__input_instance_accent)}</span></div></div></section><section${_attr_class("_cf")}${_attr("aria-labelledby", backupId)}><div${_attr_class("_cg")}><h2${_attr("id", backupId)}${_attr_class("_ct")}>Backup</h2></div><div${_attr_class(["_ck", "
|
|
9761
|
+
_html(`</label>${_el_resume($scope0_id, "be", $sg__input_instance_accent)}</span></div></div></section><section${_attr_class("_cf")}${_attr("aria-labelledby", backupId)}><div${_attr_class("_cg")}><h2${_attr("id", backupId)}${_attr_class("_ct")}>Backup</h2></div><div${_attr_class(["_ck", "_d1"])}><div${_attr_class("_d2")}><div${_attr_class("_gr")}><div${_attr_class("_cl")}>`);
|
|
9760
9762
|
_if(() => {
|
|
9761
9763
|
if (backupBusy === "preflight") {
|
|
9762
9764
|
const $scope65_id = _scope_id();
|
|
9763
|
-
_html(`<span${_attr_class("
|
|
9765
|
+
_html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope65_id, "c", backupLine || "Checking workspaces…")}</span>`);
|
|
9764
9766
|
writeScope($scope65_id, {});
|
|
9765
9767
|
return 0;
|
|
9766
9768
|
} else {
|
|
@@ -9783,7 +9785,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9783
9785
|
_if(() => {
|
|
9784
9786
|
if (preflight && !backupBusy) {
|
|
9785
9787
|
const $scope67_id = _scope_id();
|
|
9786
|
-
_html(`<div${_attr_class("
|
|
9788
|
+
_html(`<div${_attr_class("_gt")}><p${_attr_class("_gu")}>In the file: ${_text_resume($scope67_id, "c", preflight.contents.workspaces, 2)} workspace${_text_resume($scope67_id, "d", preflight.contents.workspaces === 1 ? "" : "s", 2)}${_text_resume($scope67_id, "e", preflight.contents.archived ? `${_to_text(" ")}(${_to_text(preflight.contents.archived)} archived)` : "", 2)} , ${_text_resume($scope67_id, "f", preflight.contents.tools, 2)} tool pin${_text_resume($scope67_id, "g", preflight.contents.tools === 1 ? "" : "s", 2)}, ${_text_resume($scope67_id, "h", preflight.contents.skills, 2)} skill${_text_resume($scope67_id, "i", preflight.contents.skills === 1 ? "" : "s", 2)}, ${_text_resume($scope67_id, "j", preflight.contents.agents, 2)} agent${_text_resume($scope67_id, "k", preflight.contents.agents === 1 ? "" : "s", 2)}.</p><p${_attr_class("_gu")}>Not in the file: `);
|
|
9787
9789
|
_if(() => {
|
|
9788
9790
|
if (preflight.unpushed) {
|
|
9789
9791
|
const $scope68_id = _scope_id();
|
|
@@ -9800,15 +9802,15 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9800
9802
|
return 0;
|
|
9801
9803
|
}
|
|
9802
9804
|
}, $scope67_id, "m");
|
|
9803
|
-
_html(`${_text_resume($scope67_id, "n", preflight.files ? `${_to_text(" ")}${_to_text(preflight.files)} uncommitted file${_to_text(preflight.files === 1 ? "" : "s")}` : "", 2)} .</p><ul${_attr_class("
|
|
9805
|
+
_html(`${_text_resume($scope67_id, "n", preflight.files ? `${_to_text(" ")}${_to_text(preflight.files)} uncommitted file${_to_text(preflight.files === 1 ? "" : "s")}` : "", 2)} .</p><ul${_attr_class("_gv")}>`);
|
|
9804
9806
|
_for_of(preflight.workspaces, (w) => {
|
|
9805
9807
|
const $scope135_id = _scope_id();
|
|
9806
9808
|
const $for_content18__w_name__closures = /* @__PURE__ */ new Set();
|
|
9807
|
-
_html(`<li${_attr_class("
|
|
9809
|
+
_html(`<li${_attr_class("_gw")}><span${_attr_class("_cm")}>${_text_resume($scope135_id, "c", w.name)}</span><ul${_attr_class("_gv")}>`);
|
|
9808
9810
|
_for_of(w.repos, (r) => {
|
|
9809
9811
|
const $scope136_id = _scope_id();
|
|
9810
9812
|
const $for_content19__r_more__closures = /* @__PURE__ */ new Set();
|
|
9811
|
-
_html(`<li${_attr_class("
|
|
9813
|
+
_html(`<li${_attr_class("_gx")}><span${_attr_class("_gy")}><span${_attr_class("_y")}>${_text_resume($scope136_id, "d", r.worktree)}/</span>`);
|
|
9812
9814
|
_for_of(r.unpushed, (b) => {
|
|
9813
9815
|
const $scope137_id = _scope_id();
|
|
9814
9816
|
_html(`<span${_attr_class(["_N", tone.warn])}${_attr("title", `${b.branch}: ${b.count} commit${b.count === 1 ? "" : "s"} origin does not have`)}>${_text_resume($scope137_id, "b", b.count)} unpushed `);
|
|
@@ -9827,10 +9829,10 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9827
9829
|
_if(() => {
|
|
9828
9830
|
if (r.modified.length || r.untracked.length || r.ignored.length) {
|
|
9829
9831
|
const $scope138_id = _scope_id();
|
|
9830
|
-
_html(`<ul${_attr_class("
|
|
9832
|
+
_html(`<ul${_attr_class("_gz")}>`);
|
|
9831
9833
|
_for_of(r.modified, (f) => {
|
|
9832
9834
|
const $scope141_id = _scope_id();
|
|
9833
|
-
_html(`<li${_attr_class("
|
|
9835
|
+
_html(`<li${_attr_class("_gA")}><span${_attr_class([
|
|
9834
9836
|
"_N",
|
|
9835
9837
|
"_P",
|
|
9836
9838
|
tone.warn
|
|
@@ -9839,18 +9841,18 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9839
9841
|
}, (f) => f, $scope138_id, "b", 1, 1, 1, 0, 1);
|
|
9840
9842
|
_for_of(r.untracked, (f) => {
|
|
9841
9843
|
const $scope142_id = _scope_id();
|
|
9842
|
-
_html(`<li${_attr_class("
|
|
9844
|
+
_html(`<li${_attr_class("_gA")}><span${_attr_class(["_N", "_P"])} title=Untracked>?</span><span${_attr_class(["_y", "_bb"])}>${_text_resume($scope142_id, "d", f)}</span></li>`);
|
|
9843
9845
|
writeScope($scope142_id, {});
|
|
9844
9846
|
}, (f) => f, $scope138_id, "c", 1, 1, 1, 0, 1);
|
|
9845
9847
|
_for_of(r.ignored, (f) => {
|
|
9846
9848
|
const $scope143_id = _scope_id();
|
|
9847
|
-
_html(`<li${_attr_class("
|
|
9849
|
+
_html(`<li${_attr_class("_gA")}><span${_attr_class(["_N", "_P"])} title="Ignored by git — a restore cannot bring it back">ignored</span><span${_attr_class(["_y", "_bb"])}>${_text_resume($scope143_id, "d", f)}</span></li>`);
|
|
9848
9850
|
writeScope($scope143_id, {});
|
|
9849
9851
|
}, (f) => f, $scope138_id, "d", 1, 1, 1, 0, 1);
|
|
9850
9852
|
_if(() => {
|
|
9851
9853
|
if (r.more) {
|
|
9852
9854
|
const $scope139_id = _scope_id();
|
|
9853
|
-
_html(`<li${_attr_class(["
|
|
9855
|
+
_html(`<li${_attr_class(["_gA", "_x"])}>+${_text_resume($scope139_id, "b", r.more, 2)} more</li>`);
|
|
9854
9856
|
_subscribe($for_content19__r_more__closures, writeScope($scope139_id, {}));
|
|
9855
9857
|
return 0;
|
|
9856
9858
|
}
|
|
@@ -9875,17 +9877,17 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9875
9877
|
i: $for_content18__w_name__closures
|
|
9876
9878
|
});
|
|
9877
9879
|
}, "id", $scope67_id, "o", 1, 1, 1, "</ul>", 1);
|
|
9878
|
-
_html(`<div${_attr_class("
|
|
9880
|
+
_html(`<div${_attr_class("_gB")}><button${_attr_class([btnSm, { ["_r"]: !preflight.unpushed }])}>${_text_resume($scope67_id, "r", preflight.unpushed ? "Export anyway" : "Export")}</button>${_el_resume($scope67_id, "q")}<button${_attr_class(btnSm)}>Cancel</button>${_el_resume($scope67_id, "s")}</div></div>`);
|
|
9879
9881
|
_script($scope67_id, "y81");
|
|
9880
9882
|
writeScope($scope67_id, {});
|
|
9881
9883
|
return 0;
|
|
9882
9884
|
}
|
|
9883
9885
|
}, $scope0_id, "bp", 1, 1, 1, 0, 1);
|
|
9884
|
-
_html(`</div><div${_attr_class("
|
|
9886
|
+
_html(`</div><div${_attr_class("_d2")}><div${_attr_class("_gr")}><div${_attr_class("_cl")}>`);
|
|
9885
9887
|
_if(() => {
|
|
9886
9888
|
if (backupBusy === "restore") {
|
|
9887
9889
|
const $scope66_id = _scope_id();
|
|
9888
|
-
_html(`<span${_attr_class("
|
|
9890
|
+
_html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope66_id, "c", backupLine || "Restoring…")}</span>`);
|
|
9889
9891
|
writeScope($scope66_id, {});
|
|
9890
9892
|
return 0;
|
|
9891
9893
|
} else if (restoreDone) {
|
|
@@ -9903,7 +9905,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9903
9905
|
_if(() => {
|
|
9904
9906
|
if (!restorePreview && backupBusy !== "restore") {
|
|
9905
9907
|
const $scope76_id = _scope_id();
|
|
9906
|
-
_html(`<label${_attr_class(btnSm)} title="Pick a work backup file">Restore… <input${_attr_class("
|
|
9908
|
+
_html(`<label${_attr_class(btnSm)} title="Pick a work backup file">Restore… <input${_attr_class("_gs")} type=file accept=application/json,.json aria-label="Backup file">${_el_resume($scope76_id, "b")}</label>`);
|
|
9907
9909
|
_script($scope76_id, "y82");
|
|
9908
9910
|
writeScope($scope76_id, {});
|
|
9909
9911
|
return 0;
|
|
@@ -9914,14 +9916,14 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9914
9916
|
if (restorePreview && backupBusy !== "restore") {
|
|
9915
9917
|
const $scope69_id = _scope_id();
|
|
9916
9918
|
const { preview } = restorePreview;
|
|
9917
|
-
_html(`<div${_attr_class("
|
|
9919
|
+
_html(`<div${_attr_class("_gt")}><p${_attr_class("_gu")}>From ${_text_resume($scope69_id, "c", preview.from.host, 2)} on ${_text_resume($scope69_id, "d", new Date(preview.from.exportedAt).toLocaleDateString(), 2)}${_text_resume($scope69_id, "e", preview.from.version ? ` (work ${preview.from.version})` : "", 2)}.</p>`);
|
|
9918
9920
|
_if(() => {
|
|
9919
9921
|
if (preview.workspaces.length) {
|
|
9920
9922
|
const $scope70_id = _scope_id();
|
|
9921
9923
|
_html(`<ul${_attr_class(checkList)}>`);
|
|
9922
9924
|
_for_of(preview.workspaces, (w) => {
|
|
9923
9925
|
const $scope71_id = _scope_id();
|
|
9924
|
-
_html(`<li><label${_attr_class(["
|
|
9926
|
+
_html(`<li><label${_attr_class(["_gD", { ["_gF"]: w.exists || !!w.unknownHost }])}><input${_attr_input_checked($scope71_id, "b", restoreWs.has(w.id))}${_attr_class("_gE")} type=checkbox${_attr("disabled", w.exists || !!w.unknownHost)}>${_el_resume($scope71_id, "b")}<span${_attr_class("_cl")}><span${_attr_class("_cn")}><span${_attr_class("_cm")}>${_text_resume($scope71_id, "f", w.name)}</span>`);
|
|
9925
9927
|
_if(() => {
|
|
9926
9928
|
if (w.status === "archived") {
|
|
9927
9929
|
const $scope148_id = _scope_id();
|
|
@@ -9994,7 +9996,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9994
9996
|
_if(() => {
|
|
9995
9997
|
if (p.total) {
|
|
9996
9998
|
const $scope73_id = _scope_id();
|
|
9997
|
-
_html(`<li><label${_attr_class(["
|
|
9999
|
+
_html(`<li><label${_attr_class(["_gD", { ["_gF"]: !p.missing.length && p.key !== "settings" }])}><input${_attr_input_checked($scope73_id, "b", restoreParts[p.key])}${_attr_class("_gE")} type=checkbox${_attr("disabled", !p.missing.length && p.key !== "settings")}>${_el_resume($scope73_id, "b")}<span${_attr_class("_cl")}><span${_attr_class("_cm")}>${_text_resume($scope73_id, "e", p.label)}</span><span${_attr_class("_co")}>`);
|
|
9998
10000
|
_if(() => {
|
|
9999
10001
|
if (p.key === "settings") {
|
|
10000
10002
|
const $scope145_id = _scope_id();
|
|
@@ -10041,7 +10043,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
10041
10043
|
i: $for_content10__p_total__closures
|
|
10042
10044
|
});
|
|
10043
10045
|
}, "key", $scope69_id, "h");
|
|
10044
|
-
_html(`</ul><div${_attr_class("
|
|
10046
|
+
_html(`</ul><div${_attr_class("_gB")}><button${_attr_class([btnSm, "_r"])}${_attr("disabled", !restoreWs.size && !Object.values(restoreParts).some(Boolean))}>Restore</button>${_el_resume($scope69_id, "j")}<button${_attr_class(btnSm)}>Cancel</button>${_el_resume($scope69_id, "k")}</div></div>`);
|
|
10045
10047
|
_script($scope69_id, "y85");
|
|
10046
10048
|
writeScope($scope69_id, {});
|
|
10047
10049
|
return 0;
|
|
@@ -10326,7 +10328,7 @@ function activeAgent(session) {
|
|
|
10326
10328
|
const command = session.state?.command?.trim();
|
|
10327
10329
|
return command && agentFromCommand(command) || session.agent;
|
|
10328
10330
|
}
|
|
10329
|
-
var rowState = "
|
|
10331
|
+
var rowState = "_c_ _N";
|
|
10330
10332
|
//#endregion
|
|
10331
10333
|
//#region src/client/arm.ts
|
|
10332
10334
|
/** Two-step destructive controls: first click arms (label/colour flips),
|
|
@@ -10337,12 +10339,12 @@ var ARM_MS = 3500;
|
|
|
10337
10339
|
function disarmLater(fn) {
|
|
10338
10340
|
return setTimeout(fn, ARM_MS);
|
|
10339
10341
|
}
|
|
10340
|
-
var prChip = "
|
|
10341
|
-
var portChip = "
|
|
10342
|
+
var prChip = "_hv _u _hu";
|
|
10343
|
+
var portChip = "_hw _u _hu";
|
|
10342
10344
|
var prState = {
|
|
10343
|
-
open: "
|
|
10344
|
-
merged: "
|
|
10345
|
-
closed: "
|
|
10345
|
+
open: "_hA",
|
|
10346
|
+
merged: "_hB",
|
|
10347
|
+
closed: "_hC"
|
|
10346
10348
|
};
|
|
10347
10349
|
//#endregion
|
|
10348
10350
|
//#region src/tags/icons/icon-diff.marko
|
|
@@ -10433,7 +10435,7 @@ var side_nav_chips_default = _template("z", (input) => {
|
|
|
10433
10435
|
const name = repo.full_name.split("/").at(-1);
|
|
10434
10436
|
return repos.some((r) => r.full_name !== repo.full_name && r.full_name.split("/").at(-1) === name) ? repoLabel(repo.full_name) : name;
|
|
10435
10437
|
}, "z4", $scope1_id);
|
|
10436
|
-
_html(`<div${_attr_class("
|
|
10438
|
+
_html(`<div${_attr_class("_ht")}>`);
|
|
10437
10439
|
_for_of(repos, (repo) => {
|
|
10438
10440
|
const $scope2_id = _scope_id();
|
|
10439
10441
|
const $for_content__repo_worktree__closures = /* @__PURE__ */ new Set();
|
|
@@ -10449,11 +10451,11 @@ var side_nav_chips_default = _template("z", (input) => {
|
|
|
10449
10451
|
[prState.merged]: pr$1.state === "MERGED",
|
|
10450
10452
|
[prState.closed]: pr$1.state === "CLOSED"
|
|
10451
10453
|
}
|
|
10452
|
-
])}${_attr("title", prTitle(repo, pr$1))}><a${_attr_class(["
|
|
10454
|
+
])}${_attr("title", prTitle(repo, pr$1))}><a${_attr_class(["_hx", { ["_hF"]: !open }])}${_attr("href", pr$1.url)} target=_blank rel=noopener>${_text_resume($scope3_id, "c", repoLabel$1(repo))}#${_text_resume($scope3_id, "d", pr$1.number, 2)}</a>${_el_resume($scope3_id, "b")}`);
|
|
10453
10455
|
_if(() => {
|
|
10454
10456
|
if (open) {
|
|
10455
10457
|
const $scope4_id = _scope_id();
|
|
10456
|
-
_html(`<a${_attr_class(["
|
|
10458
|
+
_html(`<a${_attr_class(["_hx", "_hy"])}${_attr("href", `/w/${input.workspaceId}/review?pr=${encodeURIComponent(`${repo.worktree}/${pr$1.number}`)}`)}${_attr("title", `Review #${pr$1.number} changes`)}>`);
|
|
10457
10459
|
icon_diff_default({ size: 12 });
|
|
10458
10460
|
_html(`</a>${_el_resume($scope4_id, "a")}`);
|
|
10459
10461
|
_subscribe($for_content__repo_worktree__closures, _subscribe($si__input_workspaceId && $input_workspaceId__closures, writeScope($scope4_id, {})));
|
|
@@ -10461,9 +10463,9 @@ var side_nav_chips_default = _template("z", (input) => {
|
|
|
10461
10463
|
} else {
|
|
10462
10464
|
const $scope6_id = _scope_id();
|
|
10463
10465
|
_html(`<button type=button${_attr_class([
|
|
10464
|
-
"
|
|
10465
|
-
"
|
|
10466
|
-
"
|
|
10466
|
+
"_hx",
|
|
10467
|
+
"_hy",
|
|
10468
|
+
"_hz"
|
|
10467
10469
|
])}${_attr("title", `Dismiss #${pr$1.number}`)}>`);
|
|
10468
10470
|
icon_xmark_default({ size: 12 });
|
|
10469
10471
|
_html(`</button>${_el_resume($scope6_id, "a")}`);
|
|
@@ -10491,21 +10493,21 @@ var side_nav_chips_default = _template("z", (input) => {
|
|
|
10491
10493
|
_if(() => {
|
|
10492
10494
|
if (dead.has(p.port)) {
|
|
10493
10495
|
const $scope7_id = _scope_id();
|
|
10494
|
-
_html(`<span${_attr_class(["
|
|
10496
|
+
_html(`<span${_attr_class(["_hx", "_hD"])}${_attr("title", dead.get(p.port))} aria-disabled=true>:${_text_resume($scope7_id, "b", p.port, 2)}</span>${_el_resume($scope7_id, "a")}`);
|
|
10495
10497
|
_subscribe($dead__closures, writeScope($scope7_id, { Ca3: 1 }));
|
|
10496
10498
|
return 0;
|
|
10497
10499
|
} else {
|
|
10498
10500
|
const $scope8_id = _scope_id();
|
|
10499
|
-
_html(`<button type=button${_attr_class(["
|
|
10501
|
+
_html(`<button type=button${_attr_class(["_hx", "_hE"])}${_attr("title", `Open port ${p.port}`)}>:${_text_resume($scope8_id, "b", p.port, 2)}</button>${_el_resume($scope8_id, "a")}`);
|
|
10500
10502
|
_script($scope8_id, "z6");
|
|
10501
10503
|
writeScope($scope8_id, {});
|
|
10502
10504
|
return 1;
|
|
10503
10505
|
}
|
|
10504
10506
|
}, $scope5_id, "b", 1, 1, 1, 0, 1);
|
|
10505
10507
|
_html(`<button type=button${_attr_class([
|
|
10506
|
-
"
|
|
10507
|
-
"
|
|
10508
|
-
"
|
|
10508
|
+
"_hx",
|
|
10509
|
+
"_hy",
|
|
10510
|
+
"_hz",
|
|
10509
10511
|
{ ["_s"]: armedPid === p.pid }
|
|
10510
10512
|
])}${armedPid === p.pid ? " title=Kill?" : _attr("title", `Kill ${p.cmd} (pid ${p.pid})`)}>`);
|
|
10511
10513
|
icon_xmark_default({ size: 12 });
|
|
@@ -10548,16 +10550,16 @@ var side_nav_chips_default = _template("z", (input) => {
|
|
|
10548
10550
|
});
|
|
10549
10551
|
_resume_branch($scope0_id);
|
|
10550
10552
|
});
|
|
10551
|
-
var railBtn = "
|
|
10552
|
-
var wsBtn = "
|
|
10553
|
-
var rowIcon = "
|
|
10554
|
-
var close = "
|
|
10555
|
-
var sessRename$1 = "
|
|
10556
|
-
var sessBtn$1 = "
|
|
10553
|
+
var railBtn = "_dq _l";
|
|
10554
|
+
var wsBtn = "_dv _I";
|
|
10555
|
+
var rowIcon = "_dy _4 _l";
|
|
10556
|
+
var close = "_dz _7 _l _8";
|
|
10557
|
+
var sessRename$1 = "_dK _J";
|
|
10558
|
+
var sessBtn$1 = "_dM _I";
|
|
10557
10559
|
//#endregion
|
|
10558
10560
|
//#region src/styles/session-pop.css.ts
|
|
10559
|
-
var sessionPop = "
|
|
10560
|
-
var sessionPopBtn = "
|
|
10561
|
+
var sessionPop = "_dm __";
|
|
10562
|
+
var sessionPopBtn = "_dn _I";
|
|
10561
10563
|
//#endregion
|
|
10562
10564
|
//#region src/tags/icons/icon-manage.marko
|
|
10563
10565
|
var icon_manage_default = _template("hb", (input) => {
|
|
@@ -10586,22 +10588,22 @@ var usage_pcts_default = _template("I", (input) => {
|
|
|
10586
10588
|
if (windows.length) {
|
|
10587
10589
|
const $scope1_id = _scope_id();
|
|
10588
10590
|
_html(`<span${_attr_class([
|
|
10589
|
-
"
|
|
10591
|
+
"_gG",
|
|
10590
10592
|
input.class,
|
|
10591
|
-
{ ["
|
|
10593
|
+
{ ["_gH"]: agent.stale_seconds != null }
|
|
10592
10594
|
])}${agent.stale_seconds != null ? _attr("title", `${agent.note || "provider unreachable"}; last cached numbers`) : " title=\"Plan usage\""}>`);
|
|
10593
10595
|
_for_of(windows, (win$1, i) => {
|
|
10594
10596
|
const $scope2_id = _scope_id();
|
|
10595
|
-
_html(`<span${_attr_class("
|
|
10597
|
+
_html(`<span${_attr_class("_gI")}>`);
|
|
10596
10598
|
_if(() => {
|
|
10597
10599
|
if (i) {
|
|
10598
10600
|
const $scope3_id = _scope_id();
|
|
10599
|
-
_html(`<span${_attr_class("
|
|
10601
|
+
_html(`<span${_attr_class("_gL")} aria-hidden=true>·</span>`);
|
|
10600
10602
|
$si__input_agent && writeScope($scope3_id, {});
|
|
10601
10603
|
return 0;
|
|
10602
10604
|
}
|
|
10603
10605
|
}, $scope2_id, "b", $sg__input_agent, $sg__input_agent, $sg__input_agent, 0, 1);
|
|
10604
|
-
_html(`<span${_attr_class("
|
|
10606
|
+
_html(`<span${_attr_class("_gJ")}>${_text_resume($scope2_id, "d", win$1.window, $sg__input_agent)}</span><span${_attr_class(["_gK", win$1.used_percent >= 90 ? "_hp" : win$1.used_percent >= 70 ? "_ho" : win$1.used_percent >= 40 ? "_hn" : "_hm"])}>${_text_resume($scope2_id, "f", pctText(win$1.used_percent), $sg__input_agent)}</span>${_el_resume($scope2_id, "e", $sg__input_agent)}</span>`);
|
|
10605
10607
|
$si__input_agent && writeScope($scope2_id, {});
|
|
10606
10608
|
}, "window", $scope1_id, "a", $sg__input_agent, $sg__input_agent__OR__input_class, $sg__input_agent, "</span>", 1);
|
|
10607
10609
|
$si__input_agent__OR__input_class && writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
|
|
@@ -10712,7 +10714,7 @@ var side_nav_item_default = _template("A", (input) => {
|
|
|
10712
10714
|
_if(() => {
|
|
10713
10715
|
if (input.rail) {
|
|
10714
10716
|
const $scope2_id = _scope_id();
|
|
10715
|
-
_html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["
|
|
10717
|
+
_html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["_do"]: input.current }])}${ws$1.pending ? _attr("title", `${ws$1.name} — restoring`) : _attr("title", ws$1.name)}>${_text_resume($scope2_id, "b", input.index === void 0 ? "·" : input.index + 1, _serialize_guard($scope0_reason, 27))}<span${_attr_class([
|
|
10716
10718
|
"_A",
|
|
10717
10719
|
phase[dot$1],
|
|
10718
10720
|
"_bc"
|
|
@@ -10722,34 +10724,34 @@ var side_nav_item_default = _template("A", (input) => {
|
|
|
10722
10724
|
} else if (ws$1.pending) {
|
|
10723
10725
|
const $scope3_id = _scope_id();
|
|
10724
10726
|
_html(`<section${_attr_class([
|
|
10725
|
-
"
|
|
10726
|
-
"
|
|
10727
|
+
"_ds",
|
|
10728
|
+
"_dO",
|
|
10727
10729
|
{
|
|
10728
|
-
["
|
|
10729
|
-
["
|
|
10730
|
+
["_dt"]: input.railPop,
|
|
10731
|
+
["_dr"]: input.page
|
|
10730
10732
|
}
|
|
10731
|
-
])} aria-busy=${ws$1.pending_error ? "false" : "true"}><div${_attr_class("
|
|
10733
|
+
])} aria-busy=${ws$1.pending_error ? "false" : "true"}><div${_attr_class("_du")}><div${_attr_class(wsBtn)}>`);
|
|
10732
10734
|
_if(() => {
|
|
10733
10735
|
if (ws$1.pending_error) {
|
|
10734
10736
|
const $scope15_id = _scope_id();
|
|
10735
10737
|
icon_warning_default({
|
|
10736
10738
|
size: 12,
|
|
10737
|
-
class: "
|
|
10739
|
+
class: "_dQ"
|
|
10738
10740
|
});
|
|
10739
10741
|
$si__input_workspace && writeScope($scope15_id, {});
|
|
10740
10742
|
return 0;
|
|
10741
10743
|
} else {
|
|
10742
10744
|
const $scope16_id = _scope_id();
|
|
10743
|
-
_html(`<span${_attr_class(["_G", "
|
|
10745
|
+
_html(`<span${_attr_class(["_G", "_dP"])}></span>`);
|
|
10744
10746
|
$si__input_workspace && writeScope($scope16_id, {});
|
|
10745
10747
|
return 1;
|
|
10746
10748
|
}
|
|
10747
10749
|
}, $scope3_id, "d", $sg__input_workspace, $sg__input_workspace, 1, 0, 1);
|
|
10748
|
-
_html(`<span${_attr_class("
|
|
10750
|
+
_html(`<span${_attr_class("_dB")}><span${_attr_class("_dC")}>${_text_resume($scope3_id, "g", ws$1.name, $sg__input_workspace)}</span><span${_attr_class("_dS")}${_attr("title", ws$1.pending_error || restoreLine)}>${_text_resume($scope3_id, "i", ws$1.pending_error ? `Restore failed: ${ws$1.pending_error}` : restoreLine || "Restoring…")}</span>${_el_resume($scope3_id, "h")}</span></div></div>`);
|
|
10749
10751
|
_if(() => {
|
|
10750
10752
|
if (ws$1.pending_error && !retrying) {
|
|
10751
10753
|
const $scope14_id = _scope_id();
|
|
10752
|
-
_html(`<div${_attr_class("
|
|
10754
|
+
_html(`<div${_attr_class("_dR")}><button type=button${_attr_class(["_q", btnSm])} title="Run the restore again">Retry</button>${_el_resume($scope14_id, "b")}<button type=button${_attr_class([
|
|
10753
10755
|
"_q",
|
|
10754
10756
|
btnSm,
|
|
10755
10757
|
{ ["_s"]: armedDelete }
|
|
@@ -10769,15 +10771,15 @@ var side_nav_item_default = _template("A", (input) => {
|
|
|
10769
10771
|
const $scope4_id = _scope_id();
|
|
10770
10772
|
const sessions$1 = input.sessions || [];
|
|
10771
10773
|
const phaseLabel = dot$1 === "working" ? "Working" : dot$1 === "waiting" ? "Needs input" : dot$1 === "idle" ? "Idle" : "Not running";
|
|
10772
|
-
_html(`<section${_attr_class(["
|
|
10773
|
-
["
|
|
10774
|
+
_html(`<section${_attr_class(["_ds", {
|
|
10775
|
+
["_do"]: input.current,
|
|
10774
10776
|
["_bd"]: input.current,
|
|
10775
|
-
["
|
|
10776
|
-
["
|
|
10777
|
-
}])}><div${_attr_class("
|
|
10777
|
+
["_dt"]: input.railPop,
|
|
10778
|
+
["_dr"]: input.page
|
|
10779
|
+
}])}><div${_attr_class("_du")}><a${_attr("href", `/w/${ws$1.id}`)}${_attr_class(wsBtn)}><span${_attr_class([
|
|
10778
10780
|
"_A",
|
|
10779
10781
|
phase[dot$1],
|
|
10780
|
-
"
|
|
10782
|
+
"_dG"
|
|
10781
10783
|
])}${_attr("title", phaseLabel)}></span>${_el_resume($scope4_id, "d", $sg__input_status)}`);
|
|
10782
10784
|
_if(() => {
|
|
10783
10785
|
if (sessions$1.length === 1) {
|
|
@@ -10790,7 +10792,7 @@ var side_nav_item_default = _template("A", (input) => {
|
|
|
10790
10792
|
icon_agent_default({
|
|
10791
10793
|
agent: activeAgent(sessions$1[0]),
|
|
10792
10794
|
size: 12,
|
|
10793
|
-
class: "
|
|
10795
|
+
class: "_dA"
|
|
10794
10796
|
});
|
|
10795
10797
|
$si__input_sessions && writeScope($scope17_id, {
|
|
10796
10798
|
_: _scope_with_id($scope4_id),
|
|
@@ -10800,11 +10802,11 @@ var side_nav_item_default = _template("A", (input) => {
|
|
|
10800
10802
|
}
|
|
10801
10803
|
}, $scope4_id, "e", $sg__input_sessions, $sg__input_sessions);
|
|
10802
10804
|
const metaText = sessions$1.length === 0 ? phaseLabel : sessions$1.length > 1 ? `${sessions$1.length} sessions` : "";
|
|
10803
|
-
_html(`<span${_attr_class("
|
|
10805
|
+
_html(`<span${_attr_class("_dB")}><span${_attr_class("_dC")}>${_text_resume($scope4_id, "h", ws$1.name, $sg__input_workspace)}</span>`);
|
|
10804
10806
|
_if(() => {
|
|
10805
10807
|
if (input.page && metaText) {
|
|
10806
10808
|
const $scope18_id = _scope_id();
|
|
10807
|
-
_html(`<span${_attr_class("
|
|
10809
|
+
_html(`<span${_attr_class("_dF")}>${_text_resume($scope18_id, "b", metaText, _serialize_guard($scope0_reason, 3))}</span>`);
|
|
10808
10810
|
$si__input_page__OR__input_sessions__OR__input_status && writeScope($scope18_id, { _: _serialize_if($scope0_reason, 3) && _scope_with_id($scope4_id) });
|
|
10809
10811
|
return 0;
|
|
10810
10812
|
}
|
|
@@ -10813,7 +10815,7 @@ var side_nav_item_default = _template("A", (input) => {
|
|
|
10813
10815
|
_if(() => {
|
|
10814
10816
|
if (!input.page) {
|
|
10815
10817
|
const $scope5_id = _scope_id();
|
|
10816
|
-
_html(`<div${_attr_class("
|
|
10818
|
+
_html(`<div${_attr_class("_dw")}>`);
|
|
10817
10819
|
_if(() => {
|
|
10818
10820
|
if (input.onNewSession) {
|
|
10819
10821
|
const $scope6_id = _scope_id();
|
|
@@ -10862,7 +10864,7 @@ var side_nav_item_default = _template("A", (input) => {
|
|
|
10862
10864
|
return 0;
|
|
10863
10865
|
}
|
|
10864
10866
|
}, $scope5_id, "c", $sg__input_onReview, $sg__input_onReview, $sg__input_onNewSession__OR__input_onReview, 0, 1);
|
|
10865
|
-
_html(`<a${input.managing ? _attr("href", `/w/${ws$1.id}`) : _attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["
|
|
10867
|
+
_html(`<a${input.managing ? _attr("href", `/w/${ws$1.id}`) : _attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["_dp"]: input.managing }])} title=${input.managing ? "\"Back to terminal\"" : "\"Manage workspace\""}${input.managing ? " aria-current=page" : ""}>`);
|
|
10866
10868
|
icon_manage_default({ size: 12 });
|
|
10867
10869
|
_html(`</a>${_el_resume($scope5_id, "d", _serialize_guard($scope0_reason, 4))}</div>`);
|
|
10868
10870
|
_subscribe($si__input_workspace && $ws_id__closures, _subscribe($si__input_managing && $input_managing__closures, _subscribe($si__input_onReview && $input_onReview__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, writeScope($scope5_id, {
|
|
@@ -10872,7 +10874,7 @@ var side_nav_item_default = _template("A", (input) => {
|
|
|
10872
10874
|
return 0;
|
|
10873
10875
|
}
|
|
10874
10876
|
}, $scope4_id, "j", $sg__input_page, $sg__input_page, 1, 0, 1);
|
|
10875
|
-
_html(`</div><div${_attr_class("
|
|
10877
|
+
_html(`</div><div${_attr_class("_dL")}>`);
|
|
10876
10878
|
_if(() => {
|
|
10877
10879
|
if (sessions$1.length === 1 && openPlan) {
|
|
10878
10880
|
const $scope11_id = _scope_id();
|
|
@@ -10880,7 +10882,7 @@ var side_nav_item_default = _template("A", (input) => {
|
|
|
10880
10882
|
const $childScope3 = _peek_scope_id();
|
|
10881
10883
|
usage_pcts_default({
|
|
10882
10884
|
agent: openPlan,
|
|
10883
|
-
class: "
|
|
10885
|
+
class: "_dD"
|
|
10884
10886
|
});
|
|
10885
10887
|
_subscribe($openPlan__closures, writeScope($scope11_id, {
|
|
10886
10888
|
a: _existing_scope($childScope3),
|
|
@@ -10891,14 +10893,14 @@ var side_nav_item_default = _template("A", (input) => {
|
|
|
10891
10893
|
}, $scope4_id, "l");
|
|
10892
10894
|
_for_of(sessions$1.length > 1 ? sessions$1 : [], (s) => {
|
|
10893
10895
|
const $scope8_id = _scope_id();
|
|
10894
|
-
_html(`<div${_attr_class(["
|
|
10896
|
+
_html(`<div${_attr_class(["_dx", { ["_do"]: s.id === input.currentTab }])}>`);
|
|
10895
10897
|
_if(() => {
|
|
10896
10898
|
if (renamingId === s.id) {
|
|
10897
10899
|
const $scope10_id = _scope_id();
|
|
10898
10900
|
_html(`<span${_attr_class([
|
|
10899
10901
|
"_A",
|
|
10900
10902
|
phase[sessionPhase(s.state)],
|
|
10901
|
-
"
|
|
10903
|
+
"_dJ"
|
|
10902
10904
|
])}></span>${_el_resume($scope10_id, "a", $sg__input_sessions)}`);
|
|
10903
10905
|
_set_serialize_reason({
|
|
10904
10906
|
1: $sg__input_sessions,
|
|
@@ -10908,7 +10910,7 @@ var side_nav_item_default = _template("A", (input) => {
|
|
|
10908
10910
|
icon_agent_default({
|
|
10909
10911
|
agent: activeAgent(s),
|
|
10910
10912
|
size: 12,
|
|
10911
|
-
class: "
|
|
10913
|
+
class: "_dN"
|
|
10912
10914
|
});
|
|
10913
10915
|
_html(`<input${_attr_input_value($scope10_id, "c", renameValue, _resume((_new_renameValue) => {
|
|
10914
10916
|
renameValue = _new_renameValue;
|
|
@@ -10927,9 +10929,9 @@ var side_nav_item_default = _template("A", (input) => {
|
|
|
10927
10929
|
icon_agent_default({
|
|
10928
10930
|
agent: activeAgent(s),
|
|
10929
10931
|
size: 12,
|
|
10930
|
-
class: "
|
|
10932
|
+
class: "_dN"
|
|
10931
10933
|
});
|
|
10932
|
-
_html(`<span${_attr_class("
|
|
10934
|
+
_html(`<span${_attr_class("_dH")}>${_text_resume($scope9_id, "e", s.title || activeAgent(s), $sg__input_sessions)}</span></a>${_el_resume($scope9_id, "a", _serialize_guard($scope0_reason, 2))}<div${_attr_class("_dI")}><button${_attr_class(rowIcon)} title="Rename session">`);
|
|
10933
10935
|
icon_edit_default({ size: 12 });
|
|
10934
10936
|
_html(`</button>${_el_resume($scope9_id, "g")}<button${_attr_class([close, { ["_s"]: armedKill === s.id }])} title=${armedKill === s.id ? "Close?" : "\"Close session\""}>`);
|
|
10935
10937
|
icon_xmark_default({ size: 12 });
|
|
@@ -10941,7 +10943,7 @@ var side_nav_item_default = _template("A", (input) => {
|
|
|
10941
10943
|
const $childScope6 = _peek_scope_id();
|
|
10942
10944
|
usage_pcts_default({
|
|
10943
10945
|
agent: openPlan,
|
|
10944
|
-
class: "
|
|
10946
|
+
class: "_dE"
|
|
10945
10947
|
});
|
|
10946
10948
|
_subscribe($openPlan__closures, writeScope($scope12_id, {
|
|
10947
10949
|
a: _existing_scope($childScope6),
|
|
@@ -11081,11 +11083,11 @@ var workspace_switcher_default = _template("K", (input) => {
|
|
|
11081
11083
|
const sessions = input.sessions || st?.sessions || [];
|
|
11082
11084
|
const manySessions = sessions.length > 1;
|
|
11083
11085
|
const heroMeta$1 = sessions.length === 0 ? "No sessions" : manySessions ? `${sessions.length} sessions` : "";
|
|
11084
|
-
_html(`<div${_attr_class("
|
|
11086
|
+
_html(`<div${_attr_class("_cV")}>`);
|
|
11085
11087
|
_if(() => {
|
|
11086
11088
|
if (ws) {
|
|
11087
11089
|
const $scope1_id = _scope_id();
|
|
11088
|
-
_html(`<section${_attr_class("
|
|
11090
|
+
_html(`<section${_attr_class("_cW")} aria-current=page><a${_attr("href", `/w/${ws.id}`)}${_attr_class("_cX")} data-open><span${_attr_class(["_A", phase[phase$1]])}></span>${_el_resume($scope1_id, "c", _serialize_guard($scope0_reason, 0))}`);
|
|
11089
11091
|
_if(() => {
|
|
11090
11092
|
if (sessions.length === 1) {
|
|
11091
11093
|
const $scope8_id = _scope_id();
|
|
@@ -11097,7 +11099,7 @@ var workspace_switcher_default = _template("K", (input) => {
|
|
|
11097
11099
|
icon_agent_default({
|
|
11098
11100
|
agent: activeAgent(sessions[0]),
|
|
11099
11101
|
size: 16,
|
|
11100
|
-
class: "
|
|
11102
|
+
class: "_c0"
|
|
11101
11103
|
});
|
|
11102
11104
|
$si__input_workspace__OR__input_allStatus__OR__input_sessions && _subscribe($sessions___closures, writeScope($scope8_id, {
|
|
11103
11105
|
_: _scope_with_id($scope1_id),
|
|
@@ -11106,14 +11108,14 @@ var workspace_switcher_default = _template("K", (input) => {
|
|
|
11106
11108
|
return 0;
|
|
11107
11109
|
}
|
|
11108
11110
|
}, $scope1_id, "d", $sg__input_workspace__OR__input_allStatus__OR__input_sessions, $sg__input_workspace__OR__input_allStatus__OR__input_sessions, $sg__input_workspace__OR__input_allStatus__OR__input_sessions);
|
|
11109
|
-
_html(`<span${_attr_class("
|
|
11111
|
+
_html(`<span${_attr_class("_cY")}>${_text_resume($scope1_id, "f", ws.name, $sg__input_workspace)}</span><span${_attr_class("_cZ")}>${_text_resume($scope1_id, "h", heroMeta$1, $sg__input_workspace__OR__input_allStatus__OR__input_sessions)}</span></a>${_el_resume($scope1_id, "b", $sg__input_workspace)}`);
|
|
11110
11112
|
_if(() => {
|
|
11111
11113
|
if (manySessions) {
|
|
11112
11114
|
const $scope2_id = _scope_id();
|
|
11113
|
-
_html(`<div${_attr_class("
|
|
11115
|
+
_html(`<div${_attr_class("_c1")}>`);
|
|
11114
11116
|
_for_of(sessions, (s) => {
|
|
11115
11117
|
const $scope3_id = _scope_id();
|
|
11116
|
-
_html(`<a${_attr("href", `/w/${ws.id}?s=${s.id}`)}${_attr_class(["
|
|
11118
|
+
_html(`<a${_attr("href", `/w/${ws.id}?s=${s.id}`)}${_attr_class(["_c3", { ["_c2"]: s.id === input.tab }])}><span${_attr_class(["_A", phase[sessionPhase(s.state)]])}></span>${_el_resume($scope3_id, "b", $sg__input_workspace__OR__input_allStatus__OR__input_sessions)}`);
|
|
11117
11119
|
_set_serialize_reason({
|
|
11118
11120
|
1: $sg__input_workspace__OR__input_allStatus__OR__input_sessions,
|
|
11119
11121
|
2: $sg__input_workspace__OR__input_allStatus__OR__input_sessions
|
|
@@ -11123,7 +11125,7 @@ var workspace_switcher_default = _template("K", (input) => {
|
|
|
11123
11125
|
agent: activeAgent(s),
|
|
11124
11126
|
size: 14
|
|
11125
11127
|
});
|
|
11126
|
-
_html(`<span${_attr_class("
|
|
11128
|
+
_html(`<span${_attr_class("_c4")}>${_text_resume($scope3_id, "e", s.title || activeAgent(s), $sg__input_workspace__OR__input_allStatus__OR__input_sessions)}</span></a>${_el_resume($scope3_id, "a", _serialize_guard($scope0_reason, 7))}`);
|
|
11127
11129
|
$si__input_workspace__OR__input_allStatus__OR__input_sessions__OR__input_tab && _subscribe($si__input_workspace && $ws_id__closures, _subscribe($si__input_tab && $input_tab__closures, writeScope($scope3_id, {
|
|
11128
11130
|
h: $si__input_tab && s?.id,
|
|
11129
11131
|
_: _scope_with_id($scope2_id),
|
|
@@ -11152,7 +11154,7 @@ var workspace_switcher_default = _template("K", (input) => {
|
|
|
11152
11154
|
_if(() => {
|
|
11153
11155
|
if (input.ids.length) {
|
|
11154
11156
|
const $scope4_id = _scope_id();
|
|
11155
|
-
_html(`<div${_attr_class("
|
|
11157
|
+
_html(`<div${_attr_class("_c5")}>`);
|
|
11156
11158
|
_for_of(input.ids, (id) => {
|
|
11157
11159
|
const $scope5_id = _scope_id();
|
|
11158
11160
|
const w = input.byId.get(id);
|
|
@@ -11202,7 +11204,7 @@ var workspace_switcher_default = _template("K", (input) => {
|
|
|
11202
11204
|
const rp = phaseOf(rs);
|
|
11203
11205
|
const rowSessions = rs?.sessions || [];
|
|
11204
11206
|
const many = rowSessions.length > 1;
|
|
11205
|
-
_html(`<div${_attr_class("
|
|
11207
|
+
_html(`<div${_attr_class("_c6")}><a${_attr("href", `/w/${id}`)}${_attr_class("_c7")}><span${_attr_class(["_A", phase[rp]])}></span>${_el_resume($scope7_id, "c", $sg__input_allStatus__OR__input_ids)}`);
|
|
11206
11208
|
_if(() => {
|
|
11207
11209
|
if (rowSessions.length === 1) {
|
|
11208
11210
|
const $scope9_id = _scope_id();
|
|
@@ -11214,7 +11216,7 @@ var workspace_switcher_default = _template("K", (input) => {
|
|
|
11214
11216
|
icon_agent_default({
|
|
11215
11217
|
agent: activeAgent(rowSessions[0]),
|
|
11216
11218
|
size: 16,
|
|
11217
|
-
class: "
|
|
11219
|
+
class: "_c9"
|
|
11218
11220
|
});
|
|
11219
11221
|
$si__input_allStatus__OR__input_ids && writeScope($scope9_id, {
|
|
11220
11222
|
_: _scope_with_id($scope7_id),
|
|
@@ -11223,7 +11225,7 @@ var workspace_switcher_default = _template("K", (input) => {
|
|
|
11223
11225
|
return 0;
|
|
11224
11226
|
}
|
|
11225
11227
|
}, $scope7_id, "d", $sg__input_allStatus__OR__input_ids, $sg__input_allStatus__OR__input_ids, $sg__input_allStatus__OR__input_ids);
|
|
11226
|
-
_html(`<span${_attr_class("
|
|
11228
|
+
_html(`<span${_attr_class("_c8")}>${_text_resume($scope7_id, "f", w.name, $sg__input_ids__OR__input_byId)}</span>`);
|
|
11227
11229
|
_if(() => {
|
|
11228
11230
|
if (many) {
|
|
11229
11231
|
const $scope10_id = _scope_id();
|
|
@@ -11234,7 +11236,7 @@ var workspace_switcher_default = _template("K", (input) => {
|
|
|
11234
11236
|
}, $scope7_id, "g", $sg__input_allStatus__OR__input_ids, $sg__input_allStatus__OR__input_ids, $sg__input_allStatus__OR__input_ids, 0, 1);
|
|
11235
11237
|
icon_chevron_right_default({
|
|
11236
11238
|
size: 14,
|
|
11237
|
-
class: "
|
|
11239
|
+
class: "_da"
|
|
11238
11240
|
});
|
|
11239
11241
|
_html(`</a>${_el_resume($scope7_id, "b", $sg__input_ids)}`);
|
|
11240
11242
|
_set_serialize_reason($sg__input_ids);
|
|
@@ -12097,8 +12099,8 @@ function treeDirs(files) {
|
|
|
12097
12099
|
};
|
|
12098
12100
|
return build(root, "", "", -1);
|
|
12099
12101
|
}
|
|
12100
|
-
var treeToggle = "
|
|
12101
|
-
var pageTitle = "
|
|
12102
|
+
var treeToggle = "_eV _5 _l";
|
|
12103
|
+
var pageTitle = "_e2 _dX";
|
|
12102
12104
|
//#endregion
|
|
12103
12105
|
//#region src/tags/diff-send.marko
|
|
12104
12106
|
var diff_send_default = _template("j", (input) => {
|
|
@@ -12108,7 +12110,7 @@ var diff_send_default = _template("j", (input) => {
|
|
|
12108
12110
|
let sendTarget = null;
|
|
12109
12111
|
const sessions = input.sessions || [];
|
|
12110
12112
|
const sendPick = sessions.some((s) => s.id === sendTarget) ? sendTarget : sessions[0]?.id ?? null;
|
|
12111
|
-
_html(`<span${_attr_class("
|
|
12113
|
+
_html(`<span${_attr_class("_hG")}><button type=button${_attr_class("_q")} title="Copy comments as markdown">${_text_resume($scope0_id, "c", "Copy")}</button>${_el_resume($scope0_id, "b")}`);
|
|
12112
12114
|
_if(() => {
|
|
12113
12115
|
if (sessions.length === 1) {
|
|
12114
12116
|
const $scope1_id = _scope_id();
|
|
@@ -12118,11 +12120,11 @@ var diff_send_default = _template("j", (input) => {
|
|
|
12118
12120
|
return 0;
|
|
12119
12121
|
} else if (sessions.length) {
|
|
12120
12122
|
const $scope2_id = _scope_id();
|
|
12121
|
-
_html(`<span${_attr_class("
|
|
12123
|
+
_html(`<span${_attr_class("_hH")}><button type=button${_attr_class(["_r", "_hI"])}${_attr("disabled", sending)}>${_text_resume($scope2_id, "c", "Send to")}</button>${_el_resume($scope2_id, "b")}`);
|
|
12122
12124
|
_attr_select_value($scope2_id, "d", sendTarget, _resume((_new_sendTarget) => {
|
|
12123
12125
|
sendTarget = _new_sendTarget;
|
|
12124
12126
|
}, "j0", $scope2_id), () => {
|
|
12125
|
-
_html(`<select${_attr_class("
|
|
12127
|
+
_html(`<select${_attr_class("_hJ")} aria-label="Send comments to session"${_attr("disabled", sending)}>`);
|
|
12126
12128
|
_for_of(sessions, (s) => {
|
|
12127
12129
|
const $scope3_id = _scope_id();
|
|
12128
12130
|
_html(`<option${_attr_option_value(s.id)}>${_text_resume($scope3_id, "b", s.title || s.agent, $sg__input_sessions)}</option>${_el_resume($scope3_id, "a", $sg__input_sessions)}`);
|
|
@@ -12149,1493 +12151,8 @@ var diff_send_default = _template("j", (input) => {
|
|
|
12149
12151
|
});
|
|
12150
12152
|
_resume_branch($scope0_id);
|
|
12151
12153
|
});
|
|
12152
|
-
|
|
12153
|
-
|
|
12154
|
-
var GIT_DIFF_FILE_BREAK_REGEX = /(?=^diff --git)/gm;
|
|
12155
|
-
var FILENAME_HEADER_REGEX = /^(---|\+\+\+)\s+([^\t\r\n]+)/;
|
|
12156
|
-
var FILENAME_HEADER_REGEX_GIT = /^(---|\+\+\+)\s+[ab]\/([^\t\r\n]+)/;
|
|
12157
|
-
var ALTERNATE_FILE_NAMES_GIT = /^diff --git (?:"a\/(.+?)"|a\/(.+?)) (?:"b\/(.+?)"|b\/(.+?))$/;
|
|
12158
|
-
var INDEX_LINE_METADATA = /^index ([0-9a-f]+)\.\.([0-9a-f]+)(?: (\d+))?$/i;
|
|
12159
|
-
Object.freeze({
|
|
12160
|
-
fromStart: 0,
|
|
12161
|
-
fromEnd: 0
|
|
12162
|
-
});
|
|
12163
|
-
//#endregion
|
|
12164
|
-
//#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js
|
|
12165
|
-
function cleanLastNewline(contents) {
|
|
12166
|
-
let end = contents.length;
|
|
12167
|
-
if (contents.charCodeAt(end - 1) === 10) {
|
|
12168
|
-
end--;
|
|
12169
|
-
if (contents.charCodeAt(end - 1) === 13) end--;
|
|
12170
|
-
}
|
|
12171
|
-
return contents.slice(0, end);
|
|
12172
|
-
}
|
|
12173
|
-
//#endregion
|
|
12174
|
-
//#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/detachString.js
|
|
12175
|
-
var stringDetachEncoder = new TextEncoder();
|
|
12176
|
-
var stringDetachDecoder = new TextDecoder("utf-8", { ignoreBOM: true });
|
|
12177
|
-
var SURROGATE_CODE_UNIT_PATTERN = /[\uD800-\uDFFF]/;
|
|
12178
|
-
var STRING_DETACH_INITIAL_BUFFER_SIZE = 1024;
|
|
12179
|
-
var stringDetachBuffer = new Uint8Array(STRING_DETACH_INITIAL_BUFFER_SIZE);
|
|
12180
|
-
function releaseStringDetachBuffer() {
|
|
12181
|
-
if (stringDetachBuffer.length !== STRING_DETACH_INITIAL_BUFFER_SIZE) stringDetachBuffer = new Uint8Array(STRING_DETACH_INITIAL_BUFFER_SIZE);
|
|
12182
|
-
}
|
|
12183
|
-
function detachString(value) {
|
|
12184
|
-
if (value.length === 0) return value;
|
|
12185
|
-
if (SURROGATE_CODE_UNIT_PATTERN.test(value)) return JSON.parse(JSON.stringify(value));
|
|
12186
|
-
const requiredByteLength = value.length * 3;
|
|
12187
|
-
if (stringDetachBuffer.length < requiredByteLength) stringDetachBuffer = new Uint8Array(requiredByteLength);
|
|
12188
|
-
const { written } = stringDetachEncoder.encodeInto(value, stringDetachBuffer);
|
|
12189
|
-
return stringDetachDecoder.decode(stringDetachBuffer.subarray(0, written));
|
|
12190
|
-
}
|
|
12191
|
-
//#endregion
|
|
12192
|
-
//#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js
|
|
12193
|
-
/** Converts a unified hunk side's start/count into its consumed-file range. */
|
|
12194
|
-
function getHunkSideStartBoundary(start, count) {
|
|
12195
|
-
return start - (count === 0 ? 0 : 1);
|
|
12196
|
-
}
|
|
12197
|
-
function getHunkSideEndBoundary(start, count) {
|
|
12198
|
-
return getHunkSideStartBoundary(start, count) + count;
|
|
12199
|
-
}
|
|
12200
|
-
//#endregion
|
|
12201
|
-
//#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js
|
|
12202
|
-
var MAX_ALIGNMENT_COMPARISONS = 4096;
|
|
12203
|
-
var MIN_IMPROVEMENT_PER_PAIR = .5;
|
|
12204
|
-
/**
|
|
12205
|
-
* Re-split count-mismatched change blocks in every hunk so paired lines are
|
|
12206
|
-
* chosen by content similarity instead of position, then slide blank-line
|
|
12207
|
-
* insert/delete blocks to the top of their blank run. Mutates `hunks` in
|
|
12208
|
-
* place; rendered row counts are unchanged (a split block covers the same
|
|
12209
|
-
* split/unified rows as the original).
|
|
12210
|
-
*/
|
|
12211
|
-
function realignChangeContentBySimilarity(diff) {
|
|
12212
|
-
for (const hunk of diff.hunks) {
|
|
12213
|
-
for (let index = 0; index < hunk.hunkContent.length; index++) {
|
|
12214
|
-
const content = hunk.hunkContent[index];
|
|
12215
|
-
if (content.type !== "change") continue;
|
|
12216
|
-
const replacement = realignChangeBlock(diff, content);
|
|
12217
|
-
if (replacement != null) {
|
|
12218
|
-
hunk.hunkContent.splice(index, 1, ...replacement);
|
|
12219
|
-
index += replacement.length - 1;
|
|
12220
|
-
}
|
|
12221
|
-
}
|
|
12222
|
-
slideBlankBoundaryBlocksUp(hunk, diff);
|
|
12223
|
-
}
|
|
12224
|
-
}
|
|
12225
|
-
/**
|
|
12226
|
-
* Slide pure insert/delete blocks made entirely of blank lines to the top of
|
|
12227
|
-
* the blank run they sit in. Adding or removing a blank line next to
|
|
12228
|
-
* existing blanks is ambiguous, and the diff library reports the change at
|
|
12229
|
-
* the run's bottom — so pressing Enter at the end of a line marks a blank
|
|
12230
|
-
* *below* the caret as inserted while the caret's own new line renders as
|
|
12231
|
-
* context. Sliding up anchors the change to the content above it (the caret
|
|
12232
|
-
* line after an Enter) instead.
|
|
12233
|
-
*
|
|
12234
|
-
* The slide is all-or-nothing: it only applies when the block comes to rest
|
|
12235
|
-
* directly beneath remaining in-hunk content. A slide that would consume the
|
|
12236
|
-
* hunk's entire leading context was stopped by the hunk's edge — a context
|
|
12237
|
-
* window cut, not the top of the blank run — and that landing spot is
|
|
12238
|
-
* arbitrary, so the block keeps the library's bottom-of-run anchor (which
|
|
12239
|
-
* sits against the content below the run). Non-blank blocks never slide, so
|
|
12240
|
-
* code that merely ends like its neighbor (an added function before an
|
|
12241
|
-
* identical `}`) keeps the library's canonical position.
|
|
12242
|
-
*/
|
|
12243
|
-
function slideBlankBoundaryBlocksUp(hunk, diff) {
|
|
12244
|
-
const { hunkContent } = hunk;
|
|
12245
|
-
for (let index = 1; index < hunkContent.length; index++) {
|
|
12246
|
-
const block = hunkContent[index];
|
|
12247
|
-
const previous = hunkContent[index - 1];
|
|
12248
|
-
if (block.type !== "change" || block.additions > 0 && block.deletions > 0 || previous.type !== "context") continue;
|
|
12249
|
-
const isInsert = block.additions > 0;
|
|
12250
|
-
const lines = isInsert ? diff.additionLines : diff.deletionLines;
|
|
12251
|
-
const blockStart = isInsert ? block.additionLineIndex : block.deletionLineIndex;
|
|
12252
|
-
const blockLength = isInsert ? block.additions : block.deletions;
|
|
12253
|
-
const unit = lines[blockStart] ?? "";
|
|
12254
|
-
if (unit.trim() !== "") continue;
|
|
12255
|
-
let uniform = true;
|
|
12256
|
-
for (let offset = 1; offset < blockLength; offset++) if (lines[blockStart + offset] !== unit) {
|
|
12257
|
-
uniform = false;
|
|
12258
|
-
break;
|
|
12259
|
-
}
|
|
12260
|
-
if (!uniform) continue;
|
|
12261
|
-
let slide = 0;
|
|
12262
|
-
while (slide < previous.lines && diff.additionLines[previous.additionLineIndex + previous.lines - 1 - slide] === unit) slide++;
|
|
12263
|
-
if (slide === 0) continue;
|
|
12264
|
-
if (index === 1 && slide === previous.lines) continue;
|
|
12265
|
-
block.additionLineIndex -= slide;
|
|
12266
|
-
block.deletionLineIndex -= slide;
|
|
12267
|
-
const blockAdditionEnd = block.additionLineIndex + block.additions;
|
|
12268
|
-
const blockDeletionEnd = block.deletionLineIndex + block.deletions;
|
|
12269
|
-
const next = hunkContent[index + 1];
|
|
12270
|
-
if (next?.type === "context") {
|
|
12271
|
-
next.lines += slide;
|
|
12272
|
-
next.additionLineIndex = blockAdditionEnd;
|
|
12273
|
-
next.deletionLineIndex = blockDeletionEnd;
|
|
12274
|
-
} else hunkContent.splice(index + 1, 0, {
|
|
12275
|
-
type: "context",
|
|
12276
|
-
lines: slide,
|
|
12277
|
-
additionLineIndex: blockAdditionEnd,
|
|
12278
|
-
deletionLineIndex: blockDeletionEnd
|
|
12279
|
-
});
|
|
12280
|
-
previous.lines -= slide;
|
|
12281
|
-
if (previous.lines === 0) {
|
|
12282
|
-
hunkContent.splice(index - 1, 1);
|
|
12283
|
-
index--;
|
|
12284
|
-
}
|
|
12285
|
-
}
|
|
12286
|
-
}
|
|
12287
|
-
function realignChangeBlock(diff, content) {
|
|
12288
|
-
const { deletions, additions, deletionLineIndex, additionLineIndex } = content;
|
|
12289
|
-
const pairCount = Math.min(deletions, additions);
|
|
12290
|
-
const surplus = Math.abs(additions - deletions);
|
|
12291
|
-
if (pairCount === 0 || surplus === 0 || pairCount * (surplus + 1) > MAX_ALIGNMENT_COMPARISONS) return null;
|
|
12292
|
-
const strippedDeletions = [];
|
|
12293
|
-
for (let line = 0; line < deletions; line++) strippedDeletions.push(stripWhitespace(diff.deletionLines[deletionLineIndex + line] ?? ""));
|
|
12294
|
-
const strippedAdditions = [];
|
|
12295
|
-
for (let line = 0; line < additions; line++) strippedAdditions.push(stripWhitespace(diff.additionLines[additionLineIndex + line] ?? ""));
|
|
12296
|
-
const additionsAreLonger = additions > deletions;
|
|
12297
|
-
let bestOffset = 0;
|
|
12298
|
-
let bestScore = -1;
|
|
12299
|
-
for (let offset = 0; offset <= surplus; offset++) {
|
|
12300
|
-
let score = 0;
|
|
12301
|
-
for (let pair = 0; pair < pairCount; pair++) score += lineSimilarity(strippedDeletions[pair + (additionsAreLonger ? 0 : offset)], strippedAdditions[pair + (additionsAreLonger ? offset : 0)]);
|
|
12302
|
-
if (offset === 0) bestScore = score + pairCount * MIN_IMPROVEMENT_PER_PAIR;
|
|
12303
|
-
else if (score > bestScore) {
|
|
12304
|
-
bestScore = score;
|
|
12305
|
-
bestOffset = offset;
|
|
12306
|
-
}
|
|
12307
|
-
}
|
|
12308
|
-
if (bestOffset === 0) return null;
|
|
12309
|
-
const blocks = [];
|
|
12310
|
-
const pushBlock = (blockDeletions, blockAdditions, blockDeletionIndex, blockAdditionIndex) => {
|
|
12311
|
-
if (blockDeletions > 0 || blockAdditions > 0) blocks.push({
|
|
12312
|
-
type: "change",
|
|
12313
|
-
deletions: blockDeletions,
|
|
12314
|
-
additions: blockAdditions,
|
|
12315
|
-
deletionLineIndex: blockDeletionIndex,
|
|
12316
|
-
additionLineIndex: blockAdditionIndex
|
|
12317
|
-
});
|
|
12318
|
-
};
|
|
12319
|
-
if (additionsAreLonger) {
|
|
12320
|
-
pushBlock(0, bestOffset, deletionLineIndex, additionLineIndex);
|
|
12321
|
-
pushBlock(pairCount, pairCount, deletionLineIndex, additionLineIndex + bestOffset);
|
|
12322
|
-
pushBlock(0, additions - pairCount - bestOffset, deletionLineIndex + pairCount, additionLineIndex + bestOffset + pairCount);
|
|
12323
|
-
} else {
|
|
12324
|
-
pushBlock(bestOffset, 0, deletionLineIndex, additionLineIndex);
|
|
12325
|
-
pushBlock(pairCount, pairCount, deletionLineIndex + bestOffset, additionLineIndex);
|
|
12326
|
-
pushBlock(deletions - pairCount - bestOffset, 0, deletionLineIndex + bestOffset + pairCount, additionLineIndex + pairCount);
|
|
12327
|
-
}
|
|
12328
|
-
return blocks;
|
|
12329
|
-
}
|
|
12330
|
-
var WHITESPACE = /\s+/g;
|
|
12331
|
-
function stripWhitespace(line) {
|
|
12332
|
-
return line.replace(WHITESPACE, "");
|
|
12333
|
-
}
|
|
12334
|
-
function lineSimilarity(a, b) {
|
|
12335
|
-
if (a === b) return 1;
|
|
12336
|
-
const maxLength = Math.max(a.length, b.length);
|
|
12337
|
-
const minLength = Math.min(a.length, b.length);
|
|
12338
|
-
if (minLength === 0) return 0;
|
|
12339
|
-
let prefix = 0;
|
|
12340
|
-
while (prefix < minLength && a[prefix] === b[prefix]) prefix++;
|
|
12341
|
-
let suffix = 0;
|
|
12342
|
-
while (suffix < minLength - prefix && a[a.length - 1 - suffix] === b[b.length - 1 - suffix]) suffix++;
|
|
12343
|
-
return (prefix + suffix) / maxLength;
|
|
12344
|
-
}
|
|
12345
|
-
//#endregion
|
|
12346
|
-
//#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js
|
|
12347
|
-
function processFile(fileDiffString, options) {
|
|
12348
|
-
try {
|
|
12349
|
-
return _processFile(fileDiffString, options);
|
|
12350
|
-
} finally {
|
|
12351
|
-
releaseStringDetachBuffer();
|
|
12352
|
-
}
|
|
12353
|
-
}
|
|
12354
|
-
function _processFile(fileDiffString, { cacheKey, isGitDiff = GIT_DIFF_FILE_BREAK_REGEX.test(fileDiffString), oldFile, newFile, throwOnError = false } = {}) {
|
|
12355
|
-
let lastHunkEnd = 0;
|
|
12356
|
-
const hunks = splitAtLinePrefix(fileDiffString, "@@ ");
|
|
12357
|
-
let currentFile;
|
|
12358
|
-
const isPartial = oldFile == null || newFile == null;
|
|
12359
|
-
let deletionLineIndex = 0;
|
|
12360
|
-
let additionLineIndex = 0;
|
|
12361
|
-
for (const hunk of hunks) {
|
|
12362
|
-
const lines = splitWithNewlines(hunk);
|
|
12363
|
-
const firstLine = lines[0];
|
|
12364
|
-
if (firstLine == null) {
|
|
12365
|
-
if (throwOnError) throw Error("parsePatchContent: invalid hunk");
|
|
12366
|
-
else console.error("parsePatchContent: invalid hunk", hunk);
|
|
12367
|
-
continue;
|
|
12368
|
-
}
|
|
12369
|
-
const fileHeader = parseHunkHeader(firstLine);
|
|
12370
|
-
let additionLines = 0;
|
|
12371
|
-
let deletionLines = 0;
|
|
12372
|
-
if (fileHeader == null || currentFile == null) {
|
|
12373
|
-
if (currentFile != null) {
|
|
12374
|
-
if (throwOnError) throw Error("parsePatchContent: Invalid hunk");
|
|
12375
|
-
else console.error("parsePatchContent: Invalid hunk", hunk);
|
|
12376
|
-
continue;
|
|
12377
|
-
}
|
|
12378
|
-
currentFile = {
|
|
12379
|
-
name: "",
|
|
12380
|
-
type: "change",
|
|
12381
|
-
hunks: [],
|
|
12382
|
-
splitLineCount: 0,
|
|
12383
|
-
unifiedLineCount: 0,
|
|
12384
|
-
isPartial,
|
|
12385
|
-
additionLines: !isPartial && oldFile != null && newFile != null ? splitFileContents(newFile.contents) : [],
|
|
12386
|
-
deletionLines: !isPartial && oldFile != null && newFile != null ? splitFileContents(oldFile.contents) : [],
|
|
12387
|
-
cacheKey: maybeDetachOptionalString(cacheKey)
|
|
12388
|
-
};
|
|
12389
|
-
if (currentFile.additionLines.length === 1 && newFile?.contents === "") currentFile.additionLines.length = 0;
|
|
12390
|
-
if (currentFile.deletionLines.length === 1 && oldFile?.contents === "") currentFile.deletionLines.length = 0;
|
|
12391
|
-
for (const line of lines) {
|
|
12392
|
-
if (line.startsWith("diff --git")) {
|
|
12393
|
-
const filenameMatch = line.trim().match(ALTERNATE_FILE_NAMES_GIT);
|
|
12394
|
-
const prevName = filenameMatch?.[1] ?? filenameMatch?.[2];
|
|
12395
|
-
const name = filenameMatch?.[3] ?? filenameMatch?.[4];
|
|
12396
|
-
if (prevName == null || name == null) {
|
|
12397
|
-
if (throwOnError) throw Error("parsePatchContent: invalid git diff header");
|
|
12398
|
-
else console.error("parsePatchContent: invalid git diff header", line);
|
|
12399
|
-
continue;
|
|
12400
|
-
}
|
|
12401
|
-
currentFile.name = detachString(name.trim());
|
|
12402
|
-
if (prevName !== name) currentFile.prevName = detachString(prevName.trim());
|
|
12403
|
-
continue;
|
|
12404
|
-
}
|
|
12405
|
-
const filenameMatch = line.startsWith("---") || line.startsWith("+++") ? line.match(isGitDiff ? FILENAME_HEADER_REGEX_GIT : FILENAME_HEADER_REGEX) : null;
|
|
12406
|
-
if (filenameMatch != null) {
|
|
12407
|
-
const [, type, fileName] = filenameMatch;
|
|
12408
|
-
if (type === "---" && fileName !== "/dev/null") {
|
|
12409
|
-
const detachedFileName = detachString(fileName.trim());
|
|
12410
|
-
currentFile.prevName = detachedFileName;
|
|
12411
|
-
currentFile.name = detachedFileName;
|
|
12412
|
-
} else if (type === "+++" && fileName !== "/dev/null") currentFile.name = detachString(fileName.trim());
|
|
12413
|
-
} else if (isGitDiff) {
|
|
12414
|
-
if (line.startsWith("new mode ")) currentFile.mode = detachString(line.slice(8).trim());
|
|
12415
|
-
if (line.startsWith("old mode ")) currentFile.prevMode = detachString(line.slice(8).trim());
|
|
12416
|
-
if (line.startsWith("new file mode")) {
|
|
12417
|
-
currentFile.type = "new";
|
|
12418
|
-
currentFile.mode = detachString(line.slice(13).trim());
|
|
12419
|
-
}
|
|
12420
|
-
if (line.startsWith("deleted file mode")) {
|
|
12421
|
-
currentFile.type = "deleted";
|
|
12422
|
-
currentFile.mode = detachString(line.slice(17).trim());
|
|
12423
|
-
}
|
|
12424
|
-
if (line.startsWith("similarity index")) if (line.startsWith("similarity index 100%")) currentFile.type = "rename-pure";
|
|
12425
|
-
else currentFile.type = "rename-changed";
|
|
12426
|
-
if (line.startsWith("index ")) {
|
|
12427
|
-
const [, prevObjectId, newObjectId, mode] = line.trim().match(INDEX_LINE_METADATA) ?? [];
|
|
12428
|
-
if (prevObjectId != null) currentFile.prevObjectId = detachString(prevObjectId);
|
|
12429
|
-
if (newObjectId != null) currentFile.newObjectId = detachString(newObjectId);
|
|
12430
|
-
if (mode != null) currentFile.mode = detachString(mode);
|
|
12431
|
-
}
|
|
12432
|
-
if (line.startsWith("rename from ")) currentFile.prevName = detachString(line.slice(12).trim());
|
|
12433
|
-
if (line.startsWith("rename to ")) currentFile.name = detachString(line.slice(10).trim());
|
|
12434
|
-
}
|
|
12435
|
-
}
|
|
12436
|
-
continue;
|
|
12437
|
-
}
|
|
12438
|
-
let currentContent;
|
|
12439
|
-
let lastLineType;
|
|
12440
|
-
while (lines.length > 0 && (lines[lines.length - 1] === "\n" || lines[lines.length - 1] === "\r" || lines[lines.length - 1] === "\r\n" || lines[lines.length - 1] === "")) lines.pop();
|
|
12441
|
-
const { additionStart, deletionStart } = fileHeader;
|
|
12442
|
-
deletionLineIndex = isPartial ? deletionLineIndex : deletionStart - 1;
|
|
12443
|
-
additionLineIndex = isPartial ? additionLineIndex : additionStart - 1;
|
|
12444
|
-
const hunkData = {
|
|
12445
|
-
collapsedBefore: 0,
|
|
12446
|
-
splitLineCount: 0,
|
|
12447
|
-
splitLineStart: 0,
|
|
12448
|
-
unifiedLineCount: 0,
|
|
12449
|
-
unifiedLineStart: 0,
|
|
12450
|
-
additionCount: fileHeader.additionCount,
|
|
12451
|
-
additionStart,
|
|
12452
|
-
additionLines,
|
|
12453
|
-
deletionCount: fileHeader.deletionCount,
|
|
12454
|
-
deletionStart,
|
|
12455
|
-
deletionLines,
|
|
12456
|
-
deletionLineIndex,
|
|
12457
|
-
additionLineIndex,
|
|
12458
|
-
hunkContent: [],
|
|
12459
|
-
hunkContext: maybeDetachOptionalString(fileHeader.hunkContext),
|
|
12460
|
-
hunkSpecs: detachString(firstLine),
|
|
12461
|
-
noEOFCRAdditions: false,
|
|
12462
|
-
noEOFCRDeletions: false
|
|
12463
|
-
};
|
|
12464
|
-
let parsedAdditionLines = 0;
|
|
12465
|
-
let parsedDeletionLines = 0;
|
|
12466
|
-
for (let lineIndex = 1; lineIndex < lines.length; lineIndex++) {
|
|
12467
|
-
const rawLine = lines[lineIndex];
|
|
12468
|
-
if (parsedAdditionLines >= hunkData.additionCount && parsedDeletionLines >= hunkData.deletionCount && !rawLine.startsWith("\\")) {
|
|
12469
|
-
if (throwOnError && isHunkBodyLine(rawLine) && !isFormatPatchVersionSeparator(rawLine)) throw Error("parsePatchContent: hunk has more lines than expected");
|
|
12470
|
-
break;
|
|
12471
|
-
}
|
|
12472
|
-
const firstChar = rawLine[0];
|
|
12473
|
-
if (firstChar !== "+" && firstChar !== "-" && firstChar !== " " && firstChar !== "\\") {
|
|
12474
|
-
if (throwOnError) throw Error("parsePatchContent: invalid hunk line");
|
|
12475
|
-
console.error(`parseLineType: Invalid firstChar: "${firstChar}", full line: "${rawLine}"`);
|
|
12476
|
-
console.error("processFile: invalid rawLine:", rawLine);
|
|
12477
|
-
continue;
|
|
12478
|
-
}
|
|
12479
|
-
const type = parseRawLineType(firstChar);
|
|
12480
|
-
if (type === "addition") {
|
|
12481
|
-
if (throwOnError && parsedAdditionLines >= hunkData.additionCount) throw Error("parsePatchContent: hunk has too many addition lines");
|
|
12482
|
-
const line = getParsedLineContent(rawLine);
|
|
12483
|
-
if (currentContent == null || currentContent.type !== "change") {
|
|
12484
|
-
currentContent = createContentGroup("change", deletionLineIndex, additionLineIndex);
|
|
12485
|
-
hunkData.hunkContent.push(currentContent);
|
|
12486
|
-
}
|
|
12487
|
-
additionLineIndex++;
|
|
12488
|
-
parsedAdditionLines++;
|
|
12489
|
-
if (isPartial) currentFile.additionLines.push(line);
|
|
12490
|
-
currentContent.additions++;
|
|
12491
|
-
additionLines++;
|
|
12492
|
-
lastLineType = "addition";
|
|
12493
|
-
} else if (type === "deletion") {
|
|
12494
|
-
if (throwOnError && parsedDeletionLines >= hunkData.deletionCount) throw Error("parsePatchContent: hunk has too many deletion lines");
|
|
12495
|
-
const line = getParsedLineContent(rawLine);
|
|
12496
|
-
if (currentContent == null || currentContent.type !== "change") {
|
|
12497
|
-
currentContent = createContentGroup("change", deletionLineIndex, additionLineIndex);
|
|
12498
|
-
hunkData.hunkContent.push(currentContent);
|
|
12499
|
-
}
|
|
12500
|
-
deletionLineIndex++;
|
|
12501
|
-
parsedDeletionLines++;
|
|
12502
|
-
if (isPartial) currentFile.deletionLines.push(line);
|
|
12503
|
-
currentContent.deletions++;
|
|
12504
|
-
deletionLines++;
|
|
12505
|
-
lastLineType = "deletion";
|
|
12506
|
-
} else if (type === "context") {
|
|
12507
|
-
if (throwOnError && (parsedDeletionLines >= hunkData.deletionCount || parsedAdditionLines >= hunkData.additionCount)) throw Error("parsePatchContent: hunk has too many context lines");
|
|
12508
|
-
const line = getParsedLineContent(rawLine);
|
|
12509
|
-
if (currentContent == null || currentContent.type !== "context") {
|
|
12510
|
-
currentContent = createContentGroup("context", deletionLineIndex, additionLineIndex);
|
|
12511
|
-
hunkData.hunkContent.push(currentContent);
|
|
12512
|
-
}
|
|
12513
|
-
additionLineIndex++;
|
|
12514
|
-
deletionLineIndex++;
|
|
12515
|
-
parsedAdditionLines++;
|
|
12516
|
-
parsedDeletionLines++;
|
|
12517
|
-
if (isPartial) {
|
|
12518
|
-
currentFile.deletionLines.push(line);
|
|
12519
|
-
currentFile.additionLines.push(line);
|
|
12520
|
-
}
|
|
12521
|
-
currentContent.lines++;
|
|
12522
|
-
lastLineType = "context";
|
|
12523
|
-
} else if (type === "metadata" && currentContent != null) {
|
|
12524
|
-
if (currentContent.type === "context") {
|
|
12525
|
-
hunkData.noEOFCRAdditions = true;
|
|
12526
|
-
hunkData.noEOFCRDeletions = true;
|
|
12527
|
-
} else if (lastLineType === "deletion") hunkData.noEOFCRDeletions = true;
|
|
12528
|
-
else if (lastLineType === "addition") hunkData.noEOFCRAdditions = true;
|
|
12529
|
-
if (isPartial && (lastLineType === "addition" || lastLineType === "context")) {
|
|
12530
|
-
const lastIndex = currentFile.additionLines.length - 1;
|
|
12531
|
-
if (lastIndex >= 0) currentFile.additionLines[lastIndex] = cleanLastNewline(currentFile.additionLines[lastIndex]);
|
|
12532
|
-
}
|
|
12533
|
-
if (isPartial && (lastLineType === "deletion" || lastLineType === "context")) {
|
|
12534
|
-
const lastIndex = currentFile.deletionLines.length - 1;
|
|
12535
|
-
if (lastIndex >= 0) currentFile.deletionLines[lastIndex] = cleanLastNewline(currentFile.deletionLines[lastIndex]);
|
|
12536
|
-
}
|
|
12537
|
-
}
|
|
12538
|
-
}
|
|
12539
|
-
if (throwOnError && (parsedAdditionLines !== hunkData.additionCount || parsedDeletionLines !== hunkData.deletionCount)) throw Error("parsePatchContent: hunk line count mismatch");
|
|
12540
|
-
hunkData.additionLines = additionLines;
|
|
12541
|
-
hunkData.deletionLines = deletionLines;
|
|
12542
|
-
hunkData.collapsedBefore = Math.max(getHunkSideStartBoundary(hunkData.additionStart, hunkData.additionCount) - lastHunkEnd, 0);
|
|
12543
|
-
currentFile.hunks.push(hunkData);
|
|
12544
|
-
lastHunkEnd = getHunkSideEndBoundary(hunkData.additionStart, hunkData.additionCount);
|
|
12545
|
-
for (const content of hunkData.hunkContent) if (content.type === "context") {
|
|
12546
|
-
hunkData.splitLineCount += content.lines;
|
|
12547
|
-
hunkData.unifiedLineCount += content.lines;
|
|
12548
|
-
} else {
|
|
12549
|
-
hunkData.splitLineCount += Math.max(content.additions, content.deletions);
|
|
12550
|
-
hunkData.unifiedLineCount += content.deletions + content.additions;
|
|
12551
|
-
}
|
|
12552
|
-
hunkData.splitLineStart = currentFile.splitLineCount + hunkData.collapsedBefore;
|
|
12553
|
-
hunkData.unifiedLineStart = currentFile.unifiedLineCount + hunkData.collapsedBefore;
|
|
12554
|
-
currentFile.splitLineCount += hunkData.collapsedBefore + hunkData.splitLineCount;
|
|
12555
|
-
currentFile.unifiedLineCount += hunkData.collapsedBefore + hunkData.unifiedLineCount;
|
|
12556
|
-
}
|
|
12557
|
-
if (currentFile == null) return;
|
|
12558
|
-
if (throwOnError && isPartial && !isGitDiff && currentFile.hunks.length === 0) throw Error("parsePatchContent: unified file has no hunks");
|
|
12559
|
-
if (currentFile.hunks.length > 0 && !isPartial && currentFile.additionLines.length > 0 && currentFile.deletionLines.length > 0) {
|
|
12560
|
-
const lastHunk = currentFile.hunks[currentFile.hunks.length - 1];
|
|
12561
|
-
const lastHunkEnd = getHunkSideEndBoundary(lastHunk.additionStart, lastHunk.additionCount);
|
|
12562
|
-
const totalFileLines = currentFile.additionLines.length;
|
|
12563
|
-
const collapsedAfter = Math.max(totalFileLines - lastHunkEnd, 0);
|
|
12564
|
-
currentFile.splitLineCount += collapsedAfter;
|
|
12565
|
-
currentFile.unifiedLineCount += collapsedAfter;
|
|
12566
|
-
}
|
|
12567
|
-
if (!isGitDiff) {
|
|
12568
|
-
if (currentFile.prevName != null && currentFile.name !== currentFile.prevName) if (currentFile.hunks.length > 0) currentFile.type = "rename-changed";
|
|
12569
|
-
else currentFile.type = "rename-pure";
|
|
12570
|
-
else if ((oldFile == null || oldFile.contents === "") && newFile != null && newFile.contents !== "") currentFile.type = "new";
|
|
12571
|
-
else if (oldFile != null && oldFile.contents !== "" && (newFile == null || newFile.contents === "")) currentFile.type = "deleted";
|
|
12572
|
-
}
|
|
12573
|
-
if (currentFile.type !== "rename-pure" && currentFile.type !== "rename-changed") currentFile.prevName = void 0;
|
|
12574
|
-
realignChangeContentBySimilarity(currentFile);
|
|
12575
|
-
return currentFile;
|
|
12576
|
-
}
|
|
12577
|
-
function splitFileContents(contents) {
|
|
12578
|
-
const lines = splitWithNewlines(contents);
|
|
12579
|
-
for (let index = 0; index < lines.length; index++) lines[index] = detachString(lines[index]);
|
|
12580
|
-
return lines;
|
|
12581
|
-
}
|
|
12582
|
-
function splitWithNewlines(contents) {
|
|
12583
|
-
if (contents.length === 0) return [""];
|
|
12584
|
-
const lines = [];
|
|
12585
|
-
let startIndex = 0;
|
|
12586
|
-
for (;;) {
|
|
12587
|
-
const newlineIndex = contents.indexOf("\n", startIndex);
|
|
12588
|
-
if (newlineIndex === -1) break;
|
|
12589
|
-
lines.push(contents.slice(startIndex, newlineIndex + 1));
|
|
12590
|
-
startIndex = newlineIndex + 1;
|
|
12591
|
-
}
|
|
12592
|
-
if (startIndex < contents.length) lines.push(contents.slice(startIndex));
|
|
12593
|
-
return lines;
|
|
12594
|
-
}
|
|
12595
|
-
function isHunkBodyLine(line) {
|
|
12596
|
-
const firstChar = line[0];
|
|
12597
|
-
return firstChar === "+" || firstChar === "-" || firstChar === " ";
|
|
12598
|
-
}
|
|
12599
|
-
function isFormatPatchVersionSeparator(line) {
|
|
12600
|
-
if (!line.startsWith("--")) return false;
|
|
12601
|
-
for (let index = 2; index < line.length; index++) {
|
|
12602
|
-
const char = line[index];
|
|
12603
|
-
if (char !== " " && char !== " " && char !== "\n" && char !== "\r") return false;
|
|
12604
|
-
}
|
|
12605
|
-
return true;
|
|
12606
|
-
}
|
|
12607
|
-
function parseHunkHeader(line) {
|
|
12608
|
-
if (!line.startsWith("@@ -")) return;
|
|
12609
|
-
let index = 4;
|
|
12610
|
-
const deletionStartResult = readPositiveInteger(line, index);
|
|
12611
|
-
if (deletionStartResult == null) return;
|
|
12612
|
-
const deletionStart = deletionStartResult.value;
|
|
12613
|
-
index = deletionStartResult.endIndex;
|
|
12614
|
-
let deletionCount = 1;
|
|
12615
|
-
if (line[index] === ",") {
|
|
12616
|
-
const deletionCountResult = readPositiveInteger(line, index + 1);
|
|
12617
|
-
if (deletionCountResult == null) return;
|
|
12618
|
-
deletionCount = deletionCountResult.value;
|
|
12619
|
-
index = deletionCountResult.endIndex;
|
|
12620
|
-
}
|
|
12621
|
-
if (line[index] !== " " || line[index + 1] !== "+") return;
|
|
12622
|
-
index += 2;
|
|
12623
|
-
const additionStartResult = readPositiveInteger(line, index);
|
|
12624
|
-
if (additionStartResult == null) return;
|
|
12625
|
-
const additionStart = additionStartResult.value;
|
|
12626
|
-
index = additionStartResult.endIndex;
|
|
12627
|
-
let additionCount = 1;
|
|
12628
|
-
if (line[index] === ",") {
|
|
12629
|
-
const additionCountResult = readPositiveInteger(line, index + 1);
|
|
12630
|
-
if (additionCountResult == null) return;
|
|
12631
|
-
additionCount = additionCountResult.value;
|
|
12632
|
-
index = additionCountResult.endIndex;
|
|
12633
|
-
}
|
|
12634
|
-
if (line[index] !== " " || line[index + 1] !== "@" || line[index + 2] !== "@") return;
|
|
12635
|
-
let hunkContext;
|
|
12636
|
-
const contextStartIndex = index + 3;
|
|
12637
|
-
if (line[contextStartIndex] === " ") hunkContext = trimLineEnd(line.slice(contextStartIndex + 1));
|
|
12638
|
-
return {
|
|
12639
|
-
additionCount,
|
|
12640
|
-
additionStart,
|
|
12641
|
-
deletionCount,
|
|
12642
|
-
deletionStart,
|
|
12643
|
-
hunkContext
|
|
12644
|
-
};
|
|
12645
|
-
}
|
|
12646
|
-
function readPositiveInteger(value, startIndex) {
|
|
12647
|
-
let index = startIndex;
|
|
12648
|
-
let parsedValue = 0;
|
|
12649
|
-
for (; index < value.length; index++) {
|
|
12650
|
-
const digit = value.charCodeAt(index) - 48;
|
|
12651
|
-
if (digit < 0 || digit > 9) break;
|
|
12652
|
-
parsedValue = parsedValue * 10 + digit;
|
|
12653
|
-
}
|
|
12654
|
-
if (index === startIndex) return;
|
|
12655
|
-
return {
|
|
12656
|
-
value: parsedValue,
|
|
12657
|
-
endIndex: index
|
|
12658
|
-
};
|
|
12659
|
-
}
|
|
12660
|
-
function trimLineEnd(value) {
|
|
12661
|
-
if (value.endsWith("\r\n")) return value.slice(0, -2);
|
|
12662
|
-
if (value.endsWith("\n")) return value.slice(0, -1);
|
|
12663
|
-
return value;
|
|
12664
|
-
}
|
|
12665
|
-
function splitAtLinePrefix(contents, prefix) {
|
|
12666
|
-
if (contents.length === 0) return [""];
|
|
12667
|
-
const newlinePrefix = `\n${prefix}`;
|
|
12668
|
-
const firstBoundaryIndex = contents.startsWith(prefix) ? 0 : findLinePrefixIndex(contents, newlinePrefix, 0);
|
|
12669
|
-
if (firstBoundaryIndex === -1) return [contents];
|
|
12670
|
-
const parts = [];
|
|
12671
|
-
if (firstBoundaryIndex > 0) parts.push(contents.slice(0, firstBoundaryIndex));
|
|
12672
|
-
let startIndex = firstBoundaryIndex;
|
|
12673
|
-
for (;;) {
|
|
12674
|
-
const nextBoundaryIndex = findLinePrefixIndex(contents, newlinePrefix, startIndex + 1);
|
|
12675
|
-
if (nextBoundaryIndex === -1) break;
|
|
12676
|
-
parts.push(contents.slice(startIndex, nextBoundaryIndex));
|
|
12677
|
-
startIndex = nextBoundaryIndex;
|
|
12678
|
-
}
|
|
12679
|
-
parts.push(contents.slice(startIndex));
|
|
12680
|
-
return parts;
|
|
12681
|
-
}
|
|
12682
|
-
function findLinePrefixIndex(contents, newlinePrefix, fromIndex) {
|
|
12683
|
-
const index = contents.indexOf(newlinePrefix, fromIndex);
|
|
12684
|
-
return index === -1 ? -1 : index + 1;
|
|
12685
|
-
}
|
|
12686
|
-
function maybeDetachOptionalString(value) {
|
|
12687
|
-
return value == null ? value : detachString(value);
|
|
12688
|
-
}
|
|
12689
|
-
function parseRawLineType(firstChar) {
|
|
12690
|
-
return firstChar === " " ? "context" : firstChar === "\\" ? "metadata" : firstChar === "+" ? "addition" : "deletion";
|
|
12691
|
-
}
|
|
12692
|
-
function getParsedLineContent(rawLine) {
|
|
12693
|
-
const processedLine = rawLine.slice(1);
|
|
12694
|
-
return detachString(processedLine === "" ? "\n" : processedLine);
|
|
12695
|
-
}
|
|
12696
|
-
function createContentGroup(type, deletionLineIndex, additionLineIndex) {
|
|
12697
|
-
if (type === "change") return {
|
|
12698
|
-
type: "change",
|
|
12699
|
-
additions: 0,
|
|
12700
|
-
deletions: 0,
|
|
12701
|
-
additionLineIndex,
|
|
12702
|
-
deletionLineIndex
|
|
12703
|
-
};
|
|
12704
|
-
return {
|
|
12705
|
-
type: "context",
|
|
12706
|
-
lines: 0,
|
|
12707
|
-
additionLineIndex,
|
|
12708
|
-
deletionLineIndex
|
|
12709
|
-
};
|
|
12710
|
-
}
|
|
12711
|
-
//#endregion
|
|
12712
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/base.js
|
|
12713
|
-
var Diff = class {
|
|
12714
|
-
diff(oldStr, newStr, options = {}) {
|
|
12715
|
-
let callback;
|
|
12716
|
-
if (typeof options === "function") {
|
|
12717
|
-
callback = options;
|
|
12718
|
-
options = {};
|
|
12719
|
-
} else if ("callback" in options) callback = options.callback;
|
|
12720
|
-
const oldString = this.castInput(oldStr, options);
|
|
12721
|
-
const newString = this.castInput(newStr, options);
|
|
12722
|
-
const oldTokens = this.removeEmpty(this.tokenize(oldString, options));
|
|
12723
|
-
const newTokens = this.removeEmpty(this.tokenize(newString, options));
|
|
12724
|
-
return this.diffWithOptionsObj(oldTokens, newTokens, options, callback);
|
|
12725
|
-
}
|
|
12726
|
-
diffWithOptionsObj(oldTokens, newTokens, options, callback) {
|
|
12727
|
-
var _a;
|
|
12728
|
-
const done = (value) => {
|
|
12729
|
-
value = this.postProcess(value, options);
|
|
12730
|
-
if (callback) {
|
|
12731
|
-
setTimeout(function() {
|
|
12732
|
-
callback(value);
|
|
12733
|
-
}, 0);
|
|
12734
|
-
return;
|
|
12735
|
-
} else return value;
|
|
12736
|
-
};
|
|
12737
|
-
const newLen = newTokens.length, oldLen = oldTokens.length;
|
|
12738
|
-
let editLength = 1;
|
|
12739
|
-
let maxEditLength = newLen + oldLen;
|
|
12740
|
-
if (options.maxEditLength != null) maxEditLength = Math.min(maxEditLength, options.maxEditLength);
|
|
12741
|
-
const maxExecutionTime = (_a = options.timeout) !== null && _a !== void 0 ? _a : Infinity;
|
|
12742
|
-
const abortAfterTimestamp = Date.now() + maxExecutionTime;
|
|
12743
|
-
const bestPath = [{
|
|
12744
|
-
oldPos: -1,
|
|
12745
|
-
lastComponent: void 0
|
|
12746
|
-
}];
|
|
12747
|
-
let newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options);
|
|
12748
|
-
if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens));
|
|
12749
|
-
let minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;
|
|
12750
|
-
const execEditLength = () => {
|
|
12751
|
-
for (let diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {
|
|
12752
|
-
let basePath;
|
|
12753
|
-
const removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];
|
|
12754
|
-
if (removePath) bestPath[diagonalPath - 1] = void 0;
|
|
12755
|
-
let canAdd = false;
|
|
12756
|
-
if (addPath) {
|
|
12757
|
-
const addPathNewPos = addPath.oldPos - diagonalPath;
|
|
12758
|
-
canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;
|
|
12759
|
-
}
|
|
12760
|
-
const canRemove = removePath && removePath.oldPos + 1 < oldLen;
|
|
12761
|
-
if (!canAdd && !canRemove) {
|
|
12762
|
-
bestPath[diagonalPath] = void 0;
|
|
12763
|
-
continue;
|
|
12764
|
-
}
|
|
12765
|
-
if (!canRemove || canAdd && removePath.oldPos < addPath.oldPos) basePath = this.addToPath(addPath, true, false, 0, options);
|
|
12766
|
-
else basePath = this.addToPath(removePath, false, true, 1, options);
|
|
12767
|
-
newPos = this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options);
|
|
12768
|
-
if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) return done(this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true;
|
|
12769
|
-
else {
|
|
12770
|
-
bestPath[diagonalPath] = basePath;
|
|
12771
|
-
if (basePath.oldPos + 1 >= oldLen) maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);
|
|
12772
|
-
if (newPos + 1 >= newLen) minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);
|
|
12773
|
-
}
|
|
12774
|
-
}
|
|
12775
|
-
editLength++;
|
|
12776
|
-
};
|
|
12777
|
-
if (callback) (function exec() {
|
|
12778
|
-
setTimeout(function() {
|
|
12779
|
-
if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) return callback(void 0);
|
|
12780
|
-
if (!execEditLength()) exec();
|
|
12781
|
-
}, 0);
|
|
12782
|
-
})();
|
|
12783
|
-
else while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {
|
|
12784
|
-
const ret = execEditLength();
|
|
12785
|
-
if (ret) return ret;
|
|
12786
|
-
}
|
|
12787
|
-
}
|
|
12788
|
-
addToPath(path, added, removed, oldPosInc, options) {
|
|
12789
|
-
const last = path.lastComponent;
|
|
12790
|
-
if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) return {
|
|
12791
|
-
oldPos: path.oldPos + oldPosInc,
|
|
12792
|
-
lastComponent: {
|
|
12793
|
-
count: last.count + 1,
|
|
12794
|
-
added,
|
|
12795
|
-
removed,
|
|
12796
|
-
previousComponent: last.previousComponent
|
|
12797
|
-
}
|
|
12798
|
-
};
|
|
12799
|
-
else return {
|
|
12800
|
-
oldPos: path.oldPos + oldPosInc,
|
|
12801
|
-
lastComponent: {
|
|
12802
|
-
count: 1,
|
|
12803
|
-
added,
|
|
12804
|
-
removed,
|
|
12805
|
-
previousComponent: last
|
|
12806
|
-
}
|
|
12807
|
-
};
|
|
12808
|
-
}
|
|
12809
|
-
extractCommon(basePath, newTokens, oldTokens, diagonalPath, options) {
|
|
12810
|
-
const newLen = newTokens.length, oldLen = oldTokens.length;
|
|
12811
|
-
let oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;
|
|
12812
|
-
while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options)) {
|
|
12813
|
-
newPos++;
|
|
12814
|
-
oldPos++;
|
|
12815
|
-
commonCount++;
|
|
12816
|
-
if (options.oneChangePerToken) basePath.lastComponent = {
|
|
12817
|
-
count: 1,
|
|
12818
|
-
previousComponent: basePath.lastComponent,
|
|
12819
|
-
added: false,
|
|
12820
|
-
removed: false
|
|
12821
|
-
};
|
|
12822
|
-
}
|
|
12823
|
-
if (commonCount && !options.oneChangePerToken) basePath.lastComponent = {
|
|
12824
|
-
count: commonCount,
|
|
12825
|
-
previousComponent: basePath.lastComponent,
|
|
12826
|
-
added: false,
|
|
12827
|
-
removed: false
|
|
12828
|
-
};
|
|
12829
|
-
basePath.oldPos = oldPos;
|
|
12830
|
-
return newPos;
|
|
12831
|
-
}
|
|
12832
|
-
equals(left, right, options) {
|
|
12833
|
-
if (options.comparator) return options.comparator(left, right);
|
|
12834
|
-
else return left === right || !!options.ignoreCase && left.toLowerCase() === right.toLowerCase();
|
|
12835
|
-
}
|
|
12836
|
-
removeEmpty(array) {
|
|
12837
|
-
const ret = [];
|
|
12838
|
-
for (let i = 0; i < array.length; i++) if (array[i]) ret.push(array[i]);
|
|
12839
|
-
return ret;
|
|
12840
|
-
}
|
|
12841
|
-
castInput(value, options) {
|
|
12842
|
-
return value;
|
|
12843
|
-
}
|
|
12844
|
-
tokenize(value, options) {
|
|
12845
|
-
return Array.from(value);
|
|
12846
|
-
}
|
|
12847
|
-
join(chars) {
|
|
12848
|
-
return chars.join("");
|
|
12849
|
-
}
|
|
12850
|
-
postProcess(changeObjects, options) {
|
|
12851
|
-
return changeObjects;
|
|
12852
|
-
}
|
|
12853
|
-
get useLongestToken() {
|
|
12854
|
-
return false;
|
|
12855
|
-
}
|
|
12856
|
-
buildValues(lastComponent, newTokens, oldTokens) {
|
|
12857
|
-
const components = [];
|
|
12858
|
-
let nextComponent;
|
|
12859
|
-
while (lastComponent) {
|
|
12860
|
-
components.push(lastComponent);
|
|
12861
|
-
nextComponent = lastComponent.previousComponent;
|
|
12862
|
-
delete lastComponent.previousComponent;
|
|
12863
|
-
lastComponent = nextComponent;
|
|
12864
|
-
}
|
|
12865
|
-
components.reverse();
|
|
12866
|
-
const componentLen = components.length;
|
|
12867
|
-
let componentPos = 0, newPos = 0, oldPos = 0;
|
|
12868
|
-
for (; componentPos < componentLen; componentPos++) {
|
|
12869
|
-
const component = components[componentPos];
|
|
12870
|
-
if (!component.removed) {
|
|
12871
|
-
if (!component.added && this.useLongestToken) {
|
|
12872
|
-
let value = newTokens.slice(newPos, newPos + component.count);
|
|
12873
|
-
value = value.map(function(value, i) {
|
|
12874
|
-
const oldValue = oldTokens[oldPos + i];
|
|
12875
|
-
return oldValue.length > value.length ? oldValue : value;
|
|
12876
|
-
});
|
|
12877
|
-
component.value = this.join(value);
|
|
12878
|
-
} else component.value = this.join(newTokens.slice(newPos, newPos + component.count));
|
|
12879
|
-
newPos += component.count;
|
|
12880
|
-
if (!component.added) oldPos += component.count;
|
|
12881
|
-
} else {
|
|
12882
|
-
component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count));
|
|
12883
|
-
oldPos += component.count;
|
|
12884
|
-
}
|
|
12885
|
-
}
|
|
12886
|
-
return components;
|
|
12887
|
-
}
|
|
12888
|
-
};
|
|
12889
|
-
//#endregion
|
|
12890
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/character.js
|
|
12891
|
-
var CharacterDiff = class extends Diff {};
|
|
12892
|
-
new CharacterDiff();
|
|
12893
|
-
//#endregion
|
|
12894
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/util/string.js
|
|
12895
|
-
function longestCommonPrefix(str1, str2) {
|
|
12896
|
-
let i;
|
|
12897
|
-
for (i = 0; i < str1.length && i < str2.length; i++) if (str1[i] != str2[i]) return str1.slice(0, i);
|
|
12898
|
-
return str1.slice(0, i);
|
|
12899
|
-
}
|
|
12900
|
-
function longestCommonSuffix(str1, str2) {
|
|
12901
|
-
let i;
|
|
12902
|
-
if (!str1 || !str2 || str1[str1.length - 1] != str2[str2.length - 1]) return "";
|
|
12903
|
-
for (i = 0; i < str1.length && i < str2.length; i++) if (str1[str1.length - (i + 1)] != str2[str2.length - (i + 1)]) return str1.slice(-i);
|
|
12904
|
-
return str1.slice(-i);
|
|
12905
|
-
}
|
|
12906
|
-
function replacePrefix(string, oldPrefix, newPrefix) {
|
|
12907
|
-
if (string.slice(0, oldPrefix.length) != oldPrefix) throw Error(`string ${JSON.stringify(string)} doesn't start with prefix ${JSON.stringify(oldPrefix)}; this is a bug`);
|
|
12908
|
-
return newPrefix + string.slice(oldPrefix.length);
|
|
12909
|
-
}
|
|
12910
|
-
function replaceSuffix(string, oldSuffix, newSuffix) {
|
|
12911
|
-
if (!oldSuffix) return string + newSuffix;
|
|
12912
|
-
if (string.slice(-oldSuffix.length) != oldSuffix) throw Error(`string ${JSON.stringify(string)} doesn't end with suffix ${JSON.stringify(oldSuffix)}; this is a bug`);
|
|
12913
|
-
return string.slice(0, -oldSuffix.length) + newSuffix;
|
|
12914
|
-
}
|
|
12915
|
-
function removePrefix(string, oldPrefix) {
|
|
12916
|
-
return replacePrefix(string, oldPrefix, "");
|
|
12917
|
-
}
|
|
12918
|
-
function removeSuffix(string, oldSuffix) {
|
|
12919
|
-
return replaceSuffix(string, oldSuffix, "");
|
|
12920
|
-
}
|
|
12921
|
-
function maximumOverlap(string1, string2) {
|
|
12922
|
-
return string2.slice(0, overlapCount(string1, string2));
|
|
12923
|
-
}
|
|
12924
|
-
function overlapCount(a, b) {
|
|
12925
|
-
let startA = 0;
|
|
12926
|
-
if (a.length > b.length) startA = a.length - b.length;
|
|
12927
|
-
let endB = b.length;
|
|
12928
|
-
if (a.length < b.length) endB = a.length;
|
|
12929
|
-
const map = Array(endB);
|
|
12930
|
-
let k = 0;
|
|
12931
|
-
map[0] = 0;
|
|
12932
|
-
for (let j = 1; j < endB; j++) {
|
|
12933
|
-
if (b[j] == b[k]) map[j] = map[k];
|
|
12934
|
-
else map[j] = k;
|
|
12935
|
-
while (k > 0 && b[j] != b[k]) k = map[k];
|
|
12936
|
-
if (b[j] == b[k]) k++;
|
|
12937
|
-
}
|
|
12938
|
-
k = 0;
|
|
12939
|
-
for (let i = startA; i < a.length; i++) {
|
|
12940
|
-
while (k > 0 && a[i] != b[k]) k = map[k];
|
|
12941
|
-
if (a[i] == b[k]) k++;
|
|
12942
|
-
}
|
|
12943
|
-
return k;
|
|
12944
|
-
}
|
|
12945
|
-
/**
|
|
12946
|
-
* Split a string into segments using a word segmenter, merging consecutive
|
|
12947
|
-
* segments if they are both whitespace segments. Whitespace segments can
|
|
12948
|
-
* appear adjacent to one another for two reasons:
|
|
12949
|
-
* - newlines always get their own segment
|
|
12950
|
-
* - where a diacritic is attached to a whitespace character in the text, the
|
|
12951
|
-
* segment ends after the diacritic, so e.g. " \u0300 " becomes two segments.
|
|
12952
|
-
* This function therefore runs the segmenter's .segment() method and then
|
|
12953
|
-
* merges consecutive segments of whitespace into a single part.
|
|
12954
|
-
*/
|
|
12955
|
-
function segment(string, segmenter) {
|
|
12956
|
-
const parts = [];
|
|
12957
|
-
for (const segmentObj of Array.from(segmenter.segment(string))) {
|
|
12958
|
-
const segment = segmentObj.segment;
|
|
12959
|
-
if (parts.length && /\s/.test(parts[parts.length - 1]) && /\s/.test(segment)) parts[parts.length - 1] += segment;
|
|
12960
|
-
else parts.push(segment);
|
|
12961
|
-
}
|
|
12962
|
-
return parts;
|
|
12963
|
-
}
|
|
12964
|
-
function trailingWs(string, segmenter) {
|
|
12965
|
-
if (segmenter) return leadingAndTrailingWs(string, segmenter)[1];
|
|
12966
|
-
let i;
|
|
12967
|
-
for (i = string.length - 1; i >= 0; i--) if (!string[i].match(/\s/)) break;
|
|
12968
|
-
return string.substring(i + 1);
|
|
12969
|
-
}
|
|
12970
|
-
function leadingWs(string, segmenter) {
|
|
12971
|
-
if (segmenter) return leadingAndTrailingWs(string, segmenter)[0];
|
|
12972
|
-
const match = string.match(/^\s*/);
|
|
12973
|
-
return match ? match[0] : "";
|
|
12974
|
-
}
|
|
12975
|
-
function leadingAndTrailingWs(string, segmenter) {
|
|
12976
|
-
if (!segmenter) return [leadingWs(string), trailingWs(string)];
|
|
12977
|
-
if (segmenter.resolvedOptions().granularity != "word") throw new Error("The segmenter passed must have a granularity of \"word\"");
|
|
12978
|
-
const segments = segment(string, segmenter);
|
|
12979
|
-
const firstSeg = segments[0];
|
|
12980
|
-
const lastSeg = segments[segments.length - 1];
|
|
12981
|
-
return [/\s/.test(firstSeg) ? firstSeg : "", /\s/.test(lastSeg) ? lastSeg : ""];
|
|
12982
|
-
}
|
|
12983
|
-
//#endregion
|
|
12984
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/word.js
|
|
12985
|
-
var extendedWordChars = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}";
|
|
12986
|
-
var tokenizeIncludingWhitespace = new RegExp(`[${extendedWordChars}]+|\\s+|[^${extendedWordChars}]`, "ug");
|
|
12987
|
-
var WordDiff = class extends Diff {
|
|
12988
|
-
equals(left, right, options) {
|
|
12989
|
-
if (options.ignoreCase) {
|
|
12990
|
-
left = left.toLowerCase();
|
|
12991
|
-
right = right.toLowerCase();
|
|
12992
|
-
}
|
|
12993
|
-
return left.trim() === right.trim();
|
|
12994
|
-
}
|
|
12995
|
-
tokenize(value, options = {}) {
|
|
12996
|
-
let parts;
|
|
12997
|
-
if (options.intlSegmenter) {
|
|
12998
|
-
const segmenter = options.intlSegmenter;
|
|
12999
|
-
if (segmenter.resolvedOptions().granularity != "word") throw new Error("The segmenter passed must have a granularity of \"word\"");
|
|
13000
|
-
parts = segment(value, segmenter);
|
|
13001
|
-
} else parts = value.match(tokenizeIncludingWhitespace) || [];
|
|
13002
|
-
const tokens = [];
|
|
13003
|
-
let prevPart = null;
|
|
13004
|
-
parts.forEach((part) => {
|
|
13005
|
-
if (/\s/.test(part)) {
|
|
13006
|
-
if (prevPart == null) tokens.push(part);
|
|
13007
|
-
else tokens.push(tokens.pop() + part);
|
|
13008
|
-
} else if (prevPart != null && /\s/.test(prevPart)) {
|
|
13009
|
-
if (tokens[tokens.length - 1] == prevPart) tokens.push(tokens.pop() + part);
|
|
13010
|
-
else tokens.push(prevPart + part);
|
|
13011
|
-
} else tokens.push(part);
|
|
13012
|
-
prevPart = part;
|
|
13013
|
-
});
|
|
13014
|
-
return tokens;
|
|
13015
|
-
}
|
|
13016
|
-
join(tokens) {
|
|
13017
|
-
return tokens.map((token, i) => {
|
|
13018
|
-
if (i == 0) return token;
|
|
13019
|
-
else return token.replace(/^\s+/, "");
|
|
13020
|
-
}).join("");
|
|
13021
|
-
}
|
|
13022
|
-
postProcess(changes, options) {
|
|
13023
|
-
if (!changes || options.oneChangePerToken) return changes;
|
|
13024
|
-
let lastKeep = null;
|
|
13025
|
-
let insertion = null;
|
|
13026
|
-
let deletion = null;
|
|
13027
|
-
changes.forEach((change) => {
|
|
13028
|
-
if (change.added) insertion = change;
|
|
13029
|
-
else if (change.removed) deletion = change;
|
|
13030
|
-
else {
|
|
13031
|
-
if (insertion || deletion) dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, change, options.intlSegmenter);
|
|
13032
|
-
lastKeep = change;
|
|
13033
|
-
insertion = null;
|
|
13034
|
-
deletion = null;
|
|
13035
|
-
}
|
|
13036
|
-
});
|
|
13037
|
-
if (insertion || deletion) dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, null, options.intlSegmenter);
|
|
13038
|
-
return changes;
|
|
13039
|
-
}
|
|
13040
|
-
};
|
|
13041
|
-
new WordDiff();
|
|
13042
|
-
function dedupeWhitespaceInChangeObjects(startKeep, deletion, insertion, endKeep, segmenter) {
|
|
13043
|
-
if (deletion && insertion) {
|
|
13044
|
-
const [oldWsPrefix, oldWsSuffix] = leadingAndTrailingWs(deletion.value, segmenter);
|
|
13045
|
-
const [newWsPrefix, newWsSuffix] = leadingAndTrailingWs(insertion.value, segmenter);
|
|
13046
|
-
if (startKeep) {
|
|
13047
|
-
const commonWsPrefix = longestCommonPrefix(oldWsPrefix, newWsPrefix);
|
|
13048
|
-
startKeep.value = replaceSuffix(startKeep.value, newWsPrefix, commonWsPrefix);
|
|
13049
|
-
deletion.value = removePrefix(deletion.value, commonWsPrefix);
|
|
13050
|
-
insertion.value = removePrefix(insertion.value, commonWsPrefix);
|
|
13051
|
-
}
|
|
13052
|
-
if (endKeep) {
|
|
13053
|
-
const commonWsSuffix = longestCommonSuffix(oldWsSuffix, newWsSuffix);
|
|
13054
|
-
endKeep.value = replacePrefix(endKeep.value, newWsSuffix, commonWsSuffix);
|
|
13055
|
-
deletion.value = removeSuffix(deletion.value, commonWsSuffix);
|
|
13056
|
-
insertion.value = removeSuffix(insertion.value, commonWsSuffix);
|
|
13057
|
-
}
|
|
13058
|
-
} else if (insertion) {
|
|
13059
|
-
if (startKeep) {
|
|
13060
|
-
const ws = leadingWs(insertion.value, segmenter);
|
|
13061
|
-
insertion.value = insertion.value.substring(ws.length);
|
|
13062
|
-
}
|
|
13063
|
-
if (endKeep) {
|
|
13064
|
-
const ws = leadingWs(endKeep.value, segmenter);
|
|
13065
|
-
endKeep.value = endKeep.value.substring(ws.length);
|
|
13066
|
-
}
|
|
13067
|
-
} else if (startKeep && endKeep) {
|
|
13068
|
-
const newWsFull = leadingWs(endKeep.value, segmenter), [delWsStart, delWsEnd] = leadingAndTrailingWs(deletion.value, segmenter);
|
|
13069
|
-
const newWsStart = longestCommonPrefix(newWsFull, delWsStart);
|
|
13070
|
-
deletion.value = removePrefix(deletion.value, newWsStart);
|
|
13071
|
-
const newWsEnd = longestCommonSuffix(removePrefix(newWsFull, newWsStart), delWsEnd);
|
|
13072
|
-
deletion.value = removeSuffix(deletion.value, newWsEnd);
|
|
13073
|
-
endKeep.value = replacePrefix(endKeep.value, newWsFull, newWsEnd);
|
|
13074
|
-
startKeep.value = replaceSuffix(startKeep.value, newWsFull, newWsFull.slice(0, newWsFull.length - newWsEnd.length));
|
|
13075
|
-
} else if (endKeep) {
|
|
13076
|
-
const endKeepWsPrefix = leadingWs(endKeep.value, segmenter);
|
|
13077
|
-
const overlap = maximumOverlap(trailingWs(deletion.value, segmenter), endKeepWsPrefix);
|
|
13078
|
-
deletion.value = removeSuffix(deletion.value, overlap);
|
|
13079
|
-
} else if (startKeep) {
|
|
13080
|
-
const overlap = maximumOverlap(trailingWs(startKeep.value, segmenter), leadingWs(deletion.value, segmenter));
|
|
13081
|
-
deletion.value = removePrefix(deletion.value, overlap);
|
|
13082
|
-
}
|
|
13083
|
-
}
|
|
13084
|
-
var WordsWithSpaceDiff = class extends Diff {
|
|
13085
|
-
tokenize(value) {
|
|
13086
|
-
const regex = new RegExp(`(\\r?\\n)|[${extendedWordChars}]+|[^\\S\\n\\r]+|[^${extendedWordChars}]`, "ug");
|
|
13087
|
-
return value.match(regex) || [];
|
|
13088
|
-
}
|
|
13089
|
-
};
|
|
13090
|
-
new WordsWithSpaceDiff();
|
|
13091
|
-
//#endregion
|
|
13092
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/line.js
|
|
13093
|
-
var LineDiff = class extends Diff {
|
|
13094
|
-
constructor() {
|
|
13095
|
-
super(...arguments);
|
|
13096
|
-
this.tokenize = tokenize;
|
|
13097
|
-
}
|
|
13098
|
-
equals(left, right, options) {
|
|
13099
|
-
if (options.ignoreWhitespace) {
|
|
13100
|
-
if (!options.newlineIsToken || !left.includes("\n")) left = left.trim();
|
|
13101
|
-
if (!options.newlineIsToken || !right.includes("\n")) right = right.trim();
|
|
13102
|
-
} else if (options.ignoreNewlineAtEof && !options.newlineIsToken) {
|
|
13103
|
-
if (left.endsWith("\n")) left = left.slice(0, -1);
|
|
13104
|
-
if (right.endsWith("\n")) right = right.slice(0, -1);
|
|
13105
|
-
}
|
|
13106
|
-
return super.equals(left, right, options);
|
|
13107
|
-
}
|
|
13108
|
-
};
|
|
13109
|
-
var lineDiff = new LineDiff();
|
|
13110
|
-
function diffLines(oldStr, newStr, options) {
|
|
13111
|
-
return lineDiff.diff(oldStr, newStr, options);
|
|
13112
|
-
}
|
|
13113
|
-
function tokenize(value, options) {
|
|
13114
|
-
if (options.stripTrailingCr) value = value.replace(/\r\n/g, "\n");
|
|
13115
|
-
const retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/);
|
|
13116
|
-
if (!linesAndNewlines[linesAndNewlines.length - 1]) linesAndNewlines.pop();
|
|
13117
|
-
for (let i = 0; i < linesAndNewlines.length; i++) {
|
|
13118
|
-
const line = linesAndNewlines[i];
|
|
13119
|
-
if (i % 2 && !options.newlineIsToken) retLines[retLines.length - 1] += line;
|
|
13120
|
-
else retLines.push(line);
|
|
13121
|
-
}
|
|
13122
|
-
return retLines;
|
|
13123
|
-
}
|
|
13124
|
-
//#endregion
|
|
13125
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/sentence.js
|
|
13126
|
-
function isSentenceEndPunct(char) {
|
|
13127
|
-
return char == "." || char == "!" || char == "?";
|
|
13128
|
-
}
|
|
13129
|
-
var SentenceDiff = class extends Diff {
|
|
13130
|
-
tokenize(value) {
|
|
13131
|
-
var _a;
|
|
13132
|
-
const result = [];
|
|
13133
|
-
let tokenStartI = 0;
|
|
13134
|
-
for (let i = 0; i < value.length; i++) {
|
|
13135
|
-
if (i == value.length - 1) {
|
|
13136
|
-
result.push(value.slice(tokenStartI));
|
|
13137
|
-
break;
|
|
13138
|
-
}
|
|
13139
|
-
if (isSentenceEndPunct(value[i]) && value[i + 1].match(/\s/)) {
|
|
13140
|
-
result.push(value.slice(tokenStartI, i + 1));
|
|
13141
|
-
i = tokenStartI = i + 1;
|
|
13142
|
-
while ((_a = value[i + 1]) === null || _a === void 0 ? void 0 : _a.match(/\s/)) i++;
|
|
13143
|
-
result.push(value.slice(tokenStartI, i + 1));
|
|
13144
|
-
tokenStartI = i + 1;
|
|
13145
|
-
}
|
|
13146
|
-
}
|
|
13147
|
-
return result;
|
|
13148
|
-
}
|
|
13149
|
-
};
|
|
13150
|
-
new SentenceDiff();
|
|
13151
|
-
//#endregion
|
|
13152
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/css.js
|
|
13153
|
-
var CssDiff = class extends Diff {
|
|
13154
|
-
tokenize(value) {
|
|
13155
|
-
return value.split(/([{}:;,]|\s+)/);
|
|
13156
|
-
}
|
|
13157
|
-
};
|
|
13158
|
-
new CssDiff();
|
|
13159
|
-
//#endregion
|
|
13160
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/json.js
|
|
13161
|
-
var JsonDiff = class extends Diff {
|
|
13162
|
-
constructor() {
|
|
13163
|
-
super(...arguments);
|
|
13164
|
-
this.tokenize = tokenize;
|
|
13165
|
-
}
|
|
13166
|
-
get useLongestToken() {
|
|
13167
|
-
return true;
|
|
13168
|
-
}
|
|
13169
|
-
castInput(value, options) {
|
|
13170
|
-
const { undefinedReplacement, stringifyReplacer = (k, v) => typeof v === "undefined" ? undefinedReplacement : v } = options;
|
|
13171
|
-
return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), null, " ");
|
|
13172
|
-
}
|
|
13173
|
-
equals(left, right, options) {
|
|
13174
|
-
return super.equals(left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1"), options);
|
|
13175
|
-
}
|
|
13176
|
-
};
|
|
13177
|
-
new JsonDiff();
|
|
13178
|
-
function canonicalize(obj, stack, replacementStack, replacer, key) {
|
|
13179
|
-
stack = stack || [];
|
|
13180
|
-
replacementStack = replacementStack || [];
|
|
13181
|
-
if (replacer) obj = replacer(key === void 0 ? "" : key, obj);
|
|
13182
|
-
let i;
|
|
13183
|
-
for (i = 0; i < stack.length; i += 1) if (stack[i] === obj) return replacementStack[i];
|
|
13184
|
-
let canonicalizedObj;
|
|
13185
|
-
if ("[object Array]" === Object.prototype.toString.call(obj)) {
|
|
13186
|
-
stack.push(obj);
|
|
13187
|
-
canonicalizedObj = new Array(obj.length);
|
|
13188
|
-
replacementStack.push(canonicalizedObj);
|
|
13189
|
-
for (i = 0; i < obj.length; i += 1) canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, String(i));
|
|
13190
|
-
stack.pop();
|
|
13191
|
-
replacementStack.pop();
|
|
13192
|
-
return canonicalizedObj;
|
|
13193
|
-
}
|
|
13194
|
-
if (obj && obj.toJSON) obj = obj.toJSON();
|
|
13195
|
-
if (typeof obj === "object" && obj !== null) {
|
|
13196
|
-
stack.push(obj);
|
|
13197
|
-
canonicalizedObj = {};
|
|
13198
|
-
replacementStack.push(canonicalizedObj);
|
|
13199
|
-
const sortedKeys = [];
|
|
13200
|
-
let key;
|
|
13201
|
-
for (key in obj)
|
|
13202
|
-
/* istanbul ignore else */
|
|
13203
|
-
if (Object.prototype.hasOwnProperty.call(obj, key)) sortedKeys.push(key);
|
|
13204
|
-
sortedKeys.sort();
|
|
13205
|
-
for (i = 0; i < sortedKeys.length; i += 1) {
|
|
13206
|
-
key = sortedKeys[i];
|
|
13207
|
-
canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack, replacer, key);
|
|
13208
|
-
}
|
|
13209
|
-
stack.pop();
|
|
13210
|
-
replacementStack.pop();
|
|
13211
|
-
} else canonicalizedObj = obj;
|
|
13212
|
-
return canonicalizedObj;
|
|
13213
|
-
}
|
|
13214
|
-
//#endregion
|
|
13215
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/array.js
|
|
13216
|
-
var ArrayDiff = class extends Diff {
|
|
13217
|
-
tokenize(value) {
|
|
13218
|
-
return value.slice();
|
|
13219
|
-
}
|
|
13220
|
-
join(value) {
|
|
13221
|
-
return value;
|
|
13222
|
-
}
|
|
13223
|
-
removeEmpty(value) {
|
|
13224
|
-
return value;
|
|
13225
|
-
}
|
|
13226
|
-
};
|
|
13227
|
-
new ArrayDiff();
|
|
13228
|
-
//#endregion
|
|
13229
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/patch/create.js
|
|
13230
|
-
/**
|
|
13231
|
-
* Returns true if the filename contains characters that require C-style
|
|
13232
|
-
* quoting (as used by Git and GNU diffutils in diff output).
|
|
13233
|
-
*/
|
|
13234
|
-
function needsQuoting(s) {
|
|
13235
|
-
for (let i = 0; i < s.length; i++) if (s[i] < " " || s[i] > "~" || s[i] === "\"" || s[i] === "\\") return true;
|
|
13236
|
-
return false;
|
|
13237
|
-
}
|
|
13238
|
-
/**
|
|
13239
|
-
* C-style quotes a filename, encoding special characters as escape sequences
|
|
13240
|
-
* and non-ASCII bytes as octal escapes. This is the inverse of
|
|
13241
|
-
* `parseQuotedFileName` in parse.ts.
|
|
13242
|
-
*
|
|
13243
|
-
* Non-ASCII bytes are encoded as UTF-8 before being emitted as octal escapes.
|
|
13244
|
-
* This matches the behaviour of both Git and GNU diffutils, which always emit
|
|
13245
|
-
* UTF-8 octal escapes regardless of the underlying filesystem encoding (e.g.
|
|
13246
|
-
* Git for Windows converts from NTFS's UTF-16 to UTF-8 internally).
|
|
13247
|
-
*
|
|
13248
|
-
* If the filename doesn't need quoting, returns it as-is.
|
|
13249
|
-
*/
|
|
13250
|
-
function quoteFileNameIfNeeded(s) {
|
|
13251
|
-
if (!needsQuoting(s)) return s;
|
|
13252
|
-
let result = "\"";
|
|
13253
|
-
const bytes = new TextEncoder().encode(s);
|
|
13254
|
-
let i = 0;
|
|
13255
|
-
while (i < bytes.length) {
|
|
13256
|
-
const b = bytes[i];
|
|
13257
|
-
if (b === 7) result += "\\a";
|
|
13258
|
-
else if (b === 8) result += "\\b";
|
|
13259
|
-
else if (b === 9) result += "\\t";
|
|
13260
|
-
else if (b === 10) result += "\\n";
|
|
13261
|
-
else if (b === 11) result += "\\v";
|
|
13262
|
-
else if (b === 12) result += "\\f";
|
|
13263
|
-
else if (b === 13) result += "\\r";
|
|
13264
|
-
else if (b === 34) result += "\\\"";
|
|
13265
|
-
else if (b === 92) result += "\\\\";
|
|
13266
|
-
else if (b >= 32 && b <= 126) result += String.fromCharCode(b);
|
|
13267
|
-
else result += "\\" + b.toString(8).padStart(3, "0");
|
|
13268
|
-
i++;
|
|
13269
|
-
}
|
|
13270
|
-
result += "\"";
|
|
13271
|
-
return result;
|
|
13272
|
-
}
|
|
13273
|
-
var INCLUDE_HEADERS = {
|
|
13274
|
-
includeIndex: true,
|
|
13275
|
-
includeUnderline: true,
|
|
13276
|
-
includeFileHeaders: true
|
|
13277
|
-
};
|
|
13278
|
-
function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
|
|
13279
|
-
let optionsObj;
|
|
13280
|
-
if (!options) optionsObj = {};
|
|
13281
|
-
else if (typeof options === "function") optionsObj = { callback: options };
|
|
13282
|
-
else optionsObj = options;
|
|
13283
|
-
if (typeof optionsObj.context === "undefined") optionsObj.context = 4;
|
|
13284
|
-
const context = optionsObj.context;
|
|
13285
|
-
if (optionsObj.newlineIsToken) throw new Error("newlineIsToken may not be used with patch-generation functions, only with diffing functions");
|
|
13286
|
-
if (!optionsObj.callback) return diffLinesResultToPatch(diffLines(oldStr, newStr, optionsObj));
|
|
13287
|
-
else {
|
|
13288
|
-
const { callback } = optionsObj;
|
|
13289
|
-
diffLines(oldStr, newStr, Object.assign(Object.assign({}, optionsObj), { callback: (diff) => {
|
|
13290
|
-
const patch = diffLinesResultToPatch(diff);
|
|
13291
|
-
callback(patch);
|
|
13292
|
-
} }));
|
|
13293
|
-
}
|
|
13294
|
-
function diffLinesResultToPatch(diff) {
|
|
13295
|
-
if (!diff) return;
|
|
13296
|
-
diff.push({
|
|
13297
|
-
value: "",
|
|
13298
|
-
lines: []
|
|
13299
|
-
});
|
|
13300
|
-
function contextLines(lines) {
|
|
13301
|
-
return lines.map(function(entry) {
|
|
13302
|
-
return " " + entry;
|
|
13303
|
-
});
|
|
13304
|
-
}
|
|
13305
|
-
const hunks = [];
|
|
13306
|
-
let oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;
|
|
13307
|
-
for (let i = 0; i < diff.length; i++) {
|
|
13308
|
-
const current = diff[i], lines = current.lines || splitLines(current.value);
|
|
13309
|
-
current.lines = lines;
|
|
13310
|
-
if (current.added || current.removed) {
|
|
13311
|
-
if (!oldRangeStart) {
|
|
13312
|
-
const prev = diff[i - 1];
|
|
13313
|
-
oldRangeStart = oldLine;
|
|
13314
|
-
newRangeStart = newLine;
|
|
13315
|
-
if (prev) {
|
|
13316
|
-
curRange = context > 0 ? contextLines(prev.lines.slice(-context)) : [];
|
|
13317
|
-
oldRangeStart -= curRange.length;
|
|
13318
|
-
newRangeStart -= curRange.length;
|
|
13319
|
-
}
|
|
13320
|
-
}
|
|
13321
|
-
for (const line of lines) curRange.push((current.added ? "+" : "-") + line);
|
|
13322
|
-
if (current.added) newLine += lines.length;
|
|
13323
|
-
else oldLine += lines.length;
|
|
13324
|
-
} else {
|
|
13325
|
-
if (oldRangeStart) {
|
|
13326
|
-
if (lines.length <= context * 2 && i < diff.length - 2) for (const line of contextLines(lines)) curRange.push(line);
|
|
13327
|
-
else {
|
|
13328
|
-
const contextSize = Math.min(lines.length, context);
|
|
13329
|
-
for (const line of contextLines(lines.slice(0, contextSize))) curRange.push(line);
|
|
13330
|
-
const hunk = {
|
|
13331
|
-
oldStart: oldRangeStart,
|
|
13332
|
-
oldLines: oldLine - oldRangeStart + contextSize,
|
|
13333
|
-
newStart: newRangeStart,
|
|
13334
|
-
newLines: newLine - newRangeStart + contextSize,
|
|
13335
|
-
lines: curRange
|
|
13336
|
-
};
|
|
13337
|
-
hunks.push(hunk);
|
|
13338
|
-
oldRangeStart = 0;
|
|
13339
|
-
newRangeStart = 0;
|
|
13340
|
-
curRange = [];
|
|
13341
|
-
}
|
|
13342
|
-
}
|
|
13343
|
-
oldLine += lines.length;
|
|
13344
|
-
newLine += lines.length;
|
|
13345
|
-
}
|
|
13346
|
-
}
|
|
13347
|
-
for (const hunk of hunks) for (let i = 0; i < hunk.lines.length; i++) if (hunk.lines[i].endsWith("\n")) hunk.lines[i] = hunk.lines[i].slice(0, -1);
|
|
13348
|
-
else {
|
|
13349
|
-
hunk.lines.splice(i + 1, 0, "\");
|
|
13350
|
-
i++;
|
|
13351
|
-
}
|
|
13352
|
-
return {
|
|
13353
|
-
oldFileName,
|
|
13354
|
-
newFileName,
|
|
13355
|
-
oldHeader,
|
|
13356
|
-
newHeader,
|
|
13357
|
-
hunks
|
|
13358
|
-
};
|
|
13359
|
-
}
|
|
13360
|
-
}
|
|
13361
|
-
/**
|
|
13362
|
-
* creates a unified diff patch.
|
|
13363
|
-
*
|
|
13364
|
-
* @param patch either a single structured patch object (as returned by `structuredPatch`) or an
|
|
13365
|
-
* array of them (as returned by `parsePatch`).
|
|
13366
|
-
* @param headerOptions behaves the same as the `headerOptions` option of `createTwoFilesPatch`.
|
|
13367
|
-
* Ignored for patches where `isGit` is `true`.
|
|
13368
|
-
*
|
|
13369
|
-
* When a patch has `isGit: true`, `formatPatch` output is changed to more closely match Git's
|
|
13370
|
-
* output: it emits a `diff --git` header, emits Git extended headers as appropriate based on
|
|
13371
|
-
* properties like `isRename`, `isCreate`, `newMode`, etc, and will omit `---`/`+++` file
|
|
13372
|
-
* headers for patches with no hunks (e.g. renames without content changes).
|
|
13373
|
-
*/
|
|
13374
|
-
function formatPatch(patch, headerOptions) {
|
|
13375
|
-
var _a, _b, _c, _d, _e, _f;
|
|
13376
|
-
if (!headerOptions) headerOptions = INCLUDE_HEADERS;
|
|
13377
|
-
if (Array.isArray(patch)) {
|
|
13378
|
-
if (patch.length > 1 && !headerOptions.includeFileHeaders && !patch.every((p) => p.isGit)) throw new Error("Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)");
|
|
13379
|
-
return patch.map((p) => formatPatch(p, headerOptions)).join("\n");
|
|
13380
|
-
}
|
|
13381
|
-
const ret = [];
|
|
13382
|
-
if (patch.isGit) {
|
|
13383
|
-
headerOptions = INCLUDE_HEADERS;
|
|
13384
|
-
if (!patch.oldFileName) throw new Error("oldFileName must be specified for Git patches");
|
|
13385
|
-
if (!patch.newFileName) throw new Error("newFileName must be specified for Git patches");
|
|
13386
|
-
let gitOldName = patch.oldFileName;
|
|
13387
|
-
let gitNewName = patch.newFileName;
|
|
13388
|
-
if (patch.isCreate && gitOldName === "/dev/null") gitOldName = gitNewName.replace(/^b\//, "a/");
|
|
13389
|
-
else if (patch.isDelete && gitNewName === "/dev/null") gitNewName = gitOldName.replace(/^a\//, "b/");
|
|
13390
|
-
ret.push("diff --git " + quoteFileNameIfNeeded(gitOldName) + " " + quoteFileNameIfNeeded(gitNewName));
|
|
13391
|
-
if (patch.isDelete) ret.push("deleted file mode " + ((_a = patch.oldMode) !== null && _a !== void 0 ? _a : "100644"));
|
|
13392
|
-
if (patch.isCreate) ret.push("new file mode " + ((_b = patch.newMode) !== null && _b !== void 0 ? _b : "100644"));
|
|
13393
|
-
if (patch.oldMode && patch.newMode && !patch.isDelete && !patch.isCreate) {
|
|
13394
|
-
ret.push("old mode " + patch.oldMode);
|
|
13395
|
-
ret.push("new mode " + patch.newMode);
|
|
13396
|
-
}
|
|
13397
|
-
if (patch.isRename) {
|
|
13398
|
-
ret.push("rename from " + quoteFileNameIfNeeded(((_c = patch.oldFileName) !== null && _c !== void 0 ? _c : "").replace(/^a\//, "")));
|
|
13399
|
-
ret.push("rename to " + quoteFileNameIfNeeded(((_d = patch.newFileName) !== null && _d !== void 0 ? _d : "").replace(/^b\//, "")));
|
|
13400
|
-
}
|
|
13401
|
-
if (patch.isCopy) {
|
|
13402
|
-
ret.push("copy from " + quoteFileNameIfNeeded(((_e = patch.oldFileName) !== null && _e !== void 0 ? _e : "").replace(/^a\//, "")));
|
|
13403
|
-
ret.push("copy to " + quoteFileNameIfNeeded(((_f = patch.newFileName) !== null && _f !== void 0 ? _f : "").replace(/^b\//, "")));
|
|
13404
|
-
}
|
|
13405
|
-
} else {
|
|
13406
|
-
if (headerOptions.includeIndex && patch.oldFileName == patch.newFileName && patch.oldFileName !== void 0) ret.push("Index: " + patch.oldFileName);
|
|
13407
|
-
if (headerOptions.includeUnderline) ret.push("===================================================================");
|
|
13408
|
-
}
|
|
13409
|
-
const hasHunks = patch.hunks.length > 0;
|
|
13410
|
-
if (headerOptions.includeFileHeaders && patch.oldFileName !== void 0 && patch.newFileName !== void 0 && (!patch.isGit || hasHunks)) {
|
|
13411
|
-
ret.push("--- " + quoteFileNameIfNeeded(patch.oldFileName) + (patch.oldHeader ? " " + patch.oldHeader : ""));
|
|
13412
|
-
ret.push("+++ " + quoteFileNameIfNeeded(patch.newFileName) + (patch.newHeader ? " " + patch.newHeader : ""));
|
|
13413
|
-
}
|
|
13414
|
-
for (let i = 0; i < patch.hunks.length; i++) {
|
|
13415
|
-
const hunk = patch.hunks[i];
|
|
13416
|
-
const oldStart = hunk.oldLines === 0 ? hunk.oldStart - 1 : hunk.oldStart;
|
|
13417
|
-
const newStart = hunk.newLines === 0 ? hunk.newStart - 1 : hunk.newStart;
|
|
13418
|
-
ret.push("@@ -" + oldStart + "," + hunk.oldLines + " +" + newStart + "," + hunk.newLines + " @@");
|
|
13419
|
-
for (const line of hunk.lines) ret.push(line);
|
|
13420
|
-
}
|
|
13421
|
-
return ret.join("\n") + "\n";
|
|
13422
|
-
}
|
|
13423
|
-
function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
|
|
13424
|
-
if (typeof options === "function") options = { callback: options };
|
|
13425
|
-
if (!(options === null || options === void 0 ? void 0 : options.callback)) {
|
|
13426
|
-
const patchObj = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);
|
|
13427
|
-
if (!patchObj) return;
|
|
13428
|
-
return formatPatch(patchObj, options === null || options === void 0 ? void 0 : options.headerOptions);
|
|
13429
|
-
} else {
|
|
13430
|
-
const { callback } = options;
|
|
13431
|
-
structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, Object.assign(Object.assign({}, options), { callback: (patchObj) => {
|
|
13432
|
-
if (!patchObj) callback(void 0);
|
|
13433
|
-
else callback(formatPatch(patchObj, options.headerOptions));
|
|
13434
|
-
} }));
|
|
13435
|
-
}
|
|
13436
|
-
}
|
|
13437
|
-
/**
|
|
13438
|
-
* Split `text` into an array of lines, including the trailing newline character (where present)
|
|
13439
|
-
*/
|
|
13440
|
-
function splitLines(text) {
|
|
13441
|
-
const hasTrailingNl = text.endsWith("\n");
|
|
13442
|
-
const result = text.split("\n").map((line) => line + "\n");
|
|
13443
|
-
if (hasTrailingNl) result.pop();
|
|
13444
|
-
else result.push(result.pop().slice(0, -1));
|
|
13445
|
-
return result;
|
|
13446
|
-
}
|
|
13447
|
-
//#endregion
|
|
13448
|
-
//#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js
|
|
13449
|
-
var MISSING_FILE_NAME = "/dev/null";
|
|
13450
|
-
/**
|
|
13451
|
-
* Parses a diff from two file contents objects.
|
|
13452
|
-
*
|
|
13453
|
-
* If both `oldFile` and `newFile` have a `cacheKey`, the resulting diff will
|
|
13454
|
-
* automatically get a combined cache key in the format `oldKey:newKey`.
|
|
13455
|
-
*/
|
|
13456
|
-
function parseDiffFromFile(oldFile, newFile, options, throwOnError = false) {
|
|
13457
|
-
if (oldFile === null && newFile === null) throw new Error("parseDiffFromFile: You must pass oldFile, newFile, or both");
|
|
13458
|
-
const resolvedOldFile = oldFile ?? createMissingFile();
|
|
13459
|
-
const resolvedNewFile = newFile ?? createMissingFile();
|
|
13460
|
-
const fileData = processFile(createTwoFilesPatch(resolvedOldFile.name, resolvedNewFile.name, resolvedOldFile.contents, resolvedNewFile.contents, resolvedOldFile.header, resolvedNewFile.header, options), {
|
|
13461
|
-
cacheKey: (() => {
|
|
13462
|
-
const oldCacheKey = oldFile?.cacheKey ?? oldFile?.name;
|
|
13463
|
-
const newCacheKey = newFile?.cacheKey ?? newFile?.name;
|
|
13464
|
-
if (oldCacheKey != null && newCacheKey != null) return oldCacheKey + ":" + newCacheKey;
|
|
13465
|
-
return oldCacheKey ?? newCacheKey;
|
|
13466
|
-
})(),
|
|
13467
|
-
oldFile: resolvedOldFile,
|
|
13468
|
-
newFile: resolvedNewFile,
|
|
13469
|
-
throwOnError
|
|
13470
|
-
});
|
|
13471
|
-
if (fileData == null) throw new Error("parseDiffFrom: FileInvalid diff -- probably need to fix something -- if the files are the same maybe?");
|
|
13472
|
-
if (oldFile === null) {
|
|
13473
|
-
fileData.type = "new";
|
|
13474
|
-
fileData.prevName = void 0;
|
|
13475
|
-
} else if (newFile === null) {
|
|
13476
|
-
fileData.type = "deleted";
|
|
13477
|
-
fileData.prevName = void 0;
|
|
13478
|
-
}
|
|
13479
|
-
const language = newFile?.lang ?? (newFile === null ? oldFile?.lang : void 0);
|
|
13480
|
-
if (language != null) fileData.lang = language;
|
|
13481
|
-
return fileData;
|
|
13482
|
-
}
|
|
13483
|
-
function createMissingFile() {
|
|
13484
|
-
return {
|
|
13485
|
-
name: MISSING_FILE_NAME,
|
|
13486
|
-
contents: ""
|
|
13487
|
-
};
|
|
13488
|
-
}
|
|
13489
|
-
var MAX_PER_FILE = 40;
|
|
13490
|
-
/** Substring search over path + lines pierre actually renders (hunk
|
|
13491
|
-
* change + context). Full-file old/new text is much larger than the
|
|
13492
|
-
* visible diff — counting those made Next feel broken ("32 matches"
|
|
13493
|
-
* with nothing on screen for many steps). */
|
|
13494
|
-
/** Last search, keyed by files identity + query: the find box asks up to
|
|
13495
|
-
* three times per keystroke (immediate paint, debounced state, template). */
|
|
13496
|
-
var last;
|
|
13497
|
-
/** Files with hits, or null when the list hit its cap and so can't say
|
|
13498
|
-
* which files are clean (paint then falls back to walking every host). */
|
|
13499
|
-
function hitKeys(hits) {
|
|
13500
|
-
return hits.length >= 200 ? null : [...new Set(hits.map((h) => h.key))];
|
|
13501
|
-
}
|
|
13502
|
-
function searchDiffFiles(files, raw) {
|
|
13503
|
-
const query = raw.trim();
|
|
13504
|
-
if (!query) return [];
|
|
13505
|
-
if (last && last.files === files && last.query === query) return last.hits;
|
|
13506
|
-
const hits = searchUncached(files, query);
|
|
13507
|
-
last = {
|
|
13508
|
-
files,
|
|
13509
|
-
query,
|
|
13510
|
-
hits
|
|
13511
|
-
};
|
|
13512
|
-
return hits;
|
|
13513
|
-
}
|
|
13514
|
-
/** Hunk line sets and split lines are query-independent and dominate the
|
|
13515
|
-
* cost (pierre re-parses the whole file); keep them per file object. */
|
|
13516
|
-
var parsed = /* @__PURE__ */ new WeakMap();
|
|
13517
|
-
function parsedFor(file) {
|
|
13518
|
-
let p = parsed.get(file);
|
|
13519
|
-
if (!p) {
|
|
13520
|
-
p = {
|
|
13521
|
-
visible: visibleHunkLines(file.old, file.new),
|
|
13522
|
-
newLines: file.new == null ? null : file.new.split("\n"),
|
|
13523
|
-
oldLines: file.old == null ? null : file.old.split("\n")
|
|
13524
|
-
};
|
|
13525
|
-
parsed.set(file, p);
|
|
13526
|
-
}
|
|
13527
|
-
return p;
|
|
13528
|
-
}
|
|
13529
|
-
function searchUncached(files, query) {
|
|
13530
|
-
const sensitive = /[A-Z]/.test(query);
|
|
13531
|
-
const needle = sensitive ? query : query.toLowerCase();
|
|
13532
|
-
const ascii = !/[^\x00-\x7f]/.test(needle);
|
|
13533
|
-
const hits = [];
|
|
13534
|
-
for (const file of files) {
|
|
13535
|
-
if (hits.length >= 200) break;
|
|
13536
|
-
const before = hits.length;
|
|
13537
|
-
if (ascii) {
|
|
13538
|
-
const oldHay = sensitive ? file.old || "" : (file.old || "").toLowerCase();
|
|
13539
|
-
const newHay = sensitive ? file.new || "" : (file.new || "").toLowerCase();
|
|
13540
|
-
if (!oldHay.includes(needle) && !newHay.includes(needle)) {
|
|
13541
|
-
if (pathMeaningfulMatch(file.path, needle, sensitive)) hits.push({
|
|
13542
|
-
key: file.key,
|
|
13543
|
-
path: file.path,
|
|
13544
|
-
repo: file.repo,
|
|
13545
|
-
line: 0,
|
|
13546
|
-
side: null,
|
|
13547
|
-
preview: file.path
|
|
13548
|
-
});
|
|
13549
|
-
continue;
|
|
13550
|
-
}
|
|
13551
|
-
}
|
|
13552
|
-
const { visible, newLines, oldLines } = parsedFor(file);
|
|
13553
|
-
const seen = /* @__PURE__ */ new Set();
|
|
13554
|
-
scanSide(file, newLines, "additions", needle, sensitive, seen, hits, visible.additions);
|
|
13555
|
-
scanSide(file, oldLines, "deletions", needle, sensitive, seen, hits, visible.deletions);
|
|
13556
|
-
if (hits.length === before && pathMeaningfulMatch(file.path, needle, sensitive)) hits.push({
|
|
13557
|
-
key: file.key,
|
|
13558
|
-
path: file.path,
|
|
13559
|
-
repo: file.repo,
|
|
13560
|
-
line: 0,
|
|
13561
|
-
side: null,
|
|
13562
|
-
preview: file.path
|
|
13563
|
-
});
|
|
13564
|
-
}
|
|
13565
|
-
return hits;
|
|
13566
|
-
}
|
|
13567
|
-
/** True when needle hits the path somewhere other than only the final
|
|
13568
|
-
* extension (`file.marko` + "marko" → false; `marko/src/x.ts` → true). */
|
|
13569
|
-
function pathMeaningfulMatch(path, needle, sensitive) {
|
|
13570
|
-
const hay = sensitive ? path : path.toLowerCase();
|
|
13571
|
-
if (!hay.includes(needle)) return false;
|
|
13572
|
-
const slash = path.lastIndexOf("/");
|
|
13573
|
-
const base = slash >= 0 ? path.slice(slash + 1) : path;
|
|
13574
|
-
const dot = base.lastIndexOf(".");
|
|
13575
|
-
if (dot <= 0) return true;
|
|
13576
|
-
const ext = base.slice(dot + 1);
|
|
13577
|
-
if (!(sensitive ? ext : ext.toLowerCase()).includes(needle)) return true;
|
|
13578
|
-
const extStartInPath = path.length - ext.length;
|
|
13579
|
-
for (let at = hay.indexOf(needle); at !== -1; at = hay.indexOf(needle, at + 1)) if (at < extStartInPath) return true;
|
|
13580
|
-
return false;
|
|
13581
|
-
}
|
|
13582
|
-
/** 1-based line numbers pierre shows for each side (hunk ranges only). */
|
|
13583
|
-
function visibleHunkLines(oldText, newText) {
|
|
13584
|
-
const additions = /* @__PURE__ */ new Set();
|
|
13585
|
-
const deletions = /* @__PURE__ */ new Set();
|
|
13586
|
-
if (oldText == null && newText == null) return {
|
|
13587
|
-
additions,
|
|
13588
|
-
deletions
|
|
13589
|
-
};
|
|
13590
|
-
try {
|
|
13591
|
-
const meta = parseDiffFromFile(oldText == null ? null : {
|
|
13592
|
-
name: "old",
|
|
13593
|
-
contents: oldText
|
|
13594
|
-
}, newText == null ? null : {
|
|
13595
|
-
name: "new",
|
|
13596
|
-
contents: newText
|
|
13597
|
-
});
|
|
13598
|
-
for (const h of meta.hunks) {
|
|
13599
|
-
for (let i = 0; i < h.additionCount; i++) additions.add(h.additionStart + i);
|
|
13600
|
-
for (let i = 0; i < h.deletionCount; i++) deletions.add(h.deletionStart + i);
|
|
13601
|
-
}
|
|
13602
|
-
} catch {}
|
|
13603
|
-
return {
|
|
13604
|
-
additions,
|
|
13605
|
-
deletions
|
|
13606
|
-
};
|
|
13607
|
-
}
|
|
13608
|
-
function scanSide(file, lines, side, needle, sensitive, seen, hits, visible) {
|
|
13609
|
-
if (!lines || hits.length >= 200 || !visible.size) return;
|
|
13610
|
-
let fromFile = 0;
|
|
13611
|
-
for (let i = 0; i < lines.length; i++) {
|
|
13612
|
-
if (hits.length >= 200 || fromFile >= MAX_PER_FILE) return;
|
|
13613
|
-
const lineNo = i + 1;
|
|
13614
|
-
if (!visible.has(lineNo)) continue;
|
|
13615
|
-
const line = lines[i];
|
|
13616
|
-
const at = (sensitive ? line : line.toLowerCase()).indexOf(needle);
|
|
13617
|
-
if (at < 0) continue;
|
|
13618
|
-
if (side === "deletions" && seen.has(line)) continue;
|
|
13619
|
-
if (side === "additions") seen.add(line);
|
|
13620
|
-
fromFile++;
|
|
13621
|
-
hits.push({
|
|
13622
|
-
key: file.key,
|
|
13623
|
-
path: file.path,
|
|
13624
|
-
repo: file.repo,
|
|
13625
|
-
line: lineNo,
|
|
13626
|
-
side,
|
|
13627
|
-
preview: clip(line, at, needle.length)
|
|
13628
|
-
});
|
|
13629
|
-
}
|
|
13630
|
-
}
|
|
13631
|
-
function clip(line, at, len) {
|
|
13632
|
-
const pad = 36;
|
|
13633
|
-
const start = Math.max(0, at - pad);
|
|
13634
|
-
const end = Math.min(line.length, at + len + pad);
|
|
13635
|
-
return (start > 0 ? "…" : "") + line.slice(start, end) + (end < line.length ? "…" : "");
|
|
13636
|
-
}
|
|
13637
|
-
var findInput = "_eh _n";
|
|
13638
|
-
var findIconBtn = "_ek _l";
|
|
12154
|
+
var findInput = "_cw _n";
|
|
12155
|
+
var findIconBtn = "_cz _l";
|
|
13639
12156
|
//#endregion
|
|
13640
12157
|
//#region src/tags/icons/icon-arrow-down.marko
|
|
13641
12158
|
var icon_arrow_down_default = _template("N", (input) => {
|
|
@@ -13655,6 +12172,8 @@ var icon_arrow_down_default = _template("N", (input) => {
|
|
|
13655
12172
|
});
|
|
13656
12173
|
//#endregion
|
|
13657
12174
|
//#region src/tags/diff-find.marko
|
|
12175
|
+
var hitKeys;
|
|
12176
|
+
var searchDiffFiles;
|
|
13658
12177
|
var setSearchPaint$1;
|
|
13659
12178
|
var diff_find_default = _template("i", (input) => {
|
|
13660
12179
|
const $scope0_reason = _scope_reason();
|
|
@@ -13723,9 +12242,9 @@ var diff_find_default = _template("i", (input) => {
|
|
|
13723
12242
|
el.select();
|
|
13724
12243
|
}, 0);
|
|
13725
12244
|
}, "i0", $scope0_id);
|
|
13726
|
-
_html(`<div${_attr_class(["
|
|
12245
|
+
_html(`<div${_attr_class(["_cv", !open && "_cu"])} aria-hidden=${open ? "false" : "true"}><input${_attr_input_value($scope0_id, "b", query || "", _resume(function(v) {
|
|
13727
12246
|
type(v);
|
|
13728
|
-
}, "i1", $scope0_id))}${_attr_class(findInput)} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in review" aria-label="Find in review">${_el_resume($scope0_id, "b")}<span${_attr_class("
|
|
12247
|
+
}, "i1", $scope0_id))}${_attr_class(findInput)} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in review" aria-label="Find in review">${_el_resume($scope0_id, "b")}<span${_attr_class("_cy")}>${_text_resume($scope0_id, "d", open && (query || "").trim() ? hits.length ? `${at + 1}/${hits.length}` : "0/0" : "")}</span><button type=button${_attr_class(findIconBtn)} title="Previous match"${_attr("disabled", !hits.length || !open)} tabindex=${open ? "0" : "-1"}>`);
|
|
13729
12248
|
icon_arrow_up_default({ size: 14 });
|
|
13730
12249
|
_html(`</button>${_el_resume($scope0_id, "e")}<button type=button${_attr_class(findIconBtn)} title="Next match"${_attr("disabled", !hits.length || !open)} tabindex=${open ? "0" : "-1"}>`);
|
|
13731
12250
|
icon_arrow_down_default({ size: 14 });
|
|
@@ -13869,7 +12388,7 @@ var diff_file_default = _template("h", (input) => {
|
|
|
13869
12388
|
_scope_reason();
|
|
13870
12389
|
const $scope0_id = _scope_id();
|
|
13871
12390
|
_el($scope0_id, "h0");
|
|
13872
|
-
_html(`<div${_attr_class(["
|
|
12391
|
+
_html(`<div${_attr_class(["_jh", input.class])}></div>${_el_resume($scope0_id, "a")}`);
|
|
13873
12392
|
_script($scope0_id, "h1");
|
|
13874
12393
|
writeScope($scope0_id, {
|
|
13875
12394
|
e: input.file,
|
|
@@ -14241,7 +12760,7 @@ var review_section_default = _template("x", (input) => {
|
|
|
14241
12760
|
cd: $si__input_findHit_line && $input_findHit_line__closures
|
|
14242
12761
|
});
|
|
14243
12762
|
});
|
|
14244
|
-
var fileFilter = "
|
|
12763
|
+
var fileFilter = "_jg _n";
|
|
14245
12764
|
//#endregion
|
|
14246
12765
|
//#region src/tags/file-filter.marko
|
|
14247
12766
|
var file_filter_default = _template("n", (input) => {
|
|
@@ -14271,7 +12790,7 @@ var file_filter_default = _template("n", (input) => {
|
|
|
14271
12790
|
pending = v;
|
|
14272
12791
|
box.timer = setTimeout(flush, 150);
|
|
14273
12792
|
}, "n2", $scope0_id);
|
|
14274
|
-
_html(`<div${_attr_class("
|
|
12793
|
+
_html(`<div${_attr_class("_jf")}><input${_attr_input_value($scope0_id, "b", draft, _resume(function(v) {
|
|
14275
12794
|
type(v);
|
|
14276
12795
|
}, "n0", $scope0_id))}${_attr_class(fileFilter)} type=search placeholder="Filter files…" aria-label="Filter files">${_el_resume($scope0_id, "b")}</div>`);
|
|
14277
12796
|
_script($scope0_id, "n3");
|
|
@@ -14304,7 +12823,7 @@ var $content = (input) => {
|
|
|
14304
12823
|
_for_of(dir.dirs, (child) => {
|
|
14305
12824
|
const $scope1_id = _scope_id();
|
|
14306
12825
|
const shut = input.collapsed.has(input.collapsedKey(child.path));
|
|
14307
|
-
_html(`<div${_attr_class("
|
|
12826
|
+
_html(`<div${_attr_class("_h9")}><button type=button${_attr_class(["_h_", { ["_h1"]: shut }])}${_attr("title", child.path)}${_attr_style(`--depth:${child.depth}`)}><span${_attr_class("_ig")}>`);
|
|
14308
12827
|
_if(() => {
|
|
14309
12828
|
if (shut) {
|
|
14310
12829
|
const $scope4_id = _scope_id();
|
|
@@ -14318,7 +12837,7 @@ var $content = (input) => {
|
|
|
14318
12837
|
return 1;
|
|
14319
12838
|
}
|
|
14320
12839
|
}, $scope1_id, "c", $sg__input, $sg__input, $sg__input, "</span>", 1);
|
|
14321
|
-
_html(`<span${_attr_class("
|
|
12840
|
+
_html(`<span${_attr_class("_ia")}>${_text_resume($scope1_id, "e", child.label, $sg__input_dir)}/</span></button>${_el_resume($scope1_id, "b")}`);
|
|
14322
12841
|
_if(() => {
|
|
14323
12842
|
if (!shut) {
|
|
14324
12843
|
const $scope2_id = _scope_id();
|
|
@@ -14365,11 +12884,11 @@ var $content = (input) => {
|
|
|
14365
12884
|
}, "path", $scope0_id, "a", $sg__input, $sg__input_dir, $sg__input_dir, 0, 1);
|
|
14366
12885
|
_for_of(dir.files, ({ file, name }) => {
|
|
14367
12886
|
const $scope3_id = _scope_id();
|
|
14368
|
-
_html(`<a${_attr("href", input.hrefFor(file.key))}${_attr_class(["
|
|
12887
|
+
_html(`<a${_attr("href", input.hrefFor(file.key))}${_attr_class(["_ic", { ["_ib"]: input.collapsedFiles?.has(file.key) }])}${input.collapsedFiles?.has(file.key) ? _attr("title", `${file.path} (folded — click to open)`) : _attr("title", file.path)}${_attr_style(`--depth:${dir.depth + 1}`)}><span${_attr_class("_ba")}${_attr("data-status", file.status)}>${_text_resume($scope3_id, "c", file.status, $sg__input_dir)}</span>${_el_resume($scope3_id, "b", $sg__input_dir)}<span${_attr_class("_id")}>${_text_resume($scope3_id, "e", name, $sg__input_dir)}</span>`);
|
|
14369
12888
|
_if(() => {
|
|
14370
12889
|
if (input.newKeys.has(file.key)) {
|
|
14371
12890
|
const $scope6_id = _scope_id();
|
|
14372
|
-
_html(`<span${_attr_class(["_A", "
|
|
12891
|
+
_html(`<span${_attr_class(["_A", "_ie"])} title="Changed since your last visit"></span>`);
|
|
14373
12892
|
_serialize_if($scope0_reason, 1) && writeScope($scope6_id, {});
|
|
14374
12893
|
return 0;
|
|
14375
12894
|
}
|
|
@@ -14377,7 +12896,7 @@ var $content = (input) => {
|
|
|
14377
12896
|
_if(() => {
|
|
14378
12897
|
if (input.commentKeys.has(file.key)) {
|
|
14379
12898
|
const $scope7_id = _scope_id();
|
|
14380
|
-
_html(`<span${_attr_class("
|
|
12899
|
+
_html(`<span${_attr_class("_if")}>`);
|
|
14381
12900
|
icon_comment_default({ size: 12 });
|
|
14382
12901
|
_html("</span>");
|
|
14383
12902
|
_serialize_if($scope0_reason, 0) && writeScope($scope7_id, {});
|
|
@@ -14435,7 +12954,7 @@ var diff_tree_default = _template("l", (input) => {
|
|
|
14435
12954
|
scope: input.scope ?? null,
|
|
14436
12955
|
file: key
|
|
14437
12956
|
}), "l0", $scope0_id);
|
|
14438
|
-
_html(`<aside${_attr_class(["
|
|
12957
|
+
_html(`<aside${_attr_class(["_h2", { ["_h1"]: input.open === false }])}><div${_attr_class("_h3")}>`);
|
|
14439
12958
|
_set_serialize_reason(2);
|
|
14440
12959
|
const $childScope = _peek_scope_id();
|
|
14441
12960
|
file_filter_default({
|
|
@@ -14444,18 +12963,18 @@ var diff_tree_default = _template("l", (input) => {
|
|
|
14444
12963
|
filter = _new_filter;
|
|
14445
12964
|
}, "l1", $scope0_id)
|
|
14446
12965
|
});
|
|
14447
|
-
_html(`</div><div${_attr_class("
|
|
12966
|
+
_html(`</div><div${_attr_class("_h4")}>`);
|
|
14448
12967
|
_if(() => {
|
|
14449
12968
|
if (!input.sections.length && filter) {
|
|
14450
12969
|
const $scope3_id = _scope_id();
|
|
14451
|
-
_html(`<p${_attr_class("
|
|
12970
|
+
_html(`<p${_attr_class("_h5")}>No files match.</p>`);
|
|
14452
12971
|
writeScope($scope3_id, {});
|
|
14453
12972
|
return 0;
|
|
14454
12973
|
}
|
|
14455
12974
|
}, $scope0_id, "e", 1, 1, 1, 0, 1);
|
|
14456
12975
|
_for_of(input.sections, (section) => {
|
|
14457
12976
|
const $scope1_id = _scope_id();
|
|
14458
|
-
_html(`<div${_attr_class("
|
|
12977
|
+
_html(`<div${_attr_class("_h6")}><button type=button${_attr_class(["_h7", { ["_h1"]: collapsedRepos.has(section.id) }])}><span${_attr_class("_ig")}>`);
|
|
14459
12978
|
_if(() => {
|
|
14460
12979
|
if (collapsedRepos.has(section.id)) {
|
|
14461
12980
|
const $scope4_id = _scope_id();
|
|
@@ -14469,12 +12988,12 @@ var diff_tree_default = _template("l", (input) => {
|
|
|
14469
12988
|
return 1;
|
|
14470
12989
|
}
|
|
14471
12990
|
}, $scope1_id, "c", 1, 1, 1, "</span>", 1);
|
|
14472
|
-
_html(`<span${_attr_class("
|
|
12991
|
+
_html(`<span${_attr_class("_ia")}>${_text_resume($scope1_id, "e", section.label, $sg__input_sections)}</span></button>${_el_resume($scope1_id, "b")}`);
|
|
14473
12992
|
_if(() => {
|
|
14474
12993
|
if (!collapsedRepos.has(section.id) || openedRepos.has(section.id)) {
|
|
14475
12994
|
const $scope2_id = _scope_id();
|
|
14476
12995
|
const root = treeDirs(section.files);
|
|
14477
|
-
_html(`<div${_attr_class("
|
|
12996
|
+
_html(`<div${_attr_class("_h8")}${_attr("hidden", collapsedRepos.has(section.id))}>`);
|
|
14478
12997
|
_set_serialize_reason(1);
|
|
14479
12998
|
const $childScope2 = _peek_scope_id();
|
|
14480
12999
|
diff_tree_dir_default({
|
|
@@ -14544,7 +13063,7 @@ var diff_tree_default = _template("l", (input) => {
|
|
|
14544
13063
|
});
|
|
14545
13064
|
_resume_branch($scope0_id);
|
|
14546
13065
|
});
|
|
14547
|
-
var sheetDir = "
|
|
13066
|
+
var sheetDir = "_it _bb";
|
|
14548
13067
|
//#endregion
|
|
14549
13068
|
//#region src/tags/diff-file-sheet.marko
|
|
14550
13069
|
var diff_file_sheet_default = _template("g", (input) => {
|
|
@@ -14600,9 +13119,9 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
14600
13119
|
_if(() => {
|
|
14601
13120
|
if (open) {
|
|
14602
13121
|
const $scope1_id = _scope_id();
|
|
14603
|
-
_html(`<div${_attr_class("
|
|
13122
|
+
_html(`<div${_attr_class("_ik")}></div>${_el_resume($scope1_id, "a")}<div${_attr_class("_il")} role=dialog aria-label="Jump to file"><div${_attr_class("_im")}><strong${_attr_class("_ij")}>Files</strong><span${_attr_class("_in")}>${_text_resume($scope1_id, "f", input.files.length, $sg__input_files_length)}${_text_resume($scope1_id, "g", input.files.length !== total ? ` / ${total}` : "", _serialize_guard($scope0_reason, 2) * 2)}</span><button type=button${_attr_class([iconBtnLg, "_ii"])} title=Close aria-label=Close>`);
|
|
14604
13123
|
icon_xmark_default({ size: 16 });
|
|
14605
|
-
_html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("
|
|
13124
|
+
_html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("_iv")}>`);
|
|
14606
13125
|
_set_serialize_reason(2);
|
|
14607
13126
|
const $childScope = _peek_scope_id();
|
|
14608
13127
|
file_filter_default({
|
|
@@ -14611,13 +13130,13 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
14611
13130
|
filter = _new_filter;
|
|
14612
13131
|
}, "g1", $scope1_id)
|
|
14613
13132
|
});
|
|
14614
|
-
_html(`</div><div${_attr_class("
|
|
13133
|
+
_html(`</div><div${_attr_class("_io")}>`);
|
|
14615
13134
|
_for_of(groups, (group) => {
|
|
14616
13135
|
const $scope2_id = _scope_id();
|
|
14617
|
-
_html(`<div${_attr_class("
|
|
13136
|
+
_html(`<div${_attr_class("_ip")}><div${_attr_class("_iq")}>${_text_resume($scope2_id, "c", group.repo, $sg__input_files)}</div>`);
|
|
14618
13137
|
_for_of(group.dirs, ({ dir, files }) => {
|
|
14619
13138
|
const $scope3_id = _scope_id();
|
|
14620
|
-
_html(`<div${_attr_class("
|
|
13139
|
+
_html(`<div${_attr_class("_ir")}>`);
|
|
14621
13140
|
_if(() => {
|
|
14622
13141
|
if (dir) {
|
|
14623
13142
|
const $scope5_id = _scope_id();
|
|
@@ -14628,11 +13147,11 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
14628
13147
|
}, $scope3_id, "b", $sg__input_files, $sg__input_files, $sg__input_files, 0, 1);
|
|
14629
13148
|
_for_of(files, ({ file, name }) => {
|
|
14630
13149
|
const $scope4_id = _scope_id();
|
|
14631
|
-
_html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["
|
|
13150
|
+
_html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["_is", "_y"])}><span${_attr_class("_ba")}${_attr("data-status", file.status)}>${_text_resume($scope4_id, "c", file.status, $sg__input_files)}</span>${_el_resume($scope4_id, "b", $sg__input_files)}<span${_attr_class("_iu")}><bdi>${_text_resume($scope4_id, "e", name, $sg__input_files)}</bdi></span>`);
|
|
14632
13151
|
_if(() => {
|
|
14633
13152
|
if (newKeys.has(file.key)) {
|
|
14634
13153
|
const $scope6_id = _scope_id();
|
|
14635
|
-
_html(`<span${_attr_class(["_A", "
|
|
13154
|
+
_html(`<span${_attr_class(["_A", "_ix"])} title="Changed since your last visit"></span>`);
|
|
14636
13155
|
_serialize_if($scope0_reason, 1) && writeScope($scope6_id, {});
|
|
14637
13156
|
return 0;
|
|
14638
13157
|
}
|
|
@@ -14642,7 +13161,7 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
14642
13161
|
const $scope7_id = _scope_id();
|
|
14643
13162
|
icon_comment_default({
|
|
14644
13163
|
size: 12,
|
|
14645
|
-
class: "
|
|
13164
|
+
class: "_iy"
|
|
14646
13165
|
});
|
|
14647
13166
|
_serialize_if($scope0_reason, 0) && writeScope($scope7_id, {});
|
|
14648
13167
|
return 0;
|
|
@@ -14667,7 +13186,7 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
14667
13186
|
_if(() => {
|
|
14668
13187
|
if (!input.files.length) {
|
|
14669
13188
|
const $scope8_id = _scope_id();
|
|
14670
|
-
_html(`<p${_attr_class("
|
|
13189
|
+
_html(`<p${_attr_class("_iw")}>No files match.</p>`);
|
|
14671
13190
|
$si__input_files_length && writeScope($scope8_id, {});
|
|
14672
13191
|
return 0;
|
|
14673
13192
|
}
|
|
@@ -14710,7 +13229,7 @@ var setSearchPaint;
|
|
|
14710
13229
|
var diff_view_default = _template("m", (input) => {
|
|
14711
13230
|
const $scope0_reason = _scope_reason(), $si__input_sessions = _serialize_if($scope0_reason, 7), $si__input_workspaceBranch = _serialize_if($scope0_reason, 8), $si__input_workspaceName = _serialize_if($scope0_reason, 9);
|
|
14712
13231
|
const $scope0_id = _scope_id();
|
|
14713
|
-
const $findFocus_getter = _hoist($scope0_id, "
|
|
13232
|
+
const $findFocus_getter = _hoist($scope0_id, "m52");
|
|
14714
13233
|
const $error__closures = /* @__PURE__ */ new Set();
|
|
14715
13234
|
const $scope__closures = /* @__PURE__ */ new Set();
|
|
14716
13235
|
const $input_sessions__closures = /* @__PURE__ */ new Set();
|
|
@@ -14805,6 +13324,11 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14805
13324
|
}
|
|
14806
13325
|
});
|
|
14807
13326
|
}, "m3", $scope0_id);
|
|
13327
|
+
const posBox = {
|
|
13328
|
+
anchor: null,
|
|
13329
|
+
raf: 0,
|
|
13330
|
+
run: 0
|
|
13331
|
+
};
|
|
14808
13332
|
const pinToTop = _resume((el) => {
|
|
14809
13333
|
const root = ((scrollEl) => scrollEl())(_el_read_error);
|
|
14810
13334
|
if (!root) {
|
|
@@ -14814,15 +13338,19 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14814
13338
|
const top = el.getBoundingClientRect().top - root.getBoundingClientRect().top + root.scrollTop;
|
|
14815
13339
|
root.scrollTo({ top: Math.max(0, top - 8) });
|
|
14816
13340
|
}, "m4", $scope0_id);
|
|
13341
|
+
const cancelRestore = _resume(() => {
|
|
13342
|
+
posBox.run++;
|
|
13343
|
+
}, "m5", $scope0_id);
|
|
14817
13344
|
const retryFrames = _resume((attempt, ms = 2500) => {
|
|
14818
13345
|
const started = Date.now();
|
|
14819
13346
|
const tick = () => {
|
|
14820
13347
|
if (!attempt() && Date.now() - started < ms) requestAnimationFrame(tick);
|
|
14821
13348
|
};
|
|
14822
13349
|
tick();
|
|
14823
|
-
}, "
|
|
13350
|
+
}, "m6");
|
|
14824
13351
|
const focusPrSection = _resume((pr) => {
|
|
14825
13352
|
if (!pr) return;
|
|
13353
|
+
cancelRestore();
|
|
14826
13354
|
const list = repos || [];
|
|
14827
13355
|
const focused = list.find((r) => r.pr && `${r.worktree}/${r.pr.number}` === pr);
|
|
14828
13356
|
const keep = new Set(openedRepos);
|
|
@@ -14838,26 +13366,22 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14838
13366
|
if (el) pinToTop(el);
|
|
14839
13367
|
return !!el;
|
|
14840
13368
|
});
|
|
14841
|
-
}, "
|
|
14842
|
-
const findFile = _resume((key) => ((scrollEl) => scrollEl())(_el_read_error)?.querySelector(`details[data-key="${CSS.escape(key)}"]`) ?? null, "
|
|
13369
|
+
}, "m7", $scope0_id);
|
|
13370
|
+
const findFile = _resume((key) => ((scrollEl) => scrollEl())(_el_read_error)?.querySelector(`details[data-key="${CSS.escape(key)}"]`) ?? null, "m8", $scope0_id);
|
|
14843
13371
|
const openFile = _resume((key) => {
|
|
14844
13372
|
const el = findFile(key);
|
|
14845
13373
|
if (el) el.open = true;
|
|
14846
13374
|
return el;
|
|
14847
|
-
}, "
|
|
13375
|
+
}, "m9", $scope0_id);
|
|
14848
13376
|
const jumpTo = _resume((key) => {
|
|
13377
|
+
cancelRestore();
|
|
14849
13378
|
input.onFileChange?.(key);
|
|
14850
13379
|
retryFrames(() => {
|
|
14851
13380
|
const el = openFile(key);
|
|
14852
13381
|
if (el) pinToTop(el);
|
|
14853
13382
|
return !!el;
|
|
14854
13383
|
});
|
|
14855
|
-
}, "
|
|
14856
|
-
const posBox = {
|
|
14857
|
-
anchor: null,
|
|
14858
|
-
raf: 0,
|
|
14859
|
-
run: 0
|
|
14860
|
-
};
|
|
13384
|
+
}, "m10", $scope0_id);
|
|
14861
13385
|
const anchorAt = _resume(() => {
|
|
14862
13386
|
const root = ((scrollEl) => scrollEl())(_el_read_error);
|
|
14863
13387
|
if (!root || !root.scrollTop) return null;
|
|
@@ -14874,17 +13398,17 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14874
13398
|
};
|
|
14875
13399
|
}
|
|
14876
13400
|
return best;
|
|
14877
|
-
}, "
|
|
13401
|
+
}, "m11", $scope0_id);
|
|
14878
13402
|
const noteScroll = _resume(() => {
|
|
14879
13403
|
if (posBox.raf) return;
|
|
14880
13404
|
posBox.raf = requestAnimationFrame(() => {
|
|
14881
13405
|
posBox.raf = 0;
|
|
14882
13406
|
if (((scrollEl) => scrollEl())(_el_read_error)?.isConnected) posBox.anchor = anchorAt();
|
|
14883
13407
|
});
|
|
14884
|
-
}, "
|
|
13408
|
+
}, "m12", $scope0_id);
|
|
14885
13409
|
const savePos = _resume(() => {
|
|
14886
13410
|
if (repos) setDiffPos(input.workspaceId, posBox.anchor);
|
|
14887
|
-
}, "
|
|
13411
|
+
}, "m13", $scope0_id);
|
|
14888
13412
|
const restorePos = _resume((pos) => {
|
|
14889
13413
|
const run = ++posBox.run;
|
|
14890
13414
|
const started = Date.now();
|
|
@@ -14914,7 +13438,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14914
13438
|
} else if (!pinnedAt && Date.now() - started < 2500) requestAnimationFrame(tick);
|
|
14915
13439
|
};
|
|
14916
13440
|
requestAnimationFrame(tick);
|
|
14917
|
-
}, "
|
|
13441
|
+
}, "m14", $scope0_id);
|
|
14918
13442
|
const headBox = {
|
|
14919
13443
|
sig: "",
|
|
14920
13444
|
timer: 0
|
|
@@ -14936,8 +13460,8 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14936
13460
|
comments = reviewData.comments || [];
|
|
14937
13461
|
headBox.sig = prHeadSigFromDiff(diffData);
|
|
14938
13462
|
if (input.focusPr) focusPrSection(input.focusPr);
|
|
14939
|
-
|
|
14940
|
-
else if (!refresh && loadBox.seq === 1) {
|
|
13463
|
+
if (input.focusFile) jumpTo(input.focusFile);
|
|
13464
|
+
else if (!input.focusPr && !refresh && loadBox.seq === 1) {
|
|
14941
13465
|
const pos = diffPos(input.workspaceId);
|
|
14942
13466
|
if (pos && pos.scope === which) restorePos(pos);
|
|
14943
13467
|
}
|
|
@@ -14947,14 +13471,14 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14947
13471
|
} finally {
|
|
14948
13472
|
if (seq === loadBox.seq) loading = false;
|
|
14949
13473
|
}
|
|
14950
|
-
}, "
|
|
13474
|
+
}, "m15", $scope0_id);
|
|
14951
13475
|
const setScope = _resume((next, persist = true) => {
|
|
14952
13476
|
if (next === scope) return;
|
|
14953
13477
|
scope = next;
|
|
14954
13478
|
if (persist) setDiffScope(next);
|
|
14955
13479
|
input.onScopeChange?.(next);
|
|
14956
13480
|
load(next);
|
|
14957
|
-
}, "
|
|
13481
|
+
}, "m16", $scope0_id);
|
|
14958
13482
|
const sendGate = { busy: 0 };
|
|
14959
13483
|
const loadReview = _resume(async () => {
|
|
14960
13484
|
if (sendGate.busy) return;
|
|
@@ -14963,15 +13487,15 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14963
13487
|
if (sendGate.busy) return;
|
|
14964
13488
|
comments = reviewData.comments || [];
|
|
14965
13489
|
} catch {}
|
|
14966
|
-
}, "
|
|
14967
|
-
const reload = _resume(() => load(scope, true), "
|
|
13490
|
+
}, "m17", $scope0_id);
|
|
13491
|
+
const reload = _resume(() => load(scope, true), "m18", $scope0_id);
|
|
14968
13492
|
const reloadSoon = _resume(() => {
|
|
14969
13493
|
if (headBox.timer) clearTimeout(headBox.timer);
|
|
14970
13494
|
headBox.timer = setTimeout(() => {
|
|
14971
13495
|
headBox.timer = 0;
|
|
14972
13496
|
reload();
|
|
14973
13497
|
}, 250);
|
|
14974
|
-
}, "
|
|
13498
|
+
}, "m19", $scope0_id);
|
|
14975
13499
|
const markSeen = _resume(() => {
|
|
14976
13500
|
if (!repos) return;
|
|
14977
13501
|
const heads = {};
|
|
@@ -14990,7 +13514,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14990
13514
|
}),
|
|
14991
13515
|
keepalive: true
|
|
14992
13516
|
}).catch(() => {});
|
|
14993
|
-
}, "
|
|
13517
|
+
}, "m20", $scope0_id);
|
|
14994
13518
|
const repoList = repos || [];
|
|
14995
13519
|
const allFiles = repoList.flatMap((r) => r.files.map((f) => ({
|
|
14996
13520
|
...f,
|
|
@@ -15013,7 +13537,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15013
13537
|
else map.set(f.repo, [f]);
|
|
15014
13538
|
}
|
|
15015
13539
|
return map;
|
|
15016
|
-
}, "
|
|
13540
|
+
}, "m21");
|
|
15017
13541
|
const filesByRepo = groupByRepo(allFiles);
|
|
15018
13542
|
const shownByRepo = groupByRepo(shownFiles);
|
|
15019
13543
|
const commentsByFile = (() => {
|
|
@@ -15032,7 +13556,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15032
13556
|
}));
|
|
15033
13557
|
const localDifferIds = new Set(repoList.filter((repo) => !!repo.pr && !!repo.localHead && (repo.localHead !== repo.head || repo.branch !== repo.pr.headRefName)).map((r) => r.id));
|
|
15034
13558
|
const hasFiles = !repos || allFiles.length > 0;
|
|
15035
|
-
const fileWorktree = _resume((repo) => repo.includes("#") ? repo.split("#")[0] : repo, "
|
|
13559
|
+
const fileWorktree = _resume((repo) => repo.includes("#") ? repo.split("#")[0] : repo, "m22");
|
|
15036
13560
|
const anchorFor = _resume((file, range) => {
|
|
15037
13561
|
const section = repoList.find((r) => r.id === file.repo);
|
|
15038
13562
|
const source = range.side === "deletions" ? file.old : file.new;
|
|
@@ -15040,7 +13564,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15040
13564
|
head: section?.head,
|
|
15041
13565
|
snippet: source == null ? void 0 : quoteRange(source, range.start, range.end, range.side === "deletions" ? "deletions" : "additions")
|
|
15042
13566
|
};
|
|
15043
|
-
}, "
|
|
13567
|
+
}, "m23", $scope0_id);
|
|
15044
13568
|
const saveComment = _resume(async (file, text) => {
|
|
15045
13569
|
const range = draft;
|
|
15046
13570
|
draft = null;
|
|
@@ -15064,16 +13588,16 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15064
13588
|
} catch (err) {
|
|
15065
13589
|
error = String(err.message || err);
|
|
15066
13590
|
}
|
|
15067
|
-
}, "
|
|
13591
|
+
}, "m24", $scope0_id);
|
|
15068
13592
|
const deleteRemote = _resume((ids) => ids === "all" ? fetch(`/api/workspaces/${input.workspaceId}/review`, {
|
|
15069
13593
|
method: "POST",
|
|
15070
13594
|
headers: { "content-type": "application/json" },
|
|
15071
13595
|
body: JSON.stringify({ action: "clear" })
|
|
15072
|
-
}) : Promise.all(ids.map((id) => fetch(`/api/workspaces/${input.workspaceId}/review/${id}`, { method: "DELETE" }))), "
|
|
13596
|
+
}) : Promise.all(ids.map((id) => fetch(`/api/workspaces/${input.workspaceId}/review/${id}`, { method: "DELETE" }))), "m25", $scope0_id);
|
|
15073
13597
|
const removeComment = _resume(async (id) => {
|
|
15074
13598
|
comments = comments.filter((c) => c.id !== id);
|
|
15075
13599
|
await deleteRemote([id]).catch(() => {});
|
|
15076
|
-
}, "
|
|
13600
|
+
}, "m26", $scope0_id);
|
|
15077
13601
|
const editComment = _resume(async (id, text) => {
|
|
15078
13602
|
const prev = comments.find((c) => c.id === id);
|
|
15079
13603
|
if (!prev) return;
|
|
@@ -15094,7 +13618,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15094
13618
|
error = String(err.message || err);
|
|
15095
13619
|
throw err;
|
|
15096
13620
|
}
|
|
15097
|
-
}, "
|
|
13621
|
+
}, "m27", $scope0_id);
|
|
15098
13622
|
const dispatch = _resume(async (list, to, consume) => {
|
|
15099
13623
|
if (!list.length) return true;
|
|
15100
13624
|
sendGate.busy++;
|
|
@@ -15130,13 +13654,13 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15130
13654
|
} finally {
|
|
15131
13655
|
sendGate.busy--;
|
|
15132
13656
|
}
|
|
15133
|
-
}, "
|
|
15134
|
-
const copyMarkdown = _resume(() => dispatch(comments, { clipboard: true }, "all"), "
|
|
15135
|
-
const sendTo = _resume((sessionId) => dispatch(comments, { session: sessionId }, "all"), "
|
|
13657
|
+
}, "m28", $scope0_id);
|
|
13658
|
+
const copyMarkdown = _resume(() => dispatch(comments, { clipboard: true }, "all"), "m29", $scope0_id);
|
|
13659
|
+
const sendTo = _resume((sessionId) => dispatch(comments, { session: sessionId }, "all"), "m30", $scope0_id);
|
|
15136
13660
|
const sendOneComment = _resume((id, sessionId) => {
|
|
15137
13661
|
const comment = comments.find((c) => c.id === id);
|
|
15138
13662
|
return comment ? dispatch([comment], { session: sessionId }, [id]) : Promise.resolve(false);
|
|
15139
|
-
}, "
|
|
13663
|
+
}, "m31", $scope0_id);
|
|
15140
13664
|
const sendDraftComment = _resume((file, text, sessionId) => {
|
|
15141
13665
|
const range = draft;
|
|
15142
13666
|
const trimmed = text.trim();
|
|
@@ -15154,12 +13678,12 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15154
13678
|
...anchorFor(file, range)
|
|
15155
13679
|
};
|
|
15156
13680
|
return dispatch([one], { session: sessionId }, []);
|
|
15157
|
-
}, "
|
|
13681
|
+
}, "m32", $scope0_id);
|
|
15158
13682
|
const openFind = _resume(() => {
|
|
15159
13683
|
findOpen = true;
|
|
15160
13684
|
findTick++;
|
|
15161
13685
|
((findFocus) => findFocus())(_hoist_read_error);
|
|
15162
|
-
}, "
|
|
13686
|
+
}, "m33", $scope0_id);
|
|
15163
13687
|
const onFindState = (next) => {
|
|
15164
13688
|
findState = next;
|
|
15165
13689
|
if (!next.hit) return;
|
|
@@ -15206,12 +13730,12 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15206
13730
|
openedRepos = /* @__PURE__ */ new Set([...openedRepos, id]);
|
|
15207
13731
|
collapsedRepos = /* @__PURE__ */ new Set([...collapsedRepos, id]);
|
|
15208
13732
|
}
|
|
15209
|
-
}, "
|
|
15210
|
-
_html(`<div${_attr_class("
|
|
13733
|
+
}, "m34", $scope0_id);
|
|
13734
|
+
_html(`<div${_attr_class("_eS")}><div${_attr_class("_eX")}><div${_attr_class("_eY")}><div${_attr_class(["_e8", { ["_e7"]: !comments.length }])}>`);
|
|
15211
13735
|
_if(() => {
|
|
15212
13736
|
if (input.onExit) {
|
|
15213
13737
|
const $scope1_id = _scope_id();
|
|
15214
|
-
_html(`<a${_attr("href", `/w/${input.workspaceId}`)}${_attr_class([iconBtnRow, "
|
|
13738
|
+
_html(`<a${_attr("href", `/w/${input.workspaceId}`)}${_attr_class([iconBtnRow, "_eZ"])} title="Back to terminal (⌘/Ctrl+Shift+D)">`);
|
|
15215
13739
|
icon_back_default({ size: 14 });
|
|
15216
13740
|
_html(`</a>${_el_resume($scope1_id, "a", _serialize_guard($scope0_reason, 1))}`);
|
|
15217
13741
|
_serialize_if($scope0_reason, 0) && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 1) && _scope_with_id($scope0_id) });
|
|
@@ -15222,7 +13746,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15222
13746
|
_if(() => {
|
|
15223
13747
|
if (comments.length) {
|
|
15224
13748
|
const $scope5_id = _scope_id();
|
|
15225
|
-
_html(`<span${_attr_class("
|
|
13749
|
+
_html(`<span${_attr_class("_e1")}>${_text_resume($scope5_id, "b", comments.length)} comment${_text_resume($scope5_id, "c", comments.length === 1 ? "" : "s", 2)}</span>`);
|
|
15226
13750
|
writeScope($scope5_id, {});
|
|
15227
13751
|
return 0;
|
|
15228
13752
|
}
|
|
@@ -15230,7 +13754,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15230
13754
|
_if(() => {
|
|
15231
13755
|
if (comments.length) {
|
|
15232
13756
|
const $scope2_id = _scope_id();
|
|
15233
|
-
_html(`<span${_attr_class("
|
|
13757
|
+
_html(`<span${_attr_class("_e0")}>`);
|
|
15234
13758
|
_set_serialize_reason(_serialize_guard($scope0_reason, 7));
|
|
15235
13759
|
const $childScope = _peek_scope_id();
|
|
15236
13760
|
diff_send_default({
|
|
@@ -15243,23 +13767,23 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15243
13767
|
return 0;
|
|
15244
13768
|
}
|
|
15245
13769
|
}, $scope0_id, "h", 1, 1, 1, 0, 1);
|
|
15246
|
-
_html(`</div>${_el_resume($scope0_id, "d")}<div${_attr_class("
|
|
13770
|
+
_html(`</div>${_el_resume($scope0_id, "d")}<div${_attr_class("_eW")}>`);
|
|
15247
13771
|
_if(() => {
|
|
15248
13772
|
if (hasFiles) {
|
|
15249
13773
|
const $scope12_id = _scope_id();
|
|
15250
13774
|
_html(`<button${_attr_class([
|
|
15251
13775
|
treeToggle,
|
|
15252
|
-
"
|
|
15253
|
-
{ ["
|
|
13776
|
+
"_eU",
|
|
13777
|
+
{ ["_eT"]: treeOpen }
|
|
15254
13778
|
])} title=${treeOpen ? "\"Hide file tree\"" : "\"Show file tree\""}>`);
|
|
15255
13779
|
icon_sidebar_default({ size: 14 });
|
|
15256
13780
|
_html(`</button>${_el_resume($scope12_id, "a")}`);
|
|
15257
|
-
_script($scope12_id, "
|
|
13781
|
+
_script($scope12_id, "m53");
|
|
15258
13782
|
writeScope($scope12_id, {});
|
|
15259
13783
|
return 0;
|
|
15260
13784
|
}
|
|
15261
13785
|
}, $scope0_id, "j", 1, 1, 1, 0, 1);
|
|
15262
|
-
_html(`<button${_attr_class([iconBtnRow, "
|
|
13786
|
+
_html(`<button${_attr_class([iconBtnRow, "_eU"])} title="Refresh diff"${_attr("disabled", loading)}>`);
|
|
15263
13787
|
_set_serialize_reason(1);
|
|
15264
13788
|
const $childScope2 = _peek_scope_id();
|
|
15265
13789
|
icon_refresh_default({
|
|
@@ -15270,19 +13794,19 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15270
13794
|
_if(() => {
|
|
15271
13795
|
if (hasFiles) {
|
|
15272
13796
|
const $scope13_id = _scope_id();
|
|
15273
|
-
_html(`<button${_attr_class(["_q", "
|
|
15274
|
-
_script($scope13_id, "
|
|
13797
|
+
_html(`<button${_attr_class(["_q", "_fg"])} title="Jump to file">Files (${_text_resume($scope13_id, "b", shownFiles.length, 2)})</button>${_el_resume($scope13_id, "a")}`);
|
|
13798
|
+
_script($scope13_id, "m54");
|
|
15275
13799
|
writeScope($scope13_id, {});
|
|
15276
13800
|
return 0;
|
|
15277
13801
|
}
|
|
15278
13802
|
}, $scope0_id, "m", 1, 1, 1, 0, 1);
|
|
15279
|
-
_html(`<span${_attr_class(["_o", "
|
|
13803
|
+
_html(`<span${_attr_class(["_o", "_e9"])}>`);
|
|
15280
13804
|
_attr_select_value($scope0_id, "o", scope, _resume(function(v) {
|
|
15281
13805
|
setScope(v);
|
|
15282
13806
|
}, "m0", $scope0_id), () => {
|
|
15283
|
-
_html(`<select${_attr_class(["_p", "
|
|
13807
|
+
_html(`<select${_attr_class(["_p", "_e_"])} aria-label="Review scope"${_attr("disabled", loading)}><option${_attr_option_value("committed")}>Committed</option><option${_attr_option_value("working")}>Working tree</option><option${_attr_option_value("dirty")}>Uncommitted</option></select>`);
|
|
15284
13808
|
});
|
|
15285
|
-
_html(`${_el_resume($scope0_id, "o")}</span><div${_attr_class(["
|
|
13809
|
+
_html(`${_el_resume($scope0_id, "o")}</span><div${_attr_class(["_e5", { ["_e4"]: !findOpen }])}>`);
|
|
15286
13810
|
_set_serialize_reason(2);
|
|
15287
13811
|
const $childScope3 = _peek_scope_id();
|
|
15288
13812
|
let findFocus = diff_find_default({
|
|
@@ -15291,37 +13815,37 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15291
13815
|
open: findOpen,
|
|
15292
13816
|
openChange: _resume((_new_findOpen) => {
|
|
15293
13817
|
findOpen = _new_findOpen;
|
|
15294
|
-
}, "
|
|
13818
|
+
}, "m35", $scope0_id),
|
|
15295
13819
|
stateChange: function(s) {
|
|
15296
13820
|
onFindState(s);
|
|
15297
13821
|
}
|
|
15298
13822
|
});
|
|
15299
|
-
_var($scope0_id, "r", $childScope3, "
|
|
13823
|
+
_var($scope0_id, "r", $childScope3, "m55");
|
|
15300
13824
|
_html(`</div>${_el_resume($scope0_id, "p")}`);
|
|
15301
13825
|
_if(() => {
|
|
15302
13826
|
if (hasFiles) {
|
|
15303
13827
|
const $scope14_id = _scope_id();
|
|
15304
13828
|
_html(`<button${_attr_class([
|
|
15305
13829
|
iconBtnRow,
|
|
15306
|
-
"
|
|
15307
|
-
"
|
|
13830
|
+
"_e3",
|
|
13831
|
+
"_eU"
|
|
15308
13832
|
])} title="Find in review (⌘/Ctrl+F)" aria-label="Find in review"${_attr("hidden", findOpen)}>`);
|
|
15309
13833
|
icon_search_default({ size: 14 });
|
|
15310
13834
|
_html(`</button>${_el_resume($scope14_id, "a")}`);
|
|
15311
|
-
_script($scope14_id, "
|
|
13835
|
+
_script($scope14_id, "m56");
|
|
15312
13836
|
writeScope($scope14_id, {});
|
|
15313
13837
|
return 0;
|
|
15314
13838
|
}
|
|
15315
13839
|
}, $scope0_id, "s", 1, 1, 1, 0, 1);
|
|
15316
|
-
_html(`</div></div><div${_attr_class("
|
|
13840
|
+
_html(`</div></div><div${_attr_class("_e6")} data-diff-main>`);
|
|
15317
13841
|
_if(() => {
|
|
15318
13842
|
if (error) {
|
|
15319
13843
|
const $scope6_id = _scope_id();
|
|
15320
13844
|
toast_default({
|
|
15321
13845
|
onDismiss: _resume(function() {
|
|
15322
13846
|
error = null;
|
|
15323
|
-
}, "
|
|
15324
|
-
content: _content("
|
|
13847
|
+
}, "m36", $scope6_id),
|
|
13848
|
+
content: _content("m57", () => {
|
|
15325
13849
|
_scope_reason();
|
|
15326
13850
|
const $scope7_id = _scope_id();
|
|
15327
13851
|
_html(_text_resume($scope7_id, "a", error));
|
|
@@ -15336,7 +13860,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15336
13860
|
_if(() => {
|
|
15337
13861
|
if (!repos && loading) {
|
|
15338
13862
|
const $scope15_id = _scope_id();
|
|
15339
|
-
_html(`<div${_attr_class("
|
|
13863
|
+
_html(`<div${_attr_class("_fb")} aria-hidden=true><div${_attr_class(["_fc", "_fd"])}></div><div${_attr_class(["_fc", "_fe"])}></div><div${_attr_class(["_fc", "_ff"])}></div><div${_attr_class(["_fc", "_fe"])}></div><div${_attr_class(["_fc", "_ff"])}></div></div>`);
|
|
15340
13864
|
writeScope($scope15_id, {});
|
|
15341
13865
|
return 0;
|
|
15342
13866
|
}
|
|
@@ -15350,7 +13874,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15350
13874
|
kind: "warn",
|
|
15351
13875
|
placement: "inline",
|
|
15352
13876
|
title: `${repo.worktree}: base not found`,
|
|
15353
|
-
content: _content("
|
|
13877
|
+
content: _content("m58", () => {
|
|
15354
13878
|
_scope_reason();
|
|
15355
13879
|
const $scope10_id = _scope_id();
|
|
15356
13880
|
_html(`${_text_resume($scope10_id, "a", repo.base)}${_text_resume($scope10_id, "b", scope !== "committed" ? ", showing uncommitted changes only" : "", 2)}.`);
|
|
@@ -15394,14 +13918,14 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15394
13918
|
opened: openedRepos.has(repo.id),
|
|
15395
13919
|
onToggle: _resume(function() {
|
|
15396
13920
|
toggleSection(repo.id);
|
|
15397
|
-
}, "
|
|
13921
|
+
}, "m37", $scope4_id),
|
|
15398
13922
|
workspaceBranch: input.workspaceBranch || "",
|
|
15399
13923
|
workspaceName: input.workspaceName || "",
|
|
15400
13924
|
localDiffers: localDifferIds.has(repo.id),
|
|
15401
13925
|
onlyNew,
|
|
15402
13926
|
onToggleNew: _resume(function() {
|
|
15403
13927
|
onlyNew = !onlyNew;
|
|
15404
|
-
}, "
|
|
13928
|
+
}, "m38", $scope4_id),
|
|
15405
13929
|
onReload: reload,
|
|
15406
13930
|
loading,
|
|
15407
13931
|
findHit: findState.hit,
|
|
@@ -15412,7 +13936,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15412
13936
|
collapsedFiles,
|
|
15413
13937
|
onFileToggle: _resume(function(key, open) {
|
|
15414
13938
|
setFilesCollapsed([key], !open);
|
|
15415
|
-
}, "
|
|
13939
|
+
}, "m39", $scope4_id),
|
|
15416
13940
|
onSelect: _resume(function(file, range) {
|
|
15417
13941
|
draft = {
|
|
15418
13942
|
key: file.key,
|
|
@@ -15420,28 +13944,28 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15420
13944
|
start: Math.min(range.start, range.end),
|
|
15421
13945
|
end: Math.max(range.start, range.end)
|
|
15422
13946
|
};
|
|
15423
|
-
}, "
|
|
13947
|
+
}, "m40", $scope4_id),
|
|
15424
13948
|
onSaveComment: _resume(function(file, text) {
|
|
15425
13949
|
saveComment(file, text);
|
|
15426
|
-
}, "
|
|
13950
|
+
}, "m41", $scope4_id),
|
|
15427
13951
|
onSendDraft: _resume(function(file, text, sessionId) {
|
|
15428
13952
|
return sendDraftComment(file, text, sessionId);
|
|
15429
|
-
}, "
|
|
13953
|
+
}, "m42", $scope4_id),
|
|
15430
13954
|
onCancelDraft: _resume(function() {
|
|
15431
13955
|
draft = null;
|
|
15432
|
-
}, "
|
|
13956
|
+
}, "m43", $scope4_id),
|
|
15433
13957
|
onDeleteComment: _resume(function(id) {
|
|
15434
13958
|
removeComment(id);
|
|
15435
|
-
}, "
|
|
13959
|
+
}, "m44", $scope4_id),
|
|
15436
13960
|
onEditComment: _resume(function(id, text) {
|
|
15437
13961
|
editComment(id, text);
|
|
15438
|
-
}, "
|
|
13962
|
+
}, "m45", $scope4_id),
|
|
15439
13963
|
onSendComment: _resume(function(id, sessionId) {
|
|
15440
13964
|
return sendOneComment(id, sessionId);
|
|
15441
|
-
}, "
|
|
13965
|
+
}, "m46", $scope4_id),
|
|
15442
13966
|
onError: _resume(function(message) {
|
|
15443
13967
|
error = message;
|
|
15444
|
-
}, "
|
|
13968
|
+
}, "m47", $scope4_id)
|
|
15445
13969
|
});
|
|
15446
13970
|
_subscribe($toggleSection2__closures, _subscribe($sendDraftComment2__closures, _subscribe($sendOneComment2__closures, _subscribe($editComment2__closures, _subscribe($removeComment2__closures, _subscribe($saveComment2__closures, _subscribe($localDifferIds__closures, _subscribe($commentsByFile__closures, _subscribe($shownKeySet__closures, _subscribe($repoList_length__closures, _subscribe($reload2__closures, _subscribe($expandingRepos__closures, _subscribe($openedRepos__closures, _subscribe($setFilesCollapsed2__closures, _subscribe($collapsedFiles__closures, _subscribe($collapsedRepos__closures, _subscribe($findState_hit__closures, _subscribe($onlyNew__closures, _subscribe($loading__closures, _subscribe($draft__closures, _subscribe($si__input_workspaceName && $input_workspaceName__closures, _subscribe($si__input_workspaceBranch && $input_workspaceBranch__closures, _subscribe($si__input_sessions && $input_sessions__closures, writeScope($scope4_id, { a: _existing_scope($childScope5) }))))))))))))))))))))))));
|
|
15447
13971
|
return 0;
|
|
@@ -15463,17 +13987,17 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15463
13987
|
collapsedRepos,
|
|
15464
13988
|
collapsedReposChange: _resume((_new_collapsedRepos) => {
|
|
15465
13989
|
collapsedRepos = _new_collapsedRepos;
|
|
15466
|
-
}, "
|
|
13990
|
+
}, "m48", $scope0_id),
|
|
15467
13991
|
openedRepos,
|
|
15468
13992
|
openedReposChange: _resume((_new_openedRepos) => {
|
|
15469
13993
|
openedRepos = _new_openedRepos;
|
|
15470
|
-
}, "
|
|
13994
|
+
}, "m49", $scope0_id),
|
|
15471
13995
|
commentKeys,
|
|
15472
13996
|
newKeys,
|
|
15473
13997
|
collapsedFiles,
|
|
15474
13998
|
onDirToggle: _resume(function(keys, collapsed) {
|
|
15475
13999
|
setFilesCollapsed(keys, collapsed);
|
|
15476
|
-
}, "
|
|
14000
|
+
}, "m50", $scope0_id),
|
|
15477
14001
|
workspaceId: input.workspaceId,
|
|
15478
14002
|
scope
|
|
15479
14003
|
});
|
|
@@ -15483,7 +14007,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15483
14007
|
open: fileSheet,
|
|
15484
14008
|
openChange: _resume((_new_fileSheet) => {
|
|
15485
14009
|
fileSheet = _new_fileSheet;
|
|
15486
|
-
}, "
|
|
14010
|
+
}, "m51", $scope0_id),
|
|
15487
14011
|
files: shownFiles,
|
|
15488
14012
|
filter: fileFilter,
|
|
15489
14013
|
filterChange: $filterChange,
|
|
@@ -15495,10 +14019,10 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15495
14019
|
});
|
|
15496
14020
|
_html("</div>");
|
|
15497
14021
|
const $return = $findFocus_getter;
|
|
15498
|
-
_script($scope0_id, "m58");
|
|
15499
14022
|
_script($scope0_id, "m59");
|
|
15500
14023
|
_script($scope0_id, "m60");
|
|
15501
14024
|
_script($scope0_id, "m61");
|
|
14025
|
+
_script($scope0_id, "m62");
|
|
15502
14026
|
writeScope($scope0_id, {
|
|
15503
14027
|
a3: input.workspaceId,
|
|
15504
14028
|
a4: input.scope,
|
|
@@ -15541,85 +14065,86 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15541
14065
|
bk: nearBox.io,
|
|
15542
14066
|
bl: nearBox.root,
|
|
15543
14067
|
bn: observeNear,
|
|
15544
|
-
|
|
15545
|
-
|
|
15546
|
-
br:
|
|
15547
|
-
|
|
15548
|
-
|
|
15549
|
-
|
|
15550
|
-
|
|
15551
|
-
|
|
15552
|
-
|
|
15553
|
-
c3:
|
|
15554
|
-
|
|
15555
|
-
c6:
|
|
15556
|
-
c7:
|
|
15557
|
-
|
|
15558
|
-
ca: headBox.
|
|
15559
|
-
|
|
15560
|
-
|
|
15561
|
-
|
|
15562
|
-
|
|
15563
|
-
|
|
15564
|
-
cn:
|
|
15565
|
-
|
|
15566
|
-
cq:
|
|
15567
|
-
|
|
15568
|
-
ct: repoList
|
|
15569
|
-
cu:
|
|
15570
|
-
|
|
15571
|
-
cx:
|
|
15572
|
-
cy:
|
|
15573
|
-
|
|
15574
|
-
|
|
15575
|
-
|
|
15576
|
-
|
|
15577
|
-
|
|
15578
|
-
|
|
15579
|
-
df:
|
|
15580
|
-
dg:
|
|
15581
|
-
dh:
|
|
15582
|
-
|
|
15583
|
-
dk:
|
|
15584
|
-
|
|
15585
|
-
do:
|
|
15586
|
-
dp:
|
|
15587
|
-
|
|
15588
|
-
dt:
|
|
15589
|
-
du:
|
|
15590
|
-
dv:
|
|
15591
|
-
dw:
|
|
15592
|
-
|
|
15593
|
-
e0:
|
|
14068
|
+
bp: posBox.run,
|
|
14069
|
+
bq: posBox.raf,
|
|
14070
|
+
br: posBox.anchor,
|
|
14071
|
+
bt: pinToTop,
|
|
14072
|
+
bu: cancelRestore,
|
|
14073
|
+
bv: retryFrames,
|
|
14074
|
+
bx: focusPrSection,
|
|
14075
|
+
by: findFile,
|
|
14076
|
+
c0: openFile,
|
|
14077
|
+
c3: jumpTo,
|
|
14078
|
+
c4: anchorAt,
|
|
14079
|
+
c6: noteScroll,
|
|
14080
|
+
c7: savePos,
|
|
14081
|
+
c8: restorePos,
|
|
14082
|
+
ca: headBox.sig,
|
|
14083
|
+
cb: headBox.timer,
|
|
14084
|
+
cd: loadBox.seq,
|
|
14085
|
+
cf: load,
|
|
14086
|
+
ci: setScope,
|
|
14087
|
+
cl: sendGate.busy,
|
|
14088
|
+
cn: loadReview,
|
|
14089
|
+
co: reload,
|
|
14090
|
+
cq: reloadSoon,
|
|
14091
|
+
cr: markSeen,
|
|
14092
|
+
ct: repoList,
|
|
14093
|
+
cu: repoList.length,
|
|
14094
|
+
cv: allFiles,
|
|
14095
|
+
cx: allFiles?.length,
|
|
14096
|
+
cy: fileFiltered,
|
|
14097
|
+
cz: findKeys,
|
|
14098
|
+
d2: shownFiles?.length,
|
|
14099
|
+
d4: shownKeySet,
|
|
14100
|
+
d6: groupByRepo,
|
|
14101
|
+
d9: filesByRepo,
|
|
14102
|
+
dc: commentsByFile,
|
|
14103
|
+
df: localDifferIds,
|
|
14104
|
+
dg: hasFiles,
|
|
14105
|
+
dh: fileWorktree,
|
|
14106
|
+
di: anchorFor,
|
|
14107
|
+
dk: saveComment,
|
|
14108
|
+
dl: deleteRemote,
|
|
14109
|
+
do: removeComment,
|
|
14110
|
+
dp: editComment,
|
|
14111
|
+
dq: dispatch,
|
|
14112
|
+
dt: copyMarkdown,
|
|
14113
|
+
du: sendTo,
|
|
14114
|
+
dv: sendOneComment,
|
|
14115
|
+
dw: sendDraftComment,
|
|
14116
|
+
dx: openFind,
|
|
14117
|
+
e0: toggleSection,
|
|
14118
|
+
e1: findFocus,
|
|
15594
14119
|
b4: input.findOpenChange || void 0,
|
|
15595
14120
|
b6: input.findTickChange || void 0,
|
|
15596
14121
|
l: _existing_scope($childScope2),
|
|
15597
14122
|
q: _existing_scope($childScope3),
|
|
15598
|
-
|
|
15599
|
-
|
|
15600
|
-
|
|
15601
|
-
|
|
15602
|
-
|
|
15603
|
-
|
|
15604
|
-
|
|
15605
|
-
|
|
15606
|
-
|
|
15607
|
-
|
|
15608
|
-
|
|
15609
|
-
|
|
15610
|
-
|
|
15611
|
-
|
|
15612
|
-
|
|
15613
|
-
|
|
15614
|
-
|
|
15615
|
-
|
|
15616
|
-
|
|
15617
|
-
|
|
15618
|
-
|
|
15619
|
-
|
|
15620
|
-
|
|
15621
|
-
|
|
15622
|
-
|
|
14123
|
+
e8: $error__closures,
|
|
14124
|
+
ec: $scope__closures,
|
|
14125
|
+
e3: $si__input_sessions && $input_sessions__closures,
|
|
14126
|
+
e4: $si__input_workspaceBranch && $input_workspaceBranch__closures,
|
|
14127
|
+
e5: $si__input_workspaceName && $input_workspaceName__closures,
|
|
14128
|
+
e7: $draft__closures,
|
|
14129
|
+
e9: $loading__closures,
|
|
14130
|
+
eb: $onlyNew__closures,
|
|
14131
|
+
eg: $findState_hit__closures,
|
|
14132
|
+
eh: $collapsedRepos__closures,
|
|
14133
|
+
ei: $collapsedFiles__closures,
|
|
14134
|
+
ej: $setFilesCollapsed2__closures,
|
|
14135
|
+
ek: $openedRepos__closures,
|
|
14136
|
+
el: $expandingRepos__closures,
|
|
14137
|
+
en: $reload2__closures,
|
|
14138
|
+
ep: $repoList_length__closures,
|
|
14139
|
+
er: $shownKeySet__closures,
|
|
14140
|
+
et: $commentsByFile__closures,
|
|
14141
|
+
eu: $localDifferIds__closures,
|
|
14142
|
+
ew: $saveComment2__closures,
|
|
14143
|
+
ex: $removeComment2__closures,
|
|
14144
|
+
ey: $editComment2__closures,
|
|
14145
|
+
f1: $sendOneComment2__closures,
|
|
14146
|
+
f2: $sendDraftComment2__closures,
|
|
14147
|
+
f3: $toggleSection2__closures,
|
|
15623
14148
|
z: _existing_scope($childScope6),
|
|
15624
14149
|
a0: _existing_scope($childScope7)
|
|
15625
14150
|
});
|
|
@@ -15738,12 +14263,12 @@ function parseInvite(text) {
|
|
|
15738
14263
|
}
|
|
15739
14264
|
//#endregion
|
|
15740
14265
|
//#region src/tags/manage-workspace.css.ts
|
|
15741
|
-
var pageMeta = "
|
|
15742
|
-
var pathMeta = "
|
|
15743
|
-
var skillRow = "
|
|
15744
|
-
var skillName = "
|
|
15745
|
-
var skillDesc = "
|
|
15746
|
-
var skillEnd = "
|
|
14266
|
+
var pageMeta = "_ez _dZ";
|
|
14267
|
+
var pathMeta = "_eC _y";
|
|
14268
|
+
var skillRow = "_eI _eD";
|
|
14269
|
+
var skillName = "_eK _eE";
|
|
14270
|
+
var skillDesc = "_eN _eF";
|
|
14271
|
+
var skillEnd = "_eO _eG";
|
|
15747
14272
|
//#endregion
|
|
15748
14273
|
//#region src/tags/icons/icon-clipboard.marko
|
|
15749
14274
|
var icon_clipboard_default = _template("Y", (input) => {
|
|
@@ -15761,8 +14286,8 @@ var icon_clipboard_default = _template("Y", (input) => {
|
|
|
15761
14286
|
});
|
|
15762
14287
|
_serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
|
|
15763
14288
|
});
|
|
15764
|
-
var resultRow = "
|
|
15765
|
-
var resultBranch = "
|
|
14289
|
+
var resultRow = "_gV _I";
|
|
14290
|
+
var resultBranch = "_gX _4 _l";
|
|
15766
14291
|
//#endregion
|
|
15767
14292
|
//#region src/tags/icons/icon-branch.marko
|
|
15768
14293
|
var icon_branch_default = _template("U", (input) => {
|
|
@@ -15792,7 +14317,7 @@ var branch_pick_default = _template("d", (input) => {
|
|
|
15792
14317
|
let branchFilter = "";
|
|
15793
14318
|
let reloadTick = 0;
|
|
15794
14319
|
let refreshing = false;
|
|
15795
|
-
_html(`<div${_attr_class("
|
|
14320
|
+
_html(`<div${_attr_class("_gZ")}>`);
|
|
15796
14321
|
_if(() => {
|
|
15797
14322
|
{
|
|
15798
14323
|
const $scope4_id = _scope_id();
|
|
@@ -15897,21 +14422,21 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
15897
14422
|
_resume_branch($scope9_id);
|
|
15898
14423
|
}, $scope0_id) };
|
|
15899
14424
|
const hasBody = !!(pasted || results.length || filter && (!catalog || !pasted) || compact && ssoPending.length);
|
|
15900
|
-
_html(`<div${_attr_class([compact ? "
|
|
15901
|
-
["
|
|
15902
|
-
["
|
|
14425
|
+
_html(`<div${_attr_class([compact ? "_fo" : "_gN", {
|
|
14426
|
+
["_fp"]: compact && !input$2.open,
|
|
14427
|
+
["_fq"]: input$2.pinned
|
|
15903
14428
|
}])}>`);
|
|
15904
14429
|
_if(() => {
|
|
15905
14430
|
if (!compact && ssoPending.length) {
|
|
15906
14431
|
const $scope11_id = _scope_id();
|
|
15907
|
-
_html(`<div${_attr_class("
|
|
14432
|
+
_html(`<div${_attr_class("_gQ")}>`);
|
|
15908
14433
|
ssoBlock.content({});
|
|
15909
14434
|
_html("</div>");
|
|
15910
14435
|
writeScope($scope11_id, {});
|
|
15911
14436
|
return 0;
|
|
15912
14437
|
}
|
|
15913
14438
|
}, $scope0_id, "b", 1, 1, 1, 0, 1);
|
|
15914
|
-
_html(`<div${!compact && input$2.action ? _attr_class("
|
|
14439
|
+
_html(`<div${!compact && input$2.action ? _attr_class("_gO") : _attr_class("_gP")}><label${_attr_class(["_1", compact && "_fr"])}>`);
|
|
15915
14440
|
icon_search_default({
|
|
15916
14441
|
size: 14,
|
|
15917
14442
|
class: "_2"
|
|
@@ -15923,7 +14448,7 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
15923
14448
|
}, "w0", $scope0_id))}${_attr_class([
|
|
15924
14449
|
compact ? "_Z" : inputLg,
|
|
15925
14450
|
"_3",
|
|
15926
|
-
compact && "
|
|
14451
|
+
compact && "_fs"
|
|
15927
14452
|
])} placeholder="Add a repo…" aria-label="Add a repo"${_attr("disabled", input$2.disabled)}>${_el_resume($scope0_id, "f")}</label>${_el_resume($scope0_id, "d", $sg__input_compact)}`);
|
|
15928
14453
|
_if(() => {
|
|
15929
14454
|
if (!compact && input$2.action) {
|
|
@@ -15937,7 +14462,7 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
15937
14462
|
_if(() => {
|
|
15938
14463
|
if (compact) {
|
|
15939
14464
|
const $scope2_id = _scope_id();
|
|
15940
|
-
_html(`<button${_attr_class([iconBtnRow, "
|
|
14465
|
+
_html(`<button${_attr_class([iconBtnRow, "_ft"])} type=button title="Close search" aria-label="Close search"${_attr("hidden", !input$2.open)}>`);
|
|
15941
14466
|
icon_xmark_default({ size: 14 });
|
|
15942
14467
|
_html(`</button>${_el_resume($scope2_id, "a")}`);
|
|
15943
14468
|
_script($scope2_id, "w14");
|
|
@@ -15945,11 +14470,11 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
15945
14470
|
return 0;
|
|
15946
14471
|
}
|
|
15947
14472
|
}, $scope0_id, "h", _serialize_guard($scope0_reason, 0), $sg__input_compact, 1, 0, 1);
|
|
15948
|
-
_html(`<div${_attr_class([compact ? pop$1 : "
|
|
14473
|
+
_html(`<div${_attr_class([compact ? pop$1 : "_gR"])}${_attr("hidden", !hasBody || compact && !input$2.open && !input$2.pinned)}>`);
|
|
15949
14474
|
_if(() => {
|
|
15950
14475
|
if (compact && ssoPending.length) {
|
|
15951
14476
|
const $scope12_id = _scope_id();
|
|
15952
|
-
_html(`<div${_attr_class("
|
|
14477
|
+
_html(`<div${_attr_class("_gQ")}>`);
|
|
15953
14478
|
ssoBlock.content({});
|
|
15954
14479
|
_html("</div>");
|
|
15955
14480
|
writeScope($scope12_id, {});
|
|
@@ -15959,16 +14484,16 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
15959
14484
|
_if(() => {
|
|
15960
14485
|
if (pasted) {
|
|
15961
14486
|
const $scope3_id = _scope_id();
|
|
15962
|
-
_html(`<ul${_attr_class("
|
|
14487
|
+
_html(`<ul${_attr_class("_gS")}><li><div${_attr_class(["_gU", "_gT"])}><button${_attr_class(resultRow)}${pasteWillFork ? _attr("title", `Fork ${pasted} to your account and add the fork`) : _attr("title", `Add ${pasted} as-is (pushes go to that repo)`)}>`);
|
|
15963
14488
|
icon_plus_default({
|
|
15964
14489
|
size: 12,
|
|
15965
|
-
class: "
|
|
14490
|
+
class: "_g1"
|
|
15966
14491
|
});
|
|
15967
|
-
_html(`<span${_attr_class("
|
|
14492
|
+
_html(`<span${_attr_class("_g2")}>${_text_resume($scope3_id, "f", repoLabel(pasted))}</span></button>${_el_resume($scope3_id, "c")}`);
|
|
15968
14493
|
_if(() => {
|
|
15969
14494
|
if (pastedForkable) {
|
|
15970
14495
|
const $scope10_id = _scope_id();
|
|
15971
|
-
_html(`<button${_attr_class(["
|
|
14496
|
+
_html(`<button${_attr_class(["_gY", { ["_gW"]: pasteWillFork }])}${pasteWillFork ? " title=\"Will fork to your account; click to clone as-is instead\"" : _attr("title", `Fork ${pasted} to your account and clone the fork`)} aria-pressed=${pasteWillFork ? "true" : "false"}>`);
|
|
15972
14497
|
_if(() => {
|
|
15973
14498
|
if (pasteWillFork) {
|
|
15974
14499
|
const $scope14_id = _scope_id();
|
|
@@ -15988,7 +14513,7 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
15988
14513
|
return 0;
|
|
15989
14514
|
}
|
|
15990
14515
|
}, $scope3_id, "g", 1, 1, 1, 0, 1);
|
|
15991
|
-
_html(`<button${_attr_class([resultBranch, { ["
|
|
14516
|
+
_html(`<button${_attr_class([resultBranch, { ["_gW"]: branchesFor === pasted }])}${_attr("title", `Pick a base branch for ${pasted}`)}${_attr("aria-label", `Pick a base branch for ${pasted}`)}>`);
|
|
15992
14517
|
icon_branch_default({ size: 12 });
|
|
15993
14518
|
_html(`</button>${_el_resume($scope3_id, "h")}</div>`);
|
|
15994
14519
|
_if(() => {
|
|
@@ -16023,15 +14548,15 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
16023
14548
|
_if(() => {
|
|
16024
14549
|
if (results.length) {
|
|
16025
14550
|
const $scope5_id = _scope_id();
|
|
16026
|
-
_html(`<ul${_attr_class("
|
|
14551
|
+
_html(`<ul${_attr_class("_gS")}>`);
|
|
16027
14552
|
_for_of(results, (repo, i) => {
|
|
16028
14553
|
const $scope6_id = _scope_id();
|
|
16029
|
-
_html(`<li><div${_attr_class(["
|
|
14554
|
+
_html(`<li><div${_attr_class(["_gU", { ["_gT"]: i === highlight }])}><button${_attr_class(resultRow)}>`);
|
|
16030
14555
|
icon_plus_default({
|
|
16031
14556
|
size: 12,
|
|
16032
|
-
class: "
|
|
14557
|
+
class: "_g1"
|
|
16033
14558
|
});
|
|
16034
|
-
_html(`<span${_attr_class("
|
|
14559
|
+
_html(`<span${_attr_class("_g2")}>${_text_resume($scope6_id, "e", repoLabel(repo.nameWithOwner))}</span></button>${_el_resume($scope6_id, "b")}<button${_attr_class([resultBranch, { ["_gW"]: branchesFor === repo.nameWithOwner }])}${_attr("title", `Pick a base branch for ${repo.nameWithOwner}`)}${_attr("aria-label", `Pick a base branch for ${repo.nameWithOwner}`)}>`);
|
|
16035
14560
|
icon_branch_default({ size: 12 });
|
|
16036
14561
|
_html(`</button>${_el_resume($scope6_id, "f")}</div>${_el_resume($scope6_id, "a")}`);
|
|
16037
14562
|
_if(() => {
|
|
@@ -16286,7 +14811,7 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16286
14811
|
setTimeout(() => loadProcs(void 0), 500);
|
|
16287
14812
|
}, "r10", $scope0_id);
|
|
16288
14813
|
const titleId = _id();
|
|
16289
|
-
_html(`<div${_attr_class("
|
|
14814
|
+
_html(`<div${_attr_class("_dT")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_dU")}><div${_attr_class("_dV")}>`);
|
|
16290
14815
|
_set_serialize_reason(30);
|
|
16291
14816
|
const $childScope = _peek_scope_id();
|
|
16292
14817
|
page_head_default({
|
|
@@ -16299,7 +14824,7 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16299
14824
|
meta: attrTag({ content: _content("r20", () => {
|
|
16300
14825
|
_scope_reason();
|
|
16301
14826
|
const $scope13_id = _scope_id();
|
|
16302
|
-
_html(`<span${_attr_class(pageMeta)}${_attr("title", ws.display_path || ws.path)}><span${_attr_class("
|
|
14827
|
+
_html(`<span${_attr_class(pageMeta)}${_attr("title", ws.display_path || ws.path)}><span${_attr_class("_eA")}>${_text_resume($scope13_id, "c", ws.name)}</span>`);
|
|
16303
14828
|
_if(() => {
|
|
16304
14829
|
if (ws.status !== "active") {
|
|
16305
14830
|
const $scope17_id = _scope_id();
|
|
@@ -16308,7 +14833,7 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16308
14833
|
return 0;
|
|
16309
14834
|
}
|
|
16310
14835
|
}, $scope13_id, "d", 1, 1, 1, 0, 1);
|
|
16311
|
-
_html(`<span${_attr_class("
|
|
14836
|
+
_html(`<span${_attr_class("_eB")} aria-hidden=true>·</span><span${_attr_class(pathMeta)}>${_text_resume($scope13_id, "g", ws.display_path || ws.path)}</span></span>${_el_resume($scope13_id, "a")}`);
|
|
16312
14837
|
_subscribe($ws_status__closures, _subscribe($ws_path__closures, _subscribe($ws_display_path__closures, _subscribe($ws_name__closures, writeScope($scope13_id, {
|
|
16313
14838
|
_: _scope_with_id($scope0_id),
|
|
16314
14839
|
Ccf: 1
|
|
@@ -16393,7 +14918,7 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16393
14918
|
return 0;
|
|
16394
14919
|
}
|
|
16395
14920
|
}, $scope0_id, "f", 1, 1, 1, 0, 1);
|
|
16396
|
-
_html(`<section${_attr_class("_cf")}><div${_attr_class("_cg")}><h2${_attr_class("_ct")}>Repos</h2><span${_attr_class(sectionCount)}>${_text_resume($scope0_id, "k", ws.repos.length)}</span><div${_attr_class("_z")}></div><button${_attr_class([iconBtnRow, "
|
|
14921
|
+
_html(`<section${_attr_class("_cf")}><div${_attr_class("_cg")}><h2${_attr_class("_ct")}>Repos</h2><span${_attr_class(sectionCount)}>${_text_resume($scope0_id, "k", ws.repos.length)}</span><div${_attr_class("_z")}></div><button${_attr_class([iconBtnRow, "_eR"])} title="Add repo" aria-label="Add repo"${_attr("hidden", addingRepo)}>`);
|
|
16397
14922
|
icon_plus_default({ size: 16 });
|
|
16398
14923
|
_html(`</button>${_el_resume($scope0_id, "m")}`);
|
|
16399
14924
|
_set_serialize_reason(26);
|
|
@@ -16509,14 +15034,14 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16509
15034
|
_for_of(allSkills, ({ s, linked }) => {
|
|
16510
15035
|
const $scope3_id = _scope_id();
|
|
16511
15036
|
const isBusy = skillBusy.has(s.id);
|
|
16512
|
-
_html(`<li${_attr_class([skillRow, { ["
|
|
15037
|
+
_html(`<li${_attr_class([skillRow, { ["_eJ"]: !linked }])}><span${_attr_class("_eL")}><span${_attr_class(["_y", skillName])}>${_text_resume($scope3_id, "d", s.name)}</span>`);
|
|
16513
15038
|
_if(() => {
|
|
16514
15039
|
if (s.worktree && !s.broken) {
|
|
16515
15040
|
const $scope26_id = _scope_id();
|
|
16516
15041
|
_html(`<span${_attr_class([
|
|
16517
15042
|
"_N",
|
|
16518
15043
|
"_y",
|
|
16519
|
-
"
|
|
15044
|
+
"_eM"
|
|
16520
15045
|
])}${linked ? _attr("title", `Linked from ${s.worktree}/ in this workspace`) : _attr("title", `Ships in ${s.worktree}/ — not linked into this workspace yet`)}>${_text_resume($scope26_id, "b", s.worktree)}/</span>${_el_resume($scope26_id, "a")}`);
|
|
16521
15046
|
writeScope($scope26_id, {});
|
|
16522
15047
|
return 0;
|
|
@@ -16571,7 +15096,7 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16571
15096
|
"_cp",
|
|
16572
15097
|
"_8",
|
|
16573
15098
|
"_9",
|
|
16574
|
-
"
|
|
15099
|
+
"_eP",
|
|
16575
15100
|
{ ["_s"]: confirmingSkill === s.id }
|
|
16576
15101
|
])} type=button${_attr("disabled", isBusy)}${isBusy ? " aria-busy=true" : ""}${confirmingSkill === s.id ? _attr("title", `Remove ${s.name} from this workspace?`) : s.linked ? _attr("title", `Stop using ${s.name} here`) : _attr("title", `Remove ${s.name}`)}>`);
|
|
16577
15102
|
_if(() => {
|
|
@@ -16624,17 +15149,17 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16624
15149
|
_html(`<section${_attr_class("_cf")}><div${_attr_class("_cg")}><h2${_attr_class("_ct")}>Running</h2><span${_attr_class(sectionCount)}>${_text_resume($scope15_id, "e", running.length)}</span></div><ul${_attr_class(list$2)}>`);
|
|
16625
15150
|
_for_of(running, (p) => {
|
|
16626
15151
|
const $scope16_id = _scope_id();
|
|
16627
|
-
_html(`<li${_attr_class("
|
|
15152
|
+
_html(`<li${_attr_class("_eD")}${_attr("title", `${p.cmd} ${p.args}`.trim())}><span${_attr_class(["_y", "_eE"])}>${_text_resume($scope16_id, "c", p.cmd)}</span><span${_attr_class(["_y", "_eF"])}>${_text_resume($scope16_id, "e", p.args)}</span><span${_attr_class("_eG")}>`);
|
|
16628
15153
|
_for_of(p.ports, (port) => {
|
|
16629
15154
|
const $scope34_id = _scope_id();
|
|
16630
15155
|
_html(`<button${_attr_class(["_u", "_K"])}${_attr("title", `Open port ${port}`)}>:${_text_resume($scope34_id, "b", port, 2)}</button>${_el_resume($scope34_id, "a")}`);
|
|
16631
15156
|
_script($scope34_id, "r27");
|
|
16632
15157
|
writeScope($scope34_id, { d: port });
|
|
16633
15158
|
}, (x) => String(x), $scope16_id, "g", 1, 1, 1, 0, 1);
|
|
16634
|
-
_html(`<span${_attr_class(["_y", "
|
|
15159
|
+
_html(`<span${_attr_class(["_y", "_eH"])}>${_text_resume($scope16_id, "i", p.pid)}</span><button${_attr_class([
|
|
16635
15160
|
"_cp",
|
|
16636
15161
|
"_8",
|
|
16637
|
-
"
|
|
15162
|
+
"_eQ"
|
|
16638
15163
|
])} type=button${_attr("title", `Kill process ${p.pid}`)}${_attr("aria-label", `Kill process ${p.pid}`)}>`);
|
|
16639
15164
|
icon_xmark_default({ size: 14 });
|
|
16640
15165
|
_html(`</button>${_el_resume($scope16_id, "j")}</span></li>${_el_resume($scope16_id, "a")}`);
|
|
@@ -16715,14 +15240,14 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16715
15240
|
});
|
|
16716
15241
|
_resume_branch($scope0_id);
|
|
16717
15242
|
});
|
|
16718
|
-
var curRepos = "
|
|
16719
|
-
var curRow = "
|
|
16720
|
-
var curEmpty = "
|
|
16721
|
-
var curBase = "
|
|
16722
|
-
var archived = "
|
|
16723
|
-
var archivedHint = "
|
|
16724
|
-
var archivedList = "
|
|
16725
|
-
var archivedRow = "
|
|
15243
|
+
var curRepos = "_ed _ck _d1 _eb";
|
|
15244
|
+
var curRow = "_el _ee _ec";
|
|
15245
|
+
var curEmpty = "_en _cq";
|
|
15246
|
+
var curBase = "_eq _Y _X";
|
|
15247
|
+
var archived = "_ev _cf";
|
|
15248
|
+
var archivedHint = "_ew _X";
|
|
15249
|
+
var archivedList = "_ed _ck _d1 _eb";
|
|
15250
|
+
var archivedRow = "_ex _ee _ec";
|
|
16726
15251
|
//#endregion
|
|
16727
15252
|
//#region src/tags/icons/icon-group.marko
|
|
16728
15253
|
var icon_group_default = _template("fb", (input) => {
|
|
@@ -16742,8 +15267,8 @@ var icon_group_default = _template("fb", (input) => {
|
|
|
16742
15267
|
});
|
|
16743
15268
|
//#endregion
|
|
16744
15269
|
//#region src/tags/join-dialog.css.ts
|
|
16745
|
-
var dlg = "
|
|
16746
|
-
var hint = "
|
|
15270
|
+
var dlg = "_hP _hL";
|
|
15271
|
+
var hint = "_hQ _X";
|
|
16747
15272
|
//#endregion
|
|
16748
15273
|
//#region src/tags/join-dialog.marko
|
|
16749
15274
|
var api$3;
|
|
@@ -16872,26 +15397,26 @@ var join_dialog_default = _template("o", (input) => {
|
|
|
16872
15397
|
content: _content("o12", () => {
|
|
16873
15398
|
_scope_reason();
|
|
16874
15399
|
const $scope1_id = _scope_id();
|
|
16875
|
-
_html(`<h2${_attr_class("
|
|
15400
|
+
_html(`<h2${_attr_class("_hM")}${_attr("id", titleId)}>Join a workspace</h2><p${_attr_class(hint)}>Paste an invite: the same repos, on your own lane of their branch.</p><textarea${_attr_class([
|
|
16876
15401
|
"_Z",
|
|
16877
15402
|
"_y",
|
|
16878
|
-
"
|
|
15403
|
+
"_hS"
|
|
16879
15404
|
])} placeholder="{ "name": …, "branch": …, "repos": ["owner/name", …] }" aria-label="Workspace invite" rows=6 autocomplete=off spellcheck=false${_attr("disabled", busy)} autofocus>${_attr_textarea_value($scope1_id, "c", invite, setInvite)}</textarea>${_el_resume($scope1_id, "c")}`);
|
|
16880
15405
|
_if(() => {
|
|
16881
15406
|
if (parsed.error) {
|
|
16882
15407
|
const $scope8_id = _scope_id();
|
|
16883
|
-
_html(`<p${_attr_class([hint, "
|
|
15408
|
+
_html(`<p${_attr_class([hint, "_hR"])}>${_text_resume($scope8_id, "b", parsed.error)}</p>`);
|
|
16884
15409
|
_subscribe($parsed_error__closures, writeScope($scope8_id, { Cag: 1 }));
|
|
16885
15410
|
return 0;
|
|
16886
15411
|
} else if (parsed.ok) {
|
|
16887
15412
|
const $scope3_id = _scope_id();
|
|
16888
|
-
_html(`<ul${_attr_class("
|
|
15413
|
+
_html(`<ul${_attr_class("_hT")}>`);
|
|
16889
15414
|
_for_of(parsed.ok.repos, (fullName) => {
|
|
16890
15415
|
const $scope9_id = _scope_id();
|
|
16891
|
-
_html(`<li${_attr_class("
|
|
15416
|
+
_html(`<li${_attr_class("_hU")}><span${_attr_class("_hV")}>${_text_resume($scope9_id, "c", repoLabel(fullName))}</span></li>`);
|
|
16892
15417
|
writeScope($scope9_id, {});
|
|
16893
15418
|
}, (r) => r, $scope3_id, "a", 1, 1, 1, "</ul>", 1);
|
|
16894
|
-
_html(`<p${_attr_class(hint)}>Your own lane of <span${_attr_class("_y")}>${_text_resume($scope3_id, "d", parsed.ok.branch)}</span> in each; PRs target theirs.</p><label${_attr_class("
|
|
15419
|
+
_html(`<p${_attr_class(hint)}>Your own lane of <span${_attr_class("_y")}>${_text_resume($scope3_id, "d", parsed.ok.branch)}</span> in each; PRs target theirs.</p><label${_attr_class("_hW")}><span${_attr_class("_ct")}>Name</span><input${_attr_input_value($scope3_id, "g", name, _resume((_new_name) => {
|
|
16895
15420
|
name = _new_name;
|
|
16896
15421
|
}, "o1", $scope3_id))}${_attr_class("_Z")}${_attr("placeholder", parsed.ok.name)}${_attr("disabled", busy)}>${_el_resume($scope3_id, "g")}</label>`);
|
|
16897
15422
|
_script($scope3_id, "o8");
|
|
@@ -16928,10 +15453,10 @@ var join_dialog_default = _template("o", (input) => {
|
|
|
16928
15453
|
_if(() => {
|
|
16929
15454
|
if (busy && steps$2.length) {
|
|
16930
15455
|
const $scope6_id = _scope_id();
|
|
16931
|
-
_html(`<ul${_attr_class("
|
|
15456
|
+
_html(`<ul${_attr_class("_hX")}>`);
|
|
16932
15457
|
_for_of(steps$2, (step$2, i) => {
|
|
16933
15458
|
const $scope7_id = _scope_id();
|
|
16934
|
-
_html(`<li${_attr_class(["
|
|
15459
|
+
_html(`<li${_attr_class(["_hZ", { ["_hY"]: i === steps$2.length - 1 }])}>`);
|
|
16935
15460
|
_if(() => {
|
|
16936
15461
|
if (i === steps$2.length - 1) {
|
|
16937
15462
|
const $scope10_id = _scope_id();
|
|
@@ -16940,7 +15465,7 @@ var join_dialog_default = _template("o", (input) => {
|
|
|
16940
15465
|
return 0;
|
|
16941
15466
|
} else {
|
|
16942
15467
|
const $scope11_id = _scope_id();
|
|
16943
|
-
_html(`<span${_attr_class("
|
|
15468
|
+
_html(`<span${_attr_class("_h0")}>`);
|
|
16944
15469
|
icon_check_default({ size: 14 });
|
|
16945
15470
|
_html("</span>");
|
|
16946
15471
|
writeScope($scope11_id, {});
|
|
@@ -17098,7 +15623,7 @@ var new_workspace_default = _template("t", (input) => {
|
|
|
17098
15623
|
}
|
|
17099
15624
|
}, "t6", $scope0_id);
|
|
17100
15625
|
const titleId = _id();
|
|
17101
|
-
_html(`<div${_attr_class("
|
|
15626
|
+
_html(`<div${_attr_class("_dT")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_dU")}><div${_attr_class("_dV")}>`);
|
|
17102
15627
|
_set_serialize_reason({
|
|
17103
15628
|
0: _serialize_guard($scope0_reason, 2),
|
|
17104
15629
|
1: $sg__input_backHref__OR__input_onExit,
|
|
@@ -17147,16 +15672,16 @@ var new_workspace_default = _template("t", (input) => {
|
|
|
17147
15672
|
return 0;
|
|
17148
15673
|
}
|
|
17149
15674
|
}, $scope0_id, "e", 1, 1, 1, 0, 1);
|
|
17150
|
-
_html(`<label${_attr_class("
|
|
15675
|
+
_html(`<label${_attr_class("_eh")}><span${_attr_class("_ct")}>Name</span><input${_attr_input_value($scope0_id, "h", name, _resume((_new_name) => {
|
|
17151
15676
|
name = _new_name;
|
|
17152
|
-
}, "t0", $scope0_id))}${_attr_class(inputLg)} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope0_id, "h")}</label><section${_attr_class("_cf")}><div${_attr_class("
|
|
15677
|
+
}, "t0", $scope0_id))}${_attr_class(inputLg)} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope0_id, "h")}</label><section${_attr_class("_cf")}><div${_attr_class("_ej")}><h2${_attr_class("_ct")}>Repos</h2></div><ul${_attr_class(curRepos)}>`);
|
|
17153
15678
|
_for_of(selected, (repo) => {
|
|
17154
15679
|
const $scope4_id = _scope_id();
|
|
17155
|
-
_html(`<li${_attr_class("
|
|
15680
|
+
_html(`<li${_attr_class("_ek")}><div${_attr_class(curRow)}><span${_attr_class("_eo")}>${_text_resume($scope4_id, "d", repoLabel(repo.fullName))}</span>`);
|
|
17156
15681
|
_if(() => {
|
|
17157
15682
|
if (repo.fork !== void 0) {
|
|
17158
15683
|
const $scope5_id = _scope_id();
|
|
17159
|
-
_html(`<button${_attr_class(["
|
|
15684
|
+
_html(`<button${_attr_class(["_er", { ["_ep"]: repo.fork }])}${repo.fork ? _attr("title", `${repo.fullName} will be forked to your account; click to clone as-is instead`) : _attr("title", `Fork ${repo.fullName} to your account and clone the fork`)} aria-pressed=${repo.fork ? "true" : "false"}${_attr("disabled", busy)}>`);
|
|
17160
15685
|
_if(() => {
|
|
17161
15686
|
if (repo.fork) {
|
|
17162
15687
|
const $scope14_id = _scope_id();
|
|
@@ -17179,7 +15704,7 @@ var new_workspace_default = _template("t", (input) => {
|
|
|
17179
15704
|
_html(`<button${_attr_class([
|
|
17180
15705
|
curBase,
|
|
17181
15706
|
"_y",
|
|
17182
|
-
{ ["
|
|
15707
|
+
{ ["_ep"]: branchesFor === repo.fullName }
|
|
17183
15708
|
])}${_attr("title", `Change base branch for ${repo.fullName}`)}${_attr("aria-label", `Change base branch for ${repo.fullName}`)}${_attr("disabled", busy)}>`);
|
|
17184
15709
|
icon_branch_default({ size: 12 });
|
|
17185
15710
|
_html(`${_text_resume($scope4_id, "h", repo.baseBranch ? `${_to_text(" ")}${_to_text(repo.baseBranch)}` : "")}</button>${_el_resume($scope4_id, "f")}<button${_attr_class([iconBtnXs, "_8"])}${_attr("title", `Remove ${repo.fullName}`)}${_attr("disabled", busy)}>`);
|
|
@@ -17188,7 +15713,7 @@ var new_workspace_default = _template("t", (input) => {
|
|
|
17188
15713
|
_if(() => {
|
|
17189
15714
|
if (branchesFor === repo.fullName) {
|
|
17190
15715
|
const $scope10_id = _scope_id();
|
|
17191
|
-
_html(`<div${_attr_class("
|
|
15716
|
+
_html(`<div${_attr_class("_em")}>`);
|
|
17192
15717
|
const $childScope2 = _peek_scope_id();
|
|
17193
15718
|
branch_pick_default({
|
|
17194
15719
|
repo: repo.fullName,
|
|
@@ -17239,7 +15764,7 @@ var new_workspace_default = _template("t", (input) => {
|
|
|
17239
15764
|
action: attrTag({ content: _content("t21", () => {
|
|
17240
15765
|
_scope_reason();
|
|
17241
15766
|
const $scope2_id = _scope_id();
|
|
17242
|
-
_html(`<button${_attr_class([iconBtnRow, "
|
|
15767
|
+
_html(`<button${_attr_class([iconBtnRow, "_ei"])} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
|
|
17243
15768
|
_set_serialize_reason(1);
|
|
17244
15769
|
const $childScope3 = _peek_scope_id();
|
|
17245
15770
|
icon_refresh_default({
|
|
@@ -17260,10 +15785,10 @@ var new_workspace_default = _template("t", (input) => {
|
|
|
17260
15785
|
_if(() => {
|
|
17261
15786
|
if (busy && steps.length) {
|
|
17262
15787
|
const $scope11_id = _scope_id();
|
|
17263
|
-
_html(`<ul${_attr_class("
|
|
15788
|
+
_html(`<ul${_attr_class("_es")}>`);
|
|
17264
15789
|
_for_of(steps, (step, i) => {
|
|
17265
15790
|
const $scope12_id = _scope_id();
|
|
17266
|
-
_html(`<li${_attr_class(["
|
|
15791
|
+
_html(`<li${_attr_class(["_ey", { ["_et"]: i === steps.length - 1 }])}>`);
|
|
17267
15792
|
_if(() => {
|
|
17268
15793
|
if (i === steps.length - 1) {
|
|
17269
15794
|
const $scope17_id = _scope_id();
|
|
@@ -17272,7 +15797,7 @@ var new_workspace_default = _template("t", (input) => {
|
|
|
17272
15797
|
return 0;
|
|
17273
15798
|
} else {
|
|
17274
15799
|
const $scope18_id = _scope_id();
|
|
17275
|
-
_html(`<span${_attr_class("
|
|
15800
|
+
_html(`<span${_attr_class("_eu")}>`);
|
|
17276
15801
|
icon_check_default({ size: 14 });
|
|
17277
15802
|
_html("</span>");
|
|
17278
15803
|
writeScope($scope18_id, {});
|
|
@@ -17286,15 +15811,15 @@ var new_workspace_default = _template("t", (input) => {
|
|
|
17286
15811
|
return 0;
|
|
17287
15812
|
}
|
|
17288
15813
|
}, $scope0_id, "q", 1, 1, 1, 0, 1);
|
|
17289
|
-
_html(`<div${_attr_class("
|
|
15814
|
+
_html(`<div${_attr_class("_ef")}><button type=button${_attr_class([
|
|
17290
15815
|
btnLg,
|
|
17291
15816
|
"_r",
|
|
17292
|
-
"
|
|
15817
|
+
"_eg"
|
|
17293
15818
|
])}${_attr("disabled", busy || !!restoring || !name.trim())}>${_text_resume($scope0_id, "t", busy ? "Creating…" : "Create workspace")}</button>${_el_resume($scope0_id, "s")}</div>`);
|
|
17294
15819
|
_if(() => {
|
|
17295
15820
|
if (archived$1.length) {
|
|
17296
15821
|
const $scope6_id = _scope_id();
|
|
17297
|
-
_html(`<section${_attr_class(archived)}><div${_attr_class("
|
|
15822
|
+
_html(`<section${_attr_class(archived)}><div${_attr_class("_ej")}><h2${_attr_class("_ct")}>Archived</h2><span${_attr_class(sectionCount)}>${_text_resume($scope6_id, "e", archived$1.length, $sg__input_workspaces)}</span></div><p${_attr_class(archivedHint)}>Restore an archived workspace instead of creating a new one.</p><ul${_attr_class(archivedList)}>`);
|
|
17298
15823
|
_for_of(archived$1, (ws) => {
|
|
17299
15824
|
const $scope7_id = _scope_id();
|
|
17300
15825
|
_html(`<li${_attr_class(archivedRow)}><div${_attr_class("_cl")}><span${_attr_class("_cm")}>${_text_resume($scope7_id, "d", ws.name, $sg__input_workspaces)}</span><span${_attr_class([metaTrunc, "_y"])}${_attr("title", ws.display_path || ws.path)}>${_text_resume($scope7_id, "f", ws.display_path || ws.path, $sg__input_workspaces)}</span>${_el_resume($scope7_id, "e", $sg__input_workspaces)}</div><button type=button${_attr_class(btnSm)}${_attr("disabled", busy || !!restoring)}>`);
|
|
@@ -17413,19 +15938,19 @@ var term_find_default = _template("E", (input) => {
|
|
|
17413
15938
|
const canStep = hasQuery && open;
|
|
17414
15939
|
const keybar = input.placement === "keybar";
|
|
17415
15940
|
_html(`<div${_attr_class([
|
|
17416
|
-
"
|
|
17417
|
-
keybar ? "
|
|
17418
|
-
!open && "
|
|
17419
|
-
])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["
|
|
15941
|
+
"_cA",
|
|
15942
|
+
keybar ? "_cC" : "_cB",
|
|
15943
|
+
!open && "_cE"
|
|
15944
|
+
])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["_cv", keybar ? "_cD" : "_cx"])}><input${_attr_input_value($scope0_id, "c", query, _resume(function(v) {
|
|
17420
15945
|
if (!open) return;
|
|
17421
15946
|
query = v;
|
|
17422
15947
|
live.query = v;
|
|
17423
15948
|
run(0);
|
|
17424
|
-
}, "E1", $scope0_id))}${_attr_class([findInput, keybar && "
|
|
15949
|
+
}, "E1", $scope0_id))}${_attr_class([findInput, keybar && "_cF"])} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in terminal" aria-label="Find in terminal">${_el_resume($scope0_id, "c")}<button type=button${_attr_class([findIconBtn, keybar && "_cG"])} title="Previous match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
|
|
17425
15950
|
icon_arrow_up_default({ size: 14 });
|
|
17426
|
-
_html(`</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "
|
|
15951
|
+
_html(`</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "_cG"])} title="Next match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
|
|
17427
15952
|
icon_arrow_down_default({ size: 14 });
|
|
17428
|
-
_html(`</button>${_el_resume($scope0_id, "f")}<button type=button${_attr_class([findIconBtn, keybar && "
|
|
15953
|
+
_html(`</button>${_el_resume($scope0_id, "f")}<button type=button${_attr_class([findIconBtn, keybar && "_cG"])} title="Close find" tabindex=${open ? "0" : "-1"}>`);
|
|
17429
15954
|
icon_xmark_default({ size: 14 });
|
|
17430
15955
|
_html(`</button>${_el_resume($scope0_id, "h")}</div>${_el_resume($scope0_id, "b", _serialize_guard($scope0_reason, 2))}</div>${_el_resume($scope0_id, "a")}`);
|
|
17431
15956
|
const $return = focusInput;
|
|
@@ -17576,7 +16101,7 @@ var term_default = _template("F", (input) => {
|
|
|
17576
16101
|
}
|
|
17577
16102
|
}, "F9", $scope0_id);
|
|
17578
16103
|
input.keys;
|
|
17579
|
-
_html(`<div${_attr("hidden", !onTermPage)}${_attr_class("
|
|
16104
|
+
_html(`<div${_attr("hidden", !onTermPage)}${_attr_class("_db")}><div${_attr_class("_dc")}></div>${_el_resume($scope0_id, "b")}`);
|
|
17580
16105
|
_if(() => {
|
|
17581
16106
|
if (findOpen) {
|
|
17582
16107
|
const $scope4_id = _scope_id();
|
|
@@ -17603,7 +16128,7 @@ var term_default = _template("F", (input) => {
|
|
|
17603
16128
|
_if(() => {
|
|
17604
16129
|
if (uploading) {
|
|
17605
16130
|
const $scope5_id = _scope_id();
|
|
17606
|
-
_html(`<div${_attr_class("
|
|
16131
|
+
_html(`<div${_attr_class("_di")}>uploading…</div>`);
|
|
17607
16132
|
writeScope($scope5_id, {});
|
|
17608
16133
|
return 0;
|
|
17609
16134
|
}
|
|
@@ -17611,7 +16136,7 @@ var term_default = _template("F", (input) => {
|
|
|
17611
16136
|
_if(() => {
|
|
17612
16137
|
if (copiedFlash) {
|
|
17613
16138
|
const $scope6_id = _scope_id();
|
|
17614
|
-
_html(`<div${_attr_class("
|
|
16139
|
+
_html(`<div${_attr_class("_dh")}>Copied</div>`);
|
|
17615
16140
|
writeScope($scope6_id, {});
|
|
17616
16141
|
return 0;
|
|
17617
16142
|
}
|
|
@@ -17620,7 +16145,7 @@ var term_default = _template("F", (input) => {
|
|
|
17620
16145
|
_if(() => {
|
|
17621
16146
|
if (trapOpen) {
|
|
17622
16147
|
const $scope3_id = _scope_id();
|
|
17623
|
-
_html(`<div${_attr_class("
|
|
16148
|
+
_html(`<div${_attr_class("_dj")}><div${_attr_class("_dk")}><p${_attr_class("_dl")}>Long-press the field below and choose Paste</p><input placeholder="Paste here…">${_el_resume($scope3_id, "d")}<button${_attr_class("_q")}>Cancel</button>${_el_resume($scope3_id, "e")}</div>${_el_resume($scope3_id, "b")}</div>${_el_resume($scope3_id, "a")}`);
|
|
17624
16149
|
_script($scope3_id, "F16");
|
|
17625
16150
|
_script($scope3_id, "F17");
|
|
17626
16151
|
writeScope($scope3_id, {});
|
|
@@ -18219,8 +16744,8 @@ _template("tb", (input) => {
|
|
|
18219
16744
|
});
|
|
18220
16745
|
_serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
|
|
18221
16746
|
});
|
|
18222
|
-
var sessOpen = "
|
|
18223
|
-
var sessRename = "
|
|
16747
|
+
var sessOpen = "_cL _I";
|
|
16748
|
+
var sessRename = "_cP _J";
|
|
18224
16749
|
//#endregion
|
|
18225
16750
|
//#region src/tags/key-bar-sessions.marko
|
|
18226
16751
|
var usageFor;
|
|
@@ -18251,7 +16776,7 @@ _template("p", (input) => {
|
|
|
18251
16776
|
popEl.style.top = `${Math.max(8, btn.top - popEl.offsetHeight - 8)}px`;
|
|
18252
16777
|
popEl.style.left = `${Math.max(8, Math.min(btn.left + btn.width / 2 - popEl.offsetWidth / 2, window.innerWidth - popEl.offsetWidth - 8))}px`;
|
|
18253
16778
|
}, "p2", $scope0_id);
|
|
18254
|
-
_html(`<button${_attr_class([kbtn, "
|
|
16779
|
+
_html(`<button${_attr_class([kbtn, "_cH"])} title=${input.onTermPage ? "Sessions" : "\"Back to session\""}${input.onTermPage ? _attr("popovertarget", popId) : ""}>`);
|
|
18255
16780
|
_set_serialize_reason({
|
|
18256
16781
|
1: $sg__input_sessions__OR__input_sessionId,
|
|
18257
16782
|
2: $sg__input_sessions__OR__input_sessionId
|
|
@@ -18265,12 +16790,12 @@ _template("p", (input) => {
|
|
|
18265
16790
|
"_A",
|
|
18266
16791
|
"_bc",
|
|
18267
16792
|
phase[sessionPhase(current$2?.state)]
|
|
18268
|
-
])}></span>${_el_resume($scope0_id, "c", $sg__input_sessions__OR__input_sessionId)}</button>${_el_resume($scope0_id, "a")}<div${_attr("id", popId)} popover=auto${_attr_class(["__", "
|
|
16793
|
+
])}></span>${_el_resume($scope0_id, "c", $sg__input_sessions__OR__input_sessionId)}</button>${_el_resume($scope0_id, "a")}<div${_attr("id", popId)} popover=auto${_attr_class(["__", "_cI"])}>`);
|
|
18269
16794
|
_for_of(input.sessions, (s) => {
|
|
18270
16795
|
const $scope1_id = _scope_id();
|
|
18271
16796
|
const $for_content__s_agent__closures = /* @__PURE__ */ new Set();
|
|
18272
16797
|
const $for_content__s_id__closures = /* @__PURE__ */ new Set();
|
|
18273
|
-
_html(`<div${_attr_class(["
|
|
16798
|
+
_html(`<div${_attr_class(["_cK", { ["_cJ"]: s.id === input.sessionId }])}>`);
|
|
18274
16799
|
_if(() => {
|
|
18275
16800
|
if (renamingId === s.id) {
|
|
18276
16801
|
const $scope5_id = _scope_id();
|
|
@@ -18302,7 +16827,7 @@ _template("p", (input) => {
|
|
|
18302
16827
|
agent: activeAgent(s),
|
|
18303
16828
|
size: 14
|
|
18304
16829
|
});
|
|
18305
|
-
_html(`<span${_attr_class("
|
|
16830
|
+
_html(`<span${_attr_class("_cM")}><span${_attr_class("_cO")}>${_text_resume($scope2_id, "f", s.title || activeAgent(s), $sg__input_sessions)}</span>`);
|
|
18306
16831
|
_if(() => {
|
|
18307
16832
|
if (s.id === input.sessionId) {
|
|
18308
16833
|
const $scope7_id = _scope_id();
|
|
@@ -18314,7 +16839,7 @@ _template("p", (input) => {
|
|
|
18314
16839
|
const $childScope4 = _peek_scope_id();
|
|
18315
16840
|
usage_pcts_default({
|
|
18316
16841
|
agent: plan,
|
|
18317
|
-
class: "
|
|
16842
|
+
class: "_cN"
|
|
18318
16843
|
});
|
|
18319
16844
|
writeScope($scope8_id, { a: _existing_scope($childScope4) });
|
|
18320
16845
|
return 0;
|
|
@@ -18331,7 +16856,7 @@ _template("p", (input) => {
|
|
|
18331
16856
|
_if(() => {
|
|
18332
16857
|
if (input.onRenameSession) {
|
|
18333
16858
|
const $scope6_id = _scope_id();
|
|
18334
|
-
_html(`<button${_attr_class(["
|
|
16859
|
+
_html(`<button${_attr_class(["_cQ", "_cR"])} title="Rename session">`);
|
|
18335
16860
|
icon_edit_default({ size: 12 });
|
|
18336
16861
|
_html(`</button>${_el_resume($scope6_id, "a")}`);
|
|
18337
16862
|
_script($scope6_id, "p4");
|
|
@@ -18343,7 +16868,7 @@ _template("p", (input) => {
|
|
|
18343
16868
|
if (input.onCloseSession) {
|
|
18344
16869
|
const $scope3_id = _scope_id();
|
|
18345
16870
|
_html(`<button${_attr_class([
|
|
18346
|
-
"
|
|
16871
|
+
"_cQ",
|
|
18347
16872
|
"_8",
|
|
18348
16873
|
{ ["_s"]: armedClose === s.id }
|
|
18349
16874
|
])} title=${armedClose === s.id ? "Close?" : "\"Close session\""}>`);
|
|
@@ -18370,7 +16895,7 @@ _template("p", (input) => {
|
|
|
18370
16895
|
k: $si__input_sessions && $for_content__s_id__closures
|
|
18371
16896
|
});
|
|
18372
16897
|
}, "id", $scope0_id, "e", 1, $sg__input_sessions, $sg__input_sessions__OR__input_agents, 0, 1);
|
|
18373
|
-
_html(`<div${_attr_class("
|
|
16898
|
+
_html(`<div${_attr_class("_cS")}><span${_attr_class("_cT")}>New session</span><div${_attr_class("_cU")}>`);
|
|
18374
16899
|
_for_of(["shell", ...input.agents], (agent) => {
|
|
18375
16900
|
const $scope4_id = _scope_id();
|
|
18376
16901
|
_html(`<button${_attr_class(iconBtnRow)}${_attr("title", `New ${agent} session`)}>`);
|
|
@@ -27377,4 +25902,4 @@ server.listen(port, () => {
|
|
|
27377
25902
|
//#endregion
|
|
27378
25903
|
export {};
|
|
27379
25904
|
|
|
27380
|
-
;var __MARKO_MANIFEST__={"
|
|
25905
|
+
;var __MARKO_MANIFEST__={"T$MNY0k":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/w._-CjRAL7y8.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-CjRAL7y8.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"LH2lXAg":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/w-CjRAL7y8.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w-CjRAL7y8.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"ibphXY4":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/w._-DvPeuuNc.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-DvPeuuNc.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"ZLT8joi":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/new-CjRAL7y8.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/new-CjRAL7y8.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"AA0T2xt":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/settings-CjRAL7y8.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/settings-CjRAL7y8.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"_m":{"block":[2,"stylesheet#/assets/diff-view-D_kTcxOl.css",6,"<link",0," rel=\"stylesheet\" href=\"",1,"assets/diff-view-D_kTcxOl.css\"",">",2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">"],"defer":[2,"/assets/diff-view-B7Akkn43.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/diff-view-B7Akkn43.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">"]}};
|