@qoretechnologies/reqraft 0.10.13-pr.74.gccefa54 → 0.10.13

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 (125) hide show
  1. package/.claude/CLAUDE.md +8 -11
  2. package/dist/components/form/engine/FormEngine.d.ts +1 -1
  3. package/dist/helpers/common.d.ts +0 -5
  4. package/dist/helpers/common.d.ts.map +1 -1
  5. package/dist/helpers/common.js +1 -20
  6. package/dist/helpers/common.js.map +1 -1
  7. package/dist/index.d.ts +0 -5
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -7
  10. package/dist/index.js.map +1 -1
  11. package/dist/providers/StorageProvider.d.ts +13 -0
  12. package/dist/providers/StorageProvider.d.ts.map +1 -1
  13. package/dist/providers/StorageProvider.js +29 -5
  14. package/dist/providers/StorageProvider.js.map +1 -1
  15. package/package.json +3 -3
  16. package/src/helpers/common.ts +0 -19
  17. package/src/hooks/useStorage/useStorage.stories.tsx +52 -0
  18. package/src/index.tsx +0 -5
  19. package/src/providers/StorageProvider.tsx +30 -4
  20. package/dist/components/composer/Composer.d.ts +0 -108
  21. package/dist/components/composer/Composer.d.ts.map +0 -1
  22. package/dist/components/composer/Composer.js +0 -238
  23. package/dist/components/composer/Composer.js.map +0 -1
  24. package/dist/components/composer/helpers.d.ts +0 -21
  25. package/dist/components/composer/helpers.d.ts.map +0 -1
  26. package/dist/components/composer/helpers.js +0 -75
  27. package/dist/components/composer/helpers.js.map +0 -1
  28. package/dist/components/composer/index.d.ts +0 -3
  29. package/dist/components/composer/index.d.ts.map +0 -1
  30. package/dist/components/composer/index.js +0 -19
  31. package/dist/components/composer/index.js.map +0 -1
  32. package/dist/components/imageLightbox/ImageLightbox.d.ts +0 -17
  33. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +0 -1
  34. package/dist/components/imageLightbox/ImageLightbox.js +0 -129
  35. package/dist/components/imageLightbox/ImageLightbox.js.map +0 -1
  36. package/dist/components/imageLightbox/index.d.ts +0 -2
  37. package/dist/components/imageLightbox/index.d.ts.map +0 -1
  38. package/dist/components/imageLightbox/index.js +0 -18
  39. package/dist/components/imageLightbox/index.js.map +0 -1
  40. package/dist/components/supportTicket/AttachmentChips.d.ts +0 -10
  41. package/dist/components/supportTicket/AttachmentChips.d.ts.map +0 -1
  42. package/dist/components/supportTicket/AttachmentChips.js +0 -119
  43. package/dist/components/supportTicket/AttachmentChips.js.map +0 -1
  44. package/dist/components/supportTicket/InterfaceReferenceTags.d.ts +0 -35
  45. package/dist/components/supportTicket/InterfaceReferenceTags.d.ts.map +0 -1
  46. package/dist/components/supportTicket/InterfaceReferenceTags.js +0 -31
  47. package/dist/components/supportTicket/InterfaceReferenceTags.js.map +0 -1
  48. package/dist/components/supportTicket/ReferencePicker.d.ts +0 -41
  49. package/dist/components/supportTicket/ReferencePicker.d.ts.map +0 -1
  50. package/dist/components/supportTicket/ReferencePicker.js +0 -86
  51. package/dist/components/supportTicket/ReferencePicker.js.map +0 -1
  52. package/dist/components/supportTicket/TicketHeader.d.ts +0 -86
  53. package/dist/components/supportTicket/TicketHeader.d.ts.map +0 -1
  54. package/dist/components/supportTicket/TicketHeader.js +0 -149
  55. package/dist/components/supportTicket/TicketHeader.js.map +0 -1
  56. package/dist/components/supportTicket/TicketMetaTags.d.ts +0 -32
  57. package/dist/components/supportTicket/TicketMetaTags.d.ts.map +0 -1
  58. package/dist/components/supportTicket/TicketMetaTags.js +0 -21
  59. package/dist/components/supportTicket/TicketMetaTags.js.map +0 -1
  60. package/dist/components/supportTicket/TicketReplyBox.d.ts +0 -63
  61. package/dist/components/supportTicket/TicketReplyBox.d.ts.map +0 -1
  62. package/dist/components/supportTicket/TicketReplyBox.js +0 -115
  63. package/dist/components/supportTicket/TicketReplyBox.js.map +0 -1
  64. package/dist/components/supportTicket/fileToAttachment.d.ts +0 -9
  65. package/dist/components/supportTicket/fileToAttachment.d.ts.map +0 -1
  66. package/dist/components/supportTicket/fileToAttachment.js +0 -28
  67. package/dist/components/supportTicket/fileToAttachment.js.map +0 -1
  68. package/dist/components/supportTicket/index.d.ts +0 -9
  69. package/dist/components/supportTicket/index.d.ts.map +0 -1
  70. package/dist/components/supportTicket/index.js +0 -25
  71. package/dist/components/supportTicket/index.js.map +0 -1
  72. package/dist/components/supportTicket/meta.d.ts +0 -63
  73. package/dist/components/supportTicket/meta.d.ts.map +0 -1
  74. package/dist/components/supportTicket/meta.js +0 -79
  75. package/dist/components/supportTicket/meta.js.map +0 -1
  76. package/dist/components/ticketReferences/TicketReferences.d.ts +0 -52
  77. package/dist/components/ticketReferences/TicketReferences.d.ts.map +0 -1
  78. package/dist/components/ticketReferences/TicketReferences.js +0 -453
  79. package/dist/components/ticketReferences/TicketReferences.js.map +0 -1
  80. package/dist/components/ticketReferences/index.d.ts +0 -3
  81. package/dist/components/ticketReferences/index.d.ts.map +0 -1
  82. package/dist/components/ticketReferences/index.js +0 -6
  83. package/dist/components/ticketReferences/index.js.map +0 -1
  84. package/dist/components/ticketThread/TicketThread.d.ts +0 -52
  85. package/dist/components/ticketThread/TicketThread.d.ts.map +0 -1
  86. package/dist/components/ticketThread/TicketThread.js +0 -248
  87. package/dist/components/ticketThread/TicketThread.js.map +0 -1
  88. package/dist/components/ticketThread/index.d.ts +0 -3
  89. package/dist/components/ticketThread/index.d.ts.map +0 -1
  90. package/dist/components/ticketThread/index.js +0 -7
  91. package/dist/components/ticketThread/index.js.map +0 -1
  92. package/dist/helpers/scrollbar.d.ts +0 -2
  93. package/dist/helpers/scrollbar.d.ts.map +0 -1
  94. package/dist/helpers/scrollbar.js +0 -25
  95. package/dist/helpers/scrollbar.js.map +0 -1
  96. package/src/components/composer/Composer.stories.tsx +0 -238
  97. package/src/components/composer/Composer.tsx +0 -545
  98. package/src/components/composer/helpers.ts +0 -74
  99. package/src/components/composer/index.ts +0 -2
  100. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -156
  101. package/src/components/imageLightbox/ImageLightbox.tsx +0 -169
  102. package/src/components/imageLightbox/index.ts +0 -1
  103. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -122
  104. package/src/components/supportTicket/AttachmentChips.tsx +0 -142
  105. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -134
  106. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -85
  107. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -296
  108. package/src/components/supportTicket/ReferencePicker.tsx +0 -237
  109. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -122
  110. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  111. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  112. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  113. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  114. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -355
  115. package/src/components/supportTicket/TicketReplyBox.tsx +0 -146
  116. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  117. package/src/components/supportTicket/index.ts +0 -8
  118. package/src/components/supportTicket/meta.ts +0 -145
  119. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -301
  120. package/src/components/ticketReferences/TicketReferences.tsx +0 -899
  121. package/src/components/ticketReferences/index.ts +0 -2
  122. package/src/components/ticketThread/TicketThread.stories.tsx +0 -751
  123. package/src/components/ticketThread/TicketThread.tsx +0 -650
  124. package/src/components/ticketThread/index.ts +0 -6
  125. package/src/helpers/scrollbar.ts +0 -32
@@ -1,129 +0,0 @@
1
- "use strict";
2
- var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
- return cooked;
5
- };
6
- var __assign = (this && this.__assign) || function () {
7
- __assign = Object.assign || function(t) {
8
- for (var s, i = 1, n = arguments.length; i < n; i++) {
9
- s = arguments[i];
10
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
- t[p] = s[p];
12
- }
13
- return t;
14
- };
15
- return __assign.apply(this, arguments);
16
- };
17
- var __importDefault = (this && this.__importDefault) || function (mod) {
18
- return (mod && mod.__esModule) ? mod : { "default": mod };
19
- };
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.ImageLightbox = void 0;
22
- var jsx_runtime_1 = require("react/jsx-runtime");
23
- var reqore_1 = require("@qoretechnologies/reqore");
24
- var react_1 = require("react");
25
- var styled_components_1 = __importDefault(require("styled-components"));
26
- /*
27
- * The shared full-image viewer: a `ReqoreModal` holding one image at a time, with
28
- * click-to-zoom, keyboard/arrow paging across a set, and a download action. Both the
29
- * ticket thread (an image attachment on a message) and the References tab (the ticket's
30
- * screenshot grid) open this, so there is one lightbox rather than a Modal-backed one
31
- * here and a hand-rolled overlay there.
32
- *
33
- * reqore has no image-viewer primitive, so the zoom stage below is bespoke — but the
34
- * shell, backdrop, focus trap, Esc-to-close and header/actions are all `ReqoreModal`.
35
- * When reqore gains a real viewer this collapses onto it. It fetches the shown image's
36
- * bytes itself (caching per id), so a consumer only has to hand it `fetchAttachmentUrl`.
37
- */
38
- var Stage = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 40vh;\n max-height: 74vh;\n overflow: auto;\n background: rgba(0, 0, 0, 0.25);\n border-radius: 8px;\n\n img {\n display: block;\n cursor: ", ";\n ", "\n }\n"], ["\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 40vh;\n max-height: 74vh;\n overflow: auto;\n background: rgba(0, 0, 0, 0.25);\n border-radius: 8px;\n\n img {\n display: block;\n cursor: ", ";\n ", "\n }\n"])), function (_a) {
39
- var $zoom = _a.$zoom;
40
- return ($zoom ? 'zoom-out' : 'zoom-in');
41
- }, function (_a) {
42
- var $zoom = _a.$zoom;
43
- return $zoom
44
- ? 'max-width: none; max-height: none;'
45
- : 'max-width: 100%; max-height: 74vh; object-fit: contain;';
46
- });
47
- var ImageLightbox = function (_a) {
48
- var images = _a.images, index = _a.index, onIndex = _a.onIndex, onClose = _a.onClose, fetchAttachmentUrl = _a.fetchAttachmentUrl, onDownload = _a.onDownload;
49
- var _b = (0, react_1.useState)(false), zoom = _b[0], setZoom = _b[1];
50
- // url per attachment: undefined = not fetched, null = fetch failed, string = ready
51
- var _c = (0, react_1.useState)({}), urls = _c[0], setUrls = _c[1];
52
- var requested = (0, react_1.useRef)(new Set());
53
- // Render above everything currently on screen: the ticket composer that can open this
54
- // lightbox floats at its own climbed z-index (also useLatestZIndex), so a modal on a fixed
55
- // z-index ends up BEHIND it. Climbing past the current top keeps the viewer on top wherever
56
- // it's opened from.
57
- var zIndex = (0, reqore_1.useLatestZIndex)();
58
- var image = images[index];
59
- var id = image === null || image === void 0 ? void 0 : image.attachment_id;
60
- var url = id ? urls[id] : undefined;
61
- var multiple = images.length > 1;
62
- // Keep the latest fetcher in a ref so the fetch effect can depend on `id` ALONE.
63
- // Consumers routinely pass `fetchAttachmentUrl` as an inline arrow — a new identity
64
- // every render. If the effect depended on it, each parent re-render would re-run the
65
- // effect: the previous run's cleanup fired first, so its in-flight fetch resolved with
66
- // nothing to write to, and because `requested` already held the id nothing re-fetched.
67
- // Net result: the spinner hung forever. Depending on `id` only breaks that cycle.
68
- var fetchRef = (0, react_1.useRef)(fetchAttachmentUrl);
69
- fetchRef.current = fetchAttachmentUrl;
70
- // True only while mounted: a fetch that resolves after unmount is dropped, but one that
71
- // resolves after a benign re-render still caches — the distinction a per-run flag missed.
72
- var mounted = (0, react_1.useRef)(true);
73
- (0, react_1.useEffect)(function () { return function () {
74
- mounted.current = false;
75
- }; }, []);
76
- // fetch the shown image's bytes once per id; `requested` guards against re-fetching a
77
- // page you've already visited
78
- (0, react_1.useEffect)(function () {
79
- if (!id || requested.current.has(id)) {
80
- return undefined;
81
- }
82
- requested.current.add(id);
83
- fetchRef.current(id)
84
- .then(function (resolved) { return mounted.current && setUrls(function (current) {
85
- var _a;
86
- return (__assign(__assign({}, current), (_a = {}, _a[id] = resolved, _a)));
87
- }); })
88
- .catch(function () { return mounted.current && setUrls(function (current) {
89
- var _a;
90
- return (__assign(__assign({}, current), (_a = {}, _a[id] = null, _a)));
91
- }); });
92
- return undefined;
93
- }, [id]);
94
- var step = (0, react_1.useCallback)(function (delta) {
95
- setZoom(false);
96
- onIndex((index + delta + images.length) % images.length);
97
- }, [index, images.length, onIndex]);
98
- (0, react_1.useEffect)(function () {
99
- if (!multiple) {
100
- return undefined;
101
- }
102
- var handler = function (event) {
103
- if (event.key === 'ArrowRight') {
104
- step(1);
105
- }
106
- else if (event.key === 'ArrowLeft') {
107
- step(-1);
108
- }
109
- };
110
- window.addEventListener('keydown', handler);
111
- return function () { return window.removeEventListener('keydown', handler); };
112
- }, [step, multiple]);
113
- if (!image) {
114
- return null;
115
- }
116
- return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreModal, { isOpen: true, onClose: onClose, customZIndex: zIndex, blur: 3, icon: 'ImageLine', label: image.filename, badge: multiple ? "".concat(index + 1, " / ").concat(images.length) : undefined, actions: [
117
- { icon: 'ArrowLeftSLine', tooltip: 'Previous', onClick: function () { return step(-1); }, show: multiple },
118
- { icon: 'ArrowRightSLine', tooltip: 'Next', onClick: function () { return step(1); }, show: multiple },
119
- {
120
- icon: 'DownloadLine',
121
- tooltip: 'Download',
122
- onClick: function () { return onDownload === null || onDownload === void 0 ? void 0 : onDownload(image.attachment_id, image.filename); },
123
- show: !!onDownload,
124
- },
125
- ], children: (0, jsx_runtime_1.jsx)(Stage, { "$zoom": zoom, children: url ? ((0, jsx_runtime_1.jsx)("img", { src: url, alt: image.filename, onClick: function () { return setZoom(function (z) { return !z; }); } })) : url === null ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreSpan, { effect: { opacity: 0.6 }, children: "Preview unavailable \u2014 use Download." })) : ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreSpinner, { iconColor: 'info', size: 'big', children: "Loading\u2026" })) }) }));
126
- };
127
- exports.ImageLightbox = ImageLightbox;
128
- var templateObject_1;
129
- //# sourceMappingURL=ImageLightbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImageLightbox.js","sourceRoot":"","sources":["../../../src/components/imageLightbox/ImageLightbox.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from './ImageLightbox';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/imageLightbox/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./ImageLightbox"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/imageLightbox/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
@@ -1,10 +0,0 @@
1
- export interface IAttachmentChipsProps {
2
- files: File[];
3
- onRemove: (index: number) => void;
4
- /** Rename a staged file. Omit to make chips non-renamable. The host replaces the File with a
5
- * renamed copy (`new File([file], newName, { type: file.type })`). */
6
- onRename?: (index: number, newName: string) => void;
7
- disabled?: boolean;
8
- }
9
- export declare const AttachmentChips: ({ files, onRemove, onRename, disabled }: IAttachmentChipsProps) => import("react/jsx-runtime").JSX.Element;
10
- //# sourceMappingURL=AttachmentChips.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AttachmentChips.d.ts","sourceRoot":"","sources":["../../../src/components/supportTicket/AttachmentChips.tsx"],"names":[],"mappings":"AAgBA,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;2EACuE;IACvE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,4CAA6C,qBAAqB,4CAoH7F,CAAC"}
@@ -1,119 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.AttachmentChips = void 0;
40
- var jsx_runtime_1 = require("react/jsx-runtime");
41
- var reqore_1 = require("@qoretechnologies/reqore");
42
- var react_1 = require("react");
43
- var imageLightbox_1 = require("../imageLightbox");
44
- var AttachmentChips = function (_a) {
45
- var files = _a.files, onRemove = _a.onRemove, onRename = _a.onRename, disabled = _a.disabled;
46
- var _b = (0, react_1.useState)([]), thumbnails = _b[0], setThumbnails = _b[1];
47
- // index into the image subset that's open in the lightbox, or null when closed.
48
- var _c = (0, react_1.useState)(null), previewIndex = _c[0], setPreviewIndex = _c[1];
49
- // the file index currently being renamed inline, plus its working name.
50
- var _d = (0, react_1.useState)(null), editingIndex = _d[0], setEditingIndex = _d[1];
51
- var _e = (0, react_1.useState)(''), draftName = _e[0], setDraftName = _e[1];
52
- (0, react_1.useEffect)(function () {
53
- var urls = files.map(function (file) {
54
- return file.type.startsWith('image/') ? URL.createObjectURL(file) : '';
55
- });
56
- setThumbnails(urls);
57
- return function () { return urls.forEach(function (url) { return url && URL.revokeObjectURL(url); }); };
58
- }, [files]);
59
- if (!files.length) {
60
- return null;
61
- }
62
- // The staged images in order, each with its original file index + object URL — the set the
63
- // lightbox pages across. Non-image files are skipped.
64
- var imageEntries = files
65
- .map(function (file, index) { return ({ file: file, index: index, url: thumbnails[index] }); })
66
- .filter(function (entry) { return entry.url; });
67
- var startRename = function (index) {
68
- setDraftName(files[index].name);
69
- setEditingIndex(index);
70
- };
71
- var commitRename = function () {
72
- if (editingIndex === null) {
73
- return;
74
- }
75
- var name = draftName.trim();
76
- if (onRename && name && name !== files[editingIndex].name) {
77
- onRename(editingIndex, name);
78
- }
79
- setEditingIndex(null);
80
- };
81
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreControlGroup, { wrap: true, gapSize: 'small', verticalAlign: 'center', children: files.map(function (file, index) {
82
- if (editingIndex === index) {
83
- return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreInput, { value: draftName, onChange: function (event) {
84
- return setDraftName(event.target.value);
85
- }, onBlur: commitRename, onKeyDown: function (event) {
86
- if (event.key === 'Enter') {
87
- commitRename();
88
- }
89
- else if (event.key === 'Escape') {
90
- setEditingIndex(null);
91
- }
92
- }, size: 'small', fixed: true, autoFocus: true }, "edit-".concat(index)));
93
- }
94
- var thumbnail = thumbnails[index];
95
- var imageIndex = thumbnail
96
- ? imageEntries.findIndex(function (entry) { return entry.index === index; })
97
- : -1;
98
- var actions = onRename && !disabled
99
- ? [
100
- {
101
- icon: 'Edit2Line',
102
- tooltip: 'Rename',
103
- onClick: function (event) {
104
- event.stopPropagation();
105
- startRename(index);
106
- },
107
- },
108
- ]
109
- : undefined;
110
- return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { icon: thumbnail ? undefined : 'AttachmentLine', leftIconProps: thumbnail ? { image: thumbnail } : undefined, label: file.name, size: 'small', tooltip: thumbnail ? 'Click to preview' : undefined, actions: actions, onClick: thumbnail ? function () { return setPreviewIndex(imageIndex); } : undefined, onRemoveClick: disabled ? undefined : function () { return onRemove(index); } }, "".concat(file.name, "-").concat(index)));
111
- }) }), previewIndex !== null && imageEntries[previewIndex] ? ((0, jsx_runtime_1.jsx)(imageLightbox_1.ImageLightbox, { images: imageEntries.map(function (entry) { return ({
112
- attachment_id: String(entry.index),
113
- filename: entry.file.name,
114
- }); }), index: previewIndex, onIndex: setPreviewIndex, onClose: function () { return setPreviewIndex(null); }, fetchAttachmentUrl: function (id) { return __awaiter(void 0, void 0, void 0, function () { var _a, _b; return __generator(this, function (_c) {
115
- return [2 /*return*/, (_b = (_a = imageEntries.find(function (entry) { return String(entry.index) === id; })) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : ''];
116
- }); }); } })) : null] }));
117
- };
118
- exports.AttachmentChips = AttachmentChips;
119
- //# sourceMappingURL=AttachmentChips.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AttachmentChips.js","sourceRoot":"","sources":["../../../src/components/supportTicket/AttachmentChips.tsx"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- import { ReqoreTag } from '@qoretechnologies/reqore';
2
- import { TSizes } from '@qoretechnologies/reqore/dist/constants/sizes';
3
- import { IReqoreIconName } from '@qoretechnologies/reqore/dist/types/icons';
4
- import { ComponentProps } from 'react';
5
- import { IInterfaceReference } from './meta';
6
- export interface IInterfaceReferenceTagsProps {
7
- references?: IInterfaceReference[];
8
- /** Optional leading label, e.g. "References" in a ticket header. Omitted (the
9
- * default) inside the thread, where the chips sit under a message. */
10
- label?: string;
11
- /** Resolve a per-kind icon. Consumers with their own icon vocabulary (the IDE)
12
- * pass one; when omitted the built-in per-kind default is used. */
13
- resolveInterfaceIcon?: (kind: string) => IReqoreIconName;
14
- /** Open a referenced interface; chips are static (informational) when omitted —
15
- * e.g. the staff view, which can't reach the customer's instance. */
16
- onInterfaceClick?: (reference: IInterfaceReference) => void;
17
- size?: TSizes;
18
- /** Chip styling — pass `intent`/`customTheme` (e.g. `{ main: 'custom1' }`) to tint
19
- * the reference chips to a surface's accent (the Qonsole/helpdesk composer does). */
20
- intent?: ComponentProps<typeof ReqoreTag>['intent'];
21
- customTheme?: ComponentProps<typeof ReqoreTag>['customTheme'];
22
- /** Resolve a per-reference image — e.g. a qog's trigger-app logo, the way the
23
- * qogs list does. When this (or the reference's own `logo`) returns a value, the
24
- * chip shows the image in place of the kind icon. */
25
- resolveInterfaceImage?: (reference: IInterfaceReference) => string | undefined;
26
- }
27
- /**
28
- * The chips for the Qorus interfaces a ticket or message references, as
29
- * `{kind, name}` snapshots. The single renderer for interface references across
30
- * every support surface — the ticket header (with a "References" label), the
31
- * thread (per message, no label), and the Qonsole card — so a reference looks
32
- * identical everywhere. Renders nothing when there are no references.
33
- */
34
- export declare const InterfaceReferenceTags: ({ references, label, resolveInterfaceIcon, onInterfaceClick, size, intent, customTheme, resolveInterfaceImage, }: IInterfaceReferenceTagsProps) => import("react/jsx-runtime").JSX.Element;
35
- //# sourceMappingURL=InterfaceReferenceTags.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InterfaceReferenceTags.d.ts","sourceRoot":"","sources":["../../../src/components/supportTicket/InterfaceReferenceTags.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAwB,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAEnE,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC;2EACuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;wEACoE;IACpE,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,eAAe,CAAC;IACzD;0EACsE;IACtE,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;0FACsF;IACtF,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpD,WAAW,CAAC,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;IAC9D;;0DAEsD;IACtD,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,MAAM,GAAG,SAAS,CAAC;CAChF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,qHAShC,4BAA4B,4CAwC9B,CAAC"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InterfaceReferenceTags = void 0;
4
- var jsx_runtime_1 = require("react/jsx-runtime");
5
- var reqore_1 = require("@qoretechnologies/reqore");
6
- var meta_1 = require("./meta");
7
- /**
8
- * The chips for the Qorus interfaces a ticket or message references, as
9
- * `{kind, name}` snapshots. The single renderer for interface references across
10
- * every support surface — the ticket header (with a "References" label), the
11
- * thread (per message, no label), and the Qonsole card — so a reference looks
12
- * identical everywhere. Renders nothing when there are no references.
13
- */
14
- var InterfaceReferenceTags = function (_a) {
15
- var references = _a.references, label = _a.label, resolveInterfaceIcon = _a.resolveInterfaceIcon, onInterfaceClick = _a.onInterfaceClick, _b = _a.size, size = _b === void 0 ? 'small' : _b, intent = _a.intent, customTheme = _a.customTheme, resolveInterfaceImage = _a.resolveInterfaceImage;
16
- if (!(references === null || references === void 0 ? void 0 : references.length)) {
17
- return null;
18
- }
19
- var resolveIcon = resolveInterfaceIcon !== null && resolveInterfaceIcon !== void 0 ? resolveInterfaceIcon : meta_1.defaultInterfaceIcon;
20
- return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { verticalAlign: 'center', wrap: true, gapSize: 'small', children: [label ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreP, { size: 'small', effect: { opacity: 0.6 }, children: label })) : null, references.map(function (reference) {
21
- var _a, _b;
22
- // an app-triggered qog shows the trigger app's logo (stored, or resolved by
23
- // a viewer with the app catalogue); everything else shows its kind glyph.
24
- var image = (_a = reference.logo) !== null && _a !== void 0 ? _a : resolveInterfaceImage === null || resolveInterfaceImage === void 0 ? void 0 : resolveInterfaceImage(reference);
25
- return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { icon: image ? undefined : resolveIcon(reference.interface_kind), leftIconProps: image ? { image: image } : undefined, labelKey: reference.interface_kind, label: reference.interface_name, size: size, intent: intent, customTheme: customTheme, tooltip: onInterfaceClick
26
- ? "Open ".concat(reference.interface_kind, " ").concat(reference.interface_name)
27
- : "".concat(reference.interface_kind, ": ").concat(reference.interface_name), onClick: onInterfaceClick ? function () { return onInterfaceClick(reference); } : undefined }, (_b = reference.reference_id) !== null && _b !== void 0 ? _b : "".concat(reference.interface_kind, ":").concat(reference.interface_name)));
28
- })] }));
29
- };
30
- exports.InterfaceReferenceTags = InterfaceReferenceTags;
31
- //# sourceMappingURL=InterfaceReferenceTags.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InterfaceReferenceTags.js","sourceRoot":"","sources":["../../../src/components/supportTicket/InterfaceReferenceTags.tsx"],"names":[],"mappings":";;;;AAAA,mDAAkF;AAIlF,+BAAmE;AAwBnE;;;;;;GAMG;AACI,IAAM,sBAAsB,GAAG,UAAC,EASR;QAR7B,UAAU,gBAAA,EACV,KAAK,WAAA,EACL,oBAAoB,0BAAA,EACpB,gBAAgB,sBAAA,EAChB,YAAc,EAAd,IAAI,mBAAG,OAAO,KAAA,EACd,MAAM,YAAA,EACN,WAAW,iBAAA,EACX,qBAAqB,2BAAA;IAErB,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAM,WAAW,GAAG,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,2BAAoB,CAAC;IACjE,OAAO,CACL,wBAAC,2BAAkB,IAAC,aAAa,EAAC,QAAQ,EAAC,IAAI,QAAC,OAAO,EAAC,OAAO,aAC5D,KAAK,CAAC,CAAC,CAAC,CACP,uBAAC,gBAAO,IAAC,IAAI,EAAC,OAAO,EAAC,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,YAC3C,KAAK,GACE,CACX,CAAC,CAAC,CAAC,IAAI,EACP,UAAU,CAAC,GAAG,CAAC,UAAC,SAAS;;gBACxB,4EAA4E;gBAC5E,0EAA0E;gBAC1E,IAAM,KAAK,GAAG,MAAA,SAAS,CAAC,IAAI,mCAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAG,SAAS,CAAC,CAAC;gBACnE,OAAO,CACL,uBAAC,kBAAS,IAKR,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,EAC/D,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC,CAAC,SAAS,EAC5C,QAAQ,EAAE,SAAS,CAAC,cAAc,EAClC,KAAK,EAAE,SAAS,CAAC,cAAc,EAC/B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,OAAO,EACL,gBAAgB;wBACd,CAAC,CAAC,eAAQ,SAAS,CAAC,cAAc,cAAI,SAAS,CAAC,cAAc,CAAE;wBAChE,CAAC,CAAC,UAAG,SAAS,CAAC,cAAc,eAAK,SAAS,CAAC,cAAc,CAAE,EAEhE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,cAAM,OAAA,gBAAgB,CAAC,SAAS,CAAC,EAA3B,CAA2B,CAAC,CAAC,CAAC,SAAS,IAfvE,MAAA,SAAS,CAAC,YAAY,mCACtB,UAAG,SAAS,CAAC,cAAc,cAAI,SAAS,CAAC,cAAc,CAAE,CAe3D,CACH,CAAC;YACJ,CAAC,CAAC,IACiB,CACtB,CAAC;AACJ,CAAC,CAAC;AAjDW,QAAA,sBAAsB,0BAiDjC"}
@@ -1,41 +0,0 @@
1
- import { IReqoreIconName } from '@qoretechnologies/reqore/dist/types/icons';
2
- import { ReactNode } from 'react';
3
- import { IInterfaceReference } from './meta';
4
- export interface IReferencePickerProps {
5
- /** the interface kinds listed down the left pane */
6
- kinds: string[];
7
- /** the kind whose interfaces `items` holds */
8
- kind: string;
9
- onKindChange: (kind: string) => void;
10
- /**
11
- * The selected kind's interfaces, by name. Fetching is the host's job — it knows
12
- * where they come from and how to cache them.
13
- */
14
- items: string[];
15
- /** `items` is still being fetched, so the right pane shows a spinner rather than
16
- * claiming the kind is empty */
17
- loading?: boolean;
18
- /**
19
- * The host's fetch for this kind failed. Shown in place of the list, because an
20
- * empty pane would otherwise read as "this instance has no workflows" — which is a
21
- * different and much more alarming statement than "we couldn't ask".
22
- */
23
- error?: string;
24
- /** Retry the failed fetch. The error state is pressable when given. */
25
- onRetry?: () => void;
26
- /** Already-picked references. Anything of the current kind that is already picked is
27
- * dropped from the right pane, so a reference can't be added twice. */
28
- picked?: IInterfaceReference[];
29
- onAdd: (reference: IInterfaceReference) => void;
30
- /** the whole picker is inert (e.g. a reply is in flight) */
31
- disabled?: boolean;
32
- /** Per-kind icon. Consumers with their own icon vocabulary (the IDE) pass one; the
33
- * built-in per-kind default is used when omitted. */
34
- resolveInterfaceIcon?: (kind: string) => IReqoreIconName;
35
- /** the underline / selected-kind colour. Defaults to the support surfaces' violet. */
36
- accent?: string;
37
- /** shown above the panes — the composer's picked-reference chips, typically */
38
- header?: ReactNode;
39
- }
40
- export declare const ReferencePicker: ({ kinds, kind, onKindChange, items, loading, error, onRetry, picked, onAdd, disabled, resolveInterfaceIcon, accent, header, }: IReferencePickerProps) => import("react/jsx-runtime").JSX.Element;
41
- //# sourceMappingURL=ReferencePicker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReferencePicker.d.ts","sourceRoot":"","sources":["../../../src/components/supportTicket/ReferencePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAwB,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AA0EnE,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;qCACiC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;4EACwE;IACxE,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,KAAK,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAChD,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;0DACsD;IACtD,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,eAAe,CAAC;IACzD,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,kIAczB,qBAAqB,4CA0GvB,CAAC"}
@@ -1,86 +0,0 @@
1
- "use strict";
2
- var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
- return cooked;
5
- };
6
- var __importDefault = (this && this.__importDefault) || function (mod) {
7
- return (mod && mod.__esModule) ? mod : { "default": mod };
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.ReferencePicker = void 0;
11
- var jsx_runtime_1 = require("react/jsx-runtime");
12
- var reqore_1 = require("@qoretechnologies/reqore");
13
- var react_1 = require("react");
14
- var styled_components_1 = __importDefault(require("styled-components"));
15
- var scrollbar_1 = require("../../helpers/scrollbar");
16
- var meta_1 = require("./meta");
17
- /*
18
- * The two-pane interface browser: kinds down the left, the selected kind's interfaces
19
- * on the right, and one search field that scopes both. Sits above a ticket composer,
20
- * toggled by the composer's "Reference interfaces" action.
21
- *
22
- * The host owns the data. Which kinds exist and what lives under one are questions only
23
- * the surrounding app can answer — the IDE lists them off the customer's live instance,
24
- * a story hands over fixtures — so this component takes `kinds` and the selected kind's
25
- * `items` and does the rest: selection, search, and turning a click into a reference.
26
- */
27
- /** How many interfaces the right pane shows before it scrolls. */
28
- var PANE_MAX_HEIGHT = 180;
29
- var KIND_PANE_WIDTH = 150;
30
- /*
31
- * A scroll pane with the thin, unobtrusive scrollbar the Qonsole surfaces use
32
- * (transparent track, translucent rounded thumb) rather than the raw browser one.
33
- * webkit-only, like those surfaces: setting `scrollbar-width` as well would let
34
- * Chromium override this custom 6px with its own, wider, "thin".
35
- */
36
- var Pane = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n max-height: ", "px;\n overflow-y: auto;\n padding: 4px;\n\n ", "\n"], ["\n ", "\n max-height: ", "px;\n overflow-y: auto;\n padding: 4px;\n\n ", "\n"])), function (_a) {
37
- var $right = _a.$right;
38
- return $right
39
- ? 'flex: 1; min-width: 0;'
40
- : "width: ".concat(KIND_PANE_WIDTH, "px; flex: none; border-right: 1px solid rgba(123, 104, 238, 0.25);");
41
- }, PANE_MAX_HEIGHT, scrollbar_1.thinScrollbar);
42
- var Frame = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border: 1px solid rgba(123, 104, 238, 0.25);\n border-radius: 8px;\n overflow: hidden;\n"], ["\n border: 1px solid rgba(123, 104, 238, 0.25);\n border-radius: 8px;\n overflow: hidden;\n"])));
43
- var Panes = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n"], ["\n display: flex;\n"])));
44
- /*
45
- * An underline search field. The input itself is borderless (`flat transparent`) and
46
- * this wrapper carries the single bottom border, so the search reads as a line rather
47
- * than a full grey box — including on focus, where Reqore's default is a 2px outline
48
- * around the whole control. Suppressing that outline and brightening the underline
49
- * instead keeps a focus cue without the box. The selector is scoped under this wrapper,
50
- * so it outranks Reqore's without `!important`.
51
- */
52
- var Search = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n padding: 6px 4px 4px;\n border-bottom: 1px solid ", ";\n transition: border-color 0.15s ease-out;\n\n .reqore-control-wrapper:focus-within {\n outline: none;\n }\n &:focus-within {\n border-bottom-color: ", ";\n }\n"], ["\n padding: 6px 4px 4px;\n border-bottom: 1px solid ", ";\n transition: border-color 0.15s ease-out;\n\n .reqore-control-wrapper:focus-within {\n outline: none;\n }\n &:focus-within {\n border-bottom-color: ", ";\n }\n"])), function (_a) {
53
- var $accent = _a.$accent;
54
- return "".concat($accent, "80");
55
- }, function (_a) {
56
- var $accent = _a.$accent;
57
- return $accent;
58
- });
59
- var Note = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n opacity: 0.4;\n padding: 8px 6px;\n font-size: 12px;\n"], ["\n opacity: 0.4;\n padding: 8px 6px;\n font-size: 12px;\n"])));
60
- var DEFAULT_ACCENT = '#762f7e';
61
- var ReferencePicker = function (_a) {
62
- var kinds = _a.kinds, kind = _a.kind, onKindChange = _a.onKindChange, items = _a.items, loading = _a.loading, error = _a.error, onRetry = _a.onRetry, picked = _a.picked, onAdd = _a.onAdd, disabled = _a.disabled, _b = _a.resolveInterfaceIcon, resolveInterfaceIcon = _b === void 0 ? meta_1.defaultInterfaceIcon : _b, _c = _a.accent, accent = _c === void 0 ? DEFAULT_ACCENT : _c, header = _a.header;
63
- var _d = (0, react_1.useState)(''), query = _d[0], setQuery = _d[1];
64
- var needle = query.trim().toLowerCase();
65
- var visibleKinds = (0, react_1.useMemo)(function () { return (needle ? kinds.filter(function (k) { return k.toLowerCase().includes(needle); }) : kinds); }, [kinds, needle]);
66
- /*
67
- * The right pane drops what's already been picked and then applies the search. When
68
- * the KIND itself matches the search ("workflow"), its interfaces all stay — you
69
- * searched for the kind, so you want to see what's in it.
70
- */
71
- var visibleItems = (0, react_1.useMemo)(function () {
72
- var already = new Set((picked !== null && picked !== void 0 ? picked : [])
73
- .filter(function (reference) { return reference.interface_kind === kind; })
74
- .map(function (reference) { return reference.interface_name; }));
75
- var kindMatches = kind.toLowerCase().includes(needle);
76
- return items.filter(function (name) {
77
- return !already.has(name) && (!needle || kindMatches || name.toLowerCase().includes(needle));
78
- });
79
- }, [items, picked, kind, needle]);
80
- return ((0, jsx_runtime_1.jsxs)(Frame, { children: [header, (0, jsx_runtime_1.jsx)(Search, { "$accent": accent, children: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreInput, { value: query, onChange: function (event) { return setQuery(event.target.value); }, placeholder: 'Search kinds and interfaces\u2026', icon: 'SearchLine', minimal: true, flat: true, transparent: true, fluid: true, disabled: disabled, onClearClick: query ? function () { return setQuery(''); } : undefined }) }), (0, jsx_runtime_1.jsxs)(Panes, { children: [(0, jsx_runtime_1.jsx)(Pane, { children: visibleKinds.length ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMenu, { transparent: true, flat: true, padded: false, width: '100%', size: 'small', children: visibleKinds.map(function (option) { return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMenuItem, { icon: resolveInterfaceIcon(option), label: option, selected: option === kind, disabled: disabled, onClick: function () { return onKindChange(option); } }, option)); }) })) : ((0, jsx_runtime_1.jsx)(Note, { children: "No kinds" })) }), (0, jsx_runtime_1.jsx)(Pane, { "$right": true, children: error ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMenu, { transparent: true, flat: true, padded: false, width: '100%', size: 'small', children: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreMenuItem, { icon: 'ErrorWarningLine', rightIcon: onRetry ? 'RefreshLine' : undefined, intent: 'danger', label: "Couldn't load ".concat(kind, "s"),
81
- /* the specific failure is the tooltip — the pane states the outcome */
82
- tooltip: error, onClick: onRetry }) })) : loading ? ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreSpinner, { iconColor: 'info', size: 'small', centered: true, children: ["Loading ", kind, "s\u2026"] })) : visibleItems.length ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMenu, { transparent: true, flat: true, padded: false, width: '100%', size: 'small', children: visibleItems.map(function (name) { return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMenuItem, { icon: resolveInterfaceIcon(kind), rightIcon: 'AddLine', label: name, disabled: disabled, tooltip: "Reference ".concat(kind, " ").concat(name), onClick: function () { return onAdd({ interface_kind: kind, interface_name: name }); } }, name)); }) })) : ((0, jsx_runtime_1.jsxs)(Note, { children: ["No matching ", kind] })) })] })] }));
83
- };
84
- exports.ReferencePicker = ReferencePicker;
85
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
86
- //# sourceMappingURL=ReferencePicker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReferencePicker.js","sourceRoot":"","sources":["../../../src/components/supportTicket/ReferencePicker.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,mDAAkG;AAElG,+BAAqD;AACrD,wEAAuC;AACvC,qDAAwD;AACxD,+BAAmE;AAEnE;;;;;;;;;GASG;AAEH,kEAAkE;AAClE,IAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,IAAM,eAAe,GAAG,GAAG,CAAC;AAE5B;;;;;GAKG;AACH,IAAM,IAAI,GAAG,2BAAM,CAAC,GAAG,sJAAsB,MACzC,EAGiG,kBACrF,EAAe,iDAI3B,EAAa,IAChB,KATG,UAAC,EAAU;QAAR,MAAM,YAAA;IACT,OAAA,MAAM;QACJ,CAAC,CAAC,wBAAwB;QAC1B,CAAC,CAAC,iBAAU,eAAe,uEAAoE;AAFjG,CAEiG,EACrF,eAAe,EAI3B,yBAAa,CAChB,CAAC;AAEF,IAAM,KAAK,GAAG,2BAAM,CAAC,GAAG,mKAAA,gGAIvB,IAAA,CAAC;AAEF,IAAM,KAAK,GAAG,2BAAM,CAAC,GAAG,yFAAA,sBAEvB,IAAA,CAAC;AAEF;;;;;;;GAOG;AACH,IAAM,MAAM,GAAG,2BAAM,CAAC,GAAG,4SAAqB,wDAEjB,EAA+B,mKAOjC,EAAwB,UAElD,KAT4B,UAAC,EAAW;QAAT,OAAO,aAAA;IAAO,OAAA,UAAG,OAAO,OAAI;AAAd,CAAc,EAOjC,UAAC,EAAW;QAAT,OAAO,aAAA;IAAO,OAAA,OAAO;AAAP,CAAO,CAElD,CAAC;AAEF,IAAM,IAAI,GAAG,2BAAM,CAAC,GAAG,iIAAA,8DAItB,IAAA,CAAC;AAEF,IAAM,cAAc,GAAG,SAAS,CAAC;AAuC1B,IAAM,eAAe,GAAG,UAAC,EAcR;QAbtB,KAAK,WAAA,EACL,IAAI,UAAA,EACJ,YAAY,kBAAA,EACZ,KAAK,WAAA,EACL,OAAO,aAAA,EACP,KAAK,WAAA,EACL,OAAO,aAAA,EACP,MAAM,YAAA,EACN,KAAK,WAAA,EACL,QAAQ,cAAA,EACR,4BAA2C,EAA3C,oBAAoB,mBAAG,2BAAoB,KAAA,EAC3C,cAAuB,EAAvB,MAAM,mBAAG,cAAc,KAAA,EACvB,MAAM,YAAA;IAEA,IAAA,KAAoB,IAAA,gBAAQ,EAAS,EAAE,CAAC,EAAvC,KAAK,QAAA,EAAE,QAAQ,QAAwB,CAAC;IAC/C,IAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE1C,IAAM,YAAY,GAAG,IAAA,eAAO,EAC1B,cAAM,OAAA,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAhC,CAAgC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAxE,CAAwE,EAC9E,CAAC,KAAK,EAAE,MAAM,CAAC,CAChB,CAAC;IAEF;;;;OAIG;IACH,IAAM,YAAY,GAAG,IAAA,eAAO,EAAC;QAC3B,IAAM,OAAO,GAAG,IAAI,GAAG,CACrB,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;aACX,MAAM,CAAC,UAAC,SAAS,IAAK,OAAA,SAAS,CAAC,cAAc,KAAK,IAAI,EAAjC,CAAiC,CAAC;aACxD,GAAG,CAAC,UAAC,SAAS,IAAK,OAAA,SAAS,CAAC,cAAc,EAAxB,CAAwB,CAAC,CAChD,CAAC;QACF,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC,MAAM,CACjB,UAAC,IAAI;YACH,OAAA,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAArF,CAAqF,CACxF,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAElC,OAAO,CACL,wBAAC,KAAK,eACH,MAAM,EACP,uBAAC,MAAM,eAAU,MAAM,YACrB,uBAAC,oBAAW,IACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAC,KAAK,IAAK,OAAA,QAAQ,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC,EAAlD,CAAkD,EACvE,WAAW,EAAC,mCAA8B,EAC1C,IAAI,EAAC,YAAY,EACjB,OAAO,QACP,IAAI,QACJ,WAAW,QACX,KAAK,QACL,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,cAAM,OAAA,QAAQ,CAAC,EAAE,CAAC,EAAZ,CAAY,CAAC,CAAC,CAAC,SAAS,GACpD,GACK,EACT,wBAAC,KAAK,eAMJ,uBAAC,IAAI,cACF,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CACrB,uBAAC,mBAAU,IAAC,WAAW,QAAC,IAAI,QAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,YAClE,YAAY,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,CAC5B,uBAAC,uBAAc,IAEb,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAClC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,KAAK,IAAI,EACzB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,cAAM,OAAA,YAAY,CAAC,MAAM,CAAC,EAApB,CAAoB,IAL9B,MAAM,CAMX,CACH,EAT6B,CAS7B,CAAC,GACS,CACd,CAAC,CAAC,CAAC,CACF,uBAAC,IAAI,2BAAgB,CACtB,GACI,EACP,uBAAC,IAAI,8BACF,KAAK,CAAC,CAAC,CAAC,CACP,uBAAC,mBAAU,IAAC,WAAW,QAAC,IAAI,QAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,YACnE,uBAAC,uBAAc,IACb,IAAI,EAAC,kBAAkB,EACvB,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAC9C,MAAM,EAAC,QAAQ,EACf,KAAK,EAAE,wBAAiB,IAAI,MAAG;gCAC/B,uEAAuE;gCACvE,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,GAChB,GACS,CACd,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACZ,wBAAC,sBAAa,IAAC,SAAS,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,+BAC1C,IAAI,eACC,CACjB,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CACxB,uBAAC,mBAAU,IAAC,WAAW,QAAC,IAAI,QAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,YAClE,YAAY,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CAC1B,uBAAC,uBAAc,IAEb,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,EAChC,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,oBAAa,IAAI,cAAI,IAAI,CAAE,EACpC,OAAO,EAAE,cAAM,OAAA,KAAK,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAArD,CAAqD,IAN/D,IAAI,CAOT,CACH,EAV2B,CAU3B,CAAC,GACS,CACd,CAAC,CAAC,CAAC,CACF,wBAAC,IAAI,+BAAc,IAAI,IAAQ,CAChC,GACI,IACD,IACF,CACT,CAAC;AACJ,CAAC,CAAC;AAxHW,QAAA,eAAe,mBAwH1B"}