@riboseinc/paneron-registry-kit 2.0.0-dev8 → 2.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.
Files changed (183) hide show
  1. package/common.d.ts +1 -1
  2. package/common.js +1 -1
  3. package/common.js.map +1 -1
  4. package/index.d.ts +3 -3
  5. package/index.js +3 -3
  6. package/index.js.map +1 -1
  7. package/package.json +26 -18
  8. package/types/cr.d.ts +216 -0
  9. package/types/cr.js +175 -0
  10. package/types/cr.js.map +1 -0
  11. package/types/index.d.ts +1 -0
  12. package/types/index.js +19 -0
  13. package/types/index.js.map +1 -1
  14. package/types/item.d.ts +13 -3
  15. package/types/item.js +11 -1
  16. package/types/item.js.map +1 -1
  17. package/types/proposal.d.ts +31 -14
  18. package/types/proposal.js +1 -1
  19. package/types/proposal.js.map +1 -1
  20. package/types/register.d.ts +6 -5
  21. package/types/register.js +19 -1
  22. package/types/register.js.map +1 -1
  23. package/types/registry.d.ts +8 -3
  24. package/types/registry.js +8 -1
  25. package/types/registry.js.map +1 -1
  26. package/types/stakeholder.d.ts +40 -16
  27. package/types/stakeholder.js +47 -3
  28. package/types/stakeholder.js.map +1 -1
  29. package/types/views.d.ts +98 -24
  30. package/types/views.js.map +1 -1
  31. package/views/AnnotatedChange.d.ts +7 -0
  32. package/views/AnnotatedChange.js +91 -0
  33. package/views/AnnotatedChange.js.map +1 -0
  34. package/views/BrowserCtx.d.ts +66 -2
  35. package/views/BrowserCtx.js +13 -2
  36. package/views/BrowserCtx.js.map +1 -1
  37. package/views/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +17 -0
  38. package/views/FilterCriteria/CRITERIA_CONFIGURATION.js +202 -0
  39. package/views/FilterCriteria/CRITERIA_CONFIGURATION.js.map +1 -0
  40. package/views/FilterCriteria/criteriaGroupToQueryExpression.d.ts +6 -0
  41. package/views/FilterCriteria/criteriaGroupToQueryExpression.js +50 -0
  42. package/views/FilterCriteria/criteriaGroupToQueryExpression.js.map +1 -0
  43. package/views/FilterCriteria/criteriaGroupToSummary.d.ts +5 -0
  44. package/views/FilterCriteria/criteriaGroupToSummary.js +62 -0
  45. package/views/FilterCriteria/criteriaGroupToSummary.js.map +1 -0
  46. package/views/FilterCriteria/criteriaToNodes.d.ts +24 -0
  47. package/views/FilterCriteria/criteriaToNodes.js +159 -0
  48. package/views/FilterCriteria/criteriaToNodes.js.map +1 -0
  49. package/views/FilterCriteria/index.d.ts +23 -0
  50. package/views/FilterCriteria/index.js +130 -0
  51. package/views/FilterCriteria/index.js.map +1 -0
  52. package/views/FilterCriteria/models.d.ts +68 -0
  53. package/views/FilterCriteria/models.js +34 -0
  54. package/views/FilterCriteria/models.js.map +1 -0
  55. package/views/FilterCriteria/mutateGroup.d.ts +17 -0
  56. package/views/FilterCriteria/mutateGroup.js +59 -0
  57. package/views/FilterCriteria/mutateGroup.js.map +1 -0
  58. package/views/GenericRelatedItemView.d.ts +1 -1
  59. package/views/GenericRelatedItemView.js +143 -101
  60. package/views/GenericRelatedItemView.js.map +1 -1
  61. package/views/RegisterStakeholder.d.ts +9 -0
  62. package/views/RegisterStakeholder.js +40 -0
  63. package/views/RegisterStakeholder.js.map +1 -0
  64. package/views/RegisterVersion.d.ts +9 -0
  65. package/views/RegisterVersion.js +41 -0
  66. package/views/RegisterVersion.js.map +1 -0
  67. package/views/SearchQuery.d.ts +13 -0
  68. package/views/SearchQuery.js +137 -0
  69. package/views/SearchQuery.js.map +1 -0
  70. package/views/change-request/ChangeRequestContext.d.ts +20 -0
  71. package/views/change-request/ChangeRequestContext.js +56 -0
  72. package/views/change-request/ChangeRequestContext.js.map +1 -0
  73. package/views/change-request/Proposals.d.ts +21 -0
  74. package/views/change-request/Proposals.js +331 -0
  75. package/views/change-request/Proposals.js.map +1 -0
  76. package/views/change-request/objectChangeset.d.ts +31 -0
  77. package/views/change-request/objectChangeset.js +229 -0
  78. package/views/change-request/objectChangeset.js.map +1 -0
  79. package/views/detail/ChangeRequest/Proposal.d.ts +0 -0
  80. package/views/detail/ChangeRequest/Proposal.js +142 -0
  81. package/views/detail/ChangeRequest/Proposal.js.map +1 -0
  82. package/views/detail/ChangeRequest/index.d.ts +13 -0
  83. package/views/detail/ChangeRequest/index.js +207 -0
  84. package/views/detail/ChangeRequest/index.js.map +1 -0
  85. package/views/detail/ChangeRequest/transitions.d.ts +28 -0
  86. package/views/detail/ChangeRequest/transitions.js +530 -0
  87. package/views/detail/ChangeRequest/transitions.js.map +1 -0
  88. package/views/detail/CustomView/index.d.ts +13 -0
  89. package/views/detail/CustomView/index.js +68 -0
  90. package/views/detail/CustomView/index.js.map +1 -0
  91. package/views/detail/RegisterHome/index.d.ts +5 -0
  92. package/views/detail/RegisterHome/index.js +128 -0
  93. package/views/detail/RegisterHome/index.js.map +1 -0
  94. package/views/detail/RegisterItem/RelatedItems.d.ts +13 -0
  95. package/views/detail/RegisterItem/RelatedItems.js +61 -0
  96. package/views/detail/RegisterItem/RelatedItems.js.map +1 -0
  97. package/views/detail/RegisterItem/SupersedingItemMenu.d.ts +13 -0
  98. package/views/detail/RegisterItem/SupersedingItemMenu.js +56 -0
  99. package/views/detail/RegisterItem/SupersedingItemMenu.js.map +1 -0
  100. package/views/detail/RegisterItem/index.d.ts +13 -0
  101. package/views/detail/RegisterItem/index.js +356 -0
  102. package/views/detail/RegisterItem/index.js.map +1 -0
  103. package/views/detail/RegisterMeta/RegisterMetaForm.d.ts +10 -0
  104. package/views/detail/RegisterMeta/RegisterMetaForm.js +331 -0
  105. package/views/detail/RegisterMeta/RegisterMetaForm.js.map +1 -0
  106. package/views/detail/RegisterMeta/index.d.ts +10 -0
  107. package/views/detail/RegisterMeta/index.js +111 -0
  108. package/views/detail/RegisterMeta/index.js.map +1 -0
  109. package/views/detail/index.d.ts +1 -0
  110. package/views/detail/index.js +24 -0
  111. package/views/detail/index.js.map +1 -0
  112. package/views/diffing/InlineDiff.d.ts +12 -0
  113. package/views/diffing/InlineDiff.js +58 -0
  114. package/views/diffing/InlineDiff.js.map +1 -0
  115. package/views/diffing/StructuredDiff.d.ts +11 -0
  116. package/views/diffing/StructuredDiff.js +65 -0
  117. package/views/diffing/StructuredDiff.js.map +1 -0
  118. package/views/hooks/useCustomView.d.ts +3 -0
  119. package/views/hooks/useCustomView.js +24 -0
  120. package/views/hooks/useCustomView.js.map +1 -0
  121. package/views/hooks/useItemClassConfig.d.ts +3 -0
  122. package/views/hooks/useItemClassConfig.js +24 -0
  123. package/views/hooks/useItemClassConfig.js.map +1 -0
  124. package/views/hooks/useItemRef.d.ts +3 -0
  125. package/views/hooks/useItemRef.js +39 -0
  126. package/views/hooks/useItemRef.js.map +1 -0
  127. package/views/hooks/useSingleRegisterItemData.d.ts +3 -0
  128. package/views/hooks/useSingleRegisterItemData.js +32 -0
  129. package/views/hooks/useSingleRegisterItemData.js.map +1 -0
  130. package/views/index.d.ts +2 -2
  131. package/views/index.js +161 -130
  132. package/views/index.js.map +1 -1
  133. package/views/itemPathUtils.d.ts +45 -2
  134. package/views/itemPathUtils.js +101 -14
  135. package/views/itemPathUtils.js.map +1 -1
  136. package/views/itemQueryUtils.d.ts +11 -0
  137. package/views/itemQueryUtils.js +48 -0
  138. package/views/itemQueryUtils.js.map +1 -0
  139. package/views/protocolRegistry.d.ts +12 -0
  140. package/views/protocolRegistry.js +42 -0
  141. package/views/protocolRegistry.js.map +1 -0
  142. package/views/sidebar/Browse/index.d.ts +11 -0
  143. package/views/sidebar/Browse/index.js +453 -0
  144. package/views/sidebar/Browse/index.js.map +1 -0
  145. package/views/sidebar/Export/index.d.ts +5 -0
  146. package/views/sidebar/Export/index.js +94 -0
  147. package/views/sidebar/Export/index.js.map +1 -0
  148. package/views/sidebar/ListItem.d.ts +10 -0
  149. package/views/sidebar/ListItem.js +43 -0
  150. package/views/sidebar/ListItem.js.map +1 -0
  151. package/views/sidebar/Registration/index.d.ts +5 -0
  152. package/views/sidebar/Registration/index.js +163 -0
  153. package/views/sidebar/Registration/index.js.map +1 -0
  154. package/views/sidebar/Search/index.d.ts +18 -0
  155. package/views/sidebar/Search/index.js +177 -0
  156. package/views/sidebar/Search/index.js.map +1 -0
  157. package/views/sidebar/index.d.ts +6 -0
  158. package/views/sidebar/index.js +104 -0
  159. package/views/sidebar/index.js.map +1 -0
  160. package/views/util.d.ts +29 -5
  161. package/views/util.js +92 -6
  162. package/views/util.js.map +1 -1
  163. package/views/ChangeRequest.d.ts +0 -12
  164. package/views/ChangeRequest.js +0 -689
  165. package/views/ChangeRequest.js.map +0 -1
  166. package/views/FilterCriteria.d.ts +0 -27
  167. package/views/FilterCriteria.js +0 -410
  168. package/views/FilterCriteria.js.map +0 -1
  169. package/views/ItemBrowser.d.ts +0 -12
  170. package/views/ItemBrowser.js +0 -255
  171. package/views/ItemBrowser.js.map +0 -1
  172. package/views/ItemDetails.d.ts +0 -14
  173. package/views/ItemDetails.js +0 -128
  174. package/views/ItemDetails.js.map +0 -1
  175. package/views/MainView.d.ts +0 -8
  176. package/views/MainView.js +0 -34
  177. package/views/MainView.js.map +0 -1
  178. package/views/RegisterInformation.d.ts +0 -7
  179. package/views/RegisterInformation.js +0 -264
  180. package/views/RegisterInformation.js.map +0 -1
  181. package/views/RegisterItemGrid.d.ts +0 -25
  182. package/views/RegisterItemGrid.js +0 -248
  183. package/views/RegisterItemGrid.js.map +0 -1
@@ -5,21 +5,27 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.GenericRelatedItemView = void 0;
7
7
 
8
- var _core = require("@emotion/core");
8
+ var _react = require("@emotion/react");
9
9
 
10
- var _react = _interopRequireWildcard(require("react"));
10
+ var _react2 = require("react");
11
11
 
12
- var _core2 = require("@blueprintjs/core");
12
+ var _core = require("@blueprintjs/core");
13
+
14
+ var _types = require("../types");
13
15
 
14
16
  var _BrowserCtx = require("./BrowserCtx");
15
17
 
16
- var _RegisterItemGrid = _interopRequireWildcard(require("./RegisterItemGrid"));
18
+ var _ChangeRequestContext = require("./change-request/ChangeRequestContext");
19
+
20
+ var _cr = require("../types/cr");
17
21
 
18
- var _FilterCriteria = require("./FilterCriteria");
22
+ var _Search = _interopRequireDefault(require("./sidebar/Search"));
19
23
 
20
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
24
+ var _itemPathUtils = require("./itemPathUtils");
21
25
 
22
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
26
+ var _protocolRegistry = require("./protocolRegistry");
27
+
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
29
 
24
30
  /** @jsx jsx */
25
31
 
@@ -27,36 +33,48 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
27
33
  const GenericRelatedItemView = function ({
28
34
  itemRef,
29
35
  className,
30
- useRegisterItemData,
31
- getRelatedItemClassConfiguration,
32
36
  onCreateNew,
33
37
  onClear,
34
38
  onChange,
35
39
  availableClassIDs,
36
- availableSubregisterIDs,
37
- itemSorter
40
+ onJump // availableSubregisterIDs,
41
+ // itemSorter,
42
+
38
43
  }) {
39
- var _a, _b, _c, _d, _e;
44
+ var _itemResult$value;
40
45
 
46
+ const {
47
+ useRegisterItemData,
48
+ getRelatedItemClassConfiguration,
49
+ jumpTo
50
+ } = (0, _react2.useContext)(_BrowserCtx.BrowserCtx);
51
+ const {
52
+ changeRequest: activeChangeRequest
53
+ } = (0, _react2.useContext)(_ChangeRequestContext.ChangeRequestContext);
41
54
  const {
42
55
  classID,
43
56
  itemID,
44
57
  subregisterID
45
- } = itemRef !== null && itemRef !== void 0 ? itemRef : {
58
+ } = itemRef ?? {
46
59
  classID: '',
47
60
  itemID: '',
48
61
  subregisterID: ''
49
62
  };
50
- const _itemPath = `${classID}/${itemID}.yaml`;
51
- const itemPath = subregisterID ? `/subregisters/${subregisterID}/${_itemPath}` : `/${_itemPath}`;
52
- console.debug("GenericRelatedItemView", itemPath);
53
- const [selectDialogState, setSelectDialogState] = (0, _react.useState)(false); //log.debug("Rendering generic related item view", itemRef);
63
+ const itemPathWithClass = `${classID}/${itemID}.yaml`; // If curretn register has subregisters, specify subregister-relative path
64
+
65
+ const itemPathWithSubregister = subregisterID ? `subregisters/${subregisterID}/${itemPathWithClass}` : `${itemPathWithClass}`; // If a change request is active
66
+ // and this item is among clarifications or additions
67
+ // then use item path relative to the change request
68
+
69
+ const affectedByActiveCR = activeChangeRequest && (0, _cr.isDrafted)(activeChangeRequest) && activeChangeRequest.items[itemPathWithSubregister];
70
+ const itemPath = affectedByActiveCR ? `/proposals/${activeChangeRequest.id}/items/${itemPathWithSubregister}` : `/${itemPathWithSubregister}`;
71
+ const [selectDialogState, setSelectDialogState] = (0, _react2.useState)(false); //log.debug("Rendering generic related item view", itemRef);
72
+ //const { jumpToItem } = useContext(BrowserCtx);
54
73
 
55
- const browserCtx = (0, _react.useContext)(_BrowserCtx.BrowserCtx);
56
74
  const itemResult = useRegisterItemData({
57
75
  itemPaths: [itemPath]
58
76
  });
59
- const item = ((_a = itemResult.value) === null || _a === void 0 ? void 0 : _a[itemPath]) || null;
77
+ const item = ((_itemResult$value = itemResult.value) === null || _itemResult$value === void 0 ? void 0 : _itemResult$value[itemPath]) || null;
60
78
  let classConfigured;
61
79
  let cfg;
62
80
 
@@ -66,7 +84,7 @@ const GenericRelatedItemView = function ({
66
84
  } catch (e) {
67
85
  cfg = {
68
86
  title: classID,
69
- itemView: () => (0, _core.jsx)("span", null, itemID)
87
+ itemView: () => (0, _react.jsx)("span", null, itemID)
70
88
  };
71
89
  classConfigured = false;
72
90
  }
@@ -82,65 +100,99 @@ const GenericRelatedItemView = function ({
82
100
  console.debug("Created new", itemRef);
83
101
  }
84
102
 
85
- const classIDs = availableClassIDs !== null && availableClassIDs !== void 0 ? availableClassIDs : ((_b = itemRef === null || itemRef === void 0 ? void 0 : itemRef.classID) !== null && _b !== void 0 ? _b : '') !== '' ? [itemRef.classID] : [];
86
- const subregisterIDs = availableSubregisterIDs !== null && availableSubregisterIDs !== void 0 ? availableSubregisterIDs : ((_c = itemRef === null || itemRef === void 0 ? void 0 : itemRef.subregisterID) !== null && _c !== void 0 ? _c : '') !== '' ? [itemRef.subregisterID] : [];
87
- const defaultClassID = classIDs[0];
88
- const effectiveClassID = classID || defaultClassID;
89
- const defaultSubregisterID = subregisterIDs[0];
90
- const effectiveSubregisterID = defaultSubregisterID; //log.debug("Rendering generic related item view: got item", item);
103
+ const classIDs = availableClassIDs ?? (((itemRef === null || itemRef === void 0 ? void 0 : itemRef.classID) ?? '') !== '' ? [itemRef.classID] : []);
104
+
105
+ function jump() {
106
+ //jumpToItem?.(classID, itemID, subregisterID);
107
+ onJump ? onJump() : jumpTo === null || jumpTo === void 0 ? void 0 : jumpTo(`${_protocolRegistry.Protocols.ITEM_DETAILS}:/${itemPathWithSubregister}`);
108
+ }
109
+
110
+ const hasItem = item !== null && classConfigured && (0, _types.isRegisterItem)(item);
111
+ const itemIsMissing = itemID !== '' && item === null && !itemResult.isUpdating;
112
+ const canAutoCreateRelatedItem = itemID === '' && onCreateNew && !itemResult.isUpdating;
113
+ const canChangeRelatedItem =
114
+ /*classIDs.length >= 1 && */
115
+ onChange && !itemResult.isUpdating;
116
+ const canClear = onClear && itemID !== '' && !itemResult.isUpdating;
117
+ const canJump = item !== null && classConfigured && !itemResult.isUpdating && (onJump || jumpTo);
118
+ let itemView;
119
+ let itemButtons = [];
120
+
121
+ if (hasItem) {
122
+ itemView = (0, _react.jsx)(Item, {
123
+ itemRef: {
124
+ classID,
125
+ itemID,
126
+ subregisterID
127
+ },
128
+ itemData: item.data
129
+ });
130
+ } else {
131
+ if (canAutoCreateRelatedItem) {
132
+ itemButtons.push({
133
+ onClick: handleCreateNew,
134
+ icon: 'add',
135
+ text: 'Auto create',
136
+ intent: 'primary'
137
+ });
138
+ }
139
+
140
+ if (itemIsMissing) {
141
+ itemView = (0, _react.jsx)("span", null, "Item not found: ", itemID ?? 'N/A');
142
+ } else {
143
+ itemView = (0, _react.jsx)("span", null, "Item not specified");
144
+ }
145
+ }
91
146
 
92
- return (0, _core.jsx)(_core2.ControlGroup, {
147
+ const willShowItemView = hasItem || itemIsMissing || !onChange;
148
+
149
+ if (canChangeRelatedItem) {
150
+ itemButtons.push({
151
+ onClick: () => setSelectDialogState(true),
152
+ icon: 'edit',
153
+ text: willShowItemView ? undefined : 'Specify',
154
+ intent: 'primary'
155
+ /*disabled: classIDs.length < 1,*/
156
+
157
+ });
158
+ }
159
+
160
+ if (canClear) {
161
+ itemButtons.push({
162
+ onClick: onClear,
163
+ icon: 'cross',
164
+ intent: 'danger'
165
+ });
166
+ } //log.debug("Rendering generic related item view: got item", item);
167
+
168
+
169
+ return (0, _react.jsx)(_core.ButtonGroup, {
93
170
  fill: true,
94
171
  className: className,
95
- vertical: true
96
- }, (0, _core.jsx)(_core2.ButtonGroup, null, classID ? (0, _core.jsx)(_core2.Button, {
172
+ css: (0, _react.css)`.bp4-button-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }`
173
+ }, classID ? (0, _react.jsx)(_core.Button, {
97
174
  alignText: "left",
98
- title: "Item class",
175
+ css: (0, _react.css)`width: 180px;`,
176
+ title: `Item class: ${cfg.title ?? "N/A"}`,
99
177
  outlined: true,
100
178
  disabled: true
101
- }, (_d = cfg.title) !== null && _d !== void 0 ? _d : "Class not specified") : null, (0, _core.jsx)(_core2.Button, {
179
+ }, cfg.title ?? "Class N/A") : null, willShowItemView ? (0, _react.jsx)(_core.Button, {
102
180
  alignText: "left",
103
- fill: true,
181
+ fill: hasItem,
104
182
  outlined: true,
105
- disabled: true,
183
+ disabled: !canJump,
184
+ onClick: jump,
106
185
  loading: itemResult.isUpdating,
107
- title: cfg.title,
108
- css: (0, _core.css)`.bp3-button-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }`
109
- }, itemID === '' ? (0, _core.jsx)("span", null, "Item not specified") : item !== null && !itemResult.isUpdating ? (0, _core.jsx)(Item, {
110
- itemID: itemID,
111
- useRegisterItemData: useRegisterItemData,
112
- itemData: item.data,
113
- getRelatedItemClassConfiguration: getRelatedItemClassConfiguration
114
- }) : (0, _core.jsx)("span", null, "Item not found: ", (_e = itemRef === null || itemRef === void 0 ? void 0 : itemRef.itemID) !== null && _e !== void 0 ? _e : 'N/A'))), (0, _core.jsx)(_core2.ButtonGroup, null, itemID === '' ? onCreateNew ? (0, _core.jsx)(_core2.Button, {
115
- intent: "primary",
116
- onClick: handleCreateNew,
117
- icon: "add"
118
- }, "Auto-create") : null : (0, _core.jsx)(_react.default.Fragment, null, (0, _core.jsx)(_core2.Button, {
119
- icon: item === null && itemID !== '' ? 'error' : 'locate',
120
- disabled: item === null || !browserCtx.jumpToItem || !classConfigured || itemResult.isUpdating,
121
- onClick: () => {
122
- var _a;
123
-
124
- return (_a = browserCtx.jumpToItem) === null || _a === void 0 ? void 0 : _a.call(browserCtx, classID, itemID, subregisterID);
125
- }
126
- }), onClear ? (0, _core.jsx)(_core2.Button, {
127
- onClick: onClear,
128
- icon: "cross"
129
- }) : null), onChange ? (0, _core.jsx)(_core2.Button, {
130
- disabled: classIDs.length < 1,
131
- onClick: () => setSelectDialogState(true),
132
- icon: "edit"
133
- }) : null), onChange && (classID || defaultClassID) ? (0, _core.jsx)(RelatedItemSelectionDialog, {
186
+ title: hasItem ? `${cfg.title} (click to jump to item)` : undefined
187
+ }, itemView) : null, itemButtons.map((props, idx) => (0, _react.jsx)(_core.Button, {
188
+ key: idx,
189
+ outlined: true,
190
+ ...props
191
+ })), onChange ? (0, _react.jsx)(RelatedItemSelectionDialog, {
134
192
  isOpen: selectDialogState,
135
193
  onClose: () => setSelectDialogState(false),
136
194
  onChange: onChange,
137
- selectedItem: itemRef,
138
- selectedClassID: effectiveClassID,
139
- selectedSubregisterID: effectiveSubregisterID,
140
- availableClassIDs: classIDs,
141
- availableSubregisterIDs: subregisterIDs,
142
- useRegisterItemData: useRegisterItemData,
143
- getRelatedItemClassConfiguration: getRelatedItemClassConfiguration
195
+ availableClassIDs: classIDs
144
196
  }) : null);
145
197
  };
146
198
 
@@ -150,49 +202,39 @@ const RelatedItemSelectionDialog = function ({
150
202
  isOpen,
151
203
  onClose,
152
204
  onChange,
153
- selectedItem,
154
- selectedClassID,
155
- selectedSubregisterID,
156
- availableClassIDs,
157
- availableSubregisterIDs,
158
- useRegisterItemData,
159
- getRelatedItemClassConfiguration
205
+ availableClassIDs
160
206
  }) {
161
- const [filterCriteria, setFilterCriteria] = (0, _react.useState)({
162
- require: 'all',
163
- criteria: []
164
- });
165
207
  const {
166
- itemClasses,
167
208
  subregisters
168
- } = (0, _react.useContext)(_BrowserCtx.BrowserCtx); // const itemClassPath: string = selectedSubregisterID
169
- // ? `/subregisters/${selectedSubregisterID}/${selectedClassID}/`
170
- // : `/${selectedClassID}/`;
171
- // const queryExpression: string = `return objPath.indexOf("${itemClassPath}") === 0`;
172
-
173
- return (0, _core.jsx)(_core2.Dialog, {
209
+ } = (0, _react2.useContext)(_BrowserCtx.BrowserCtx);
210
+ const classCriteria = availableClassIDs.map(clsID => ({
211
+ key: 'item-class',
212
+ query: `objPath.indexOf(\"/${clsID}/\") >= 0`
213
+ }));
214
+ const implicitCriteria = classCriteria.length > 0 ? {
215
+ require: 'any',
216
+ criteria: classCriteria
217
+ } : undefined;
218
+ return (0, _react.jsx)(_core.Dialog, {
174
219
  isOpen: isOpen,
175
220
  onClose: onClose,
221
+ enforceFocus: false,
176
222
  style: {
177
- padding: '0'
223
+ padding: '0',
224
+ width: 'unset'
178
225
  }
179
- }, (0, _core.jsx)(_RegisterItemGrid.default, {
226
+ }, (0, _react.jsx)(_Search.default, {
180
227
  style: {
181
- height: '80vh'
228
+ height: '90vh',
229
+ width: '90vw'
182
230
  },
183
- selectedItem: selectedItem,
184
- selectedSubregisterID: selectedSubregisterID,
185
- queryExpression: (0, _FilterCriteria.criteriaGroupToQueryExpression)(filterCriteria),
186
- onSelectItem: itemRef => onChange(itemRef),
187
- getRelatedClassConfig: getRelatedItemClassConfiguration,
188
- useRegisterItemData: useRegisterItemData,
189
- toolbar: (0, _core.jsx)(_RegisterItemGrid.SearchQuery, {
190
- rootCriteria: filterCriteria,
191
- itemClasses: itemClasses,
192
- availableClassIDs: availableClassIDs,
193
- subregisters: subregisters,
194
- onChange: setFilterCriteria
195
- })
231
+ availableClassIDs: availableClassIDs,
232
+ implicitCriteria: implicitCriteria,
233
+ stateName: "superseding-item-selector-search",
234
+ onOpenItem: itemPath => {
235
+ onChange((0, _itemPathUtils.itemPathToItemRef)(subregisters !== undefined, itemPath));
236
+ onClose();
237
+ }
196
238
  }));
197
239
  };
198
240
 
@@ -1 +1 @@
1
- {"version":3,"file":"GenericRelatedItemView.js","sourceRoot":"","sources":["../../src/views/GenericRelatedItemView.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport { jsx, css } from '@emotion/core';\nimport React, { useContext, useState } from 'react';\nimport { GenericRelatedItemViewProps, InternalItemReference, RegisterItem, RelatedItemClassConfiguration } from '../types';\nimport { Button, ButtonGroup, ControlGroup, Dialog } from '@blueprintjs/core';\nimport { BrowserCtx as BrowserCtxSpec } from './BrowserCtx';\nimport { BrowserCtx } from './BrowserCtx';\nimport RegisterItemGrid, { SearchQuery } from './RegisterItemGrid';\nimport { CriteriaGroup, criteriaGroupToQueryExpression } from './FilterCriteria';\n\n\nexport const GenericRelatedItemView: React.FC<GenericRelatedItemViewProps> = function ({\n itemRef, className,\n useRegisterItemData, getRelatedItemClassConfiguration,\n onCreateNew, onClear, onChange,\n availableClassIDs,\n availableSubregisterIDs,\n itemSorter,\n}) {\n const { classID, itemID, subregisterID } = itemRef ?? { classID: '', itemID: '', subregisterID: '' };\n const _itemPath = `${classID}/${itemID}.yaml`;\n const itemPath = subregisterID ? `/subregisters/${subregisterID}/${_itemPath}` : `/${_itemPath}`;\n\n console.debug(\"GenericRelatedItemView\", itemPath);\n\n const [selectDialogState, setSelectDialogState] = useState(false);\n\n //log.debug(\"Rendering generic related item view\", itemRef);\n const browserCtx: BrowserCtxSpec = useContext(BrowserCtx);\n\n const itemResult = useRegisterItemData({ itemPaths: [itemPath] });\n const item = (itemResult.value?.[itemPath] || null) as RegisterItem<any> | null;\n\n let classConfigured: boolean;\n let cfg: RelatedItemClassConfiguration;\n try {\n cfg = getRelatedItemClassConfiguration(classID);\n classConfigured = true;\n } catch (e) {\n cfg = {\n title: classID,\n itemView: () => <span>{itemID}</span>\n };\n classConfigured = false;\n }\n\n const Item = cfg.itemView;\n\n async function handleCreateNew() {\n if (!onCreateNew) { return; }\n const itemRef = await onCreateNew();\n console.debug(\"Created new\", itemRef);\n }\n\n const classIDs = availableClassIDs ?? ((itemRef?.classID ?? '') !== '' ? [itemRef!.classID] : []);\n const subregisterIDs = availableSubregisterIDs ?? ((itemRef?.subregisterID ?? '') !== '' ? [itemRef!.subregisterID!] : []);\n\n const defaultClassID = classIDs[0];\n const effectiveClassID = classID || defaultClassID;\n\n const defaultSubregisterID: string | undefined = subregisterIDs[0];\n const effectiveSubregisterID: string | undefined = defaultSubregisterID;\n\n //log.debug(\"Rendering generic related item view: got item\", item);\n return (\n <ControlGroup fill className={className} vertical>\n <ButtonGroup>\n {classID\n ? <Button\n alignText=\"left\"\n title=\"Item class\"\n outlined disabled>\n {cfg.title ?? \"Class not specified\"}\n </Button>\n : null}\n <Button\n alignText=\"left\"\n fill outlined disabled\n loading={itemResult.isUpdating}\n title={cfg.title}\n css={css`.bp3-button-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }`}>\n {itemID === ''\n ? <span>Item not specified</span>\n : item !== null && !itemResult.isUpdating\n ? <Item\n itemID={itemID}\n useRegisterItemData={useRegisterItemData}\n itemData={item.data}\n getRelatedItemClassConfiguration={getRelatedItemClassConfiguration} />\n : <span>Item not found: {itemRef?.itemID ?? 'N/A'}</span>}\n </Button>\n </ButtonGroup>\n\n <ButtonGroup>\n {itemID === ''\n ? onCreateNew\n ? <Button intent=\"primary\" onClick={handleCreateNew} icon=\"add\">Auto-create</Button>\n : null\n : <>\n <Button\n icon={item === null && itemID !== '' ? 'error' : 'locate'}\n disabled={item === null || !browserCtx.jumpToItem || !classConfigured || itemResult.isUpdating}\n onClick={() => browserCtx.jumpToItem?.(classID, itemID, subregisterID)} />\n {onClear\n ? <Button onClick={onClear} icon=\"cross\" />\n : null}\n </>}\n {onChange\n ? <Button disabled={classIDs.length < 1} onClick={() => setSelectDialogState(true)} icon=\"edit\" />\n : null}\n </ButtonGroup>\n\n {onChange && (classID || defaultClassID)\n ? <RelatedItemSelectionDialog\n isOpen={selectDialogState}\n onClose={() => setSelectDialogState(false)}\n onChange={onChange}\n selectedItem={itemRef}\n selectedClassID={effectiveClassID}\n selectedSubregisterID={effectiveSubregisterID}\n availableClassIDs={classIDs}\n availableSubregisterIDs={subregisterIDs}\n useRegisterItemData={useRegisterItemData}\n getRelatedItemClassConfiguration={getRelatedItemClassConfiguration}\n />\n : null}\n </ControlGroup>\n );\n};\n\n\nconst RelatedItemSelectionDialog: React.FC<{\n isOpen: boolean\n onClose: () => void\n onChange: (itemRef: InternalItemReference) => void\n selectedItem?: InternalItemReference\n selectedClassID: string\n selectedSubregisterID?: string\n availableClassIDs: string[]\n availableSubregisterIDs: string[]\n useRegisterItemData: GenericRelatedItemViewProps[\"useRegisterItemData\"]\n getRelatedItemClassConfiguration: GenericRelatedItemViewProps[\"getRelatedItemClassConfiguration\"]\n}> = function ({\n isOpen, onClose, onChange,\n selectedItem, selectedClassID, selectedSubregisterID,\n availableClassIDs, availableSubregisterIDs,\n useRegisterItemData, getRelatedItemClassConfiguration,\n}) {\n const [filterCriteria, setFilterCriteria] = useState<CriteriaGroup>({ require: 'all', criteria: [] });\n const { itemClasses, subregisters } = useContext(BrowserCtx);\n // const itemClassPath: string = selectedSubregisterID\n // ? `/subregisters/${selectedSubregisterID}/${selectedClassID}/`\n // : `/${selectedClassID}/`;\n\n // const queryExpression: string = `return objPath.indexOf(\"${itemClassPath}\") === 0`;\n\n return (\n <Dialog\n isOpen={isOpen}\n onClose={onClose}\n style={{ padding: '0' }}>\n <RegisterItemGrid\n style={{ height: '80vh' }}\n selectedItem={selectedItem}\n selectedSubregisterID={selectedSubregisterID}\n queryExpression={criteriaGroupToQueryExpression(filterCriteria)}\n onSelectItem={(itemRef) => onChange!(itemRef)}\n getRelatedClassConfig={getRelatedItemClassConfiguration}\n useRegisterItemData={useRegisterItemData}\n toolbar={<SearchQuery\n rootCriteria={filterCriteria}\n itemClasses={itemClasses}\n availableClassIDs={availableClassIDs}\n subregisters={subregisters}\n onChange={setFilterCriteria}\n />}\n />\n </Dialog>\n );\n}\n\n\nexport default GenericRelatedItemView;\n"]}
1
+ {"version":3,"file":"GenericRelatedItemView.js","sourceRoot":"","sources":["../../src/views/GenericRelatedItemView.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport { jsx, css } from '@emotion/react';\nimport React, { useContext, useState } from 'react';\nimport { Button, ButtonGroup, ButtonProps, Dialog } from '@blueprintjs/core';\nimport {\n type GenericRelatedItemViewProps,\n type InternalItemReference,\n type RelatedItemClassConfiguration,\n isRegisterItem,\n} from '../types';\nimport { BrowserCtx } from './BrowserCtx';\nimport { ChangeRequestContext } from './change-request/ChangeRequestContext';\nimport { isDrafted } from '../types/cr';\nimport Search from './sidebar/Search';\nimport { itemPathToItemRef } from './itemPathUtils';\nimport type { Criterion, CriteriaGroup } from './FilterCriteria/models';\nimport { Protocols } from './protocolRegistry';\n\n\nexport const GenericRelatedItemView: React.FC<GenericRelatedItemViewProps> = function ({\n itemRef, className,\n onCreateNew, onClear, onChange,\n availableClassIDs,\n onJump,\n // availableSubregisterIDs,\n // itemSorter,\n}) {\n const {\n useRegisterItemData,\n getRelatedItemClassConfiguration,\n jumpTo,\n } = useContext(BrowserCtx);\n const { changeRequest: activeChangeRequest } = useContext(ChangeRequestContext);\n const { classID, itemID, subregisterID } = itemRef ?? {\n classID: '',\n itemID: '',\n subregisterID: '',\n };\n\n const itemPathWithClass = `${classID}/${itemID}.yaml`;\n // If curretn register has subregisters, specify subregister-relative path\n const itemPathWithSubregister = subregisterID\n ? `subregisters/${subregisterID}/${itemPathWithClass}`\n : `${itemPathWithClass}`;\n // If a change request is active\n // and this item is among clarifications or additions\n // then use item path relative to the change request\n const affectedByActiveCR = (\n activeChangeRequest &&\n isDrafted(activeChangeRequest) &&\n activeChangeRequest.items[itemPathWithSubregister]\n );\n const itemPath = affectedByActiveCR\n ? `/proposals/${activeChangeRequest.id}/items/${itemPathWithSubregister}`\n : `/${itemPathWithSubregister}`;\n\n const [selectDialogState, setSelectDialogState] = useState(false);\n\n //log.debug(\"Rendering generic related item view\", itemRef);\n //const { jumpToItem } = useContext(BrowserCtx);\n\n const itemResult = useRegisterItemData({ itemPaths: [itemPath] });\n const item = (itemResult.value?.[itemPath] || null);\n\n let classConfigured: boolean;\n let cfg: RelatedItemClassConfiguration;\n try {\n cfg = getRelatedItemClassConfiguration(classID);\n classConfigured = true;\n } catch (e) {\n cfg = {\n title: classID,\n itemView: () => <span>{itemID}</span>\n };\n classConfigured = false;\n }\n\n const Item = cfg.itemView;\n\n async function handleCreateNew() {\n if (!onCreateNew) { return; }\n const itemRef = await onCreateNew();\n console.debug(\"Created new\", itemRef);\n }\n\n const classIDs = availableClassIDs ?? ((itemRef?.classID ?? '') !== '' ? [itemRef!.classID] : []);\n\n function jump() {\n //jumpToItem?.(classID, itemID, subregisterID);\n onJump\n ? onJump()\n : jumpTo?.(`${Protocols.ITEM_DETAILS}:/${itemPathWithSubregister}`);\n }\n\n const hasItem = item !== null && classConfigured && isRegisterItem(item);\n const itemIsMissing = itemID !== '' && (item === null && !itemResult.isUpdating);\n const canAutoCreateRelatedItem = itemID === '' && onCreateNew && !itemResult.isUpdating;\n const canChangeRelatedItem = /*classIDs.length >= 1 && */onChange && !itemResult.isUpdating;\n const canClear = onClear && itemID !== '' && !itemResult.isUpdating;\n const canJump = item !== null && classConfigured && !itemResult.isUpdating && (onJump || jumpTo);\n\n let itemView: JSX.Element | null;\n let itemButtons: ButtonProps[] = [];\n\n if (hasItem) {\n itemView = <Item\n itemRef={{ classID, itemID, subregisterID }}\n itemData={item.data}\n />;\n } else {\n if (canAutoCreateRelatedItem) {\n itemButtons.push({\n onClick: handleCreateNew,\n icon: 'add',\n text: 'Auto create',\n intent: 'primary',\n });\n }\n if (itemIsMissing) {\n itemView = <span>Item not found: {itemID ?? 'N/A'}</span>;\n } else {\n itemView = <span>Item not specified</span>;\n }\n }\n\n const willShowItemView = hasItem || itemIsMissing || !onChange;\n\n if (canChangeRelatedItem) {\n itemButtons.push({\n onClick: () => setSelectDialogState(true),\n icon: 'edit',\n text: willShowItemView ? undefined : 'Specify',\n intent: 'primary',\n /*disabled: classIDs.length < 1,*/\n });\n }\n\n if (canClear) {\n itemButtons.push({ onClick: onClear, icon: 'cross', intent: 'danger' });\n }\n\n //log.debug(\"Rendering generic related item view: got item\", item);\n return (\n <ButtonGroup\n fill\n className={className}\n css={css`.bp4-button-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }`}>\n {classID\n ? <Button\n alignText=\"left\"\n css={css`width: 180px;`}\n title={`Item class: ${cfg.title ?? \"N/A\"}`}\n outlined disabled>\n {cfg.title ?? \"Class N/A\"}\n </Button>\n : null}\n {willShowItemView\n ? <Button\n alignText=\"left\"\n fill={hasItem} outlined\n disabled={!canJump}\n onClick={jump}\n loading={itemResult.isUpdating}\n title={hasItem\n ? `${cfg.title} (click to jump to item)`\n : undefined}>\n {itemView}\n </Button>\n : null}\n\n {itemButtons.map((props, idx) =>\n <Button key={idx} outlined {...props} />\n )}\n\n {onChange\n ? <RelatedItemSelectionDialog\n isOpen={selectDialogState}\n onClose={() => setSelectDialogState(false)}\n onChange={onChange}\n availableClassIDs={classIDs}\n />\n : null}\n </ButtonGroup>\n );\n};\n\n\nconst RelatedItemSelectionDialog: React.FC<{\n isOpen: boolean\n onClose: () => void\n onChange: (itemRef: InternalItemReference) => void\n availableClassIDs: string[]\n}> = function ({\n isOpen, onClose, onChange,\n availableClassIDs,\n}) {\n const { subregisters } = useContext(BrowserCtx);\n\n const classCriteria: Criterion[] = availableClassIDs.map(clsID => ({\n key: 'item-class',\n query: `objPath.indexOf(\\\"/${clsID}/\\\") >= 0`,\n }));\n\n const implicitCriteria: CriteriaGroup | undefined = classCriteria.length > 0\n ? {\n require: 'any',\n criteria: classCriteria,\n }\n : undefined;\n\n return (\n <Dialog\n isOpen={isOpen}\n onClose={onClose}\n enforceFocus={false}\n style={{ padding: '0', width: 'unset' }}>\n <Search\n style={{ height: '90vh', width: '90vw' }}\n availableClassIDs={availableClassIDs}\n implicitCriteria={implicitCriteria}\n stateName=\"superseding-item-selector-search\"\n onOpenItem={(itemPath) => {\n onChange(itemPathToItemRef(subregisters !== undefined, itemPath));\n onClose();\n }}\n />\n </Dialog>\n );\n}\n\n\nexport default GenericRelatedItemView;\n"]}
@@ -0,0 +1,9 @@
1
+ /** @jsx jsx */
2
+ /** @jsxFrag React.Fragment */
3
+ import React from 'react';
4
+ import type { RegisterStakeholder } from '../types';
5
+ export declare const RegisterStakeholderListItem: React.FC<{
6
+ stakeholder: RegisterStakeholder;
7
+ isCurrentUser?: true;
8
+ }>;
9
+ export declare function registerStakeholderPlain(stakeholder: RegisterStakeholder): string;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.registerStakeholderPlain = registerStakeholderPlain;
7
+ exports.RegisterStakeholderListItem = void 0;
8
+
9
+ var _react = _interopRequireDefault(require("react"));
10
+
11
+ var _react2 = require("@emotion/react");
12
+
13
+ var _core = require("@blueprintjs/core");
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+
17
+ /** @jsx jsx */
18
+
19
+ /** @jsxFrag React.Fragment */
20
+ const RegisterStakeholderListItem = function ({
21
+ stakeholder,
22
+ isCurrentUser
23
+ }) {
24
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_core.Icon, {
25
+ icon: "person"
26
+ }), "\u00A0", (0, _react2.jsx)("span", {
27
+ css: (0, _react2.css)`white-space: nowrap;`
28
+ }, registerStakeholderPlain(stakeholder)), "\u00A0", isCurrentUser ? (0, _react2.jsx)(_core.Tag, {
29
+ round: true,
30
+ minimal: true,
31
+ intent: "primary",
32
+ css: (0, _react2.css)`display: inline;`
33
+ }, "you") : null);
34
+ };
35
+
36
+ exports.RegisterStakeholderListItem = RegisterStakeholderListItem;
37
+
38
+ function registerStakeholderPlain(stakeholder) {
39
+ return `${stakeholder.name} (${stakeholder.role ?? 'unspecified role'})`;
40
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegisterStakeholder.js","sourceRoot":"","sources":["../../src/views/RegisterStakeholder.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAE9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAI9C,MAAM,CAAC,MAAM,2BAA2B,GAIxC,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE;IACtC,OAAO;QACL,IAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG;;QAEtB,cAAM,GAAG,EAAE,GAAG,CAAA,sBAAsB,IAAG,wBAAwB,CAAC,WAAW,CAAC,CAAQ;;QAEnF,aAAa;YACZ,CAAC,CAAC,IAAC,GAAG,IAAC,KAAK,QAAC,OAAO,QAAC,MAAM,EAAC,SAAS,EAAC,GAAG,EAAE,GAAG,CAAA,kBAAkB,UAExD;YACR,CAAC,CAAC,IAAI,CACP,CAAC;AACN,CAAC,CAAA;AAGD,MAAM,UAAU,wBAAwB,CAAC,WAAgC;IACvE,OAAO,GAAG,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,IAAI,kBAAkB,GAAG,CAAC;AAC3E,CAAC","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React from 'react';\nimport { jsx, css } from '@emotion/react';\nimport { Icon, Tag } from '@blueprintjs/core';\nimport type { RegisterStakeholder } from '../types';\n\n\nexport const RegisterStakeholderListItem: React.FC<{\n stakeholder: RegisterStakeholder\n isCurrentUser?: true\n}> =\nfunction ({ stakeholder, isCurrentUser }) {\n return <>\n <Icon icon=\"person\" />\n &nbsp;\n <span css={css`white-space: nowrap;`}>{registerStakeholderPlain(stakeholder)}</span>\n &nbsp;\n {isCurrentUser\n ? <Tag round minimal intent=\"primary\" css={css`display: inline;`}>\n you\n </Tag>\n : null}\n </>;\n}\n\n\nexport function registerStakeholderPlain(stakeholder: RegisterStakeholder): string {\n return `${stakeholder.name} (${stakeholder.role ?? 'unspecified role'})`;\n}\n"]}
@@ -0,0 +1,9 @@
1
+ /** @jsx jsx */
2
+ /** @jsxFrag React.Fragment */
3
+ import React from 'react';
4
+ import type { Version } from '../types';
5
+ export declare const RegisterVersion: React.FC<{
6
+ version: Version;
7
+ isCurrent?: true;
8
+ }>;
9
+ export declare function registerVersionPlain(version: Version): string;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.registerVersionPlain = registerVersionPlain;
7
+ exports.RegisterVersion = void 0;
8
+
9
+ var _react = _interopRequireDefault(require("react"));
10
+
11
+ var _react2 = require("@emotion/react");
12
+
13
+ var _core = require("@blueprintjs/core");
14
+
15
+ var _util = require("./util");
16
+
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+
19
+ /** @jsx jsx */
20
+
21
+ /** @jsxFrag React.Fragment */
22
+ const RegisterVersion = function ({
23
+ version,
24
+ isCurrent
25
+ }) {
26
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_core.Icon, {
27
+ icon: "calendar"
28
+ }), "\u00A0", (0, _react2.jsx)("span", {
29
+ css: (0, _react2.css)`white-space: nowrap;`
30
+ }, registerVersionPlain(version)), "\u00A0", isCurrent ? (0, _react2.jsx)(_core.Tag, {
31
+ round: true,
32
+ intent: "primary",
33
+ title: "This version is the current published version."
34
+ }, "current") : null);
35
+ };
36
+
37
+ exports.RegisterVersion = RegisterVersion;
38
+
39
+ function registerVersionPlain(version) {
40
+ return `${version.id} (published ${(0, _util.formatDate)(version.timestamp)})`;
41
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegisterVersion.js","sourceRoot":"","sources":["../../src/views/RegisterVersion.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAE9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGpC,MAAM,CAAC,MAAM,eAAe,GAI5B,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE;IAC9B,OAAO;QACL,IAAC,IAAI,IAAC,IAAI,EAAC,UAAU,GAAG;;QAExB,cAAM,GAAG,EAAE,GAAG,CAAA,sBAAsB,IAAG,oBAAoB,CAAC,OAAO,CAAC,CAAQ;;QAE3E,SAAS;YACR,CAAC,CAAC,IAAC,GAAG,IAAC,KAAK,QAAC,MAAM,EAAC,SAAS,EAAC,KAAK,EAAC,gDAAgD,cAE5E;YACR,CAAC,CAAC,IAAI,CACP,CAAC;AACN,CAAC,CAAA;AAGD,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO,GAAG,OAAO,CAAC,EAAE,eAAe,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;AACtE,CAAC","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React from 'react';\nimport { jsx, css } from '@emotion/react';\nimport { Tag, Icon } from '@blueprintjs/core';\nimport type { Version } from '../types';\nimport { formatDate } from './util';\n\n\nexport const RegisterVersion: React.FC<{\n version: Version\n isCurrent?: true\n}> =\nfunction ({ version, isCurrent }) {\n return <>\n <Icon icon=\"calendar\" />\n &nbsp;\n <span css={css`white-space: nowrap;`}>{registerVersionPlain(version)}</span>\n &nbsp;\n {isCurrent\n ? <Tag round intent=\"primary\" title=\"This version is the current published version.\">\n current\n </Tag>\n : null}\n </>;\n}\n\n\nexport function registerVersionPlain(version: Version): string {\n return `${version.id} (published ${formatDate(version.timestamp)})`;\n}\n"]}
@@ -0,0 +1,13 @@
1
+ /** @jsx jsx */
2
+ /** @jsxFrag React.Fragment */
3
+ import React from 'react';
4
+ import { CriteriaGroup } from './FilterCriteria/models';
5
+ declare const SearchQuery: React.FC<{
6
+ rootCriteria: CriteriaGroup;
7
+ onCriteriaChange?: (rootCriteria: CriteriaGroup) => void;
8
+ quickSearchString: string;
9
+ onQuickSearchStringChange?: (searchString: string) => void;
10
+ availableClassIDs?: string[];
11
+ className?: string;
12
+ }>;
13
+ export default SearchQuery;