@takagaki/cortex-decisions-viewer 0.12.187 → 0.12.189
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/assets/guides/slack.mp4 +0 -0
- package/dist/build.js +1 -0
- package/dist/render.js +67 -7
- package/dist/slack-guide-images.js +40 -0
- package/package.json +4 -2
|
Binary file
|
package/dist/build.js
CHANGED
|
@@ -314,6 +314,7 @@ exports.PROJECT_ICON_EXTS = ["png", "jpg", "webp"];
|
|
|
314
314
|
exports.GUIDE_VIDEO_SOURCES = {
|
|
315
315
|
// ポスターは動画の宣言には持たない(render.ts の SECRET_FORMS の guide.video.poster が data URI で持つ)
|
|
316
316
|
backlog: { video: path.join(__dirname, "..", "assets", "guides", "backlog.mp4") },
|
|
317
|
+
slack: { video: path.join(__dirname, "..", "assets", "guides", "slack.mp4") },
|
|
317
318
|
};
|
|
318
319
|
/**
|
|
319
320
|
* ファイルを内容ハッシュ名で `outAbs/assets/` へコピーする。CSS/JS と同じ規約
|
package/dist/render.js
CHANGED
|
@@ -90,6 +90,7 @@ const google_chat_guide_images_1 = require("./google-chat-guide-images");
|
|
|
90
90
|
const meet_guide_images_1 = require("./meet-guide-images");
|
|
91
91
|
const figma_guide_images_1 = require("./figma-guide-images");
|
|
92
92
|
const backlog_guide_images_1 = require("./backlog-guide-images");
|
|
93
|
+
const slack_guide_images_1 = require("./slack-guide-images");
|
|
93
94
|
const story_1 = require("./story");
|
|
94
95
|
// 「人が確認したか/機械が触ってよいか」の口(#699 F2b)。正本は engine の confirmed.mjs・判定は流し込むだけ
|
|
95
96
|
const confirmed_1 = require("./confirmed");
|
|
@@ -6842,6 +6843,18 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
6842
6843
|
var BACKLOG_SHOT_STEP8 = "${backlog_guide_images_1.BACKLOG_GUIDE_STEP8}";
|
|
6843
6844
|
var BACKLOG_SHOT_STEP9 = "${backlog_guide_images_1.BACKLOG_GUIDE_STEP9}";
|
|
6844
6845
|
var BACKLOG_SHOT_STEP10 = "${backlog_guide_images_1.BACKLOG_GUIDE_STEP10}";
|
|
6846
|
+
// Slack の手順動画のポスターと手順画像10枚(#1353)。理由は src/slack-guide-images.ts
|
|
6847
|
+
var SLACK_SHOT_POSTER = "${slack_guide_images_1.SLACK_GUIDE_POSTER}";
|
|
6848
|
+
var SLACK_SHOT_STEP1 = "${slack_guide_images_1.SLACK_GUIDE_STEP1}";
|
|
6849
|
+
var SLACK_SHOT_STEP2 = "${slack_guide_images_1.SLACK_GUIDE_STEP2}";
|
|
6850
|
+
var SLACK_SHOT_STEP3 = "${slack_guide_images_1.SLACK_GUIDE_STEP3}";
|
|
6851
|
+
var SLACK_SHOT_STEP4 = "${slack_guide_images_1.SLACK_GUIDE_STEP4}";
|
|
6852
|
+
var SLACK_SHOT_STEP5 = "${slack_guide_images_1.SLACK_GUIDE_STEP5}";
|
|
6853
|
+
var SLACK_SHOT_STEP6 = "${slack_guide_images_1.SLACK_GUIDE_STEP6}";
|
|
6854
|
+
var SLACK_SHOT_STEP7 = "${slack_guide_images_1.SLACK_GUIDE_STEP7}";
|
|
6855
|
+
var SLACK_SHOT_STEP8 = "${slack_guide_images_1.SLACK_GUIDE_STEP8}";
|
|
6856
|
+
var SLACK_SHOT_STEP9 = "${slack_guide_images_1.SLACK_GUIDE_STEP9}";
|
|
6857
|
+
var SLACK_SHOT_STEP10 = "${slack_guide_images_1.SLACK_GUIDE_STEP10}";
|
|
6845
6858
|
|
|
6846
6859
|
/**
|
|
6847
6860
|
* コピーボタンの動き(copyRow と copyInline の共通部分)。clipboard が使えない環境では
|
|
@@ -10393,6 +10406,18 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
10393
10406
|
if (allSlack) return head + "が読めていません(" + DS_GATE_NO_TOKEN.customer.text + ")";
|
|
10394
10407
|
return head + "に問題";
|
|
10395
10408
|
}
|
|
10409
|
+
/** ワークスペース名がまだ分からないときの札(ID は出さない・#1370) */
|
|
10410
|
+
var WORKSPACE_NAME_PENDING = "ワークスペース名を取得中";
|
|
10411
|
+
/**
|
|
10412
|
+
* 台帳の name が本物の名前なら返し、そうでなければ ""。
|
|
10413
|
+
* 接続時に Slack へ名前を問い合わせて引けなかった行は、台帳に team_id が name として入る
|
|
10414
|
+
* (slack-oauth の mergeWorkspaceIndex)。それは名前ではないので、ID の形も弾く。
|
|
10415
|
+
*/
|
|
10416
|
+
function realWorkspaceName(name, teamId) {
|
|
10417
|
+
var n = typeof name === "string" ? name.trim() : "";
|
|
10418
|
+
if (n === "" || n.toUpperCase() === String(teamId || "").toUpperCase() || /^[TE](?=[A-Z0-9]*[0-9])[A-Z0-9]{8,11}$/.test(n)) return "";
|
|
10419
|
+
return n;
|
|
10420
|
+
}
|
|
10396
10421
|
/**
|
|
10397
10422
|
* Slack のチャンネルを、所属する組織ごとに分ける(2026-08-20)。
|
|
10398
10423
|
*
|
|
@@ -10424,15 +10449,15 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
10424
10449
|
*/
|
|
10425
10450
|
function groupSlackByOrg(items, workspaces) {
|
|
10426
10451
|
var known = {};
|
|
10427
|
-
(workspaces || []).forEach(function (w) { if (w && w.teamId) known[w.teamId] = w.name
|
|
10452
|
+
(workspaces || []).forEach(function (w) { if (w && w.teamId) known[w.teamId] = realWorkspaceName(w.name, w.teamId); });
|
|
10428
10453
|
var order = [];
|
|
10429
10454
|
var byKey = {};
|
|
10430
10455
|
(items || []).forEach(function (s) {
|
|
10431
10456
|
var key, title, unknown = false;
|
|
10432
10457
|
if (s.workspace) {
|
|
10433
10458
|
key = s.workspace;
|
|
10434
|
-
//
|
|
10435
|
-
title = known[s.workspace] ||
|
|
10459
|
+
// **名前が分からないとき ID(T…)を出さない(#1370)。** 機械の語を画面に出さない
|
|
10460
|
+
title = known[s.workspace] || WORKSPACE_NAME_PENDING;
|
|
10436
10461
|
} else if (s.orgUnknown === true) {
|
|
10437
10462
|
key = "__unknown__";
|
|
10438
10463
|
title = "組織不明";
|
|
@@ -12536,7 +12561,19 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
12536
12561
|
? " お客様の Slack のチャンネルは、その Slack の管理者がワークスペースの接続を承認すると読めるようになります(チャンネルを読む権限と、通知を投稿する権限を渡します)。"
|
|
12537
12562
|
: "")
|
|
12538
12563
|
+ (adapter !== "slack" ? " DM(1対1のチャット)は対象外です。" : "");
|
|
12539
|
-
|
|
12564
|
+
var chatDesc = el("p", { class: "modal-desc", text: "ここに並んでいる" + chatNoun + "は、例外なく全て毎晩の Gold 昇格が読み取り、Decision・用語集の材料になります。読み取りを止めるには「登録を解除」してください。" + chatScope + chatExtra });
|
|
12565
|
+
m.modal.appendChild(chatDesc);
|
|
12566
|
+
// 🔴 **Slack のつなぎ方の動画+画像(#1353)は Backlog と同じ配置**(見出しのすぐ下・説明文より前・折りたたまない・中央・幅 480px 上限)。
|
|
12567
|
+
// Google Chat 専用の窓には出さない
|
|
12568
|
+
// Backlog(backlogTargetsEditable)と同じく、投入の口が無い(つなげない)配信先には出さない
|
|
12569
|
+
if (SITE.intake && (!adapter || adapter === "slack")) {
|
|
12570
|
+
var slackCarousel = buildGuideCarousel("slack", SLACK_GUIDE);
|
|
12571
|
+
if (slackCarousel) {
|
|
12572
|
+
slackCarousel.classList.add("mt-carousel-center");
|
|
12573
|
+
slackCarousel.setAttribute("data-guide-kind", "slack");
|
|
12574
|
+
m.modal.insertBefore(slackCarousel, chatDesc);
|
|
12575
|
+
}
|
|
12576
|
+
}
|
|
12540
12577
|
} else if (cap === "デザイン" && (!adapter || adapter === "figma")) {
|
|
12541
12578
|
// 🔴 **Figma の説明文(c-07・新設)。** 追加の欄の手順 4(何が同期されるか)と手順 1 の前提
|
|
12542
12579
|
// (トークンの登録)を、ここに 1 回だけ置く。鍵の欄は 0 件のあいだ畳まれているので、入れる欄が
|
|
@@ -17282,14 +17319,14 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
17282
17319
|
var v = fleetVal("slackWorkspaces");
|
|
17283
17320
|
return Array.isArray(v) ? v : null;
|
|
17284
17321
|
}
|
|
17285
|
-
/** team_id →
|
|
17322
|
+
/** team_id → 表示名。宣言はあるが一覧に無いワークスペース・名前が引けなかったワークスペースは「ワークスペース名を取得中」を出す(ID は出さない・#1370) */
|
|
17286
17323
|
function workspaceLabel(teamId) {
|
|
17287
17324
|
if (!teamId) return "";
|
|
17288
17325
|
var list = slackWorkspaces() || [];
|
|
17289
17326
|
for (var i = 0; i < list.length; i++) {
|
|
17290
|
-
if (list[i].teamId === teamId) return list[i].name ||
|
|
17327
|
+
if (list[i].teamId === teamId) return realWorkspaceName(list[i].name, teamId) || WORKSPACE_NAME_PENDING;
|
|
17291
17328
|
}
|
|
17292
|
-
return
|
|
17329
|
+
return WORKSPACE_NAME_PENDING;
|
|
17293
17330
|
}
|
|
17294
17331
|
|
|
17295
17332
|
|
|
@@ -18431,6 +18468,29 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
18431
18468
|
*/
|
|
18432
18469
|
var BACKLOG_KEY_SCOPE_NOTE = "";
|
|
18433
18470
|
|
|
18471
|
+
// Slack のつなぎ方の動画+画像(#1353)。Backlog(SECRET_FORMS.backlog.guide)と同じ形で、モーダルの上に出す
|
|
18472
|
+
// (openCapabilityModal のチャットの項)。Slack は鍵を入れるカードを持たないので、SECRET_FORMS には入れずここに置く。
|
|
18473
|
+
// 動画の実 URL は guide に置かない(SITE.guideAssets.slack.video を build.ts の GUIDE_VIDEO_SOURCES が注入する)
|
|
18474
|
+
var SLACK_GUIDE = {
|
|
18475
|
+
counter: true,
|
|
18476
|
+
video: {
|
|
18477
|
+
alt: "Slack のチャンネルを Cortex につなぐ手順の動画(約1分30秒)。チャンネルの URL のコピー、貼り付け、Cortex の招待、接続OK の確認までを画面で見せます。",
|
|
18478
|
+
poster: SLACK_SHOT_POSTER,
|
|
18479
|
+
},
|
|
18480
|
+
shots: [
|
|
18481
|
+
{ src: SLACK_SHOT_STEP1, width: "960", height: "540", heading: "1. Cortex の欄にチャンネルの URL を貼る", alt: "手順 1。Cortex の Slack のモーダル。「Slackチャンネルを追加」の URL の入力欄が赤枠で示されている。" },
|
|
18482
|
+
{ src: SLACK_SHOT_STEP2, width: "960", height: "540", heading: "2. Slack でチャンネルのリンクをコピー", alt: "手順 2。Slack の左の一覧でチャンネルを右クリックし、「コピー」→「リンクをコピー」が赤枠で示されている。" },
|
|
18483
|
+
{ src: SLACK_SHOT_STEP3, width: "960", height: "540", heading: "3. 貼り付けて追加", alt: "手順 3。URL を貼った入力欄と「追加」ボタンが赤く囲まれている。" },
|
|
18484
|
+
{ src: SLACK_SHOT_STEP4, width: "960", height: "540", heading: "4. 「未招待」と出たら招待の一文をコピー", alt: "手順 4。チャンネルの行に「未招待」と「Cortex を招待してください:/invite @Cortex[コピー]」が出ている。" },
|
|
18485
|
+
{ src: SLACK_SHOT_STEP5, width: "960", height: "540", heading: "5. チャンネルで /invite @Cortex を送る", alt: "手順 5。Slack の入力欄に /invite @Cortex が入り、候補に Cortex(アプリ)が出ている。" },
|
|
18486
|
+
{ src: SLACK_SHOT_STEP6, width: "960", height: "540", heading: "6. Cortex が参加したら OK", alt: "手順 6。チャンネルに「Cortex さんと一緒に参加しました」と出ている。" },
|
|
18487
|
+
{ src: SLACK_SHOT_STEP7, width: "960", height: "540", heading: "7. 接続を確認して接続OK", alt: "手順 7。チャンネルの行に緑の「接続OK」が出ている。" },
|
|
18488
|
+
{ src: SLACK_SHOT_STEP8, width: "960", height: "540", heading: "(Cortex が入っていないワークスペース)接続する", alt: "補足の手順 1。行に「このワークスペースに Cortex が入っていなければ、ワークスペースを接続してください。[接続する]」が出ている。" },
|
|
18489
|
+
{ src: SLACK_SHOT_STEP9, width: "960", height: "540", heading: "(同)使うワークスペースを選んで許可する", alt: "補足の手順 2。Slack の許可の画面。使うワークスペースの欄と「許可する」ボタンが赤く囲まれている。" },
|
|
18490
|
+
{ src: SLACK_SHOT_STEP10, width: "960", height: "540", heading: "(同)接続しましたと出たら Cortex の画面に戻る", alt: "補足の手順 3。「接続しました」の画面。Cortex の画面に戻る。" },
|
|
18491
|
+
],
|
|
18492
|
+
};
|
|
18493
|
+
|
|
18434
18494
|
/**
|
|
18435
18495
|
* 鍵の入力欄に出す説明。kind は Lambda 側(resolveSecretTarget)と綴りを合わせること。
|
|
18436
18496
|
*
|