@riboseinc/paneron-registry-kit 2.0.0-dev9 → 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 (179) 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 -19
  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 +13 -1
  38. package/views/FilterCriteria/CRITERIA_CONFIGURATION.js +178 -85
  39. package/views/FilterCriteria/CRITERIA_CONFIGURATION.js.map +1 -1
  40. package/views/FilterCriteria/criteriaGroupToQueryExpression.d.ts +4 -0
  41. package/views/FilterCriteria/criteriaGroupToQueryExpression.js +10 -3
  42. package/views/FilterCriteria/criteriaGroupToQueryExpression.js.map +1 -1
  43. package/views/FilterCriteria/criteriaGroupToSummary.js +7 -7
  44. package/views/FilterCriteria/criteriaGroupToSummary.js.map +1 -1
  45. package/views/FilterCriteria/criteriaToNodes.d.ts +9 -0
  46. package/views/FilterCriteria/criteriaToNodes.js +42 -28
  47. package/views/FilterCriteria/criteriaToNodes.js.map +1 -1
  48. package/views/FilterCriteria/index.d.ts +1 -0
  49. package/views/FilterCriteria/index.js +29 -21
  50. package/views/FilterCriteria/index.js.map +1 -1
  51. package/views/FilterCriteria/models.d.ts +29 -2
  52. package/views/FilterCriteria/models.js +17 -10
  53. package/views/FilterCriteria/models.js.map +1 -1
  54. package/views/FilterCriteria/mutateGroup.d.ts +4 -1
  55. package/views/FilterCriteria/mutateGroup.js +4 -3
  56. package/views/FilterCriteria/mutateGroup.js.map +1 -1
  57. package/views/GenericRelatedItemView.d.ts +1 -1
  58. package/views/GenericRelatedItemView.js +142 -102
  59. package/views/GenericRelatedItemView.js.map +1 -1
  60. package/views/RegisterStakeholder.d.ts +9 -0
  61. package/views/RegisterStakeholder.js +40 -0
  62. package/views/RegisterStakeholder.js.map +1 -0
  63. package/views/RegisterVersion.d.ts +9 -0
  64. package/views/RegisterVersion.js +41 -0
  65. package/views/RegisterVersion.js.map +1 -0
  66. package/views/SearchQuery.d.ts +13 -0
  67. package/views/SearchQuery.js +137 -0
  68. package/views/SearchQuery.js.map +1 -0
  69. package/views/change-request/ChangeRequestContext.d.ts +20 -0
  70. package/views/change-request/ChangeRequestContext.js +56 -0
  71. package/views/change-request/ChangeRequestContext.js.map +1 -0
  72. package/views/change-request/Proposals.d.ts +21 -0
  73. package/views/change-request/Proposals.js +331 -0
  74. package/views/change-request/Proposals.js.map +1 -0
  75. package/views/change-request/objectChangeset.d.ts +31 -0
  76. package/views/change-request/objectChangeset.js +229 -0
  77. package/views/change-request/objectChangeset.js.map +1 -0
  78. package/views/detail/ChangeRequest/Proposal.d.ts +0 -0
  79. package/views/detail/ChangeRequest/Proposal.js +142 -0
  80. package/views/detail/ChangeRequest/Proposal.js.map +1 -0
  81. package/views/detail/ChangeRequest/index.d.ts +13 -0
  82. package/views/detail/ChangeRequest/index.js +207 -0
  83. package/views/detail/ChangeRequest/index.js.map +1 -0
  84. package/views/detail/ChangeRequest/transitions.d.ts +28 -0
  85. package/views/detail/ChangeRequest/transitions.js +530 -0
  86. package/views/detail/ChangeRequest/transitions.js.map +1 -0
  87. package/views/detail/CustomView/index.d.ts +13 -0
  88. package/views/detail/CustomView/index.js +68 -0
  89. package/views/detail/CustomView/index.js.map +1 -0
  90. package/views/detail/RegisterHome/index.d.ts +5 -0
  91. package/views/detail/RegisterHome/index.js +128 -0
  92. package/views/detail/RegisterHome/index.js.map +1 -0
  93. package/views/detail/RegisterItem/RelatedItems.d.ts +13 -0
  94. package/views/detail/RegisterItem/RelatedItems.js +61 -0
  95. package/views/detail/RegisterItem/RelatedItems.js.map +1 -0
  96. package/views/detail/RegisterItem/SupersedingItemMenu.d.ts +13 -0
  97. package/views/detail/RegisterItem/SupersedingItemMenu.js +56 -0
  98. package/views/detail/RegisterItem/SupersedingItemMenu.js.map +1 -0
  99. package/views/detail/RegisterItem/index.d.ts +13 -0
  100. package/views/detail/RegisterItem/index.js +356 -0
  101. package/views/detail/RegisterItem/index.js.map +1 -0
  102. package/views/detail/RegisterMeta/RegisterMetaForm.d.ts +10 -0
  103. package/views/detail/RegisterMeta/RegisterMetaForm.js +331 -0
  104. package/views/detail/RegisterMeta/RegisterMetaForm.js.map +1 -0
  105. package/views/detail/RegisterMeta/index.d.ts +10 -0
  106. package/views/detail/RegisterMeta/index.js +111 -0
  107. package/views/detail/RegisterMeta/index.js.map +1 -0
  108. package/views/detail/index.d.ts +1 -0
  109. package/views/detail/index.js +24 -0
  110. package/views/detail/index.js.map +1 -0
  111. package/views/diffing/InlineDiff.d.ts +12 -0
  112. package/views/diffing/InlineDiff.js +58 -0
  113. package/views/diffing/InlineDiff.js.map +1 -0
  114. package/views/diffing/StructuredDiff.d.ts +11 -0
  115. package/views/diffing/StructuredDiff.js +65 -0
  116. package/views/diffing/StructuredDiff.js.map +1 -0
  117. package/views/hooks/useCustomView.d.ts +3 -0
  118. package/views/hooks/useCustomView.js +24 -0
  119. package/views/hooks/useCustomView.js.map +1 -0
  120. package/views/hooks/useItemClassConfig.d.ts +3 -0
  121. package/views/hooks/useItemClassConfig.js +24 -0
  122. package/views/hooks/useItemClassConfig.js.map +1 -0
  123. package/views/hooks/useItemRef.d.ts +3 -0
  124. package/views/hooks/useItemRef.js +39 -0
  125. package/views/hooks/useItemRef.js.map +1 -0
  126. package/views/hooks/useSingleRegisterItemData.d.ts +3 -0
  127. package/views/hooks/useSingleRegisterItemData.js +32 -0
  128. package/views/hooks/useSingleRegisterItemData.js.map +1 -0
  129. package/views/index.d.ts +2 -2
  130. package/views/index.js +161 -130
  131. package/views/index.js.map +1 -1
  132. package/views/itemPathUtils.d.ts +45 -2
  133. package/views/itemPathUtils.js +101 -14
  134. package/views/itemPathUtils.js.map +1 -1
  135. package/views/itemQueryUtils.d.ts +11 -0
  136. package/views/itemQueryUtils.js +48 -0
  137. package/views/itemQueryUtils.js.map +1 -0
  138. package/views/protocolRegistry.d.ts +12 -0
  139. package/views/protocolRegistry.js +42 -0
  140. package/views/protocolRegistry.js.map +1 -0
  141. package/views/sidebar/Browse/index.d.ts +11 -0
  142. package/views/sidebar/Browse/index.js +453 -0
  143. package/views/sidebar/Browse/index.js.map +1 -0
  144. package/views/sidebar/Export/index.d.ts +5 -0
  145. package/views/sidebar/Export/index.js +94 -0
  146. package/views/sidebar/Export/index.js.map +1 -0
  147. package/views/sidebar/ListItem.d.ts +10 -0
  148. package/views/sidebar/ListItem.js +43 -0
  149. package/views/sidebar/ListItem.js.map +1 -0
  150. package/views/sidebar/Registration/index.d.ts +5 -0
  151. package/views/sidebar/Registration/index.js +163 -0
  152. package/views/sidebar/Registration/index.js.map +1 -0
  153. package/views/sidebar/Search/index.d.ts +18 -0
  154. package/views/sidebar/Search/index.js +177 -0
  155. package/views/sidebar/Search/index.js.map +1 -0
  156. package/views/sidebar/index.d.ts +6 -0
  157. package/views/sidebar/index.js +104 -0
  158. package/views/sidebar/index.js.map +1 -0
  159. package/views/util.d.ts +29 -5
  160. package/views/util.js +92 -6
  161. package/views/util.js.map +1 -1
  162. package/views/ChangeRequest.d.ts +0 -12
  163. package/views/ChangeRequest.js +0 -689
  164. package/views/ChangeRequest.js.map +0 -1
  165. package/views/ItemBrowser.d.ts +0 -12
  166. package/views/ItemBrowser.js +0 -258
  167. package/views/ItemBrowser.js.map +0 -1
  168. package/views/ItemDetails.d.ts +0 -14
  169. package/views/ItemDetails.js +0 -128
  170. package/views/ItemDetails.js.map +0 -1
  171. package/views/MainView.d.ts +0 -8
  172. package/views/MainView.js +0 -34
  173. package/views/MainView.js.map +0 -1
  174. package/views/RegisterInformation.d.ts +0 -7
  175. package/views/RegisterInformation.js +0 -264
  176. package/views/RegisterInformation.js.map +0 -1
  177. package/views/RegisterItemGrid.d.ts +0 -25
  178. package/views/RegisterItemGrid.js +0 -276
  179. package/views/RegisterItemGrid.js.map +0 -1
@@ -5,23 +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");
17
19
 
18
- var _criteriaGroupToQueryExpression = _interopRequireDefault(require("./FilterCriteria/criteriaGroupToQueryExpression"));
20
+ var _cr = require("../types/cr");
19
21
 
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+ var _Search = _interopRequireDefault(require("./sidebar/Search"));
21
23
 
22
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
24
+ var _itemPathUtils = require("./itemPathUtils");
23
25
 
24
- 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 }; }
25
29
 
26
30
  /** @jsx jsx */
27
31
 
@@ -29,36 +33,48 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
29
33
  const GenericRelatedItemView = function ({
30
34
  itemRef,
31
35
  className,
32
- useRegisterItemData,
33
- getRelatedItemClassConfiguration,
34
36
  onCreateNew,
35
37
  onClear,
36
38
  onChange,
37
39
  availableClassIDs,
38
- availableSubregisterIDs,
39
- itemSorter
40
+ onJump // availableSubregisterIDs,
41
+ // itemSorter,
42
+
40
43
  }) {
41
- var _a, _b, _c, _d, _e;
44
+ var _itemResult$value;
42
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);
43
54
  const {
44
55
  classID,
45
56
  itemID,
46
57
  subregisterID
47
- } = itemRef !== null && itemRef !== void 0 ? itemRef : {
58
+ } = itemRef ?? {
48
59
  classID: '',
49
60
  itemID: '',
50
61
  subregisterID: ''
51
62
  };
52
- const _itemPath = `${classID}/${itemID}.yaml`;
53
- const itemPath = subregisterID ? `/subregisters/${subregisterID}/${_itemPath}` : `/${_itemPath}`;
54
- console.debug("GenericRelatedItemView", itemPath);
55
- 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);
56
73
 
57
- const browserCtx = (0, _react.useContext)(_BrowserCtx.BrowserCtx);
58
74
  const itemResult = useRegisterItemData({
59
75
  itemPaths: [itemPath]
60
76
  });
61
- 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;
62
78
  let classConfigured;
63
79
  let cfg;
64
80
 
@@ -68,7 +84,7 @@ const GenericRelatedItemView = function ({
68
84
  } catch (e) {
69
85
  cfg = {
70
86
  title: classID,
71
- itemView: () => (0, _core.jsx)("span", null, itemID)
87
+ itemView: () => (0, _react.jsx)("span", null, itemID)
72
88
  };
73
89
  classConfigured = false;
74
90
  }
@@ -84,65 +100,99 @@ const GenericRelatedItemView = function ({
84
100
  console.debug("Created new", itemRef);
85
101
  }
86
102
 
87
- 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] : [];
88
- 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] : [];
89
- const defaultClassID = classIDs[0];
90
- const effectiveClassID = classID || defaultClassID;
91
- const defaultSubregisterID = subregisterIDs[0];
92
- 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
+ }
146
+
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);
93
167
 
94
- return (0, _core.jsx)(_core2.ControlGroup, {
168
+
169
+ return (0, _react.jsx)(_core.ButtonGroup, {
95
170
  fill: true,
96
171
  className: className,
97
- vertical: true
98
- }, (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, {
99
174
  alignText: "left",
100
- title: "Item class",
175
+ css: (0, _react.css)`width: 180px;`,
176
+ title: `Item class: ${cfg.title ?? "N/A"}`,
101
177
  outlined: true,
102
178
  disabled: true
103
- }, (_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, {
104
180
  alignText: "left",
105
- fill: true,
181
+ fill: hasItem,
106
182
  outlined: true,
107
- disabled: true,
183
+ disabled: !canJump,
184
+ onClick: jump,
108
185
  loading: itemResult.isUpdating,
109
- title: cfg.title,
110
- css: (0, _core.css)`.bp3-button-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }`
111
- }, itemID === '' ? (0, _core.jsx)("span", null, "Item not specified") : item !== null && !itemResult.isUpdating ? (0, _core.jsx)(Item, {
112
- itemID: itemID,
113
- useRegisterItemData: useRegisterItemData,
114
- itemData: item.data,
115
- getRelatedItemClassConfiguration: getRelatedItemClassConfiguration
116
- }) : (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, {
117
- intent: "primary",
118
- onClick: handleCreateNew,
119
- icon: "add"
120
- }, "Auto-create") : null : (0, _core.jsx)(_react.default.Fragment, null, (0, _core.jsx)(_core2.Button, {
121
- icon: item === null && itemID !== '' ? 'error' : 'locate',
122
- disabled: item === null || !browserCtx.jumpToItem || !classConfigured || itemResult.isUpdating,
123
- onClick: () => {
124
- var _a;
125
-
126
- return (_a = browserCtx.jumpToItem) === null || _a === void 0 ? void 0 : _a.call(browserCtx, classID, itemID, subregisterID);
127
- }
128
- }), onClear ? (0, _core.jsx)(_core2.Button, {
129
- onClick: onClear,
130
- icon: "cross"
131
- }) : null), onChange ? (0, _core.jsx)(_core2.Button, {
132
- disabled: classIDs.length < 1,
133
- onClick: () => setSelectDialogState(true),
134
- icon: "edit"
135
- }) : 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, {
136
192
  isOpen: selectDialogState,
137
193
  onClose: () => setSelectDialogState(false),
138
194
  onChange: onChange,
139
- selectedItem: itemRef,
140
- selectedClassID: effectiveClassID,
141
- selectedSubregisterID: effectiveSubregisterID,
142
- availableClassIDs: classIDs,
143
- availableSubregisterIDs: subregisterIDs,
144
- useRegisterItemData: useRegisterItemData,
145
- getRelatedItemClassConfiguration: getRelatedItemClassConfiguration
195
+ availableClassIDs: classIDs
146
196
  }) : null);
147
197
  };
148
198
 
@@ -152,49 +202,39 @@ const RelatedItemSelectionDialog = function ({
152
202
  isOpen,
153
203
  onClose,
154
204
  onChange,
155
- selectedItem,
156
- selectedClassID,
157
- selectedSubregisterID,
158
- availableClassIDs,
159
- availableSubregisterIDs,
160
- useRegisterItemData,
161
- getRelatedItemClassConfiguration
205
+ availableClassIDs
162
206
  }) {
163
- const [filterCriteria, setFilterCriteria] = (0, _react.useState)({
164
- require: 'all',
165
- criteria: []
166
- });
167
207
  const {
168
- itemClasses,
169
208
  subregisters
170
- } = (0, _react.useContext)(_BrowserCtx.BrowserCtx); // const itemClassPath: string = selectedSubregisterID
171
- // ? `/subregisters/${selectedSubregisterID}/${selectedClassID}/`
172
- // : `/${selectedClassID}/`;
173
- // const queryExpression: string = `return objPath.indexOf("${itemClassPath}") === 0`;
174
-
175
- 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, {
176
219
  isOpen: isOpen,
177
220
  onClose: onClose,
221
+ enforceFocus: false,
178
222
  style: {
179
- padding: '0'
223
+ padding: '0',
224
+ width: 'unset'
180
225
  }
181
- }, (0, _core.jsx)(_RegisterItemGrid.default, {
226
+ }, (0, _react.jsx)(_Search.default, {
182
227
  style: {
183
- height: '80vh'
228
+ height: '90vh',
229
+ width: '90vw'
184
230
  },
185
- selectedItem: selectedItem,
186
- selectedSubregisterID: selectedSubregisterID,
187
- queryExpression: (0, _criteriaGroupToQueryExpression.default)(filterCriteria),
188
- onSelectItem: itemRef => onChange(itemRef),
189
- getRelatedClassConfig: getRelatedItemClassConfiguration,
190
- useRegisterItemData: useRegisterItemData,
191
- toolbar: (0, _core.jsx)(_RegisterItemGrid.SearchQuery, {
192
- rootCriteria: filterCriteria,
193
- itemClasses: itemClasses,
194
- availableClassIDs: availableClassIDs,
195
- subregisters: subregisters,
196
- onChange: setFilterCriteria
197
- })
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
+ }
198
238
  }));
199
239
  };
200
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 criteriaGroupToQueryExpression from './FilterCriteria/criteriaGroupToQueryExpression';\nimport { CriteriaGroup } from './FilterCriteria/models';\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;