poi-plugin-remodel-assistant 1.2.5 → 1.2.6-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -25
- package/assets/main.css +96 -34
- package/data/changelog.json +8 -0
- package/i18n/en-US.json +8 -1
- package/i18n/ja-JP.json +8 -1
- package/i18n/zh-CN.json +8 -1
- package/i18n/zh-TW.json +8 -1
- package/package.json +2 -2
- package/views/new-interface/app/decision-snapshot-cache.js +2 -2
- package/views/new-interface/app/decision-snapshot-jobs.js +147 -28
- package/views/new-interface/app/decision-snapshot-service.js +5 -1
- package/views/new-interface/app/decision-snapshot-worker.js +27 -1
- package/views/new-interface/app/new-interface-area.js +85 -35
- package/views/new-interface/app/startup-decision-snapshot-storage.js +84 -0
- package/views/new-interface/decisions/domain/stable-state-validation-domain.js +21 -5
- package/views/new-interface/incremental/plan-decision-index.js +120 -43
- package/views/new-interface/plan/domain/allocation-owner-domain.js +190 -0
- package/views/new-interface/plan/domain/consumable-plan-domain.js +175 -50
- package/views/new-interface/plan/domain/current-start-assignment-domain.js +51 -2
- package/views/new-interface/plan/domain/current-start-selection-domain.js +12 -5
- package/views/new-interface/plan/domain/plan-management-domain.js +4 -3
- package/views/new-interface/shared/components/detail-panel.js +70 -40
- package/views/shared/plugin-resource-paths.js +9 -1
- package/views/shared/plugin-state-commands.js +32 -3
- package/views/shared/plugin-state-schema.js +146 -11
- package/views/shared/plugin-state-storage.js +4 -1
package/README.md
CHANGED
|
@@ -1,43 +1,35 @@
|
|
|
1
1
|
# 改修助手
|
|
2
2
|
|
|
3
|
-
Poi
|
|
3
|
+
Poi 用舰队 Collection 装备改修规划插件。结合当前库存与随包数据,把长期改修目标拆成“今天改什么”、具体起点、完整升级路线、秘书舰条件和材料消耗。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Beta preview channel. Beta and Stable share the npm package name `poi-plugin-remodel-assistant`; Beta uses the `beta` dist-tag and Stable uses `latest`.
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
- Review acquisition sources
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
9
|
+
- Use **Today** as the execution list for unfinished plans, with current equipment, assistant ships, available days, current-step materials, and the remaining equipment-star route in one detail view.
|
|
10
|
+
- Use **Equipment library** to search equipment, review owned copies, add explicit target-star/quantity plans, compare total cost, and manage each plan route.
|
|
11
|
+
- Keep route choices explicit: one valid complete route is used directly, while multiple valid routes wait for the user to choose instead of being silently auto-ranked.
|
|
12
|
+
- Review acquisition sources when a route requires equipment you do not own, including development, quest, and ship initial/remodel sources when available.
|
|
13
|
+
- Compare expected and guaranteed material needs, with development materials and improvement materials presented separately.
|
|
14
|
+
- Customize ordinary detail sections by visibility and order, while required unresolved/action sections remain visible.
|
|
15
|
+
- Use category filters, sorting, and low-priority equipment to narrow recommendations without removing valid plans or routes.
|
|
16
16
|
|
|
17
17
|
## Quick Start
|
|
18
18
|
|
|
19
|
-
1. Open **Equipment library
|
|
20
|
-
2.
|
|
21
|
-
3.
|
|
22
|
-
4. Open **Today** and follow the current guidance.
|
|
19
|
+
1. Open **Equipment library**, select an equipment, and add a plan with the target improvement level and quantity.
|
|
20
|
+
2. If the plan has more than one complete valid route, choose the route you want; if the starting equipment is missing, open its acquisition details.
|
|
21
|
+
3. Open **Today** and follow the current equipment, assistant ship, available day, material requirement, and remaining route shown in the detail pane.
|
|
23
22
|
|
|
24
|
-
The in-plugin **Help** entry contains
|
|
25
|
-
|
|
26
|
-
## Data Sources
|
|
27
|
-
|
|
28
|
-
Improvement information is based on:
|
|
29
|
-
|
|
30
|
-
- Akashi-List
|
|
31
|
-
- wikiwiki.jp
|
|
32
|
-
- KcWiki-Api
|
|
33
|
-
- KC3
|
|
34
|
-
|
|
35
|
-
The plugin uses the latest available data and shows the active data version and update time in **Help**.
|
|
23
|
+
The in-plugin **Help** entry contains this workflow, detailed category/low-priority guides, data-source information, and user-facing release notes.
|
|
36
24
|
|
|
37
25
|
## Installation
|
|
38
26
|
|
|
39
27
|
Install `poi-plugin-remodel-assistant` from the Poi plugin manager.
|
|
40
28
|
|
|
29
|
+
## Data
|
|
30
|
+
|
|
31
|
+
Improvement data is based on Akashi-List, wikiwiki.jp, KcWiki-Api, and KC3. Data is updated with the packaged plugin data and is not fetched in real time while the plugin is running.
|
|
32
|
+
|
|
41
33
|
## License
|
|
42
34
|
|
|
43
35
|
MIT
|
package/assets/main.css
CHANGED
|
@@ -10955,67 +10955,118 @@ body.decision-modal-is-dragging * {
|
|
|
10955
10955
|
text-overflow: ellipsis;
|
|
10956
10956
|
}
|
|
10957
10957
|
|
|
10958
|
-
/* Current improvement identity stays beside the large equipment artwork.
|
|
10959
|
-
*
|
|
10958
|
+
/* Current improvement identity stays beside the large equipment artwork.
|
|
10959
|
+
* Header tools own a stable top-right column, while plan references may grow
|
|
10960
|
+
* vertically without pushing the tools onto a later flex line. */
|
|
10960
10961
|
#item-improvement .decision-detail-header {
|
|
10961
|
-
|
|
10962
|
+
display: grid;
|
|
10963
|
+
grid-template-columns: auto minmax(0, 1fr) max-content;
|
|
10964
|
+
grid-template-areas: "artwork heading tools";
|
|
10965
|
+
align-items: start;
|
|
10962
10966
|
gap: 12px;
|
|
10963
10967
|
}
|
|
10964
10968
|
|
|
10969
|
+
#item-improvement .decision-detail-header.has-related-plans {
|
|
10970
|
+
grid-template-columns: auto minmax(180px, 0.9fr) minmax(180px, 1.1fr) max-content;
|
|
10971
|
+
grid-template-areas: "artwork heading related tools";
|
|
10972
|
+
}
|
|
10973
|
+
|
|
10974
|
+
#item-improvement .decision-detail-artwork {
|
|
10975
|
+
grid-area: artwork;
|
|
10976
|
+
margin-right: 0;
|
|
10977
|
+
}
|
|
10978
|
+
|
|
10965
10979
|
#item-improvement .decision-detail-heading-copy {
|
|
10966
|
-
|
|
10980
|
+
grid-area: heading;
|
|
10981
|
+
min-width: 0;
|
|
10982
|
+
}
|
|
10983
|
+
|
|
10984
|
+
|
|
10985
|
+
#item-improvement .decision-detail-show-parent-plans {
|
|
10986
|
+
display: inline-flex;
|
|
10987
|
+
align-items: center;
|
|
10988
|
+
gap: 5px;
|
|
10989
|
+
margin: 0;
|
|
10990
|
+
font-size: var(--improvement-font-small);
|
|
10991
|
+
font-weight: 600;
|
|
10992
|
+
cursor: pointer;
|
|
10993
|
+
}
|
|
10994
|
+
|
|
10995
|
+
#item-improvement .decision-detail-show-parent-plans input {
|
|
10996
|
+
margin: 0;
|
|
10967
10997
|
}
|
|
10968
10998
|
|
|
10969
10999
|
#item-improvement .decision-detail-related-plans {
|
|
10970
11000
|
display: grid;
|
|
10971
|
-
|
|
10972
|
-
gap:
|
|
10973
|
-
min-width:
|
|
10974
|
-
margin-left:
|
|
11001
|
+
grid-area: related;
|
|
11002
|
+
gap: 7px;
|
|
11003
|
+
min-width: 180px;
|
|
11004
|
+
margin-left: 16px;
|
|
10975
11005
|
}
|
|
10976
11006
|
|
|
10977
|
-
#item-improvement .decision-detail-related-
|
|
10978
|
-
|
|
10979
|
-
|
|
11007
|
+
#item-improvement .decision-detail-related-plan-group {
|
|
11008
|
+
display: grid;
|
|
11009
|
+
gap: 5px;
|
|
11010
|
+
}
|
|
11011
|
+
|
|
11012
|
+
#item-improvement .decision-detail-related-plan-group-label {
|
|
11013
|
+
width: fit-content;
|
|
11014
|
+
padding: 1px 7px;
|
|
11015
|
+
border-radius: 999px;
|
|
11016
|
+
background: rgba(103, 198, 193, 0.09);
|
|
11017
|
+
color: #67c6c1;
|
|
11018
|
+
font-size: var(--improvement-font-caption);
|
|
10980
11019
|
font-weight: 700;
|
|
11020
|
+
line-height: 1.55;
|
|
10981
11021
|
}
|
|
10982
11022
|
|
|
10983
11023
|
#item-improvement .decision-detail-related-plan-list {
|
|
10984
11024
|
display: flex;
|
|
10985
11025
|
flex-wrap: wrap;
|
|
10986
|
-
|
|
11026
|
+
align-items: flex-start;
|
|
11027
|
+
gap: 7px 8px;
|
|
10987
11028
|
}
|
|
10988
11029
|
|
|
10989
11030
|
#item-improvement .decision-detail-related-plan {
|
|
10990
11031
|
display: inline-flex;
|
|
10991
11032
|
align-items: baseline;
|
|
10992
11033
|
gap: 5px;
|
|
10993
|
-
padding:
|
|
11034
|
+
padding: 5px 9px;
|
|
10994
11035
|
border-radius: 999px;
|
|
10995
11036
|
background: rgba(127, 127, 127, 0.09);
|
|
10996
11037
|
white-space: nowrap;
|
|
10997
11038
|
}
|
|
10998
11039
|
|
|
10999
|
-
#item-improvement .decision-detail-related-plan
|
|
11000
|
-
|
|
11001
|
-
font-size: var(--improvement-font-caption);
|
|
11002
|
-
font-style: normal;
|
|
11040
|
+
#item-improvement .decision-detail-related-plan strong {
|
|
11041
|
+
font-size: var(--improvement-font-body-large);
|
|
11003
11042
|
font-weight: 700;
|
|
11004
11043
|
}
|
|
11005
11044
|
|
|
11006
|
-
#item-improvement .decision-detail-related-plan-
|
|
11007
|
-
|
|
11008
|
-
font-size: var(--improvement-font-small);
|
|
11009
|
-
font-weight: 600;
|
|
11045
|
+
#item-improvement .decision-detail-related-plan.is-consumable {
|
|
11046
|
+
background: rgba(69, 169, 165, 0.1);
|
|
11010
11047
|
}
|
|
11011
11048
|
|
|
11012
|
-
#item-improvement .decision-detail-
|
|
11013
|
-
|
|
11014
|
-
|
|
11049
|
+
#item-improvement .decision-detail-consumable-plan-reference {
|
|
11050
|
+
display: grid;
|
|
11051
|
+
align-content: start;
|
|
11052
|
+
gap: 3px;
|
|
11053
|
+
min-width: max-content;
|
|
11015
11054
|
}
|
|
11016
11055
|
|
|
11017
|
-
#item-improvement .decision-detail-
|
|
11018
|
-
|
|
11056
|
+
#item-improvement .decision-detail-consumable-plan-reference .decision-detail-related-plan-parent {
|
|
11057
|
+
display: flex;
|
|
11058
|
+
align-items: center;
|
|
11059
|
+
gap: 5px;
|
|
11060
|
+
padding-left: 8px;
|
|
11061
|
+
color: #c8d2d7;
|
|
11062
|
+
font-size: var(--improvement-font-body);
|
|
11063
|
+
font-weight: 650;
|
|
11064
|
+
white-space: nowrap;
|
|
11065
|
+
}
|
|
11066
|
+
|
|
11067
|
+
#item-improvement .decision-detail-related-plan-parent-arrow {
|
|
11068
|
+
color: #67c6c1;
|
|
11069
|
+
font-weight: 700;
|
|
11019
11070
|
}
|
|
11020
11071
|
|
|
11021
11072
|
@media (max-width: 760px) {
|
|
@@ -11462,17 +11513,28 @@ body.decision-modal-is-dragging * {
|
|
|
11462
11513
|
/* Page-specific detail-section manager. */
|
|
11463
11514
|
#item-improvement .decision-detail-panel-tools {
|
|
11464
11515
|
display: flex;
|
|
11465
|
-
|
|
11466
|
-
align-
|
|
11516
|
+
grid-area: tools;
|
|
11517
|
+
align-items: center;
|
|
11518
|
+
align-self: start;
|
|
11467
11519
|
justify-content: flex-end;
|
|
11468
|
-
|
|
11520
|
+
gap: 10px;
|
|
11521
|
+
margin-left: 0;
|
|
11522
|
+
white-space: nowrap;
|
|
11469
11523
|
}
|
|
11470
11524
|
|
|
11471
|
-
/*
|
|
11472
|
-
*
|
|
11473
|
-
|
|
11474
|
-
#item-improvement .decision-detail-header
|
|
11475
|
-
|
|
11525
|
+
/* On narrow detail panes the plan groups may move below the identity, but the
|
|
11526
|
+
* parent-plan switch and detail manager stay pinned to the top-right cell. */
|
|
11527
|
+
@media (max-width: 900px) {
|
|
11528
|
+
#item-improvement .decision-detail-header.has-related-plans {
|
|
11529
|
+
grid-template-columns: auto minmax(0, 1fr) max-content;
|
|
11530
|
+
grid-template-areas:
|
|
11531
|
+
"artwork heading tools"
|
|
11532
|
+
"artwork related related";
|
|
11533
|
+
}
|
|
11534
|
+
|
|
11535
|
+
#item-improvement .decision-detail-related-plans {
|
|
11536
|
+
margin-left: 0;
|
|
11537
|
+
}
|
|
11476
11538
|
}
|
|
11477
11539
|
|
|
11478
11540
|
#item-improvement .decision-detail-layout-manager-button {
|
package/data/changelog.json
CHANGED
package/i18n/en-US.json
CHANGED
|
@@ -905,8 +905,11 @@
|
|
|
905
905
|
"shared.Corresponding plan target": "Corresponding Plan target",
|
|
906
906
|
"shared.Current plan target": "Plan target",
|
|
907
907
|
"shared.For plan": "for",
|
|
908
|
+
"shared.Parent plan": "Parent plan",
|
|
908
909
|
"shared.Related plans": "Related plans",
|
|
909
910
|
"shared.Consumable plan": "Consumable plan",
|
|
911
|
+
"shared.User plans": "User plans",
|
|
912
|
+
"shared.Consumable plans": "Consumable plans",
|
|
910
913
|
"workbench.Plan targets": "Plan targets",
|
|
911
914
|
"workbench.Plan targets available for improvement on selected day": "Today improvable",
|
|
912
915
|
"workbench.No plan target is available for improvement on selected day": "No unfinished Plan target needs action on the selected day",
|
|
@@ -1592,5 +1595,9 @@
|
|
|
1592
1595
|
"app.changelog_1_2_5_7": "Fixed several interface and data-handling issues.",
|
|
1593
1596
|
"data.Backup summary %p plans %r routes %l low priority": "%p plans · %r routes · %l low-priority equipment",
|
|
1594
1597
|
"equipment.Search equipment name": "Search equipment name",
|
|
1595
|
-
"workbench.Search equipment name": "Search equipment name"
|
|
1598
|
+
"workbench.Search equipment name": "Search equipment name",
|
|
1599
|
+
"app.changelog_1_2_6_1": "Optimized plan calculation and startup flow to reduce redundant work on local changes and make the interface available sooner after startup.",
|
|
1600
|
+
"app.changelog_1_2_6_2": "Fixed cases where user Plans and consumable Plans were handled together, improving consistency in Plan counts, equipment allocation, and diagnostics.",
|
|
1601
|
+
"shared.Show parent plans": "Show parent plans",
|
|
1602
|
+
"app.changelog_1_2_6_3": "Improved related-Plan and consumable-Plan details with unified target buttons and clearer parent-Plan relationships for better readability."
|
|
1596
1603
|
}
|
package/i18n/ja-JP.json
CHANGED
|
@@ -1344,6 +1344,8 @@
|
|
|
1344
1344
|
"shared.Comfortable density": "ゆったり",
|
|
1345
1345
|
"shared.Compact density": "コンパクト",
|
|
1346
1346
|
"shared.Consumable plan": "消耗材計画",
|
|
1347
|
+
"shared.User plans": "ユーザー計画",
|
|
1348
|
+
"shared.Consumable plans": "消耗材計画",
|
|
1347
1349
|
"shared.Corresponding plan target": "対応する計画目標",
|
|
1348
1350
|
"shared.Current improvement starting point": "現在の改修開始点",
|
|
1349
1351
|
"shared.Current plan target": "現在の計画目標",
|
|
@@ -1353,6 +1355,7 @@
|
|
|
1353
1355
|
"shared.Equipment category filter": "装備カテゴリ絞り込み",
|
|
1354
1356
|
"shared.Expanded": "展開",
|
|
1355
1357
|
"shared.For plan": "使用先",
|
|
1358
|
+
"shared.Parent plan": "親計画",
|
|
1356
1359
|
"shared.Improvement starting point": "改修開始点",
|
|
1357
1360
|
"shared.Interface density": "表示密度",
|
|
1358
1361
|
"shared.Move down": "下へ",
|
|
@@ -1592,5 +1595,9 @@
|
|
|
1592
1595
|
"app.changelog_1_2_5_7": "一部の画面表示とデータ処理の問題を修正しました。",
|
|
1593
1596
|
"data.Backup summary %p plans %r routes %l low priority": "プラン %p · ルート %r · 低優先装備 %l",
|
|
1594
1597
|
"equipment.Search equipment name": "装備名を検索",
|
|
1595
|
-
"workbench.Search equipment name": "装備名を検索"
|
|
1598
|
+
"workbench.Search equipment name": "装備名を検索",
|
|
1599
|
+
"app.changelog_1_2_6_1": "計画計算と起動処理を最適化し、局所的な変更時の重複計算を減らして、起動後に画面をより早く利用できるようにしました。",
|
|
1600
|
+
"app.changelog_1_2_6_2": "一部の状況でユーザー計画と消耗品計画が混在して処理される問題を修正し、計画数・装備割り当て・異常検出の整合性を改善しました。",
|
|
1601
|
+
"shared.Show parent plans": "親計画を表示",
|
|
1602
|
+
"app.changelog_1_2_6_3": "関連計画と消耗品計画の詳細表示を改善し、計画目標ボタンを統一するとともに親計画との関係を明確化して、可読性を高めました。"
|
|
1596
1603
|
}
|
package/i18n/zh-CN.json
CHANGED
|
@@ -905,8 +905,11 @@
|
|
|
905
905
|
"shared.Corresponding plan target": "对应计划目标",
|
|
906
906
|
"shared.Current plan target": "当前计划目标",
|
|
907
907
|
"shared.For plan": "用于",
|
|
908
|
+
"shared.Parent plan": "父计划",
|
|
908
909
|
"shared.Related plans": "相关计划",
|
|
909
910
|
"shared.Consumable plan": "耗材计划",
|
|
911
|
+
"shared.User plans": "用户计划",
|
|
912
|
+
"shared.Consumable plans": "耗材计划",
|
|
910
913
|
"workbench.Plan targets": "计划目标",
|
|
911
914
|
"workbench.Plan targets available for improvement on selected day": "今日可改",
|
|
912
915
|
"workbench.No plan target is available for improvement on selected day": "当天没有需要处理的未完成计划目标",
|
|
@@ -1592,5 +1595,9 @@
|
|
|
1592
1595
|
"app.changelog_1_2_5_7": "修复部分界面与数据处理问题。",
|
|
1593
1596
|
"data.Backup summary %p plans %r routes %l low priority": "计划 %p · 路线 %r · 低优先装备 %l",
|
|
1594
1597
|
"equipment.Search equipment name": "搜索装备名称",
|
|
1595
|
-
"workbench.Search equipment name": "搜索装备名称"
|
|
1598
|
+
"workbench.Search equipment name": "搜索装备名称",
|
|
1599
|
+
"app.changelog_1_2_6_1": "优化计划计算与启动流程,减少局部变化时的重复计算,并加快启动后的界面可用速度。",
|
|
1600
|
+
"app.changelog_1_2_6_2": "修复用户计划与耗材计划在部分情况下混合处理的问题,改善计划数量、装备分配与异常检测的一致性。",
|
|
1601
|
+
"shared.Show parent plans": "显示父计划",
|
|
1602
|
+
"app.changelog_1_2_6_3": "优化相关计划与耗材计划详情显示,统一计划目标按钮,并补充父计划关系,提升信息可读性。"
|
|
1596
1603
|
}
|
package/i18n/zh-TW.json
CHANGED
|
@@ -1344,6 +1344,8 @@
|
|
|
1344
1344
|
"shared.Comfortable density": "寬鬆",
|
|
1345
1345
|
"shared.Compact density": "緊湊",
|
|
1346
1346
|
"shared.Consumable plan": "耗材計畫",
|
|
1347
|
+
"shared.User plans": "使用者計畫",
|
|
1348
|
+
"shared.Consumable plans": "耗材計畫",
|
|
1347
1349
|
"shared.Corresponding plan target": "對應計畫目標",
|
|
1348
1350
|
"shared.Current improvement starting point": "目前改修起點",
|
|
1349
1351
|
"shared.Current plan target": "目前計畫目標",
|
|
@@ -1353,6 +1355,7 @@
|
|
|
1353
1355
|
"shared.Equipment category filter": "裝備分類篩選",
|
|
1354
1356
|
"shared.Expanded": "已展開",
|
|
1355
1357
|
"shared.For plan": "用於",
|
|
1358
|
+
"shared.Parent plan": "父計畫",
|
|
1356
1359
|
"shared.Improvement starting point": "改修起點",
|
|
1357
1360
|
"shared.Interface density": "介面密度",
|
|
1358
1361
|
"shared.Move down": "下移",
|
|
@@ -1592,5 +1595,9 @@
|
|
|
1592
1595
|
"app.changelog_1_2_5_7": "修復部分介面與資料處理問題。",
|
|
1593
1596
|
"data.Backup summary %p plans %r routes %l low priority": "計畫 %p · 路線 %r · 低優先裝備 %l",
|
|
1594
1597
|
"equipment.Search equipment name": "搜尋裝備名稱",
|
|
1595
|
-
"workbench.Search equipment name": "搜尋裝備名稱"
|
|
1598
|
+
"workbench.Search equipment name": "搜尋裝備名稱",
|
|
1599
|
+
"app.changelog_1_2_6_1": "最佳化計畫計算與啟動流程,減少局部變化時的重複計算,並加快啟動後的介面可用速度。",
|
|
1600
|
+
"app.changelog_1_2_6_2": "修復使用者計畫與耗材計畫在部分情況下混合處理的問題,改善計畫數量、裝備分配與異常檢測的一致性。",
|
|
1601
|
+
"shared.Show parent plans": "顯示父計畫",
|
|
1602
|
+
"app.changelog_1_2_6_3": "最佳化相關計畫與耗材計畫詳情顯示,統一計畫目標按鈕,並補充父計畫關係,提升資訊可讀性。"
|
|
1596
1603
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "poi-plugin-remodel-assistant",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.6-beta.1",
|
|
4
4
|
"description": "View enhanced KanColle improvement data, manage improvement plans, and receive improvement recommendations.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"author": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"icon": "fa/wrench",
|
|
28
28
|
"id": "poi-plugin-remodel-assistant",
|
|
29
29
|
"priority": 50,
|
|
30
|
-
"releaseChannel": "
|
|
30
|
+
"releaseChannel": "beta",
|
|
31
31
|
"title": "改修助手",
|
|
32
32
|
"runtimeFlags": {
|
|
33
33
|
"forceFullDecisionRebuild": false,
|
|
@@ -9,7 +9,7 @@ var _equipmentBlacklistDomain = require("../equipment/domain/equipment-blacklist
|
|
|
9
9
|
|
|
10
10
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
11
11
|
|
|
12
|
-
const SNAPSHOT_INPUT_KEYS = ['dataRevision', 'dataIdentity', 'plans', 'initialDay', 'masterEquips', 'masterUseitems', 'equipTypes', 'staticItems', 'actualEquipLevels', 'actualEquipInventory', 'actualUseitems', 'actualResourceBudget', 'equipmentRealityReady', 'actualOwnedShipMasterIds', 'decisionSelections', 'planRouteSelections', 'currentInventoryBindings', 'equipmentBlacklist', 'routeAcquisitionIndex'];
|
|
12
|
+
const SNAPSHOT_INPUT_KEYS = ['dataRevision', 'dataIdentity', 'plans', 'initialDay', 'masterEquips', 'masterUseitems', 'equipTypes', 'staticItems', 'actualEquipLevels', 'actualEquipInventory', 'actualUseitems', 'actualResourceBudget', 'equipmentRealityReady', 'actualOwnedShipMasterIds', 'decisionSelections', 'planRouteSelections', 'currentInventoryBindings', 'currentInventoryBindingOwnerRefs', 'equipmentBlacklist', 'routeAcquisitionIndex'];
|
|
13
13
|
exports.SNAPSHOT_INPUT_KEYS = SNAPSHOT_INPUT_KEYS;
|
|
14
14
|
const SNAPSHOT_FEEDBACK_CONTEXT_KEYS = SNAPSHOT_INPUT_KEYS.filter(key => key !== 'currentInventoryBindings');
|
|
15
15
|
exports.SNAPSHOT_FEEDBACK_CONTEXT_KEYS = SNAPSHOT_FEEDBACK_CONTEXT_KEYS;
|
|
@@ -63,7 +63,7 @@ const stableSignature = value => JSON.stringify(stableValue(value || {})); // `m
|
|
|
63
63
|
// cheap secondary guard for unexpected replacement under the same data identity.
|
|
64
64
|
|
|
65
65
|
|
|
66
|
-
const CONTENT_IDENTITY_KEYS = new Set(['plans', 'actualEquipLevels', 'actualEquipInventory', 'actualUseitems', 'actualResourceBudget', 'actualOwnedShipMasterIds', 'decisionSelections', 'planRouteSelections', 'currentInventoryBindings']); // `routeAcquisitionIndex` is a large selector-derived static projection. It
|
|
66
|
+
const CONTENT_IDENTITY_KEYS = new Set(['plans', 'actualEquipLevels', 'actualEquipInventory', 'actualUseitems', 'actualResourceBudget', 'actualOwnedShipMasterIds', 'decisionSelections', 'planRouteSelections', 'currentInventoryBindings', 'currentInventoryBindingOwnerRefs']); // `routeAcquisitionIndex` is a large selector-derived static projection. It
|
|
67
67
|
// still needs semantic equality so a reconstructed-but-equivalent generation
|
|
68
68
|
// can reuse the completed Snapshot, but repeatedly sorting/stringifying the
|
|
69
69
|
// same nested object on every React update makes Plan edits unnecessarily slow.
|