@gitkraken/gitkraken-components 11.2.0 → 12.0.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.

Potentially problematic release.


This version of @gitkraken/gitkraken-components might be problematic. Click here for more details.

package/CHANGELOG.md ADDED
@@ -0,0 +1,68 @@
1
+ # CHANGELOG
2
+
3
+ ## 12.0.0
4
+
5
+ - **BREAKING CHANGE:** `hostingServiceInfo` is now a required `GraphContainer` prop ([#392](https://github.com/gitkraken/GitKrakenComponents/pull/392))
6
+ - It maps every `HostingServiceType` to that service's display name and the character that prefixes a pull request number on it (for example `#`, or `!` for GitLab merge requests). The graph no longer keeps its own copy of the service names, so consumers must pass this prop; omitting it is a compile error, and a pull request row will throw at runtime.
7
+ - **BREAKING CHANGE:** `PullRequestIcon-Tooltip` no longer hardcodes `#` ([#392](https://github.com/gitkraken/GitKrakenComponents/pull/392))
8
+ - `{0}` is now a pull request id that already carries its service's character, so the default changed from `'#{0}: {1}\n Double-click to open pull request on {2}'` to `'{0}: {1}\n Double-click to open pull request on {2}'`. Consumers that ship their own translation map fall back to `DEFAULT_TRANSLATIONS` only when no `translate` prop is given, so they must update this key in lockstep or every pull request tooltip renders `##123` (`!!123` on GitLab).
9
+ - Deprecated `getHostingServiceName` in favor of the `hostingServiceInfo` prop. It still ships in this release and will be removed in the next major version. ([#392](https://github.com/gitkraken/GitKrakenComponents/pull/392))
10
+ - Added `stackPosition` and `stackSize` to pull request ref metadata. When both are whole numbers and `stackPosition` falls between 1 and `stackSize`, the pull request icon's tooltip names the pull request's position in its stack. ([#392](https://github.com/gitkraken/GitKrakenComponents/pull/392))
11
+ - Added the `PullRequestIcon-TooltipWithStack` translation key for that tooltip. Consumers that ship their own translation map should add it. ([#392](https://github.com/gitkraken/GitKrakenComponents/pull/392))
12
+
13
+ ## 11.2.1
14
+
15
+ - Ensures the branch or tag creation input remains visible and usable when its target commit scrolls out of the virtualized graph viewport ([#390](https://github.com/gitkraken/GitKrakenComponents/pull/390))
16
+
17
+ ## 11.2.0
18
+
19
+ - Add `headerZoneActions` prop to `GraphContainer`, `GraphHeaderRow`, and `DraggableGraphHeader` ([#389](https://github.com/gitkraken/GitKrakenComponents/pull/389))
20
+
21
+ ## 11.1.0
22
+
23
+ - Add multi-WIP node support for worktree status visualization ([#384](https://github.com/gitkraken/GitKrakenComponents/pull/384))
24
+ - Fix avatar sizing at high zoom levels ([#384](https://github.com/gitkraken/GitKrakenComponents/pull/384))
25
+ - Render avatars on WIP nodes and skip canvas for SVG data URIs ([#385](https://github.com/gitkraken/GitKrakenComponents/pull/385))
26
+ - Replace CSS dotted WIP border with SVG stroke-dasharray circle ([#385](https://github.com/gitkraken/GitKrakenComponents/pull/385))
27
+ - Add `nodeSpinning` prop for conditional WIP border animation ([#385](https://github.com/gitkraken/GitKrakenComponents/pull/385))
28
+
29
+ ## 11.0.7
30
+
31
+ - Prioritize pinned branch when sorting grouped refs in the ref label ([#382](https://github.com/gitkraken/GitKrakenComponents/pull/382))
32
+
33
+ ## 11.0.6
34
+
35
+ - Added an ID to the graph column settings button to add annotations ([#380](https://github.com/gitkraken/GitKrakenComponents/pull/380))
36
+
37
+ ## 11.0.5
38
+
39
+ - Implemented branch pinning feature ([#378](https://github.com/gitkraken/GitKrakenComponents/pull/378))
40
+ - Added ids to the ref node component to be able to add user education annotations to the graph ([#378](https://github.com/gitkraken/GitKrakenComponents/pull/378))
41
+ - Added new icon to the graph for the pin branch to left action ([#378](https://github.com/gitkraken/GitKrakenComponents/pull/378))
42
+
43
+ ## 11.0.4
44
+
45
+ - Fixed commit shortcuts (cmd+enter / cmd+shift+enter) not firing in GKD when the WIP input is focused by allowing modifier-based shortcuts to bubble. ([#377](https://github.com/gitkraken/GitKrakenComponents/pull/377))
46
+
47
+ ## 11.0.3
48
+
49
+ - Improved external icon handling and added type safety ([#370](https://github.com/gitkraken/GitKrakenComponents/pull/370))
50
+ - Applied correct context menu items to `IssueIcon` ([#370](https://github.com/gitkraken/GitKrakenComponents/pull/370))
51
+ - Fixed an issue where the context menu did not appear when right-clicking outside the input field on WIP rows ([#375](https://github.com/gitkraken/GitKrakenComponents/pull/375))
52
+
53
+ ## 11.0.2
54
+
55
+ - Fixed an issue with ref labels sometimes not rendering properly when hovered/unhovered. ([#367](https://github.com/gitkraken/GitKrakenComponents/pull/367))
56
+ - Added some data-test-classes for automated UI tests to find DOM nodes. ([#369](https://github.com/gitkraken/GitKrakenComponents/pull/369))
57
+
58
+ ## 11.0.1
59
+
60
+ - Fixed tooltip css so that tooltips on the commit notes and ref label icons are no longer 0 opacity. (CSS classes were modified by previous `react-bootstrap` bump.) ([#366](https://github.com/gitkraken/GitKrakenComponents/pull/366))
61
+
62
+ ## 11.0.0
63
+
64
+ - **BREAKING CHANGE:** Upgraded from `react`/`react-dom` 16 to 17. ([#365](https://github.com/gitkraken/GitKrakenComponents/pull/365))
65
+ - **BREAKING CHANGE:** Upgraded `react-bootstrap` from 0.32.4 to 2.10.7 ([#365](https://github.com/gitkraken/GitKrakenComponents/pull/365))
66
+ - The full consequences of this on your project's CSS cannot be fully predicted, so you should test thoroughly. Known concerns which affected at least one project are listed below.
67
+ - The DIV wrapping the ref-creation text input no longer receives the `has-error` class, and the input no longer receives the `is-valid` class. Instead, the input receives the `is-invalid` class.
68
+ - Added `AzureDevopsIssueTrackerType` (in addition to the existing `AzureDevopsIssueTrackerType`) ([262cbf8e](https://github.com/gitkraken/GitKrakenComponents/commit/262cbf8e81c8497676e93fde0d32fdf537fec706))
@@ -0,0 +1,227 @@
1
+ GitKraken Components
2
+
3
+ THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
4
+ This project incorporates components from the projects listed below.
5
+
6
+ 1. @axosoft/react-virtualized version 9.22.3-gitkraken.3 (https://github.com/bvaughn/react-virtualized)
7
+ 2. classnames version 2.5.1 (https://github.com/JedWatson/classnames)
8
+ 3. re-resizable version 6.9.11 (https://github.com/bokuweb/react-resizable-box)
9
+ 4. react-bootstrap version 0.32.4 (https://github.com/react-bootstrap/react-bootstrap)
10
+ 5. react-dom version 16.8.4 (https://github.com/facebook/react)
11
+ 6. react-dragula version 1.1.17 (https://github.com/bevacqua/react-dragula)
12
+ 7. react-onclickoutside version 6.13.0 (https://github.com/Pomax/react-onclickoutside)
13
+ 8. react version 16.8.4 (https://github.com/facebook/react)
14
+
15
+ %% @axosoft/react-virtualized NOTICES AND INFORMATION BEGIN HERE
16
+ =========================================
17
+ The MIT License (MIT)
18
+
19
+ Copyright (c) 2015 Brian Vaughn
20
+
21
+ Permission is hereby granted, free of charge, to any person obtaining a copy
22
+ of this software and associated documentation files (the "Software"), to deal
23
+ in the Software without restriction, including without limitation the rights
24
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
25
+ copies of the Software, and to permit persons to whom the Software is
26
+ furnished to do so, subject to the following conditions:
27
+
28
+ The above copyright notice and this permission notice shall be included in all
29
+ copies or substantial portions of the Software.
30
+
31
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
32
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
33
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
34
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
35
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
36
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
37
+ SOFTWARE.
38
+
39
+
40
+ =========================================
41
+ END OF @axosoft/react-virtualized NOTICES AND INFORMATION
42
+
43
+ %% classnames NOTICES AND INFORMATION BEGIN HERE
44
+ =========================================
45
+ The MIT License (MIT)
46
+
47
+ Copyright (c) 2018 Jed Watson
48
+
49
+ Permission is hereby granted, free of charge, to any person obtaining a copy
50
+ of this software and associated documentation files (the "Software"), to deal
51
+ in the Software without restriction, including without limitation the rights
52
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
53
+ copies of the Software, and to permit persons to whom the Software is
54
+ furnished to do so, subject to the following conditions:
55
+
56
+ The above copyright notice and this permission notice shall be included in all
57
+ copies or substantial portions of the Software.
58
+
59
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
60
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
61
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
62
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
63
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
64
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
65
+ SOFTWARE.
66
+
67
+ =========================================
68
+ END OF classnames NOTICES AND INFORMATION
69
+
70
+ %% re-resizable NOTICES AND INFORMATION BEGIN HERE
71
+ =========================================
72
+ The MIT License (MIT)
73
+
74
+ Copyright (c) 2018 @bokuweb
75
+
76
+ Permission is hereby granted, free of charge, to any person obtaining a copy
77
+ of this software and associated documentation files (the "Software"), to deal
78
+ in the Software without restriction, including without limitation the rights
79
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
80
+ copies of the Software, and to permit persons to whom the Software is
81
+ furnished to do so, subject to the following conditions:
82
+
83
+ The above copyright notice and this permission notice shall be included in all
84
+ copies or substantial portions of the Software.
85
+
86
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
87
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
88
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
89
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
90
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
91
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
92
+ SOFTWARE.
93
+
94
+ =========================================
95
+ END OF re-resizable NOTICES AND INFORMATION
96
+
97
+ %% react-bootstrap NOTICES AND INFORMATION BEGIN HERE
98
+ =========================================
99
+ The MIT License (MIT)
100
+
101
+ Copyright (c) 2014-present Stephen J. Collings, Matthew Honnibal, Pieter Vanderwerff
102
+
103
+ Permission is hereby granted, free of charge, to any person obtaining a copy
104
+ of this software and associated documentation files (the "Software"), to deal
105
+ in the Software without restriction, including without limitation the rights
106
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
107
+ copies of the Software, and to permit persons to whom the Software is
108
+ furnished to do so, subject to the following conditions:
109
+
110
+ The above copyright notice and this permission notice shall be included in
111
+ all copies or substantial portions of the Software.
112
+
113
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
114
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
115
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
116
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
117
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
118
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
119
+ THE SOFTWARE.
120
+
121
+ =========================================
122
+ END OF react-bootstrap NOTICES AND INFORMATION
123
+
124
+ %% react-dom NOTICES AND INFORMATION BEGIN HERE
125
+ =========================================
126
+ MIT License
127
+
128
+ Copyright (c) Facebook, Inc. and its affiliates.
129
+
130
+ Permission is hereby granted, free of charge, to any person obtaining a copy
131
+ of this software and associated documentation files (the "Software"), to deal
132
+ in the Software without restriction, including without limitation the rights
133
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
134
+ copies of the Software, and to permit persons to whom the Software is
135
+ furnished to do so, subject to the following conditions:
136
+
137
+ The above copyright notice and this permission notice shall be included in all
138
+ copies or substantial portions of the Software.
139
+
140
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
141
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
142
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
143
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
144
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
145
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
146
+ SOFTWARE.
147
+
148
+ =========================================
149
+ END OF react-dom NOTICES AND INFORMATION
150
+
151
+ %% react-dragula NOTICES AND INFORMATION BEGIN HERE
152
+ =========================================
153
+ The MIT License (MIT)
154
+
155
+ Copyright © 2015 Nicolas Bevacqua
156
+
157
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
158
+ this software and associated documentation files (the "Software"), to deal in
159
+ the Software without restriction, including without limitation the rights to
160
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
161
+ the Software, and to permit persons to whom the Software is furnished to do so,
162
+ subject to the following conditions:
163
+
164
+ The above copyright notice and this permission notice shall be included in all
165
+ copies or substantial portions of the Software.
166
+
167
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
168
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
169
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
170
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
171
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
172
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
173
+
174
+ =========================================
175
+ END OF react-dragula NOTICES AND INFORMATION
176
+
177
+ %% react-onclickoutside NOTICES AND INFORMATION BEGIN HERE
178
+ =========================================
179
+ Copyright 2015-2022 Mike "Pomax" Kamermans
180
+
181
+ Permission is hereby granted, free of charge, to any person obtaining a copy
182
+ of this software and associated documentation files (the "Software"), to deal
183
+ in the Software without restriction, including without limitation the rights
184
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
185
+ copies of the Software, and to permit persons to whom the Software is
186
+ furnished to do so, subject to the following conditions:
187
+
188
+ The above copyright notice and this permission notice shall be included in all
189
+ copies or substantial portions of the Software.
190
+
191
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
192
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
193
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
194
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
195
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
196
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
197
+ SOFTWARE.
198
+
199
+ =========================================
200
+ END OF react-onclickoutside NOTICES AND INFORMATION
201
+
202
+ %% react NOTICES AND INFORMATION BEGIN HERE
203
+ =========================================
204
+ MIT License
205
+
206
+ Copyright (c) Facebook, Inc. and its affiliates.
207
+
208
+ Permission is hereby granted, free of charge, to any person obtaining a copy
209
+ of this software and associated documentation files (the "Software"), to deal
210
+ in the Software without restriction, including without limitation the rights
211
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
212
+ copies of the Software, and to permit persons to whom the Software is
213
+ furnished to do so, subject to the following conditions:
214
+
215
+ The above copyright notice and this permission notice shall be included in all
216
+ copies or substantial portions of the Software.
217
+
218
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
219
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
220
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
221
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
222
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
223
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
224
+ SOFTWARE.
225
+
226
+ =========================================
227
+ END OF react NOTICES AND INFORMATION
@@ -7,6 +7,7 @@ import type { CssVariables } from '../../domain/generic/GenericTypes';
7
7
  import type { GraphCommitDescDisplayMode, GraphMarkerType, GraphSearchMode, GraphZone, GraphZoneType, ShiftSelectMode } from '../../domain/graph/GraphConstants';
8
8
  import type { ThrottledFn } from '../../domain/graph/GraphHelpers';
9
9
  import type { AbsoluteNodeLeftByColumn, AvatarUrlByEmail, AvatarUrlRequestedByEmail, ChildrenBySha, ColumnColorByColumn, DownstreamsByUpstream, EdgeByColumn, ExcludeByType, ExcludeRefsById, ExcludeRemotesByName, FormatCommitMessage, FormatRefShorthand, GetExternalIcon, GetMissingAvatar, GetMissingRefMetadata, GraphColumnSetting, GraphColumnsSettings, GraphContexts, GraphMarkerColors, GraphMarkerRowIndices, GraphPlatform, GraphRefGroup, GraphRow, GraphZoneModeConstants, GraphZonesByType, Head, HighlightedShas, IncludeOnlyRefsById, IncludeOnlyRemotesByName, IsRefShorthandValid, IsSelectedBySha, NodeOffsetByColumn, NodeOpacityByColumn, OnClearCurrentlyHoveredGraphCommit, OnClickCommit, OnClickGraphRef, OnClickGraphRow, OnClickRef, OnColumnsCalculated, OnCommitContextMenu, OnCommitMessageChange, OnCurrentlyHoveredGraphCommit, OnDoubleClickCommit, OnDoubleClickGraphRef, OnDoubleClickGraphRow, OnDoubleClickRef, OnEmailsMissingAvatarUrls, OnFilterColumnClick, OnFormatCommitDateTime, OnGraphColumnReOrdered, OnGraphColumnResized, OnGraphColumnsReOrdered, OnGraphMouseEnter, OnGraphMouseLeave, OnGraphRefNodeHovered, OnGraphRefNodeUnhovered, OnGraphResized, OnGraphRowHovered, OnGraphRowUnhovered, OnGraphScrollForZone, OnGraphVisibleRowsChanged, OnGraphZoneResize, OnGraphZoneResizeEnd, OnLoadSelectedGraphRow, OnPopupGraphHeaderContextMenu, OnRefBeginDrag, OnRefCanDrag, OnRefCanDrop, OnRefContextMenu, OnRefCreate, OnRefCreateCancel, OnRefCreateContextMenu, OnRefDragEnter, OnRefDragLeave, OnRefDrop, OnRefEndDrag, OnRefNodeHovered, OnRefNodeUnhovered, OnRefShorthandChange, OnRefsMissingMetadata, OnRefZoneContextMenu, OnRefZoneHovered, OnRefZoneUnhovered, OnRowContextMenu, OnScrollForZone, OnSelectGraphRows, OnSettingsClick, OnShowMoreCommits, OnToggleRefNodesShown, OnToggleRefsVisibilityClick, OnWipMessageBlur, OnWipMessageFocus, ProcessedGraphRow, ProcessedGraphRowBySha, RefMetadataById, RefMetadataRequestedById, RefMetadataType, RefsMissingMetadata, Remote, ReserverInfoBySha, RowEdges, RowStats, RowStatsConstraints, ShaByRefId, Tag, TopAndBottomVisibleRowIndex } from '../../domain/graph/GraphTypes';
10
+ import type { HostingServiceInfoType, HostingServiceType } from '../../domain/hostingservice/HostingServiceTypes';
10
11
  import type { TranslationFn } from '../../domain/language/LanguageTypes';
11
12
  import type { CreateRefFormData, RefIconsPosition } from '../../domain/ref/RefTypes';
12
13
  import type { OnBlur, OnKeyDown, OnKeyUp, OnMouseDown, OnResizeParams } from '../../domain/ui/UiTypes';
@@ -35,6 +36,11 @@ export interface StateProps {
35
36
  downstreamsByUpstream?: DownstreamsByUpstream;
36
37
  formatRefShorthand?: FormatRefShorthand;
37
38
  highlightRowsOnRefHover?: boolean;
39
+ /**
40
+ * The display name and pull request character (for example `#` or `!`) to use for each hosting service.
41
+ * Every `HostingServiceType` must be present, since pull request metadata names its hosting service by type.
42
+ */
43
+ hostingServiceInfo: Record<HostingServiceType, HostingServiceInfoType>;
38
44
  isContainerWindowFocused?: boolean;
39
45
  isRefShorthandValid?: IsRefShorthandValid;
40
46
  showGhostRefsOnRowHover?: boolean;
@@ -293,6 +299,7 @@ declare class GraphContainer extends React.Component<Props, ComponentState> impl
293
299
  getIncludeOnlyRemotesByName(): IncludeOnlyRemotesByName;
294
300
  clearScrollToIndex: ClearScrollToIndex;
295
301
  getTopAndBottomVisibleRowIndex(): TopAndBottomVisibleRowIndex;
302
+ getCreateRefFloatingEdge(createRefFormData?: CreateRefFormData | null): import("../../domain/graph/GraphTypes").CreateRefFloatingEdge;
296
303
  getOffsetSha(sha: Sha): Sha;
297
304
  selectSha(sha: Sha, isAutoOrKeyScroll?: boolean): void;
298
305
  updateWidthByZone(widthToAssignForZone: number, graphZoneType: GraphZoneType, updatePreferredWidth?: boolean): void;
@@ -0,0 +1,20 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { CreateRefFloatingEdge, FormatRefShorthand, IsRefShorthandValid, OnRefCreate, OnRefCreateCancel, OnRefCreateContextMenu, OnRefShorthandChange } from '../../../domain/graph/GraphTypes';
3
+ import type { TranslationFn } from '../../../domain/language/LanguageTypes';
4
+ import type { CreateRefFormData } from '../../../domain/ref/RefTypes';
5
+ type FloatingCreateRefNodeProps = {
6
+ createRefFormData: CreateRefFormData;
7
+ edge: CreateRefFloatingEdge;
8
+ edgeOffset: number;
9
+ formatRefShorthand: FormatRefShorthand;
10
+ isRefShorthandValid: IsRefShorthandValid;
11
+ left: number;
12
+ onCancel: OnRefCreateCancel;
13
+ onContextMenu: OnRefCreateContextMenu;
14
+ onRefCreate: OnRefCreate;
15
+ onRefShorthandChange?: OnRefShorthandChange;
16
+ translate: TranslationFn;
17
+ width: number;
18
+ };
19
+ export default function FloatingCreateRefNode({ createRefFormData, edge, edgeOffset, formatRefShorthand, isRefShorthandValid, left, onCancel, onContextMenu, onRefCreate, onRefShorthandChange, translate, width, }: FloatingCreateRefNodeProps): ReactElement<'div'>;
20
+ export {};
@@ -2,6 +2,7 @@ import type { ReactElement } from 'react';
2
2
  import React from 'react';
3
3
  import type { CommitType, Sha } from '../../../domain/commit/CommitTypes';
4
4
  import type { GetExternalIcon, GetMissingRefMetadata, GraphItemContext, GraphRef, GraphRefGroup, OnClickRef, OnClickRefMetadata, OnDoubleClickRef, OnDoubleClickRefMetadata, OnHideRefClick, OnRefBeginDrag, OnRefCanDrag, OnRefCanDrop, OnRefDragEnter, OnRefDragLeave, OnRefDrop, OnRefEndDrag, OnRefNodeHovered, OnRefZoneContextMenu, RefMetadataById, RefMetadataItem, RefMetadataType } from '../../../domain/graph/GraphTypes';
5
+ import type { HostingServiceInfoType, HostingServiceType } from '../../../domain/hostingservice/HostingServiceTypes';
5
6
  import type { TranslationFn } from '../../../domain/language/LanguageTypes';
6
7
  import type { RefIconsPosition } from '../../../domain/ref/RefTypes';
7
8
  import type { OnClick, OnContextMenu, OnDoubleClick } from '../../../domain/ui/UiTypes';
@@ -11,6 +12,7 @@ export type RefNodeProps = {
11
12
  groupIsHovered: boolean;
12
13
  hasActive: boolean;
13
14
  hasRefs: boolean;
15
+ hostingServiceInfo: Record<HostingServiceType, HostingServiceInfoType>;
14
16
  isActive: boolean;
15
17
  isGhostRef: boolean;
16
18
  isHidden?: boolean;
@@ -1,6 +1,7 @@
1
1
  import type { ReactElement, RefObject } from 'react';
2
2
  import type { CommitType, Sha } from '../../../domain/commit/CommitTypes';
3
3
  import type { GetExternalIcon, GetMissingRefMetadata, GraphItemContext, IncludeOnlyRefsById, IncludeOnlyRemotesByName, OnClickRef, OnDoubleClickRef, OnRefBeginDrag, OnRefCanDrag, OnRefCanDrop, OnRefDragEnter, OnRefDragLeave, OnRefDrop, OnRefEndDrag, OnRefNodeHovered, OnRefZoneContextMenu, OnToggleRefNodesShown, GraphRefGroup as RefGroup, RefGroupContexts, RefMetadataById, RefMetadataType } from '../../../domain/graph/GraphTypes';
4
+ import type { HostingServiceInfoType, HostingServiceType } from '../../../domain/hostingservice/HostingServiceTypes';
4
5
  import type { TranslationFn } from '../../../domain/language/LanguageTypes';
5
6
  import type { RefIconsPosition } from '../../../domain/ref/RefTypes';
6
7
  type RefNodesProps = {
@@ -14,6 +15,7 @@ type RefNodesProps = {
14
15
  targetRef: RefObject<HTMLDivElement>;
15
16
  hasActive: boolean;
16
17
  hasRefs: boolean;
18
+ hostingServiceInfo: Record<HostingServiceType, HostingServiceInfoType>;
17
19
  includeOnlyRefsById: IncludeOnlyRefsById;
18
20
  includeOnlyRemotesByName: IncludeOnlyRemotesByName;
19
21
  isGhostRef: boolean;
@@ -43,5 +45,5 @@ type RefNodesProps = {
43
45
  type: CommitType;
44
46
  useColumnHeaderIcons: boolean;
45
47
  };
46
- declare function RefNodes({ enabledRefMetadataTypes, column, columnForColoring, context, enableShowHideRefsOptions, targetRef, hasActive, hasRefs, getExternalIcon, includeOnlyRefsById, includeOnlyRemotesByName, isGhostRef, isHovered, isInUnsupportedRebase, numGraphColumns, onMissingRefMetadata, pinnedBranchFullName, refGroupContexts, refGroupsByName, refIconsPosition, refMetadata, refNodeHovered, sha, showRemoteNamesOnRefs, showContextMenuForGroupedRef, onClickRef, onDoubleClickRef, onToggleRefNodesShown, onRefBeginDrag, onRefCanDrag, onRefCanDrop, onRefDragEnter, onRefDragLeave, onRefDrop, onRefEndDrag, translate, type, useColumnHeaderIcons, }: RefNodesProps): ReactElement<'span' | 'div'>;
48
+ declare function RefNodes({ enabledRefMetadataTypes, column, columnForColoring, context, enableShowHideRefsOptions, targetRef, hasActive, hasRefs, getExternalIcon, hostingServiceInfo, includeOnlyRefsById, includeOnlyRemotesByName, isGhostRef, isHovered, isInUnsupportedRebase, numGraphColumns, onMissingRefMetadata, pinnedBranchFullName, refGroupContexts, refGroupsByName, refIconsPosition, refMetadata, refNodeHovered, sha, showRemoteNamesOnRefs, showContextMenuForGroupedRef, onClickRef, onDoubleClickRef, onToggleRefNodesShown, onRefBeginDrag, onRefCanDrag, onRefCanDrop, onRefDragEnter, onRefDragLeave, onRefDrop, onRefEndDrag, translate, type, useColumnHeaderIcons, }: RefNodesProps): ReactElement<'span' | 'div'>;
47
49
  export default RefNodes;
@@ -3,6 +3,7 @@ import React from 'react';
3
3
  import type { CommitType, Sha } from '../../../domain/commit/CommitTypes';
4
4
  import type { Style } from '../../../domain/generic/GenericTypes';
5
5
  import type { GetExternalIcon, GetMissingRefMetadata, GraphItemContext, GraphRefGroup, IncludeOnlyRefsById, IncludeOnlyRemotesByName, OnClickRef, OnDoubleClickRef, OnRefBeginDrag, OnRefCanDrag, OnRefCanDrop, OnRefDragEnter, OnRefDragLeave, OnRefDrop, OnRefEndDrag, OnRefNodeHovered, OnRefNodeUnhovered, OnRefZoneContextMenu, OnRefZoneHovered, OnRefZoneUnhovered, OnToggleRefNodesShown, RefGroupContexts, RefMetadataById, RefMetadataType } from '../../../domain/graph/GraphTypes';
6
+ import type { HostingServiceInfoType, HostingServiceType } from '../../../domain/hostingservice/HostingServiceTypes';
6
7
  import type { TranslationFn } from '../../../domain/language/LanguageTypes';
7
8
  import type { RefIconsPosition } from '../../../domain/ref/RefTypes';
8
9
  type RefZoneDefaultProps = {
@@ -18,6 +19,7 @@ type RefZoneProps = {
18
19
  hasActive: boolean;
19
20
  hasRefs: boolean;
20
21
  hasTimeline: boolean;
22
+ hostingServiceInfo: Record<HostingServiceType, HostingServiceInfoType>;
21
23
  hoveredRefGroup: GraphRefGroup | null;
22
24
  hoveredRefZoneSha?: Sha;
23
25
  includeOnlyRefsById: IncludeOnlyRefsById;
@@ -1,6 +1,7 @@
1
1
  import type { GridCellRenderer } from 'react-virtualized';
2
2
  import type { Sha } from '../../../domain/commit/CommitTypes';
3
3
  import type { CommonGraphRowDispatchProps, CommonGraphRowProps, FormatRefShorthand, GetMissingRefMetadata, IncludeOnlyRefsById, IncludeOnlyRemotesByName, IsRefShorthandValid, OnClickRef, OnDoubleClickRef, OnRefBeginDrag, OnRefCanDrag, OnRefCanDrop, OnRefCreate, OnRefCreateCancel, OnRefCreateContextMenu, OnRefDragEnter, OnRefDragLeave, OnRefDrop, OnRefEndDrag, OnRefNodeHovered, OnRefNodeUnhovered, OnRefShorthandChange, OnRefZoneContextMenu, OnRefZoneHovered, OnRefZoneUnhovered, OnToggleRefNodesShown, RefMetadataById } from '../../../domain/graph/GraphTypes';
4
+ import type { HostingServiceInfoType, HostingServiceType } from '../../../domain/hostingservice/HostingServiceTypes';
4
5
  import type { GetRealKeyForCellFunc } from '../../../domain/reactvirtualized/ReactVirtualizedHelpers';
5
6
  import type { CreateRefFormData, RefIconsPosition } from '../../../domain/ref/RefTypes';
6
7
  interface OwnProps {
@@ -10,8 +11,10 @@ interface OwnProps {
10
11
  }
11
12
  interface StateProps {
12
13
  createRefFormData?: CreateRefFormData;
14
+ isCreateRefFloating?: boolean;
13
15
  formatRefShorthand: FormatRefShorthand;
14
16
  enableShowHideRefsOptions: boolean;
17
+ hostingServiceInfo: Record<HostingServiceType, HostingServiceInfoType>;
15
18
  isInUnsupportedRebase: boolean;
16
19
  isRefShorthandValid: IsRefShorthandValid;
17
20
  hoveredRefZoneSha?: Sha;
@@ -6,7 +6,7 @@ import type { GraphRefType } from '../ref/RefTypes';
6
6
  import type { WorkDirStats } from '../workdir/WorkDirTypes';
7
7
  import type { GraphMarkerType, GraphZone, GraphZoneType, TimelineEntriesByPeriod } from './GraphConstants';
8
8
  import { GraphColumnMode } from './GraphConstants';
9
- import type { BaseMetadata, ExternalIconKeys, GetMissingRefMetadata, GraphColumnWidthConstraints, GraphItemContext, GraphRef, GraphRefGroup, GraphRow, GraphZoneModeConstants, Head, HighlightedShas, ProcessedGraphRow, ProcessedGraphRowBySha, Ref, RefMetadata, RefMetadataById, RefMetadataType, RowStatsConstraints } from './GraphTypes';
9
+ import type { BaseMetadata, CreateRefFloatingEdge, ExternalIconKeys, GetMissingRefMetadata, GraphColumnWidthConstraints, GraphItemContext, GraphRef, GraphRefGroup, GraphRow, GraphZoneModeConstants, Head, HighlightedShas, ProcessedGraphRow, ProcessedGraphRowBySha, Ref, RefMetadata, RefMetadataById, RefMetadataType, RowStatsConstraints } from './GraphTypes';
10
10
  export type DebouncableFn = (...args: any) => void;
11
11
  export type DebouncedFn = (...args: any) => void;
12
12
  export declare const debounceFrame: (func: DebouncableFn) => DebouncedFn;
@@ -45,6 +45,7 @@ export declare function getGraphZoneWidthConstraintsFromGraphZones(graphZoneType
45
45
  export declare function getGraphZoneModeConstants(graphZoneMode?: GraphColumnMode): GraphZoneModeConstants;
46
46
  export declare const makeGetKeyForCell: (rows: ProcessedGraphRow[]) => GetRealKeyForCellFunc;
47
47
  export declare function getZoneWidthWithVerticalScrollbar(graphZoneType: GraphZoneType, activeGraphZones: GraphZone[]): number;
48
+ export declare function resolveCreateRefFloatingEdge(targetRowIndex: number, topVisibleRowIndex: number, bottomVisibleRowIndex: number): CreateRefFloatingEdge | null;
48
49
  export declare function rowContainsCurrentHeadRef(row?: ProcessedGraphRow | GraphRow): boolean;
49
50
  export declare function getHeadRefShaFromGraphRows(graphRows: GraphRow[]): Sha | undefined;
50
51
  export declare function isWorkDirNodeType(nodeType: CommitType): boolean;
@@ -242,6 +242,13 @@ export interface PullRequestMetadata extends BaseMetadata {
242
242
  author?: string;
243
243
  date?: number;
244
244
  state?: string;
245
+ /**
246
+ * This pull request's position in its stack, counting from 1 at the bottom. Ignored unless it is a whole
247
+ * number from 1 through `stackSize`.
248
+ */
249
+ stackPosition?: number;
250
+ /** How many pull requests the stack holds. Only names the position when paired with `stackPosition`. */
251
+ stackSize?: number;
245
252
  url?: string;
246
253
  }
247
254
  export interface UpstreamMetadata extends BaseMetadata {
@@ -459,6 +466,7 @@ export type OnRefCreate = (shorthand: RefShorthand, sha: Sha, refType: GraphRefT
459
466
  export type OnRefCreateCancel = (shorthand: RefShorthand, sha: Sha, refType: GraphRefType, data?: any | null) => void;
460
467
  export type OnRefCreateContextMenu = (event: React.MouseEvent<any>, shorthand: RefShorthand, sha: Sha, refType: GraphRefType, data?: any | null) => void;
461
468
  export type OnRefShorthandChange = (shorthand: RefShorthand) => void;
469
+ export type CreateRefFloatingEdge = 'top' | 'bottom';
462
470
  export type OnClickGraphRow = (event: React.MouseEvent<any>, graphZoneType: GraphZoneType, graphRow: GraphRow) => void;
463
471
  export type OnDoubleClickGraphRow = (event: React.MouseEvent<any>, graphZoneType: GraphZoneType, graphRow: GraphRow) => void;
464
472
  export type OnClickGraphRef = (event: React.MouseEvent<any>, refGroup: GraphRefGroup, graphRow: GraphRow, metadataItem?: RefMetadataItem) => void;
@@ -0,0 +1,6 @@
1
+ import type { HostingServiceInfoType, HostingServiceType } from '../hostingservice/HostingServiceTypes';
2
+ import type { TranslationFn } from '../language/LanguageTypes';
3
+ import type { PullRequestMetadata } from './GraphTypes';
4
+ export declare function hasStackPosition(stackPosition?: number, stackSize?: number): boolean;
5
+ export declare function getPullRequestDisplayId(pullRequestCharacter: string, pullRequestId: number): string;
6
+ export declare function getPullRequestTooltipText(pullRequest: PullRequestMetadata, hostingServiceInfo: Record<HostingServiceType, HostingServiceInfoType>, translate: TranslationFn): string;
@@ -16,4 +16,11 @@ export type JiraServerIssueTrackerType = 'jiraServer';
16
16
  export type TrelloIssueTrackerType = 'trello';
17
17
  export type BitbucketIssueTrackerType = 'bitbucket';
18
18
  export type IssueTrackerType = GitHubIssueTrackerType | GithubEnterpriseIssueTrackerType | GitLabIssueTrackerType | GitLabSelfHostedIssueTrackerType | JiraCloudIssueTrackerType | JiraServerIssueTrackerType | TrelloIssueTrackerType | AzureDevopsIssueTrackerType | BitbucketIssueTrackerType;
19
+ /**
20
+ * @deprecated Pass `hostingServiceInfo` to `GraphContainer` instead. Removed in the next major version.
21
+ */
19
22
  export declare function getHostingServiceName(hostingServiceType: HostingServiceType): string;
23
+ export type HostingServiceInfoType = {
24
+ name: string;
25
+ pullRequestCharacter: string;
26
+ };