@knpkv/control-center 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/client/.vite/manifest.json +127 -125
  2. package/dist/client/assets/{ActiveWorkPage-Bvji6Tys.js → ActiveWorkPage-C6QwDV1Y.js} +2 -2
  3. package/dist/client/assets/{ActiveWorkPage-Bvji6Tys.js.map → ActiveWorkPage-C6QwDV1Y.js.map} +1 -1
  4. package/dist/client/assets/{AgentPage-Bom41la2.js → AgentPage-OqwP6uRi.js} +2 -2
  5. package/dist/client/assets/{AgentPage-Bom41la2.js.map → AgentPage-OqwP6uRi.js.map} +1 -1
  6. package/dist/client/assets/{AtlassianOAuthCallbackPage-dr-B9-DD.js → AtlassianOAuthCallbackPage-Bm7UhU-h.js} +2 -2
  7. package/dist/client/assets/{AtlassianOAuthCallbackPage-dr-B9-DD.js.map → AtlassianOAuthCallbackPage-Bm7UhU-h.js.map} +1 -1
  8. package/dist/client/assets/{AuthorizedSharePage-C-P-PNfm.js → AuthorizedSharePage-DblP3USU.js} +2 -2
  9. package/dist/client/assets/{AuthorizedSharePage-C-P-PNfm.js.map → AuthorizedSharePage-DblP3USU.js.map} +1 -1
  10. package/dist/client/assets/{BrowserCrypto-BPiuCuW-.js → BrowserCrypto-BGGRC6iW.js} +2 -2
  11. package/dist/client/assets/{BrowserCrypto-BPiuCuW-.js.map → BrowserCrypto-BGGRC6iW.js.map} +1 -1
  12. package/dist/client/assets/{BrowserSessionHydrator-C8F_LGhg.js → BrowserSessionHydrator-39UDbHf0.js} +2 -2
  13. package/dist/client/assets/{BrowserSessionHydrator-C8F_LGhg.js.map → BrowserSessionHydrator-39UDbHf0.js.map} +1 -1
  14. package/dist/client/assets/{CommandSearch-D6iFcdvj.js → CommandSearch-D4Fnjsl-.js} +2 -2
  15. package/dist/client/assets/{CommandSearch-D6iFcdvj.js.map → CommandSearch-D4Fnjsl-.js.map} +1 -1
  16. package/dist/client/assets/{ItemsPage-x39U11an.js → ItemsPage-BZQiTh9b.js} +2 -2
  17. package/dist/client/assets/{ItemsPage-x39U11an.js.map → ItemsPage-BZQiTh9b.js.map} +1 -1
  18. package/dist/client/assets/{PairPage-D5vlz4OG.js → PairPage-Dvfse5ky.js} +2 -2
  19. package/dist/client/assets/{PairPage-D5vlz4OG.js.map → PairPage-Dvfse5ky.js.map} +1 -1
  20. package/dist/client/assets/{PortfolioOverview-DSUabOmm.js → PortfolioOverview-DeJcfXcw.js} +2 -2
  21. package/dist/client/assets/{PortfolioOverview-DSUabOmm.js.map → PortfolioOverview-DeJcfXcw.js.map} +1 -1
  22. package/dist/client/assets/{ReleaseRoute-DyDm5s85.js → ReleaseRoute-D9q8_sCk.js} +2 -2
  23. package/dist/client/assets/{ReleaseRoute-DyDm5s85.js.map → ReleaseRoute-D9q8_sCk.js.map} +1 -1
  24. package/dist/client/assets/ReleaseWorkset-Bs_FXlbC.js +2 -0
  25. package/dist/client/assets/ReleaseWorkset-Bs_FXlbC.js.map +1 -0
  26. package/dist/client/assets/{ServicesPage-CoMVH2Si.js → ServicesPage-Co6GJHgc.js} +2 -2
  27. package/dist/client/assets/{ServicesPage-CoMVH2Si.js.map → ServicesPage-Co6GJHgc.js.map} +1 -1
  28. package/dist/client/assets/{TimelinePage-D8Fj_351.js → TimelinePage-CM2og72M.js} +2 -2
  29. package/dist/client/assets/{TimelinePage-D8Fj_351.js.map → TimelinePage-CM2og72M.js.map} +1 -1
  30. package/dist/client/assets/{WorkspaceEntityLink-BRifdJHn.js → WorkspaceEntityLink-CTw_He-8.js} +2 -2
  31. package/dist/client/assets/{WorkspaceEntityLink-BRifdJHn.js.map → WorkspaceEntityLink-CTw_He-8.js.map} +1 -1
  32. package/dist/client/assets/{WorkspaceEntityRoute-BwpujSqk.css → WorkspaceEntityRoute-Bdmv6ki4.css} +1 -1
  33. package/dist/client/assets/WorkspaceEntityRoute-BnsmaeS2.js +30 -0
  34. package/dist/client/assets/WorkspaceEntityRoute-BnsmaeS2.js.map +1 -0
  35. package/dist/client/assets/{WorkspaceReleaseLayout-DDLdY0rU.js → WorkspaceReleaseLayout-Ba6keUju.js} +2 -2
  36. package/dist/client/assets/{WorkspaceReleaseLayout-DDLdY0rU.js.map → WorkspaceReleaseLayout-Ba6keUju.js.map} +1 -1
  37. package/dist/client/assets/{authenticatedMutationClient-D5yD0rch.js → authenticatedMutationClient-CJklf3iD.js} +2 -2
  38. package/dist/client/assets/{authenticatedMutationClient-D5yD0rch.js.map → authenticatedMutationClient-CJklf3iD.js.map} +1 -1
  39. package/dist/client/assets/{authorizedShareTransport-Dyj53kJf.js → authorizedShareTransport-Xg20SHJ5.js} +2 -2
  40. package/dist/client/assets/{authorizedShareTransport-Dyj53kJf.js.map → authorizedShareTransport-Xg20SHJ5.js.map} +1 -1
  41. package/dist/client/assets/{client-OmvShYdC.js → client-P7FaPwzJ.js} +2 -2
  42. package/dist/client/assets/{client-OmvShYdC.js.map → client-P7FaPwzJ.js.map} +1 -1
  43. package/dist/client/assets/{connectionTestTransport-c25QXx7A.js → connectionTestTransport-C9iPOkKM.js} +2 -2
  44. package/dist/client/assets/{connectionTestTransport-c25QXx7A.js.map → connectionTestTransport-C9iPOkKM.js.map} +1 -1
  45. package/dist/client/assets/{index-DLoOV6Hp.js → index-DpW_ckau.js} +3 -3
  46. package/dist/client/assets/{index-DLoOV6Hp.js.map → index-DpW_ckau.js.map} +1 -1
  47. package/dist/client/assets/{patterns-DEbg7R-A-Cw0A2uKS.js → patterns-DEbg7R-A-BhsMyh9D.js} +2 -2
  48. package/dist/client/assets/{patterns-DEbg7R-A-Cw0A2uKS.js.map → patterns-DEbg7R-A-BhsMyh9D.js.map} +1 -1
  49. package/dist/client/assets/{presentPortfolio-CkRqd_zz.js → presentPortfolio-D-v615bg.js} +2 -2
  50. package/dist/client/assets/{presentPortfolio-CkRqd_zz.js.map → presentPortfolio-D-v615bg.js.map} +1 -1
  51. package/dist/client/assets/presentWorkspaceItems-IAp5SnpB.js +2 -0
  52. package/dist/client/assets/presentWorkspaceItems-IAp5SnpB.js.map +1 -0
  53. package/dist/client/assets/{releaseRoutes-DSWkTh-E.js → releaseRoutes-CfaNElmG.js} +2 -2
  54. package/dist/client/assets/{releaseRoutes-DSWkTh-E.js.map → releaseRoutes-CfaNElmG.js.map} +1 -1
  55. package/dist/client/assets/{serviceOnboarding-B9pvdyWf.js → serviceOnboarding-BZ2U_Ugw.js} +2 -2
  56. package/dist/client/assets/{serviceOnboarding-B9pvdyWf.js.map → serviceOnboarding-BZ2U_Ugw.js.map} +1 -1
  57. package/dist/client/assets/{useWorkspaceItems-D0FuHGto.js → useWorkspaceItems-DQTYaq1R.js} +2 -2
  58. package/dist/client/assets/{useWorkspaceItems-D0FuHGto.js.map → useWorkspaceItems-DQTYaq1R.js.map} +1 -1
  59. package/dist/client/assets/workspaceEntityRoutes-Biw67kRR.js +2 -0
  60. package/dist/client/assets/workspaceEntityRoutes-Biw67kRR.js.map +1 -0
  61. package/dist/client/build-graph.json +32 -2
  62. package/dist/client/index.html +1 -1
  63. package/dist/server/api/deliveryGraph.d.ts +126 -0
  64. package/dist/server/api/deliveryGraph.d.ts.map +1 -1
  65. package/dist/server/api/index.js +2 -2
  66. package/dist/server/api/shares.d.ts +14 -0
  67. package/dist/server/api/shares.d.ts.map +1 -1
  68. package/dist/server/assets/{BindConfig-BjK10BEb.js → BindConfig-Dk3vjYZc.js} +7 -7
  69. package/dist/server/assets/{BindConfig-BjK10BEb.js.map → BindConfig-Dk3vjYZc.js.map} +1 -1
  70. package/dist/server/assets/{controlCenterApi-tZPvRPRH.js → controlCenterApi-Dsug4Rzi.js} +2 -2
  71. package/dist/server/assets/{controlCenterApi-tZPvRPRH.js.map → controlCenterApi-Dsug4Rzi.js.map} +1 -1
  72. package/dist/server/assets/{domainEvent-x7yeq-gU.js → domainEvent-CZLKMqgn.js} +13 -2
  73. package/dist/server/assets/{domainEvent-x7yeq-gU.js.map → domainEvent-CZLKMqgn.js.map} +1 -1
  74. package/dist/server/assets/{firstPartyServices-Y41P8uke.js → firstPartyServices-BWdrzdfD.js} +2 -2
  75. package/dist/server/assets/{firstPartyServices-Y41P8uke.js.map → firstPartyServices-BWdrzdfD.js.map} +1 -1
  76. package/dist/server/assets/{manualPluginSynchronization-C0aHB4UM.js → manualPluginSynchronization-CDnX9qXi.js} +64 -23
  77. package/dist/server/assets/manualPluginSynchronization-CDnX9qXi.js.map +1 -0
  78. package/dist/server/assets/{portfolioInvalidation-Ds9Xm4_P.js → portfolioInvalidation-iTUo5N4r.js} +26 -6
  79. package/dist/server/assets/portfolioInvalidation-iTUo5N4r.js.map +1 -0
  80. package/dist/server/assets/{readiness-CzU3vjYQ.js → readiness-CZBkcjLP.js} +2 -2
  81. package/dist/server/assets/{readiness-CzU3vjYQ.js.map → readiness-CZBkcjLP.js.map} +1 -1
  82. package/dist/server/build-graph.json +1 -0
  83. package/dist/server/domain/deliveryGraph.d.ts +14 -0
  84. package/dist/server/domain/deliveryGraph.d.ts.map +1 -1
  85. package/dist/server/domain/index.js +3 -3
  86. package/dist/server/index.js +4 -4
  87. package/dist/server/server/application/normalizedPluginPageMaterialization.d.ts +1 -1
  88. package/dist/server/server/application/normalizedPluginPageMaterialization.d.ts.map +1 -1
  89. package/dist/server/server/cli.js +4 -4
  90. package/dist/server/server/index.js +3 -3
  91. package/dist/server/server/persistence/Persistence.d.ts +35 -0
  92. package/dist/server/server/persistence/Persistence.d.ts.map +1 -1
  93. package/dist/server/server/persistence/repositories/delivery-graph/contract.d.ts +56 -0
  94. package/dist/server/server/persistence/repositories/delivery-graph/contract.d.ts.map +1 -1
  95. package/dist/server/server/persistence/repositories/delivery-graph/decode.d.ts +7 -0
  96. package/dist/server/server/persistence/repositories/delivery-graph/decode.d.ts.map +1 -1
  97. package/dist/server/server/persistence/repositories/delivery-graph/read.d.ts +35 -0
  98. package/dist/server/server/persistence/repositories/delivery-graph/read.d.ts.map +1 -1
  99. package/dist/server/server/persistence/repositories/delivery-graph/rows.d.ts +7 -0
  100. package/dist/server/server/persistence/repositories/delivery-graph/rows.d.ts.map +1 -1
  101. package/dist/server/server/persistence/repositories/delivery-graph/write.d.ts +14 -0
  102. package/dist/server/server/persistence/repositories/delivery-graph/write.d.ts.map +1 -1
  103. package/dist/server/server/persistence/repositories/deliveryGraphRepository.d.ts +35 -0
  104. package/dist/server/server/persistence/repositories/deliveryGraphRepository.d.ts.map +1 -1
  105. package/package.json +6 -6
  106. package/dist/client/assets/ReleaseWorkset-BhGacsgb.js +0 -2
  107. package/dist/client/assets/ReleaseWorkset-BhGacsgb.js.map +0 -1
  108. package/dist/client/assets/WorkspaceEntityRoute-DPci8Q8I.js +0 -30
  109. package/dist/client/assets/WorkspaceEntityRoute-DPci8Q8I.js.map +0 -1
  110. package/dist/client/assets/presentWorkspaceItems-BU__8LcC.js +0 -2
  111. package/dist/client/assets/presentWorkspaceItems-BU__8LcC.js.map +0 -1
  112. package/dist/client/assets/workspaceEntityRoutes-CRcfSq7c.js +0 -2
  113. package/dist/client/assets/workspaceEntityRoutes-CRcfSq7c.js.map +0 -1
  114. package/dist/server/assets/manualPluginSynchronization-C0aHB4UM.js.map +0 -1
  115. package/dist/server/assets/portfolioInvalidation-Ds9Xm4_P.js.map +0 -1
@@ -7,11 +7,11 @@
7
7
  "file": "assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2",
8
8
  "src": "../rly/dist/fonts/geist-mono-latin-wght-normal.woff2"
9
9
  },
10
- "_BrowserCrypto-BPiuCuW-.js": {
11
- "file": "assets/BrowserCrypto-BPiuCuW-.js",
10
+ "_BrowserCrypto-BGGRC6iW.js": {
11
+ "file": "assets/BrowserCrypto-BGGRC6iW.js",
12
12
  "name": "BrowserCrypto",
13
13
  "imports": [
14
- "_client-OmvShYdC.js"
14
+ "_client-P7FaPwzJ.js"
15
15
  ]
16
16
  },
17
17
  "_Dialog-DwSIPb-B-DVn37afM.js": {
@@ -21,19 +21,19 @@
21
21
  "_jsx-runtime-n5LQ9ujS.js"
22
22
  ]
23
23
  },
24
- "_PortfolioOverview-DSUabOmm.js": {
25
- "file": "assets/PortfolioOverview-DSUabOmm.js",
24
+ "_PortfolioOverview-DeJcfXcw.js": {
25
+ "file": "assets/PortfolioOverview-DeJcfXcw.js",
26
26
  "name": "PortfolioOverview",
27
27
  "imports": [
28
28
  "_jsx-runtime-n5LQ9ujS.js",
29
29
  "_Dialog-DwSIPb-B-DVn37afM.js",
30
30
  "_releasePaths-s-fSbIM-.js",
31
31
  "index.html",
32
- "_patterns-DEbg7R-A-Cw0A2uKS.js",
33
- "_client-OmvShYdC.js",
34
- "_releaseRoutes-DSWkTh-E.js",
35
- "_serviceOnboarding-B9pvdyWf.js",
36
- "_presentPortfolio-CkRqd_zz.js"
32
+ "_patterns-DEbg7R-A-BhsMyh9D.js",
33
+ "_client-P7FaPwzJ.js",
34
+ "_releaseRoutes-CfaNElmG.js",
35
+ "_serviceOnboarding-BZ2U_Ugw.js",
36
+ "_presentPortfolio-D-v615bg.js"
37
37
  ],
38
38
  "css": [
39
39
  "assets/PortfolioOverview-nrb6Ebbh.css"
@@ -47,66 +47,66 @@
47
47
  "file": "assets/ReleaseWorkset-6gGnZPS8.css",
48
48
  "src": "_ReleaseWorkset-6gGnZPS8.css"
49
49
  },
50
- "_ReleaseWorkset-BhGacsgb.js": {
51
- "file": "assets/ReleaseWorkset-BhGacsgb.js",
50
+ "_ReleaseWorkset-Bs_FXlbC.js": {
51
+ "file": "assets/ReleaseWorkset-Bs_FXlbC.js",
52
52
  "name": "ReleaseWorkset",
53
53
  "imports": [
54
54
  "_jsx-runtime-n5LQ9ujS.js",
55
55
  "_Dialog-DwSIPb-B-DVn37afM.js",
56
56
  "index.html",
57
- "_patterns-DEbg7R-A-Cw0A2uKS.js",
58
- "_client-OmvShYdC.js",
57
+ "_patterns-DEbg7R-A-BhsMyh9D.js",
58
+ "_client-P7FaPwzJ.js",
59
59
  "_workspaceEntityPaths-xAl2jRFm.js",
60
- "_WorkspaceEntityLink-BRifdJHn.js"
60
+ "_WorkspaceEntityLink-CTw_He-8.js"
61
61
  ],
62
62
  "css": [
63
63
  "assets/ReleaseWorkset-6gGnZPS8.css"
64
64
  ]
65
65
  },
66
- "_WorkspaceEntityLink-BRifdJHn.js": {
67
- "file": "assets/WorkspaceEntityLink-BRifdJHn.js",
66
+ "_WorkspaceEntityLink-CTw_He-8.js": {
67
+ "file": "assets/WorkspaceEntityLink-CTw_He-8.js",
68
68
  "name": "WorkspaceEntityLink",
69
69
  "imports": [
70
70
  "_jsx-runtime-n5LQ9ujS.js",
71
71
  "_Dialog-DwSIPb-B-DVn37afM.js",
72
- "_workspaceEntityRoutes-CRcfSq7c.js"
72
+ "_workspaceEntityRoutes-Biw67kRR.js"
73
73
  ]
74
74
  },
75
- "_authenticatedMutationClient-D5yD0rch.js": {
76
- "file": "assets/authenticatedMutationClient-D5yD0rch.js",
75
+ "_authenticatedMutationClient-CJklf3iD.js": {
76
+ "file": "assets/authenticatedMutationClient-CJklf3iD.js",
77
77
  "name": "authenticatedMutationClient",
78
78
  "imports": [
79
- "_client-OmvShYdC.js"
79
+ "_client-P7FaPwzJ.js"
80
80
  ]
81
81
  },
82
- "_authorizedShareTransport-Dyj53kJf.js": {
83
- "file": "assets/authorizedShareTransport-Dyj53kJf.js",
82
+ "_authorizedShareTransport-Xg20SHJ5.js": {
83
+ "file": "assets/authorizedShareTransport-Xg20SHJ5.js",
84
84
  "name": "authorizedShareTransport",
85
85
  "imports": [
86
- "_client-OmvShYdC.js",
87
- "_BrowserCrypto-BPiuCuW-.js",
88
- "_authenticatedMutationClient-D5yD0rch.js"
86
+ "_client-P7FaPwzJ.js",
87
+ "_BrowserCrypto-BGGRC6iW.js",
88
+ "_authenticatedMutationClient-CJklf3iD.js"
89
89
  ]
90
90
  },
91
- "_client-OmvShYdC.js": {
92
- "file": "assets/client-OmvShYdC.js",
91
+ "_client-P7FaPwzJ.js": {
92
+ "file": "assets/client-P7FaPwzJ.js",
93
93
  "name": "client"
94
94
  },
95
- "_connectionTestTransport-c25QXx7A.js": {
96
- "file": "assets/connectionTestTransport-c25QXx7A.js",
95
+ "_connectionTestTransport-C9iPOkKM.js": {
96
+ "file": "assets/connectionTestTransport-C9iPOkKM.js",
97
97
  "name": "connectionTestTransport",
98
98
  "imports": [
99
- "_client-OmvShYdC.js",
100
- "_BrowserCrypto-BPiuCuW-.js",
101
- "_authenticatedMutationClient-D5yD0rch.js"
99
+ "_client-P7FaPwzJ.js",
100
+ "_BrowserCrypto-BGGRC6iW.js",
101
+ "_authenticatedMutationClient-CJklf3iD.js"
102
102
  ]
103
103
  },
104
104
  "_jsx-runtime-n5LQ9ujS.js": {
105
105
  "file": "assets/jsx-runtime-n5LQ9ujS.js",
106
106
  "name": "jsx-runtime"
107
107
  },
108
- "_patterns-DEbg7R-A-Cw0A2uKS.js": {
109
- "file": "assets/patterns-DEbg7R-A-Cw0A2uKS.js",
108
+ "_patterns-DEbg7R-A-BhsMyh9D.js": {
109
+ "file": "assets/patterns-DEbg7R-A-BhsMyh9D.js",
110
110
  "name": "patterns-DEbg7R-A",
111
111
  "imports": [
112
112
  "_jsx-runtime-n5LQ9ujS.js",
@@ -114,18 +114,18 @@
114
114
  "index.html"
115
115
  ]
116
116
  },
117
- "_presentPortfolio-CkRqd_zz.js": {
118
- "file": "assets/presentPortfolio-CkRqd_zz.js",
117
+ "_presentPortfolio-D-v615bg.js": {
118
+ "file": "assets/presentPortfolio-D-v615bg.js",
119
119
  "name": "presentPortfolio",
120
120
  "imports": [
121
- "_client-OmvShYdC.js"
121
+ "_client-P7FaPwzJ.js"
122
122
  ]
123
123
  },
124
- "_presentWorkspaceItems-BU__8LcC.js": {
125
- "file": "assets/presentWorkspaceItems-BU__8LcC.js",
124
+ "_presentWorkspaceItems-IAp5SnpB.js": {
125
+ "file": "assets/presentWorkspaceItems-IAp5SnpB.js",
126
126
  "name": "presentWorkspaceItems",
127
127
  "imports": [
128
- "_client-OmvShYdC.js",
128
+ "_client-P7FaPwzJ.js",
129
129
  "_workspaceEntityPaths-xAl2jRFm.js"
130
130
  ]
131
131
  },
@@ -133,19 +133,19 @@
133
133
  "file": "assets/releasePaths-s-fSbIM-.js",
134
134
  "name": "releasePaths"
135
135
  },
136
- "_releaseRoutes-DSWkTh-E.js": {
137
- "file": "assets/releaseRoutes-DSWkTh-E.js",
136
+ "_releaseRoutes-CfaNElmG.js": {
137
+ "file": "assets/releaseRoutes-CfaNElmG.js",
138
138
  "name": "releaseRoutes",
139
139
  "imports": [
140
140
  "_releasePaths-s-fSbIM-.js",
141
- "_client-OmvShYdC.js"
141
+ "_client-P7FaPwzJ.js"
142
142
  ]
143
143
  },
144
- "_serviceOnboarding-B9pvdyWf.js": {
145
- "file": "assets/serviceOnboarding-B9pvdyWf.js",
144
+ "_serviceOnboarding-BZ2U_Ugw.js": {
145
+ "file": "assets/serviceOnboarding-BZ2U_Ugw.js",
146
146
  "name": "serviceOnboarding",
147
147
  "imports": [
148
- "_client-OmvShYdC.js"
148
+ "_client-P7FaPwzJ.js"
149
149
  ]
150
150
  },
151
151
  "_useCompactReleasePreview-Ch3XxgJU.js": {
@@ -155,30 +155,32 @@
155
155
  "_jsx-runtime-n5LQ9ujS.js"
156
156
  ]
157
157
  },
158
- "_useWorkspaceItems-D0FuHGto.js": {
159
- "file": "assets/useWorkspaceItems-D0FuHGto.js",
158
+ "_useWorkspaceItems-DQTYaq1R.js": {
159
+ "file": "assets/useWorkspaceItems-DQTYaq1R.js",
160
160
  "name": "useWorkspaceItems",
161
161
  "imports": [
162
162
  "_jsx-runtime-n5LQ9ujS.js",
163
- "_client-OmvShYdC.js",
164
- "_presentWorkspaceItems-BU__8LcC.js"
163
+ "_client-P7FaPwzJ.js",
164
+ "_presentWorkspaceItems-IAp5SnpB.js"
165
165
  ]
166
166
  },
167
167
  "_workspaceEntityPaths-xAl2jRFm.js": {
168
168
  "file": "assets/workspaceEntityPaths-xAl2jRFm.js",
169
169
  "name": "workspaceEntityPaths"
170
170
  },
171
- "_workspaceEntityRoutes-CRcfSq7c.js": {
172
- "file": "assets/workspaceEntityRoutes-CRcfSq7c.js",
171
+ "_workspaceEntityRoutes-Biw67kRR.js": {
172
+ "file": "assets/workspaceEntityRoutes-Biw67kRR.js",
173
173
  "name": "workspaceEntityRoutes",
174
174
  "imports": [
175
- "_client-OmvShYdC.js",
176
- "_releaseRoutes-DSWkTh-E.js",
175
+ "_releasePaths-s-fSbIM-.js",
176
+ "index.html",
177
+ "_client-P7FaPwzJ.js",
178
+ "_releaseRoutes-CfaNElmG.js",
177
179
  "_workspaceEntityPaths-xAl2jRFm.js"
178
180
  ]
179
181
  },
180
182
  "index.html": {
181
- "file": "assets/index-DLoOV6Hp.js",
183
+ "file": "assets/index-DpW_ckau.js",
182
184
  "name": "index",
183
185
  "src": "index.html",
184
186
  "isEntry": true,
@@ -190,7 +192,7 @@
190
192
  "dynamicImports": [
191
193
  "src/client/BrowserSessionHydrator.tsx",
192
194
  "src/client/command/CommandSearch.tsx",
193
- "_PortfolioOverview-DSUabOmm.js",
195
+ "_PortfolioOverview-DeJcfXcw.js",
194
196
  "src/client/PairPage.tsx",
195
197
  "src/client/AgentPage.tsx",
196
198
  "src/client/releases/WorkspaceReleaseLayout.tsx",
@@ -212,7 +214,7 @@
212
214
  ]
213
215
  },
214
216
  "src/client/AgentPage.tsx": {
215
- "file": "assets/AgentPage-Bom41la2.js",
217
+ "file": "assets/AgentPage-OqwP6uRi.js",
216
218
  "name": "AgentPage",
217
219
  "src": "src/client/AgentPage.tsx",
218
220
  "isDynamicEntry": true,
@@ -221,28 +223,28 @@
221
223
  "_Dialog-DwSIPb-B-DVn37afM.js",
222
224
  "_releasePaths-s-fSbIM-.js",
223
225
  "index.html",
224
- "_patterns-DEbg7R-A-Cw0A2uKS.js",
225
- "_client-OmvShYdC.js",
226
- "_releaseRoutes-DSWkTh-E.js",
227
- "_authenticatedMutationClient-D5yD0rch.js"
226
+ "_patterns-DEbg7R-A-BhsMyh9D.js",
227
+ "_client-P7FaPwzJ.js",
228
+ "_releaseRoutes-CfaNElmG.js",
229
+ "_authenticatedMutationClient-CJklf3iD.js"
228
230
  ],
229
231
  "css": [
230
232
  "assets/AgentPage-f6WXQA21.css"
231
233
  ]
232
234
  },
233
235
  "src/client/BrowserSessionHydrator.tsx": {
234
- "file": "assets/BrowserSessionHydrator-C8F_LGhg.js",
236
+ "file": "assets/BrowserSessionHydrator-39UDbHf0.js",
235
237
  "name": "BrowserSessionHydrator",
236
238
  "src": "src/client/BrowserSessionHydrator.tsx",
237
239
  "isDynamicEntry": true,
238
240
  "imports": [
239
241
  "_jsx-runtime-n5LQ9ujS.js",
240
242
  "index.html",
241
- "_client-OmvShYdC.js"
243
+ "_client-P7FaPwzJ.js"
242
244
  ]
243
245
  },
244
246
  "src/client/PairPage.tsx": {
245
- "file": "assets/PairPage-D5vlz4OG.js",
247
+ "file": "assets/PairPage-Dvfse5ky.js",
246
248
  "name": "PairPage",
247
249
  "src": "src/client/PairPage.tsx",
248
250
  "isDynamicEntry": true,
@@ -251,13 +253,13 @@
251
253
  "_Dialog-DwSIPb-B-DVn37afM.js",
252
254
  "_releasePaths-s-fSbIM-.js",
253
255
  "index.html",
254
- "_client-OmvShYdC.js",
255
- "_releaseRoutes-DSWkTh-E.js",
256
- "_serviceOnboarding-B9pvdyWf.js"
256
+ "_client-P7FaPwzJ.js",
257
+ "_releaseRoutes-CfaNElmG.js",
258
+ "_serviceOnboarding-BZ2U_Ugw.js"
257
259
  ]
258
260
  },
259
261
  "src/client/command/CommandSearch.tsx": {
260
- "file": "assets/CommandSearch-D6iFcdvj.js",
262
+ "file": "assets/CommandSearch-D4Fnjsl-.js",
261
263
  "name": "CommandSearch",
262
264
  "src": "src/client/command/CommandSearch.tsx",
263
265
  "isDynamicEntry": true,
@@ -266,19 +268,19 @@
266
268
  "_Dialog-DwSIPb-B-DVn37afM.js",
267
269
  "_releasePaths-s-fSbIM-.js",
268
270
  "index.html",
269
- "_patterns-DEbg7R-A-Cw0A2uKS.js",
270
- "_client-OmvShYdC.js",
271
- "_releaseRoutes-DSWkTh-E.js",
272
- "_workspaceEntityRoutes-CRcfSq7c.js",
273
- "_useWorkspaceItems-D0FuHGto.js",
274
- "_presentPortfolio-CkRqd_zz.js"
271
+ "_patterns-DEbg7R-A-BhsMyh9D.js",
272
+ "_client-P7FaPwzJ.js",
273
+ "_releaseRoutes-CfaNElmG.js",
274
+ "_workspaceEntityRoutes-Biw67kRR.js",
275
+ "_useWorkspaceItems-DQTYaq1R.js",
276
+ "_presentPortfolio-D-v615bg.js"
275
277
  ],
276
278
  "css": [
277
279
  "assets/CommandSearch-Df36xGJc.css"
278
280
  ]
279
281
  },
280
282
  "src/client/entities/WorkspaceEntityRoute.tsx": {
281
- "file": "assets/WorkspaceEntityRoute-DPci8Q8I.js",
283
+ "file": "assets/WorkspaceEntityRoute-BnsmaeS2.js",
282
284
  "name": "WorkspaceEntityRoute",
283
285
  "src": "src/client/entities/WorkspaceEntityRoute.tsx",
284
286
  "isDynamicEntry": true,
@@ -286,19 +288,19 @@
286
288
  "_jsx-runtime-n5LQ9ujS.js",
287
289
  "_Dialog-DwSIPb-B-DVn37afM.js",
288
290
  "index.html",
289
- "_patterns-DEbg7R-A-Cw0A2uKS.js",
290
- "_client-OmvShYdC.js",
291
+ "_patterns-DEbg7R-A-BhsMyh9D.js",
292
+ "_client-P7FaPwzJ.js",
291
293
  "_workspaceEntityPaths-xAl2jRFm.js",
292
- "_workspaceEntityRoutes-CRcfSq7c.js",
293
- "_presentWorkspaceItems-BU__8LcC.js",
294
- "_WorkspaceEntityLink-BRifdJHn.js"
294
+ "_workspaceEntityRoutes-Biw67kRR.js",
295
+ "_presentWorkspaceItems-IAp5SnpB.js",
296
+ "_WorkspaceEntityLink-CTw_He-8.js"
295
297
  ],
296
298
  "css": [
297
- "assets/WorkspaceEntityRoute-BwpujSqk.css"
299
+ "assets/WorkspaceEntityRoute-Bdmv6ki4.css"
298
300
  ]
299
301
  },
300
302
  "src/client/items/AuthorizedSharePage.tsx": {
301
- "file": "assets/AuthorizedSharePage-C-P-PNfm.js",
303
+ "file": "assets/AuthorizedSharePage-DblP3USU.js",
302
304
  "name": "AuthorizedSharePage",
303
305
  "src": "src/client/items/AuthorizedSharePage.tsx",
304
306
  "isDynamicEntry": true,
@@ -306,17 +308,17 @@
306
308
  "_jsx-runtime-n5LQ9ujS.js",
307
309
  "_Dialog-DwSIPb-B-DVn37afM.js",
308
310
  "index.html",
309
- "_patterns-DEbg7R-A-Cw0A2uKS.js",
310
- "_client-OmvShYdC.js",
311
- "_presentWorkspaceItems-BU__8LcC.js",
312
- "_authorizedShareTransport-Dyj53kJf.js"
311
+ "_patterns-DEbg7R-A-BhsMyh9D.js",
312
+ "_client-P7FaPwzJ.js",
313
+ "_presentWorkspaceItems-IAp5SnpB.js",
314
+ "_authorizedShareTransport-Xg20SHJ5.js"
313
315
  ],
314
316
  "css": [
315
317
  "assets/AuthorizedSharePage-DzE_yvHI.css"
316
318
  ]
317
319
  },
318
320
  "src/client/items/ItemsPage.tsx": {
319
- "file": "assets/ItemsPage-x39U11an.js",
321
+ "file": "assets/ItemsPage-BZQiTh9b.js",
320
322
  "name": "ItemsPage",
321
323
  "src": "src/client/items/ItemsPage.tsx",
322
324
  "isDynamicEntry": true,
@@ -324,22 +326,22 @@
324
326
  "_jsx-runtime-n5LQ9ujS.js",
325
327
  "_Dialog-DwSIPb-B-DVn37afM.js",
326
328
  "index.html",
327
- "_patterns-DEbg7R-A-Cw0A2uKS.js",
328
- "_client-OmvShYdC.js",
329
- "_PortfolioOverview-DSUabOmm.js",
330
- "_releaseRoutes-DSWkTh-E.js",
331
- "_workspaceEntityRoutes-CRcfSq7c.js",
332
- "_presentWorkspaceItems-BU__8LcC.js",
333
- "_useWorkspaceItems-D0FuHGto.js",
334
- "_authorizedShareTransport-Dyj53kJf.js",
335
- "_ReleaseWorkset-BhGacsgb.js"
329
+ "_patterns-DEbg7R-A-BhsMyh9D.js",
330
+ "_client-P7FaPwzJ.js",
331
+ "_PortfolioOverview-DeJcfXcw.js",
332
+ "_releaseRoutes-CfaNElmG.js",
333
+ "_workspaceEntityRoutes-Biw67kRR.js",
334
+ "_presentWorkspaceItems-IAp5SnpB.js",
335
+ "_useWorkspaceItems-DQTYaq1R.js",
336
+ "_authorizedShareTransport-Xg20SHJ5.js",
337
+ "_ReleaseWorkset-Bs_FXlbC.js"
336
338
  ],
337
339
  "css": [
338
340
  "assets/ItemsPage-DsQCbQ11.css"
339
341
  ]
340
342
  },
341
343
  "src/client/releases/ActiveWorkPage.tsx": {
342
- "file": "assets/ActiveWorkPage-Bvji6Tys.js",
344
+ "file": "assets/ActiveWorkPage-C6QwDV1Y.js",
343
345
  "name": "ActiveWorkPage",
344
346
  "src": "src/client/releases/ActiveWorkPage.tsx",
345
347
  "isDynamicEntry": true,
@@ -348,9 +350,9 @@
348
350
  "_Dialog-DwSIPb-B-DVn37afM.js",
349
351
  "_releasePaths-s-fSbIM-.js",
350
352
  "index.html",
351
- "_patterns-DEbg7R-A-Cw0A2uKS.js",
352
- "_releaseRoutes-DSWkTh-E.js",
353
- "_ReleaseWorkset-BhGacsgb.js",
353
+ "_patterns-DEbg7R-A-BhsMyh9D.js",
354
+ "_releaseRoutes-CfaNElmG.js",
355
+ "_ReleaseWorkset-Bs_FXlbC.js",
354
356
  "src/client/releases/ReleaseRoute.tsx"
355
357
  ],
356
358
  "css": [
@@ -358,7 +360,7 @@
358
360
  ]
359
361
  },
360
362
  "src/client/releases/ReleaseRoute.tsx": {
361
- "file": "assets/ReleaseRoute-DyDm5s85.js",
363
+ "file": "assets/ReleaseRoute-D9q8_sCk.js",
362
364
  "name": "ReleaseRoute",
363
365
  "src": "src/client/releases/ReleaseRoute.tsx",
364
366
  "isDynamicEntry": true,
@@ -367,13 +369,13 @@
367
369
  "_Dialog-DwSIPb-B-DVn37afM.js",
368
370
  "_releasePaths-s-fSbIM-.js",
369
371
  "index.html",
370
- "_patterns-DEbg7R-A-Cw0A2uKS.js",
371
- "_client-OmvShYdC.js",
372
- "_PortfolioOverview-DSUabOmm.js",
373
- "_BrowserCrypto-BPiuCuW-.js",
374
- "_releaseRoutes-DSWkTh-E.js",
375
- "_authenticatedMutationClient-D5yD0rch.js",
376
- "_ReleaseWorkset-BhGacsgb.js",
372
+ "_patterns-DEbg7R-A-BhsMyh9D.js",
373
+ "_client-P7FaPwzJ.js",
374
+ "_PortfolioOverview-DeJcfXcw.js",
375
+ "_BrowserCrypto-BGGRC6iW.js",
376
+ "_releaseRoutes-CfaNElmG.js",
377
+ "_authenticatedMutationClient-CJklf3iD.js",
378
+ "_ReleaseWorkset-Bs_FXlbC.js",
377
379
  "_useCompactReleasePreview-Ch3XxgJU.js"
378
380
  ],
379
381
  "css": [
@@ -381,7 +383,7 @@
381
383
  ]
382
384
  },
383
385
  "src/client/releases/WorkspaceReleaseLayout.tsx": {
384
- "file": "assets/WorkspaceReleaseLayout-DDLdY0rU.js",
386
+ "file": "assets/WorkspaceReleaseLayout-Ba6keUju.js",
385
387
  "name": "WorkspaceReleaseLayout",
386
388
  "src": "src/client/releases/WorkspaceReleaseLayout.tsx",
387
389
  "isDynamicEntry": true,
@@ -389,8 +391,8 @@
389
391
  "_jsx-runtime-n5LQ9ujS.js",
390
392
  "_Dialog-DwSIPb-B-DVn37afM.js",
391
393
  "_releasePaths-s-fSbIM-.js",
392
- "_PortfolioOverview-DSUabOmm.js",
393
- "_releaseRoutes-DSWkTh-E.js",
394
+ "_PortfolioOverview-DeJcfXcw.js",
395
+ "_releaseRoutes-CfaNElmG.js",
394
396
  "_useCompactReleasePreview-Ch3XxgJU.js"
395
397
  ],
396
398
  "css": [
@@ -398,7 +400,7 @@
398
400
  ]
399
401
  },
400
402
  "src/client/services/AtlassianOAuthCallbackPage.tsx": {
401
- "file": "assets/AtlassianOAuthCallbackPage-dr-B9-DD.js",
403
+ "file": "assets/AtlassianOAuthCallbackPage-Bm7UhU-h.js",
402
404
  "name": "AtlassianOAuthCallbackPage",
403
405
  "src": "src/client/services/AtlassianOAuthCallbackPage.tsx",
404
406
  "isDynamicEntry": true,
@@ -406,16 +408,16 @@
406
408
  "_jsx-runtime-n5LQ9ujS.js",
407
409
  "_Dialog-DwSIPb-B-DVn37afM.js",
408
410
  "index.html",
409
- "_client-OmvShYdC.js",
410
- "_serviceOnboarding-B9pvdyWf.js",
411
- "_connectionTestTransport-c25QXx7A.js"
411
+ "_client-P7FaPwzJ.js",
412
+ "_serviceOnboarding-BZ2U_Ugw.js",
413
+ "_connectionTestTransport-C9iPOkKM.js"
412
414
  ],
413
415
  "css": [
414
416
  "assets/AtlassianOAuthCallbackPage-Cqqgj2o3.css"
415
417
  ]
416
418
  },
417
419
  "src/client/services/ServicesPage.tsx": {
418
- "file": "assets/ServicesPage-CoMVH2Si.js",
420
+ "file": "assets/ServicesPage-Co6GJHgc.js",
419
421
  "name": "ServicesPage",
420
422
  "src": "src/client/services/ServicesPage.tsx",
421
423
  "isDynamicEntry": true,
@@ -423,17 +425,17 @@
423
425
  "_jsx-runtime-n5LQ9ujS.js",
424
426
  "_Dialog-DwSIPb-B-DVn37afM.js",
425
427
  "index.html",
426
- "_patterns-DEbg7R-A-Cw0A2uKS.js",
427
- "_client-OmvShYdC.js",
428
- "_serviceOnboarding-B9pvdyWf.js",
429
- "_connectionTestTransport-c25QXx7A.js"
428
+ "_patterns-DEbg7R-A-BhsMyh9D.js",
429
+ "_client-P7FaPwzJ.js",
430
+ "_serviceOnboarding-BZ2U_Ugw.js",
431
+ "_connectionTestTransport-C9iPOkKM.js"
430
432
  ],
431
433
  "css": [
432
434
  "assets/ServicesPage-D76DN13E.css"
433
435
  ]
434
436
  },
435
437
  "src/client/timeline/TimelinePage.tsx": {
436
- "file": "assets/TimelinePage-D8Fj_351.js",
438
+ "file": "assets/TimelinePage-CM2og72M.js",
437
439
  "name": "TimelinePage",
438
440
  "src": "src/client/timeline/TimelinePage.tsx",
439
441
  "isDynamicEntry": true,
@@ -441,9 +443,9 @@
441
443
  "_jsx-runtime-n5LQ9ujS.js",
442
444
  "_Dialog-DwSIPb-B-DVn37afM.js",
443
445
  "index.html",
444
- "_patterns-DEbg7R-A-Cw0A2uKS.js",
445
- "_client-OmvShYdC.js",
446
- "_WorkspaceEntityLink-BRifdJHn.js"
446
+ "_patterns-DEbg7R-A-BhsMyh9D.js",
447
+ "_client-P7FaPwzJ.js",
448
+ "_WorkspaceEntityLink-CTw_He-8.js"
447
449
  ],
448
450
  "css": [
449
451
  "assets/TimelinePage-38jhMz_L.css"
@@ -1,2 +1,2 @@
1
- import{t as e}from"./jsx-runtime-n5LQ9ujS.js";import{D as t,h as n,n as r,w as i,x as a}from"./Dialog-DwSIPb-B-DVn37afM.js";import{r as o,t as s}from"./releasePaths-s-fSbIM-.js";import{i as c}from"./index-DLoOV6Hp.js";import{d as l,g as u,t as d}from"./patterns-DEbg7R-A-Cw0A2uKS.js";import{i as f,l as p,n as m}from"./releaseRoutes-DSWkTh-E.js";import{t as h}from"./ReleaseWorkset-BhGacsgb.js";import{ReleaseAction as g,ReleaseAgentEntry as _,ReleaseEvidence as v,t as y}from"./ReleaseRoute-DyDm5s85.js";var b={page:`_page_rorzd_1`,hero:`_hero_rorzd_2`,selectedRelease:`_selectedRelease_rorzd_3`,identity:`_identity_rorzd_4`,contextSection:`_contextSection_rorzd_5`,intro:`_intro_rorzd_28`,releaseSelector:`_releaseSelector_rorzd_32`,releaseChoice:`_releaseChoice_rorzd_40`,fullLink:`_fullLink_rorzd_90`},x=e(),S=e=>m(new URLSearchParams(e).get(`release`)),C=({releases:e,selected:t,stateForRelease:r,workspaceId:i})=>(0,x.jsx)(`nav`,{"aria-label":`Release decisions`,className:b.releaseSelector,children:e.map(e=>(0,x.jsxs)(n,{"aria-current":e.id===t.id?`page`:void 0,className:b.releaseChoice,"data-active":e.id===t.id?`true`:`false`,state:r(e),to:s(i,e.id),children:[(0,x.jsx)(`span`,{children:e.relay.codename}),(0,x.jsx)(`strong`,{children:e.release.verdict})]},e.id))}),w=()=>{let e=t(),m=i();if(e.controller.state._tag!==`ready`)return(0,x.jsx)(r,{description:`Control Center is loading the release portfolio before opening the decision queue.`,title:`Loading active work`});let w=e.controller.state.portfolio.releases;if(w.length===0)return(0,x.jsx)(r,{action:(0,x.jsx)(n,{to:`/w/${e.workspaceId}/overview`,children:`Return to overview`}),description:`Active work appears when a synchronized release needs a human decision.`,title:`No active release work`});let T=S(m.search);if(T===null){let t=w[0];if(t===void 0)throw Error(`unreachable empty release portfolio`);return(0,x.jsx)(a,{replace:!0,to:s(e.workspaceId,t.id)})}let E=w.find(({id:e})=>e===T);if(E===void 0)return(0,x.jsx)(r,{action:(0,x.jsx)(n,{to:s(e.workspaceId,w[0]?.id??T),children:`Open current work`}),description:`This release is not part of the current workspace snapshot.`,title:`Release work not found`});let D=p(m.state,e.workspaceId,E.id);return(0,x.jsxs)(`article`,{className:b.page,children:[(0,x.jsxs)(`header`,{className:b.hero,children:[(0,x.jsx)(c,{as:`p`,tone:`secondary`,variant:`label`,children:`Active work`}),(0,x.jsxs)(c,{as:`h1`,variant:`verdict`,children:[`Decisions,`,(0,x.jsx)(`br`,{}),`not tickets.`]}),(0,x.jsx)(c,{className:b.intro,tone:`secondary`,variant:`body-large`,children:`One place to review the relationship changes that decide whether a release can move.`})]}),(0,x.jsx)(C,{releases:w,selected:E,stateForRelease:t=>D.isStored?f(e.workspaceId,t.id,D.origin):void 0,workspaceId:e.workspaceId}),(0,x.jsxs)(`section`,{"aria-labelledby":`active-release-title`,className:b.selectedRelease,children:[(0,x.jsxs)(`div`,{className:b.identity,children:[(0,x.jsx)(d,{algorithm:E.relay.algorithm,codename:E.relay.codename,size:`hero`,symbolIndices:E.relay.symbolIndices}),(0,x.jsxs)(`div`,{children:[(0,x.jsx)(c,{as:`h2`,id:`active-release-title`,variant:`page-title`,children:E.serviceName}),(0,x.jsx)(n,{className:b.fullLink,state:m.state,to:o(e.workspaceId,E.id),children:`Open full release`})]})]}),(0,x.jsx)(l,{reason:E.readinessReason,tone:E.release.tone,verdict:E.release.verdict}),E.collaborators.length===0?null:(0,x.jsx)(u,{"aria-label":`${E.relay.codename} collaborators`,expanded:!0,limit:E.collaborators.length,onExpandedChange:()=>void 0,people:E.collaborators}),(0,x.jsx)(g,{release:E}),(0,x.jsxs)(`section`,{"aria-labelledby":`active-workset-title`,className:b.contextSection,children:[(0,x.jsx)(c,{as:`h3`,id:`active-workset-title`,variant:`section-title`,children:`Release work`}),(0,x.jsx)(h,{release:E,workspaceId:e.workspaceId})]}),(0,x.jsx)(y,{release:E}),(0,x.jsxs)(`section`,{"aria-labelledby":`active-evidence-title`,className:b.contextSection,children:[(0,x.jsx)(c,{as:`h3`,id:`active-evidence-title`,variant:`section-title`,children:`Evidence`}),(0,x.jsx)(v,{release:E})]}),(0,x.jsxs)(`section`,{"aria-labelledby":`active-agent-title`,className:b.contextSection,children:[(0,x.jsx)(c,{as:`h3`,id:`active-agent-title`,variant:`section-title`,children:`Release agent`}),(0,x.jsx)(_,{release:E})]})]})]})};export{w as ActiveWorkPage};
2
- //# sourceMappingURL=ActiveWorkPage-Bvji6Tys.js.map
1
+ import{t as e}from"./jsx-runtime-n5LQ9ujS.js";import{D as t,h as n,n as r,w as i,x as a}from"./Dialog-DwSIPb-B-DVn37afM.js";import{r as o,t as s}from"./releasePaths-s-fSbIM-.js";import{i as c}from"./index-DpW_ckau.js";import{d as l,g as u,t as d}from"./patterns-DEbg7R-A-BhsMyh9D.js";import{i as f,l as p,n as m}from"./releaseRoutes-CfaNElmG.js";import{t as h}from"./ReleaseWorkset-Bs_FXlbC.js";import{ReleaseAction as g,ReleaseAgentEntry as _,ReleaseEvidence as v,t as y}from"./ReleaseRoute-D9q8_sCk.js";var b={page:`_page_rorzd_1`,hero:`_hero_rorzd_2`,selectedRelease:`_selectedRelease_rorzd_3`,identity:`_identity_rorzd_4`,contextSection:`_contextSection_rorzd_5`,intro:`_intro_rorzd_28`,releaseSelector:`_releaseSelector_rorzd_32`,releaseChoice:`_releaseChoice_rorzd_40`,fullLink:`_fullLink_rorzd_90`},x=e(),S=e=>m(new URLSearchParams(e).get(`release`)),C=({releases:e,selected:t,stateForRelease:r,workspaceId:i})=>(0,x.jsx)(`nav`,{"aria-label":`Release decisions`,className:b.releaseSelector,children:e.map(e=>(0,x.jsxs)(n,{"aria-current":e.id===t.id?`page`:void 0,className:b.releaseChoice,"data-active":e.id===t.id?`true`:`false`,state:r(e),to:s(i,e.id),children:[(0,x.jsx)(`span`,{children:e.relay.codename}),(0,x.jsx)(`strong`,{children:e.release.verdict})]},e.id))}),w=()=>{let e=t(),m=i();if(e.controller.state._tag!==`ready`)return(0,x.jsx)(r,{description:`Control Center is loading the release portfolio before opening the decision queue.`,title:`Loading active work`});let w=e.controller.state.portfolio.releases;if(w.length===0)return(0,x.jsx)(r,{action:(0,x.jsx)(n,{to:`/w/${e.workspaceId}/overview`,children:`Return to overview`}),description:`Active work appears when a synchronized release needs a human decision.`,title:`No active release work`});let T=S(m.search);if(T===null){let t=w[0];if(t===void 0)throw Error(`unreachable empty release portfolio`);return(0,x.jsx)(a,{replace:!0,to:s(e.workspaceId,t.id)})}let E=w.find(({id:e})=>e===T);if(E===void 0)return(0,x.jsx)(r,{action:(0,x.jsx)(n,{to:s(e.workspaceId,w[0]?.id??T),children:`Open current work`}),description:`This release is not part of the current workspace snapshot.`,title:`Release work not found`});let D=p(m.state,e.workspaceId,E.id);return(0,x.jsxs)(`article`,{className:b.page,children:[(0,x.jsxs)(`header`,{className:b.hero,children:[(0,x.jsx)(c,{as:`p`,tone:`secondary`,variant:`label`,children:`Active work`}),(0,x.jsxs)(c,{as:`h1`,variant:`verdict`,children:[`Decisions,`,(0,x.jsx)(`br`,{}),`not tickets.`]}),(0,x.jsx)(c,{className:b.intro,tone:`secondary`,variant:`body-large`,children:`One place to review the relationship changes that decide whether a release can move.`})]}),(0,x.jsx)(C,{releases:w,selected:E,stateForRelease:t=>D.isStored?f(e.workspaceId,t.id,D.origin):void 0,workspaceId:e.workspaceId}),(0,x.jsxs)(`section`,{"aria-labelledby":`active-release-title`,className:b.selectedRelease,children:[(0,x.jsxs)(`div`,{className:b.identity,children:[(0,x.jsx)(d,{algorithm:E.relay.algorithm,codename:E.relay.codename,size:`hero`,symbolIndices:E.relay.symbolIndices}),(0,x.jsxs)(`div`,{children:[(0,x.jsx)(c,{as:`h2`,id:`active-release-title`,variant:`page-title`,children:E.serviceName}),(0,x.jsx)(n,{className:b.fullLink,state:m.state,to:o(e.workspaceId,E.id),children:`Open full release`})]})]}),(0,x.jsx)(l,{reason:E.readinessReason,tone:E.release.tone,verdict:E.release.verdict}),E.collaborators.length===0?null:(0,x.jsx)(u,{"aria-label":`${E.relay.codename} collaborators`,expanded:!0,limit:E.collaborators.length,onExpandedChange:()=>void 0,people:E.collaborators}),(0,x.jsx)(g,{release:E}),(0,x.jsxs)(`section`,{"aria-labelledby":`active-workset-title`,className:b.contextSection,children:[(0,x.jsx)(c,{as:`h3`,id:`active-workset-title`,variant:`section-title`,children:`Release work`}),(0,x.jsx)(h,{release:E,workspaceId:e.workspaceId})]}),(0,x.jsx)(y,{release:E}),(0,x.jsxs)(`section`,{"aria-labelledby":`active-evidence-title`,className:b.contextSection,children:[(0,x.jsx)(c,{as:`h3`,id:`active-evidence-title`,variant:`section-title`,children:`Evidence`}),(0,x.jsx)(v,{release:E})]}),(0,x.jsxs)(`section`,{"aria-labelledby":`active-agent-title`,className:b.contextSection,children:[(0,x.jsx)(c,{as:`h3`,id:`active-agent-title`,variant:`section-title`,children:`Release agent`}),(0,x.jsx)(_,{release:E})]})]})]})};export{w as ActiveWorkPage};
2
+ //# sourceMappingURL=ActiveWorkPage-C6QwDV1Y.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActiveWorkPage-Bvji6Tys.js","names":[],"sources":["../../../src/client/releases/ActiveWorkPage.module.css","../../../src/client/releases/ActiveWorkPage.tsx"],"sourcesContent":[".page,\n.hero,\n.selectedRelease,\n.identity,\n.contextSection {\n display: grid;\n}\n\n.page {\n gap: clamp(3rem, 8vw, 7rem);\n}\n\n.hero {\n gap: var(--rly-space-16);\n}\n\n.hero p,\n.hero h1 {\n margin: 0;\n}\n\n.hero h1 {\n max-inline-size: 10ch;\n letter-spacing: -0.07em;\n text-wrap: balance;\n}\n\n.intro {\n max-inline-size: 48rem;\n}\n\n.releaseSelector {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n overflow: hidden;\n border: 1px solid var(--rly-color-border-1);\n border-radius: var(--rly-radius-group);\n}\n\n.releaseChoice {\n display: grid;\n gap: var(--rly-space-8);\n min-block-size: 7rem;\n padding: var(--rly-space-20);\n color: var(--rly-color-text-2);\n text-decoration: none;\n}\n\n.releaseChoice + .releaseChoice {\n border-inline-start: 1px solid var(--rly-color-border-1);\n}\n\n.releaseChoice:nth-child(n + 4) {\n border-block-start: 1px solid var(--rly-color-border-1);\n}\n\n.releaseChoice[data-active=\"true\"] {\n background: var(--rly-color-action-background);\n color: var(--rly-color-action-foreground);\n}\n\n.releaseChoice:focus-visible {\n z-index: 1;\n outline: 2px solid var(--rly-color-focus);\n outline-offset: -2px;\n}\n\n.selectedRelease {\n gap: var(--rly-space-32);\n}\n\n.identity {\n grid-template-columns: auto 1fr;\n align-items: center;\n gap: var(--rly-space-20);\n}\n\n.identity h2 {\n margin: 0;\n}\n\n.contextSection {\n gap: var(--rly-space-20);\n}\n\n.contextSection h3 {\n margin: 0;\n}\n\n.fullLink {\n color: var(--rly-color-text-2);\n font: var(--rly-type-label-weight) var(--rly-type-label-size) / var(--rly-type-label-line-height)\n var(--rly-type-label-font);\n text-underline-offset: var(--rly-space-2);\n}\n\n@media (max-width: 48rem) {\n .releaseSelector {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n .releaseChoice:nth-child(n + 3) {\n border-block-start: 1px solid var(--rly-color-border-1);\n }\n\n .releaseChoice:nth-child(odd) {\n border-inline-start: 0;\n }\n}\n\n@media (max-width: 30rem) {\n .releaseSelector {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .releaseChoice + .releaseChoice {\n border-block-start: 1px solid var(--rly-color-border-1);\n border-inline-start: 0;\n }\n}\n","import { PeopleStrip, ReleaseRelay, Verdict } from \"@knpkv/rly/patterns\"\nimport { StatePanel, Text } from \"@knpkv/rly/primitives\"\nimport type { ReactElement } from \"react\"\nimport { Link, Navigate, useLocation, useOutletContext } from \"react-router\"\n\nimport type { PortfolioReleasePresentation } from \"../portfolio/presentPortfolio.js\"\nimport type { WorkspaceReleaseOutletContext } from \"./WorkspaceReleaseLayout.js\"\nimport { RelationshipRepairPanel } from \"./RelationshipRepairPanel.js\"\nimport { ReleaseAction, ReleaseAgentEntry, ReleaseEvidence } from \"./ReleaseRoute.js\"\nimport { ReleaseWorkset } from \"./ReleaseWorkset.js\"\nimport { releaseActiveWorkPath, releaseFullPath } from \"./releasePaths.js\"\nimport {\n decodeReleaseRouteId,\n makeReleaseRouteState,\n resolveReleaseOrigin,\n type ReleaseRouteState\n} from \"./releaseRoutes.js\"\nimport styles from \"./ActiveWorkPage.module.css\"\n\nconst selectedReleaseId = (search: string): ReturnType<typeof decodeReleaseRouteId> =>\n decodeReleaseRouteId(new URLSearchParams(search).get(\"release\"))\n\nconst ReleaseSelector = ({\n releases,\n selected,\n stateForRelease,\n workspaceId\n}: {\n readonly releases: ReadonlyArray<PortfolioReleasePresentation>\n readonly selected: PortfolioReleasePresentation\n readonly stateForRelease: (release: PortfolioReleasePresentation) => ReleaseRouteState | undefined\n readonly workspaceId: WorkspaceReleaseOutletContext[\"workspaceId\"]\n}): ReactElement => (\n <nav aria-label=\"Release decisions\" className={styles.releaseSelector}>\n {releases.map((release) => (\n <Link\n aria-current={release.id === selected.id ? \"page\" : undefined}\n className={styles.releaseChoice}\n data-active={release.id === selected.id ? \"true\" : \"false\"}\n key={release.id}\n state={stateForRelease(release)}\n to={releaseActiveWorkPath(workspaceId, release.id)}\n >\n <span>{release.relay.codename}</span>\n <strong>{release.release.verdict}</strong>\n </Link>\n ))}\n </nav>\n)\n\n/** Render one durable human decision ledger as a workspace-level queue. */\nexport const ActiveWorkPage = (): ReactElement => {\n const context = useOutletContext<WorkspaceReleaseOutletContext>()\n const location = useLocation()\n if (context.controller.state._tag !== \"ready\") {\n return (\n <StatePanel\n description=\"Control Center is loading the release portfolio before opening the decision queue.\"\n title=\"Loading active work\"\n />\n )\n }\n const releases = context.controller.state.portfolio.releases\n if (releases.length === 0) {\n return (\n <StatePanel\n action={<Link to={`/w/${context.workspaceId}/overview`}>Return to overview</Link>}\n description=\"Active work appears when a synchronized release needs a human decision.\"\n title=\"No active release work\"\n />\n )\n }\n const requestedId = selectedReleaseId(location.search)\n if (requestedId === null) {\n const first = releases[0]\n if (first === undefined) throw new Error(\"unreachable empty release portfolio\")\n return <Navigate replace to={releaseActiveWorkPath(context.workspaceId, first.id)} />\n }\n const selected = releases.find(({ id }) => id === requestedId)\n if (selected === undefined) {\n return (\n <StatePanel\n action={\n <Link to={releaseActiveWorkPath(context.workspaceId, releases[0]?.id ?? requestedId)}>Open current work</Link>\n }\n description=\"This release is not part of the current workspace snapshot.\"\n title=\"Release work not found\"\n />\n )\n }\n const resolvedOrigin = resolveReleaseOrigin(location.state, context.workspaceId, selected.id)\n const stateForRelease = (release: PortfolioReleasePresentation): ReleaseRouteState | undefined =>\n resolvedOrigin.isStored ? makeReleaseRouteState(context.workspaceId, release.id, resolvedOrigin.origin) : undefined\n\n return (\n <article className={styles.page}>\n <header className={styles.hero}>\n <Text as=\"p\" tone=\"secondary\" variant=\"label\">\n Active work\n </Text>\n <Text as=\"h1\" variant=\"verdict\">\n Decisions,\n <br />\n not tickets.\n </Text>\n <Text className={styles.intro} tone=\"secondary\" variant=\"body-large\">\n One place to review the relationship changes that decide whether a release can move.\n </Text>\n </header>\n\n <ReleaseSelector\n releases={releases}\n selected={selected}\n stateForRelease={stateForRelease}\n workspaceId={context.workspaceId}\n />\n\n <section aria-labelledby=\"active-release-title\" className={styles.selectedRelease}>\n <div className={styles.identity}>\n <ReleaseRelay\n algorithm={selected.relay.algorithm}\n codename={selected.relay.codename}\n size=\"hero\"\n symbolIndices={selected.relay.symbolIndices}\n />\n <div>\n <Text as=\"h2\" id=\"active-release-title\" variant=\"page-title\">\n {selected.serviceName}\n </Text>\n <Link\n className={styles.fullLink}\n state={location.state}\n to={releaseFullPath(context.workspaceId, selected.id)}\n >\n Open full release\n </Link>\n </div>\n </div>\n <Verdict reason={selected.readinessReason} tone={selected.release.tone} verdict={selected.release.verdict} />\n {selected.collaborators.length === 0 ? null : (\n <PeopleStrip\n aria-label={`${selected.relay.codename} collaborators`}\n expanded\n limit={selected.collaborators.length}\n onExpandedChange={() => undefined}\n people={selected.collaborators}\n />\n )}\n <ReleaseAction release={selected} />\n <section aria-labelledby=\"active-workset-title\" className={styles.contextSection}>\n <Text as=\"h3\" id=\"active-workset-title\" variant=\"section-title\">\n Release work\n </Text>\n <ReleaseWorkset release={selected} workspaceId={context.workspaceId} />\n </section>\n <RelationshipRepairPanel release={selected} />\n <section aria-labelledby=\"active-evidence-title\" className={styles.contextSection}>\n <Text as=\"h3\" id=\"active-evidence-title\" variant=\"section-title\">\n Evidence\n </Text>\n <ReleaseEvidence release={selected} />\n </section>\n <section aria-labelledby=\"active-agent-title\" className={styles.contextSection}>\n <Text as=\"h3\" id=\"active-agent-title\" variant=\"section-title\">\n Release agent\n </Text>\n <ReleaseAgentEntry release={selected} />\n </section>\n </section>\n </article>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ActiveWorkPage-C6QwDV1Y.js","names":[],"sources":["../../../src/client/releases/ActiveWorkPage.module.css","../../../src/client/releases/ActiveWorkPage.tsx"],"sourcesContent":[".page,\n.hero,\n.selectedRelease,\n.identity,\n.contextSection {\n display: grid;\n}\n\n.page {\n gap: clamp(3rem, 8vw, 7rem);\n}\n\n.hero {\n gap: var(--rly-space-16);\n}\n\n.hero p,\n.hero h1 {\n margin: 0;\n}\n\n.hero h1 {\n max-inline-size: 10ch;\n letter-spacing: -0.07em;\n text-wrap: balance;\n}\n\n.intro {\n max-inline-size: 48rem;\n}\n\n.releaseSelector {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n overflow: hidden;\n border: 1px solid var(--rly-color-border-1);\n border-radius: var(--rly-radius-group);\n}\n\n.releaseChoice {\n display: grid;\n gap: var(--rly-space-8);\n min-block-size: 7rem;\n padding: var(--rly-space-20);\n color: var(--rly-color-text-2);\n text-decoration: none;\n}\n\n.releaseChoice + .releaseChoice {\n border-inline-start: 1px solid var(--rly-color-border-1);\n}\n\n.releaseChoice:nth-child(n + 4) {\n border-block-start: 1px solid var(--rly-color-border-1);\n}\n\n.releaseChoice[data-active=\"true\"] {\n background: var(--rly-color-action-background);\n color: var(--rly-color-action-foreground);\n}\n\n.releaseChoice:focus-visible {\n z-index: 1;\n outline: 2px solid var(--rly-color-focus);\n outline-offset: -2px;\n}\n\n.selectedRelease {\n gap: var(--rly-space-32);\n}\n\n.identity {\n grid-template-columns: auto 1fr;\n align-items: center;\n gap: var(--rly-space-20);\n}\n\n.identity h2 {\n margin: 0;\n}\n\n.contextSection {\n gap: var(--rly-space-20);\n}\n\n.contextSection h3 {\n margin: 0;\n}\n\n.fullLink {\n color: var(--rly-color-text-2);\n font: var(--rly-type-label-weight) var(--rly-type-label-size) / var(--rly-type-label-line-height)\n var(--rly-type-label-font);\n text-underline-offset: var(--rly-space-2);\n}\n\n@media (max-width: 48rem) {\n .releaseSelector {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n .releaseChoice:nth-child(n + 3) {\n border-block-start: 1px solid var(--rly-color-border-1);\n }\n\n .releaseChoice:nth-child(odd) {\n border-inline-start: 0;\n }\n}\n\n@media (max-width: 30rem) {\n .releaseSelector {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .releaseChoice + .releaseChoice {\n border-block-start: 1px solid var(--rly-color-border-1);\n border-inline-start: 0;\n }\n}\n","import { PeopleStrip, ReleaseRelay, Verdict } from \"@knpkv/rly/patterns\"\nimport { StatePanel, Text } from \"@knpkv/rly/primitives\"\nimport type { ReactElement } from \"react\"\nimport { Link, Navigate, useLocation, useOutletContext } from \"react-router\"\n\nimport type { PortfolioReleasePresentation } from \"../portfolio/presentPortfolio.js\"\nimport type { WorkspaceReleaseOutletContext } from \"./WorkspaceReleaseLayout.js\"\nimport { RelationshipRepairPanel } from \"./RelationshipRepairPanel.js\"\nimport { ReleaseAction, ReleaseAgentEntry, ReleaseEvidence } from \"./ReleaseRoute.js\"\nimport { ReleaseWorkset } from \"./ReleaseWorkset.js\"\nimport { releaseActiveWorkPath, releaseFullPath } from \"./releasePaths.js\"\nimport {\n decodeReleaseRouteId,\n makeReleaseRouteState,\n resolveReleaseOrigin,\n type ReleaseRouteState\n} from \"./releaseRoutes.js\"\nimport styles from \"./ActiveWorkPage.module.css\"\n\nconst selectedReleaseId = (search: string): ReturnType<typeof decodeReleaseRouteId> =>\n decodeReleaseRouteId(new URLSearchParams(search).get(\"release\"))\n\nconst ReleaseSelector = ({\n releases,\n selected,\n stateForRelease,\n workspaceId\n}: {\n readonly releases: ReadonlyArray<PortfolioReleasePresentation>\n readonly selected: PortfolioReleasePresentation\n readonly stateForRelease: (release: PortfolioReleasePresentation) => ReleaseRouteState | undefined\n readonly workspaceId: WorkspaceReleaseOutletContext[\"workspaceId\"]\n}): ReactElement => (\n <nav aria-label=\"Release decisions\" className={styles.releaseSelector}>\n {releases.map((release) => (\n <Link\n aria-current={release.id === selected.id ? \"page\" : undefined}\n className={styles.releaseChoice}\n data-active={release.id === selected.id ? \"true\" : \"false\"}\n key={release.id}\n state={stateForRelease(release)}\n to={releaseActiveWorkPath(workspaceId, release.id)}\n >\n <span>{release.relay.codename}</span>\n <strong>{release.release.verdict}</strong>\n </Link>\n ))}\n </nav>\n)\n\n/** Render one durable human decision ledger as a workspace-level queue. */\nexport const ActiveWorkPage = (): ReactElement => {\n const context = useOutletContext<WorkspaceReleaseOutletContext>()\n const location = useLocation()\n if (context.controller.state._tag !== \"ready\") {\n return (\n <StatePanel\n description=\"Control Center is loading the release portfolio before opening the decision queue.\"\n title=\"Loading active work\"\n />\n )\n }\n const releases = context.controller.state.portfolio.releases\n if (releases.length === 0) {\n return (\n <StatePanel\n action={<Link to={`/w/${context.workspaceId}/overview`}>Return to overview</Link>}\n description=\"Active work appears when a synchronized release needs a human decision.\"\n title=\"No active release work\"\n />\n )\n }\n const requestedId = selectedReleaseId(location.search)\n if (requestedId === null) {\n const first = releases[0]\n if (first === undefined) throw new Error(\"unreachable empty release portfolio\")\n return <Navigate replace to={releaseActiveWorkPath(context.workspaceId, first.id)} />\n }\n const selected = releases.find(({ id }) => id === requestedId)\n if (selected === undefined) {\n return (\n <StatePanel\n action={\n <Link to={releaseActiveWorkPath(context.workspaceId, releases[0]?.id ?? requestedId)}>Open current work</Link>\n }\n description=\"This release is not part of the current workspace snapshot.\"\n title=\"Release work not found\"\n />\n )\n }\n const resolvedOrigin = resolveReleaseOrigin(location.state, context.workspaceId, selected.id)\n const stateForRelease = (release: PortfolioReleasePresentation): ReleaseRouteState | undefined =>\n resolvedOrigin.isStored ? makeReleaseRouteState(context.workspaceId, release.id, resolvedOrigin.origin) : undefined\n\n return (\n <article className={styles.page}>\n <header className={styles.hero}>\n <Text as=\"p\" tone=\"secondary\" variant=\"label\">\n Active work\n </Text>\n <Text as=\"h1\" variant=\"verdict\">\n Decisions,\n <br />\n not tickets.\n </Text>\n <Text className={styles.intro} tone=\"secondary\" variant=\"body-large\">\n One place to review the relationship changes that decide whether a release can move.\n </Text>\n </header>\n\n <ReleaseSelector\n releases={releases}\n selected={selected}\n stateForRelease={stateForRelease}\n workspaceId={context.workspaceId}\n />\n\n <section aria-labelledby=\"active-release-title\" className={styles.selectedRelease}>\n <div className={styles.identity}>\n <ReleaseRelay\n algorithm={selected.relay.algorithm}\n codename={selected.relay.codename}\n size=\"hero\"\n symbolIndices={selected.relay.symbolIndices}\n />\n <div>\n <Text as=\"h2\" id=\"active-release-title\" variant=\"page-title\">\n {selected.serviceName}\n </Text>\n <Link\n className={styles.fullLink}\n state={location.state}\n to={releaseFullPath(context.workspaceId, selected.id)}\n >\n Open full release\n </Link>\n </div>\n </div>\n <Verdict reason={selected.readinessReason} tone={selected.release.tone} verdict={selected.release.verdict} />\n {selected.collaborators.length === 0 ? null : (\n <PeopleStrip\n aria-label={`${selected.relay.codename} collaborators`}\n expanded\n limit={selected.collaborators.length}\n onExpandedChange={() => undefined}\n people={selected.collaborators}\n />\n )}\n <ReleaseAction release={selected} />\n <section aria-labelledby=\"active-workset-title\" className={styles.contextSection}>\n <Text as=\"h3\" id=\"active-workset-title\" variant=\"section-title\">\n Release work\n </Text>\n <ReleaseWorkset release={selected} workspaceId={context.workspaceId} />\n </section>\n <RelationshipRepairPanel release={selected} />\n <section aria-labelledby=\"active-evidence-title\" className={styles.contextSection}>\n <Text as=\"h3\" id=\"active-evidence-title\" variant=\"section-title\">\n Evidence\n </Text>\n <ReleaseEvidence release={selected} />\n </section>\n <section aria-labelledby=\"active-agent-title\" className={styles.contextSection}>\n <Text as=\"h3\" id=\"active-agent-title\" variant=\"section-title\">\n Release agent\n </Text>\n <ReleaseAgentEntry release={selected} />\n </section>\n </section>\n </article>\n )\n}\n"],"mappings":"4yBCmBM,EAAqB,GACzB,EAAqB,IAAI,gBAAgB,CAAM,CAAC,CAAC,IAAI,SAAS,CAAC,EAE3D,GAAmB,CACvB,WACA,WACA,kBACA,kBAOA,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,aAAW,oBAAoB,UAAW,EAAO,yBACnD,EAAS,IAAK,IACb,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,eAAc,EAAQ,KAAO,EAAS,GAAK,OAAS,IAAA,GACpD,UAAW,EAAO,cAClB,cAAa,EAAQ,KAAO,EAAS,GAAK,OAAS,QAEnD,MAAO,EAAgB,CAAO,EAC9B,GAAI,EAAsB,EAAa,EAAQ,EAAE,WANnD,EAQE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAA,SAAO,EAAQ,MAAM,QAAe,CAAA,GACpC,EAAA,EAAA,IAAA,CAAC,SAAD,CAAA,SAAS,EAAQ,QAAQ,OAAgB,CAAA,CACrC,GANC,EAAQ,EAMT,CACP,CACE,CAAA,EAIM,MAAqC,CAChD,IAAM,EAAU,EAAgD,EAC1D,EAAW,EAAY,EAC7B,GAAI,EAAQ,WAAW,MAAM,OAAS,QACpC,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAY,qFACZ,MAAM,qBACP,CAAA,EAGL,IAAM,EAAW,EAAQ,WAAW,MAAM,UAAU,SACpD,GAAI,EAAS,SAAW,EACtB,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,QAAQ,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,GAAI,MAAM,EAAQ,YAAY,oBAAY,oBAAwB,CAAA,EAChF,YAAY,0EACZ,MAAM,wBACP,CAAA,EAGL,IAAM,EAAc,EAAkB,EAAS,MAAM,EACrD,GAAI,IAAgB,KAAM,CACxB,IAAM,EAAQ,EAAS,GACvB,GAAI,IAAU,IAAA,GAAW,MAAU,MAAM,qCAAqC,EAC9E,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAU,QAAA,GAAQ,GAAI,EAAsB,EAAQ,YAAa,EAAM,EAAE,CAAI,CAAA,CACtF,CACA,IAAM,EAAW,EAAS,MAAM,CAAE,QAAS,IAAO,CAAW,EAC7D,GAAI,IAAa,IAAA,GACf,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,QACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,GAAI,EAAsB,EAAQ,YAAa,EAAS,EAAE,EAAE,IAAM,CAAW,WAAG,mBAAuB,CAAA,EAE/G,YAAY,8DACZ,MAAM,wBACP,CAAA,EAGL,IAAM,EAAiB,EAAqB,EAAS,MAAO,EAAQ,YAAa,EAAS,EAAE,EAI5F,OACE,EAAA,EAAA,KAAA,CAAC,UAAD,CAAS,UAAW,EAAO,cAA3B,EACE,EAAA,EAAA,KAAA,CAAC,SAAD,CAAQ,UAAW,EAAO,cAA1B,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,GAAG,IAAI,KAAK,YAAY,QAAQ,iBAAQ,aAExC,CAAA,GACN,EAAA,EAAA,KAAA,CAAC,EAAD,CAAM,GAAG,KAAK,QAAQ,mBAAtB,CAAgC,cAE9B,EAAA,EAAA,IAAA,CAAC,KAAD,CAAK,CAAA,EAAC,cAEF,KACN,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,UAAW,EAAO,MAAO,KAAK,YAAY,QAAQ,sBAAa,sFAE/D,CAAA,CACA,KAER,EAAA,EAAA,IAAA,CAAC,EAAD,CACY,WACA,WACO,gBAtBE,GACvB,EAAe,SAAW,EAAsB,EAAQ,YAAa,EAAQ,GAAI,EAAe,MAAM,EAAI,IAAA,GAsBtG,YAAa,EAAQ,WACtB,CAAA,GAED,EAAA,EAAA,KAAA,CAAC,UAAD,CAAS,kBAAgB,uBAAuB,UAAW,EAAO,yBAAlE,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAO,kBAAvB,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,UAAW,EAAS,MAAM,UAC1B,SAAU,EAAS,MAAM,SACzB,KAAK,OACL,cAAe,EAAS,MAAM,aAC/B,CAAA,GACD,EAAA,EAAA,KAAA,CAAC,MAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,GAAG,KAAK,GAAG,uBAAuB,QAAQ,sBAC7C,EAAS,WACN,CAAA,GACN,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,UAAW,EAAO,SAClB,MAAO,EAAS,MAChB,GAAI,EAAgB,EAAQ,YAAa,EAAS,EAAE,WACrD,mBAEK,CAAA,CACH,CAAA,CAAA,CACF,KACL,EAAA,EAAA,IAAA,CAAC,EAAD,CAAS,OAAQ,EAAS,gBAAiB,KAAM,EAAS,QAAQ,KAAM,QAAS,EAAS,QAAQ,OAAU,CAAA,EAC3G,EAAS,cAAc,SAAW,EAAI,MACrC,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,aAAY,GAAG,EAAS,MAAM,SAAS,gBACvC,SAAA,GACA,MAAO,EAAS,cAAc,OAC9B,qBAAwB,IAAA,GACxB,OAAQ,EAAS,aAClB,CAAA,GAEH,EAAA,EAAA,IAAA,CAAC,EAAD,CAAe,QAAS,CAAW,CAAA,GACnC,EAAA,EAAA,KAAA,CAAC,UAAD,CAAS,kBAAgB,uBAAuB,UAAW,EAAO,wBAAlE,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,GAAG,KAAK,GAAG,uBAAuB,QAAQ,yBAAgB,cAE1D,CAAA,GACN,EAAA,EAAA,IAAA,CAAC,EAAD,CAAgB,QAAS,EAAU,YAAa,EAAQ,WAAc,CAAA,CAC/D,KACT,EAAA,EAAA,IAAA,CAAC,EAAD,CAAyB,QAAS,CAAW,CAAA,GAC7C,EAAA,EAAA,KAAA,CAAC,UAAD,CAAS,kBAAgB,wBAAwB,UAAW,EAAO,wBAAnE,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,GAAG,KAAK,GAAG,wBAAwB,QAAQ,yBAAgB,UAE3D,CAAA,GACN,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,QAAS,CAAW,CAAA,CAC9B,KACT,EAAA,EAAA,KAAA,CAAC,UAAD,CAAS,kBAAgB,qBAAqB,UAAW,EAAO,wBAAhE,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,GAAG,KAAK,GAAG,qBAAqB,QAAQ,yBAAgB,eAExD,CAAA,GACN,EAAA,EAAA,IAAA,CAAC,EAAD,CAAmB,QAAS,CAAW,CAAA,CAChC,GACF,GACF,GAEb"}