@qoretechnologies/reqraft 0.10.25 → 0.10.26
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.
- package/.claude/CLAUDE.md +52 -23
- package/design/COMPACT_ENGINE_REDESIGN.md +156 -0
- package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +353 -0
- package/dist/components/FocusedEditing/index.d.ts +9 -1
- package/dist/components/FocusedEditing/index.d.ts.map +1 -1
- package/dist/components/FocusedEditing/index.js +2 -2
- package/dist/components/FocusedEditing/index.js.map +1 -1
- package/dist/components/composer/Composer.d.ts +108 -0
- package/dist/components/composer/Composer.d.ts.map +1 -0
- package/dist/components/composer/Composer.js +238 -0
- package/dist/components/composer/Composer.js.map +1 -0
- package/dist/components/composer/helpers.d.ts +21 -0
- package/dist/components/composer/helpers.d.ts.map +1 -0
- package/dist/components/composer/helpers.js +75 -0
- package/dist/components/composer/helpers.js.map +1 -0
- package/dist/components/composer/index.d.ts +3 -0
- package/dist/components/composer/index.d.ts.map +1 -0
- package/dist/components/composer/index.js +19 -0
- package/dist/components/composer/index.js.map +1 -0
- package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
- package/dist/components/form/engine/CompactRow.js +307 -110
- package/dist/components/form/engine/CompactRow.js.map +1 -1
- package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
- package/dist/components/form/engine/CompactToolbar.js +123 -106
- package/dist/components/form/engine/CompactToolbar.js.map +1 -1
- package/dist/components/form/engine/FormEngine.d.ts +107 -11
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +618 -179
- package/dist/components/form/engine/FormEngine.js.map +1 -1
- package/dist/components/form/engine/compactRowContext.d.ts +9 -0
- package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowContext.js.map +1 -1
- package/dist/components/form/engine/compactRowStyles.d.ts +7 -3
- package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowStyles.js +88 -51
- package/dist/components/form/engine/compactRowStyles.js.map +1 -1
- package/dist/components/form/engine/compactToolbarContext.d.ts +1 -0
- package/dist/components/form/engine/compactToolbarContext.d.ts.map +1 -1
- package/dist/components/form/engine/compactToolbarContext.js.map +1 -1
- package/dist/components/form/engine/optionActions.d.ts +28 -0
- package/dist/components/form/engine/optionActions.d.ts.map +1 -0
- package/dist/components/form/engine/optionActions.js +18 -0
- package/dist/components/form/engine/optionActions.js.map +1 -0
- package/dist/components/form/engine/readFirst.d.ts +63 -2
- package/dist/components/form/engine/readFirst.d.ts.map +1 -1
- package/dist/components/form/engine/readFirst.js +121 -6
- package/dist/components/form/engine/readFirst.js.map +1 -1
- package/dist/components/form/engine/rendererTypes.d.ts +35 -0
- package/dist/components/form/engine/rendererTypes.d.ts.map +1 -0
- package/dist/components/form/engine/rendererTypes.js +63 -0
- package/dist/components/form/engine/rendererTypes.js.map +1 -0
- package/dist/components/form/engine/variants/VariantCalmTable.d.ts +6 -0
- package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -0
- package/dist/components/form/engine/variants/VariantCalmTable.js +94 -0
- package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -0
- package/dist/components/form/engine/variants/VariantCards.d.ts +6 -0
- package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -0
- package/dist/components/form/engine/variants/VariantCards.js +80 -0
- package/dist/components/form/engine/variants/VariantCards.js.map +1 -0
- package/dist/components/form/engine/variants/VariantFocus.d.ts +7 -0
- package/dist/components/form/engine/variants/VariantFocus.d.ts.map +1 -0
- package/dist/components/form/engine/variants/VariantFocus.js +138 -0
- package/dist/components/form/engine/variants/VariantFocus.js.map +1 -0
- package/dist/components/form/engine/variants/VariantMinimal.d.ts +6 -0
- package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -0
- package/dist/components/form/engine/variants/VariantMinimal.js +73 -0
- package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -0
- package/dist/components/form/engine/variants/focusDemo.d.ts +13 -0
- package/dist/components/form/engine/variants/focusDemo.d.ts.map +1 -0
- package/dist/components/form/engine/variants/focusDemo.js +139 -0
- package/dist/components/form/engine/variants/focusDemo.js.map +1 -0
- package/dist/components/form/engine/variants/variantModel.d.ts +70 -0
- package/dist/components/form/engine/variants/variantModel.d.ts.map +1 -0
- package/dist/components/form/engine/variants/variantModel.js +133 -0
- package/dist/components/form/engine/variants/variantModel.js.map +1 -0
- package/dist/components/form/engine/variants/variantParts.d.ts +79 -0
- package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -0
- package/dist/components/form/engine/variants/variantParts.js +191 -0
- package/dist/components/form/engine/variants/variantParts.js.map +1 -0
- package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/index.js +13 -2
- package/dist/components/form/expressions/builder/index.js.map +1 -1
- package/dist/components/form/expressions/useExpressions.d.ts.map +1 -1
- package/dist/components/form/expressions/useExpressions.js +4 -1
- package/dist/components/form/expressions/useExpressions.js.map +1 -1
- package/dist/components/form/fields/Field.d.ts.map +1 -1
- package/dist/components/form/fields/Field.js +5 -3
- package/dist/components/form/fields/Field.js.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts +2 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.js +8 -26
- package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts +3 -0
- package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.js +42 -8
- package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
- package/dist/components/form/fields/binary/Binary.d.ts +15 -0
- package/dist/components/form/fields/binary/Binary.d.ts.map +1 -0
- package/dist/components/form/fields/binary/Binary.js +74 -0
- package/dist/components/form/fields/binary/Binary.js.map +1 -0
- package/dist/components/form/fields/boolean/Boolean.js +1 -1
- package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
- package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
- package/dist/components/form/fields/multi-select/MultiSelectFormField.js +5 -4
- package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
- package/dist/components/form/fields/select/Select.d.ts.map +1 -1
- package/dist/components/form/fields/select/Select.js +29 -12
- package/dist/components/form/fields/select/Select.js.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.d.ts +8 -2
- package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.js +52 -16
- package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
- package/dist/components/form/index.d.ts +2 -0
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +2 -0
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/imageLightbox/ImageLightbox.d.ts +21 -0
- package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -0
- package/dist/components/imageLightbox/ImageLightbox.js +169 -0
- package/dist/components/imageLightbox/ImageLightbox.js.map +1 -0
- package/dist/components/imageLightbox/index.d.ts +2 -0
- package/dist/components/imageLightbox/index.d.ts.map +1 -0
- package/dist/components/imageLightbox/index.js +18 -0
- package/dist/components/imageLightbox/index.js.map +1 -0
- package/dist/components/searchFilterBar/SearchFilterBar.d.ts +33 -0
- package/dist/components/searchFilterBar/SearchFilterBar.d.ts.map +1 -0
- package/dist/components/searchFilterBar/SearchFilterBar.js +76 -0
- package/dist/components/searchFilterBar/SearchFilterBar.js.map +1 -0
- package/dist/components/searchFilterBar/index.d.ts +2 -0
- package/dist/components/searchFilterBar/index.d.ts.map +1 -0
- package/dist/components/searchFilterBar/index.js +18 -0
- package/dist/components/searchFilterBar/index.js.map +1 -0
- package/dist/components/supportTicket/AttachmentChips.d.ts +10 -0
- package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -0
- package/dist/components/supportTicket/AttachmentChips.js +122 -0
- package/dist/components/supportTicket/AttachmentChips.js.map +1 -0
- package/dist/components/supportTicket/InterfaceReferenceTags.d.ts +43 -0
- package/dist/components/supportTicket/InterfaceReferenceTags.d.ts.map +1 -0
- package/dist/components/supportTicket/InterfaceReferenceTags.js +31 -0
- package/dist/components/supportTicket/InterfaceReferenceTags.js.map +1 -0
- package/dist/components/supportTicket/ReferencePicker.d.ts +87 -0
- package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -0
- package/dist/components/supportTicket/ReferencePicker.js +295 -0
- package/dist/components/supportTicket/ReferencePicker.js.map +1 -0
- package/dist/components/supportTicket/TicketHeader.d.ts +86 -0
- package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -0
- package/dist/components/supportTicket/TicketHeader.js +149 -0
- package/dist/components/supportTicket/TicketHeader.js.map +1 -0
- package/dist/components/supportTicket/TicketMetaTags.d.ts +32 -0
- package/dist/components/supportTicket/TicketMetaTags.d.ts.map +1 -0
- package/dist/components/supportTicket/TicketMetaTags.js +21 -0
- package/dist/components/supportTicket/TicketMetaTags.js.map +1 -0
- package/dist/components/supportTicket/TicketReplyBox.d.ts +63 -0
- package/dist/components/supportTicket/TicketReplyBox.d.ts.map +1 -0
- package/dist/components/supportTicket/TicketReplyBox.js +115 -0
- package/dist/components/supportTicket/TicketReplyBox.js.map +1 -0
- package/dist/components/supportTicket/attachmentAccess.d.ts +37 -0
- package/dist/components/supportTicket/attachmentAccess.d.ts.map +1 -0
- package/dist/components/supportTicket/attachmentAccess.js +132 -0
- package/dist/components/supportTicket/attachmentAccess.js.map +1 -0
- package/dist/components/supportTicket/fileToAttachment.d.ts +9 -0
- package/dist/components/supportTicket/fileToAttachment.d.ts.map +1 -0
- package/dist/components/supportTicket/fileToAttachment.js +28 -0
- package/dist/components/supportTicket/fileToAttachment.js.map +1 -0
- package/dist/components/supportTicket/index.d.ts +11 -0
- package/dist/components/supportTicket/index.d.ts.map +1 -0
- package/dist/components/supportTicket/index.js +27 -0
- package/dist/components/supportTicket/index.js.map +1 -0
- package/dist/components/supportTicket/meta.d.ts +71 -0
- package/dist/components/supportTicket/meta.d.ts.map +1 -0
- package/dist/components/supportTicket/meta.js +115 -0
- package/dist/components/supportTicket/meta.js.map +1 -0
- package/dist/components/supportTicket/ticketModel.d.ts +102 -0
- package/dist/components/supportTicket/ticketModel.d.ts.map +1 -0
- package/dist/components/supportTicket/ticketModel.js +3 -0
- package/dist/components/supportTicket/ticketModel.js.map +1 -0
- package/dist/components/ticketReferences/TicketReferences.d.ts +52 -0
- package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -0
- package/dist/components/ticketReferences/TicketReferences.js +492 -0
- package/dist/components/ticketReferences/TicketReferences.js.map +1 -0
- package/dist/components/ticketReferences/index.d.ts +3 -0
- package/dist/components/ticketReferences/index.d.ts.map +1 -0
- package/dist/components/ticketReferences/index.js +6 -0
- package/dist/components/ticketReferences/index.js.map +1 -0
- package/dist/components/ticketThread/TicketThread.d.ts +57 -0
- package/dist/components/ticketThread/TicketThread.d.ts.map +1 -0
- package/dist/components/ticketThread/TicketThread.js +299 -0
- package/dist/components/ticketThread/TicketThread.js.map +1 -0
- package/dist/components/ticketThread/index.d.ts +3 -0
- package/dist/components/ticketThread/index.d.ts.map +1 -0
- package/dist/components/ticketThread/index.js +7 -0
- package/dist/components/ticketThread/index.js.map +1 -0
- package/dist/helpers/common.d.ts +5 -0
- package/dist/helpers/common.d.ts.map +1 -1
- package/dist/helpers/common.js +20 -1
- package/dist/helpers/common.js.map +1 -1
- package/dist/helpers/scrollbar.d.ts +2 -0
- package/dist/helpers/scrollbar.d.ts.map +1 -0
- package/dist/helpers/scrollbar.js +25 -0
- package/dist/helpers/scrollbar.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/StorageProvider.d.ts +13 -0
- package/dist/providers/StorageProvider.d.ts.map +1 -1
- package/dist/providers/StorageProvider.js +29 -5
- package/dist/providers/StorageProvider.js.map +1 -1
- package/package.json +6 -5
- package/src/components/FocusedEditing/index.tsx +17 -2
- package/src/components/composer/Composer.stories.tsx +238 -0
- package/src/components/composer/Composer.tsx +545 -0
- package/src/components/composer/helpers.ts +74 -0
- package/src/components/composer/index.ts +2 -0
- package/src/components/dpqlEditor/DpqlEditor.stories.tsx +74 -2
- package/src/components/form/engine/CompactRow.tsx +561 -283
- package/src/components/form/engine/CompactToolbar.tsx +216 -182
- package/src/components/form/engine/FormEngine.stories.tsx +1736 -162
- package/src/components/form/engine/FormEngine.tsx +886 -170
- package/src/components/form/engine/FormEngineRemote.stories.tsx +377 -0
- package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +8 -0
- package/src/components/form/engine/compactRowContext.ts +14 -0
- package/src/components/form/engine/compactRowStyles.ts +273 -146
- package/src/components/form/engine/compactToolbarContext.ts +1 -0
- package/src/components/form/engine/optionActions.ts +40 -0
- package/src/components/form/engine/readFirst.ts +169 -10
- package/src/components/form/engine/rendererTypes.ts +55 -0
- package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +159 -0
- package/src/components/form/engine/variants/VariantCalmTable.tsx +242 -0
- package/src/components/form/engine/variants/VariantCards.tsx +212 -0
- package/src/components/form/engine/variants/VariantFocus.tsx +382 -0
- package/src/components/form/engine/variants/VariantMinimal.tsx +170 -0
- package/src/components/form/engine/variants/focusDemo.ts +145 -0
- package/src/components/form/engine/variants/variantModel.ts +216 -0
- package/src/components/form/engine/variants/variantParts.tsx +313 -0
- package/src/components/form/expressions/ExpressionField.stories.tsx +84 -2
- package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +213 -19
- package/src/components/form/expressions/builder/index.tsx +12 -1
- package/src/components/form/expressions/useExpressions.ts +4 -1
- package/src/components/form/fields/Field.stories.tsx +40 -0
- package/src/components/form/fields/Field.tsx +10 -1
- package/src/components/form/fields/allowed-values/AllowedValues.tsx +13 -36
- package/src/components/form/fields/array/ArrayAutoField.stories.tsx +64 -0
- package/src/components/form/fields/auto/AutoFormField.stories.tsx +146 -2
- package/src/components/form/fields/auto/AutoFormField.tsx +42 -1
- package/src/components/form/fields/binary/Binary.stories.tsx +122 -0
- package/src/components/form/fields/binary/Binary.tsx +81 -0
- package/src/components/form/fields/boolean/Boolean.stories.tsx +58 -0
- package/src/components/form/fields/boolean/Boolean.tsx +1 -1
- package/src/components/form/fields/byte-size/ByteSize.stories.tsx +24 -0
- package/src/components/form/fields/color/Color.stories.tsx +30 -0
- package/src/components/form/fields/cron/Cron.stories.tsx +8 -0
- package/src/components/form/fields/date/Date.stories.tsx +22 -0
- package/src/components/form/fields/file/File.stories.tsx +48 -0
- package/src/components/form/fields/long-string/LongString.stories.tsx +24 -0
- package/src/components/form/fields/markdown/Markdown.stories.tsx +8 -0
- package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +14 -10
- package/src/components/form/fields/number/Number.stories.tsx +31 -0
- package/src/components/form/fields/object/Object.stories.tsx +88 -0
- package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +24 -0
- package/src/components/form/fields/rich-text/RichText.stories.tsx +23 -0
- package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +72 -0
- package/src/components/form/fields/select/Select.stories.tsx +108 -0
- package/src/components/form/fields/select/Select.tsx +38 -12
- package/src/components/form/fields/select/SelectCollection.tsx +78 -17
- package/src/components/form/fields/string/String.stories.tsx +16 -0
- package/src/components/form/fields/template/TemplateField.stories.tsx +160 -0
- package/src/components/form/fields/url/Url.stories.tsx +24 -0
- package/src/components/form/index.tsx +2 -0
- package/src/components/imageLightbox/ImageLightbox.stories.tsx +238 -0
- package/src/components/imageLightbox/ImageLightbox.tsx +236 -0
- package/src/components/imageLightbox/index.ts +1 -0
- package/src/components/log/Log.stories.tsx +96 -0
- package/src/components/menu/Menu.stories.tsx +54 -0
- package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +83 -37
- package/src/components/searchFilterBar/SearchFilterBar.tsx +131 -0
- package/src/components/searchFilterBar/index.ts +1 -0
- package/src/components/smartEditor/SmartEditor.stories.tsx +32 -0
- package/src/components/supportTicket/AttachmentChips.stories.tsx +171 -0
- package/src/components/supportTicket/AttachmentChips.tsx +147 -0
- package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +171 -0
- package/src/components/supportTicket/InterfaceReferenceTags.tsx +96 -0
- package/src/components/supportTicket/ReferencePicker.stories.tsx +519 -0
- package/src/components/supportTicket/ReferencePicker.tsx +563 -0
- package/src/components/supportTicket/TicketConversation.stories.tsx +121 -0
- package/src/components/supportTicket/TicketHeader.stories.tsx +183 -0
- package/src/components/supportTicket/TicketHeader.tsx +247 -0
- package/src/components/supportTicket/TicketMetaTags.stories.tsx +103 -0
- package/src/components/supportTicket/TicketMetaTags.tsx +85 -0
- package/src/components/supportTicket/TicketReplyBox.stories.tsx +351 -0
- package/src/components/supportTicket/TicketReplyBox.tsx +146 -0
- package/src/components/supportTicket/attachmentAccess.ts +97 -0
- package/src/components/supportTicket/fileToAttachment.ts +24 -0
- package/src/components/supportTicket/index.ts +10 -0
- package/src/components/supportTicket/meta.ts +185 -0
- package/src/components/supportTicket/ticketModel.ts +131 -0
- package/src/components/ticketReferences/TicketReferences.stories.tsx +315 -0
- package/src/components/ticketReferences/TicketReferences.tsx +886 -0
- package/src/components/ticketReferences/index.ts +2 -0
- package/src/components/ticketThread/TicketThread.stories.tsx +828 -0
- package/src/components/ticketThread/TicketThread.tsx +704 -0
- package/src/components/ticketThread/index.ts +6 -0
- package/src/helpers/common.ts +19 -0
- package/src/helpers/scrollbar.ts +32 -0
- package/src/hooks/useFetch/useFetch.stories.tsx +30 -0
- package/src/hooks/useStorage/useStorage.stories.tsx +82 -0
- package/src/hooks/useWebSocket/useWebsocket.stories.tsx +127 -1
- package/src/index.tsx +8 -1
- package/src/providers/StorageProvider.tsx +30 -4
- package/src/stores/currentUser/currentUser.stories.tsx +49 -0
|
@@ -22,6 +22,8 @@ export * from './fields/select/SelectCollection';
|
|
|
22
22
|
export * from './fields/string/String';
|
|
23
23
|
export * from './fields/template/TemplateField';
|
|
24
24
|
export * from './engine/FormEngine';
|
|
25
|
+
export * from './engine/optionActions';
|
|
26
|
+
export * from './engine/rendererTypes';
|
|
25
27
|
export * from './expressions/types';
|
|
26
28
|
export * from './expressions/useExpressions';
|
|
27
29
|
export { renderExpressionToText, useRenderExpression } from './expressions/useRenderExpression';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/form/index.tsx"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uCAAuC,CAAC;AACtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAG7C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAChG,YAAY,EACV,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,cAAc,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/form/index.tsx"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uCAAuC,CAAC;AACtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAG7C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAChG,YAAY,EACV,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,cAAc,+BAA+B,CAAC"}
|
|
@@ -39,6 +39,8 @@ __exportStar(require("./fields/select/SelectCollection"), exports);
|
|
|
39
39
|
__exportStar(require("./fields/string/String"), exports);
|
|
40
40
|
__exportStar(require("./fields/template/TemplateField"), exports);
|
|
41
41
|
__exportStar(require("./engine/FormEngine"), exports);
|
|
42
|
+
__exportStar(require("./engine/optionActions"), exports);
|
|
43
|
+
__exportStar(require("./engine/rendererTypes"), exports);
|
|
42
44
|
__exportStar(require("./expressions/types"), exports);
|
|
43
45
|
__exportStar(require("./expressions/useExpressions"), exports);
|
|
44
46
|
// Named (not wildcard) so the `_resetRenderExpressionTransportForTests`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/form/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,wEAAsD;AACtD,2DAAyC;AACzC,gEAA8C;AAC9C,8DAA4C;AAC5C,8DAA4C;AAC5C,mDAAiC;AACjC,6DAA2C;AAC3C,2DAAyC;AACzC,uDAAqC;AACrC,qDAAmC;AACnC,qDAAmC;AACnC,kEAAgD;AAChD,6DAA2C;AAC3C,6EAA2D;AAC3D,yDAAuC;AACvC,yDAAuC;AACvC,kEAAgD;AAChD,8DAA4C;AAC5C,yDAAuC;AACvC,mEAAiD;AACjD,yDAAuC;AACvC,kEAAgD;AAChD,sDAAoC;AACpC,sDAAoC;AACpC,+DAA6C;AAC7C,wEAAwE;AACxE,qDAAqD;AACrD,yEAAgG;AAAvF,6HAAA,sBAAsB,OAAA;AAAE,0HAAA,mBAAmB,OAAA;AAKpD,gEAA8C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/form/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,wEAAsD;AACtD,2DAAyC;AACzC,gEAA8C;AAC9C,8DAA4C;AAC5C,8DAA4C;AAC5C,mDAAiC;AACjC,6DAA2C;AAC3C,2DAAyC;AACzC,uDAAqC;AACrC,qDAAmC;AACnC,qDAAmC;AACnC,kEAAgD;AAChD,6DAA2C;AAC3C,6EAA2D;AAC3D,yDAAuC;AACvC,yDAAuC;AACvC,kEAAgD;AAChD,8DAA4C;AAC5C,yDAAuC;AACvC,mEAAiD;AACjD,yDAAuC;AACvC,kEAAgD;AAChD,sDAAoC;AACpC,yDAAuC;AACvC,yDAAuC;AACvC,sDAAoC;AACpC,+DAA6C;AAC7C,wEAAwE;AACxE,qDAAqD;AACrD,yEAAgG;AAAvF,6HAAA,sBAAsB,OAAA;AAAE,0HAAA,mBAAmB,OAAA;AAKpD,gEAA8C"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface IImageLightboxImage {
|
|
2
|
+
attachment_id: string;
|
|
3
|
+
filename: string;
|
|
4
|
+
}
|
|
5
|
+
export interface IImageLightboxProps {
|
|
6
|
+
/** the set the viewer pages across — one image is a set of one (no paging chrome) */
|
|
7
|
+
images: IImageLightboxImage[];
|
|
8
|
+
/** which image is shown */
|
|
9
|
+
index: number;
|
|
10
|
+
onIndex: (index: number) => void;
|
|
11
|
+
onClose: () => void;
|
|
12
|
+
/** resolve an image's bytes as an object URL (the consumer's authed endpoint) */
|
|
13
|
+
fetchAttachmentUrl: (attachmentId: string) => Promise<string>;
|
|
14
|
+
onDownload?: (attachmentId: string, filename: string) => void;
|
|
15
|
+
/** Rename the shown image. Presence of the callback IS the permission — a staged
|
|
16
|
+
* (composer) set passes it, server-side attachment sets simply don't, so the
|
|
17
|
+
* thread / References viewers stay rename-free without any extra flag. */
|
|
18
|
+
onRename?: (attachmentId: string, newName: string) => void;
|
|
19
|
+
}
|
|
20
|
+
export declare const ImageLightbox: ({ images, index, onIndex, onClose, fetchAttachmentUrl, onDownload, onRename, }: IImageLightboxProps) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=ImageLightbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageLightbox.d.ts","sourceRoot":"","sources":["../../../src/components/imageLightbox/ImageLightbox.tsx"],"names":[],"mappings":"AAiDA,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,qFAAqF;IACrF,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iFAAiF;IACjF,kBAAkB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D;;+EAE2E;IAC3E,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5D;AAED,eAAO,MAAM,aAAa,mFAQvB,mBAAmB,4CA6JrB,CAAC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
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
|
+
// Compact rename row above the stage while editing — the modal's `label` slot is
|
|
39
|
+
// string-only, so the input can't live in the header itself.
|
|
40
|
+
var RenameRow = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin-bottom: 8px;\n"], ["\n margin-bottom: 8px;\n"])));
|
|
41
|
+
var Stage = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __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) {
|
|
42
|
+
var $zoom = _a.$zoom;
|
|
43
|
+
return ($zoom ? 'zoom-out' : 'zoom-in');
|
|
44
|
+
}, function (_a) {
|
|
45
|
+
var $zoom = _a.$zoom;
|
|
46
|
+
return $zoom
|
|
47
|
+
? 'max-width: none; max-height: none;'
|
|
48
|
+
: 'max-width: 100%; max-height: 74vh; object-fit: contain;';
|
|
49
|
+
});
|
|
50
|
+
var ImageLightbox = function (_a) {
|
|
51
|
+
var images = _a.images, index = _a.index, onIndex = _a.onIndex, onClose = _a.onClose, fetchAttachmentUrl = _a.fetchAttachmentUrl, onDownload = _a.onDownload, onRename = _a.onRename;
|
|
52
|
+
var _b = (0, react_1.useState)(false), zoom = _b[0], setZoom = _b[1];
|
|
53
|
+
// inline rename state: editing toggles the input row; draftName is the working value
|
|
54
|
+
var _c = (0, react_1.useState)(false), editing = _c[0], setEditing = _c[1];
|
|
55
|
+
var _d = (0, react_1.useState)(''), draftName = _d[0], setDraftName = _d[1];
|
|
56
|
+
// url per attachment: undefined = not fetched, null = fetch failed, string = ready
|
|
57
|
+
var _e = (0, react_1.useState)({}), urls = _e[0], setUrls = _e[1];
|
|
58
|
+
var requested = (0, react_1.useRef)(new Set());
|
|
59
|
+
// Render above everything currently on screen: the ticket composer that can open this
|
|
60
|
+
// lightbox floats at its own climbed z-index (also useLatestZIndex), so a modal on a fixed
|
|
61
|
+
// z-index ends up BEHIND it. Climbing past the current top keeps the viewer on top wherever
|
|
62
|
+
// it's opened from.
|
|
63
|
+
var zIndex = (0, reqore_1.useLatestZIndex)();
|
|
64
|
+
var image = images[index];
|
|
65
|
+
var id = image === null || image === void 0 ? void 0 : image.attachment_id;
|
|
66
|
+
var url = id ? urls[id] : undefined;
|
|
67
|
+
var multiple = images.length > 1;
|
|
68
|
+
// Keep the latest fetcher in a ref so the fetch effect can depend on `id` ALONE.
|
|
69
|
+
// Consumers routinely pass `fetchAttachmentUrl` as an inline arrow — a new identity
|
|
70
|
+
// every render. If the effect depended on it, each parent re-render would re-run the
|
|
71
|
+
// effect: the previous run's cleanup fired first, so its in-flight fetch resolved with
|
|
72
|
+
// nothing to write to, and because `requested` already held the id nothing re-fetched.
|
|
73
|
+
// Net result: the spinner hung forever. Depending on `id` only breaks that cycle.
|
|
74
|
+
var fetchRef = (0, react_1.useRef)(fetchAttachmentUrl);
|
|
75
|
+
fetchRef.current = fetchAttachmentUrl;
|
|
76
|
+
// True only while mounted: a fetch that resolves after unmount is dropped, but one that
|
|
77
|
+
// resolves after a benign re-render still caches — the distinction a per-run flag missed.
|
|
78
|
+
var mounted = (0, react_1.useRef)(true);
|
|
79
|
+
(0, react_1.useEffect)(function () { return function () {
|
|
80
|
+
mounted.current = false;
|
|
81
|
+
}; }, []);
|
|
82
|
+
// fetch the shown image's bytes once per id; `requested` guards against re-fetching a
|
|
83
|
+
// page you've already visited
|
|
84
|
+
(0, react_1.useEffect)(function () {
|
|
85
|
+
if (!id || requested.current.has(id)) {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
requested.current.add(id);
|
|
89
|
+
fetchRef.current(id)
|
|
90
|
+
.then(function (resolved) { return mounted.current && setUrls(function (current) {
|
|
91
|
+
var _a;
|
|
92
|
+
return (__assign(__assign({}, current), (_a = {}, _a[id] = resolved, _a)));
|
|
93
|
+
}); })
|
|
94
|
+
.catch(function () { return mounted.current && setUrls(function (current) {
|
|
95
|
+
var _a;
|
|
96
|
+
return (__assign(__assign({}, current), (_a = {}, _a[id] = null, _a)));
|
|
97
|
+
}); });
|
|
98
|
+
return undefined;
|
|
99
|
+
}, [id]);
|
|
100
|
+
var step = (0, react_1.useCallback)(function (delta) {
|
|
101
|
+
setZoom(false);
|
|
102
|
+
// paging abandons an in-flight rename — the draft belonged to the image left behind
|
|
103
|
+
setEditing(false);
|
|
104
|
+
onIndex((index + delta + images.length) % images.length);
|
|
105
|
+
}, [index, images.length, onIndex]);
|
|
106
|
+
(0, react_1.useEffect)(function () {
|
|
107
|
+
if (!multiple || editing) {
|
|
108
|
+
// while renaming, arrow keys belong to the text input, not the pager
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
var handler = function (event) {
|
|
112
|
+
if (event.key === 'ArrowRight') {
|
|
113
|
+
step(1);
|
|
114
|
+
}
|
|
115
|
+
else if (event.key === 'ArrowLeft') {
|
|
116
|
+
step(-1);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
window.addEventListener('keydown', handler);
|
|
120
|
+
return function () { return window.removeEventListener('keydown', handler); };
|
|
121
|
+
}, [step, multiple, editing]);
|
|
122
|
+
var startRename = (0, react_1.useCallback)(function () {
|
|
123
|
+
var _a, _b;
|
|
124
|
+
setDraftName((_b = (_a = images[index]) === null || _a === void 0 ? void 0 : _a.filename) !== null && _b !== void 0 ? _b : '');
|
|
125
|
+
setEditing(true);
|
|
126
|
+
}, [images, index]);
|
|
127
|
+
var commitRename = (0, react_1.useCallback)(function () {
|
|
128
|
+
var current = images[index];
|
|
129
|
+
var name = draftName.trim();
|
|
130
|
+
if (onRename && current && name && name !== current.filename) {
|
|
131
|
+
onRename(current.attachment_id, name);
|
|
132
|
+
}
|
|
133
|
+
setEditing(false);
|
|
134
|
+
}, [draftName, images, index, onRename]);
|
|
135
|
+
if (!image) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
return ((0, jsx_runtime_1.jsxs)(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: [
|
|
139
|
+
{ icon: 'ArrowLeftSLine', tooltip: 'Previous', onClick: function () { return step(-1); }, show: multiple },
|
|
140
|
+
{ icon: 'ArrowRightSLine', tooltip: 'Next', onClick: function () { return step(1); }, show: multiple },
|
|
141
|
+
{
|
|
142
|
+
icon: 'Edit2Line',
|
|
143
|
+
tooltip: 'Rename',
|
|
144
|
+
className: 'imagelightbox-rename',
|
|
145
|
+
onClick: startRename,
|
|
146
|
+
show: !!onRename && !editing,
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
icon: 'DownloadLine',
|
|
150
|
+
tooltip: 'Download',
|
|
151
|
+
onClick: function () { return onDownload === null || onDownload === void 0 ? void 0 : onDownload(image.attachment_id, image.filename); },
|
|
152
|
+
show: !!onDownload,
|
|
153
|
+
},
|
|
154
|
+
], children: [editing ? ((0, jsx_runtime_1.jsx)(RenameRow, { children: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreInput, { value: draftName, onChange: function (event) {
|
|
155
|
+
return setDraftName(event.target.value);
|
|
156
|
+
}, onBlur: commitRename, onKeyDown: function (event) {
|
|
157
|
+
if (event.key === 'Enter') {
|
|
158
|
+
commitRename();
|
|
159
|
+
}
|
|
160
|
+
else if (event.key === 'Escape') {
|
|
161
|
+
// cancel the edit only — don't let the modal's own Esc-to-close see it
|
|
162
|
+
event.stopPropagation();
|
|
163
|
+
setEditing(false);
|
|
164
|
+
}
|
|
165
|
+
}, size: 'small', fluid: true, autoFocus: true }) })) : null, (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" })) })] }));
|
|
166
|
+
};
|
|
167
|
+
exports.ImageLightbox = ImageLightbox;
|
|
168
|
+
var templateObject_1, templateObject_2;
|
|
169
|
+
//# sourceMappingURL=ImageLightbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageLightbox.js","sourceRoot":"","sources":["../../../src/components/imageLightbox/ImageLightbox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/imageLightbox/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/imageLightbox/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { IReqoreIconName } from '@qoretechnologies/reqore/dist/types/icons';
|
|
2
|
+
export interface ISearchFilterOption {
|
|
3
|
+
label: string;
|
|
4
|
+
icon?: IReqoreIconName;
|
|
5
|
+
selected?: boolean;
|
|
6
|
+
onClick: () => void;
|
|
7
|
+
}
|
|
8
|
+
export interface ISearchFilter {
|
|
9
|
+
/** Icon for the trigger — usually the selected option's. */
|
|
10
|
+
icon?: IReqoreIconName;
|
|
11
|
+
/** Trigger label — usually the selected option's. */
|
|
12
|
+
label: string;
|
|
13
|
+
items: ISearchFilterOption[];
|
|
14
|
+
}
|
|
15
|
+
export interface ISearchFilterBarProps {
|
|
16
|
+
value: string;
|
|
17
|
+
onChange: (value: string) => void;
|
|
18
|
+
placeholder: string;
|
|
19
|
+
filters?: ISearchFilter[];
|
|
20
|
+
/**
|
|
21
|
+
* Stack the search over its filters. On a phone the box and two dropdowns
|
|
22
|
+
* cannot share a row without the input collapsing to a few characters, so the
|
|
23
|
+
* caller passes its own breakpoint result rather than this guessing.
|
|
24
|
+
*/
|
|
25
|
+
stacked?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Pin the bar to the top of its scroll container. For a bar inside a scrolling
|
|
28
|
+
* panel (the References tab); a bar above a page-level list does not need it.
|
|
29
|
+
*/
|
|
30
|
+
sticky?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export declare const SearchFilterBar: ({ value, onChange, placeholder, filters, stacked, sticky, }: ISearchFilterBarProps) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=SearchFilterBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchFilterBar.d.ts","sourceRoot":"","sources":["../../../src/components/searchFilterBar/SearchFilterBar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAwC5E,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,gEAOzB,qBAAqB,4CAiDvB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.SearchFilterBar = void 0;
|
|
31
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
32
|
+
var reqore_1 = require("@qoretechnologies/reqore");
|
|
33
|
+
var styled_components_1 = __importStar(require("styled-components"));
|
|
34
|
+
/*
|
|
35
|
+
* A search box with filter dropdowns beside it — the strip that sits above a list
|
|
36
|
+
* and narrows it.
|
|
37
|
+
*
|
|
38
|
+
* This existed twice, built independently either side of the package boundary: the
|
|
39
|
+
* ticket list in qorus-ide and the References tab here in reqraft. Same
|
|
40
|
+
* composition (ReqoreControlGroup > ReqoreInput + N ReqoreDropdowns), but they had
|
|
41
|
+
* drifted — one sized the group, the other sized each control; one wrapped, the
|
|
42
|
+
* other stacked; one moved the dropdown caret to the right slot and suppressed the
|
|
43
|
+
* default, the other did not. Two strips that should be indistinguishable ended up
|
|
44
|
+
* visibly different, and any fix had to be made twice.
|
|
45
|
+
*
|
|
46
|
+
* It lives in reqraft rather than Reqore because it is a composition of Reqore
|
|
47
|
+
* primitives, not a new primitive — there is nothing here Reqore is missing.
|
|
48
|
+
*
|
|
49
|
+
* The frosted container is part of the component, not the caller's job. Extracting
|
|
50
|
+
* only the controls left the two surfaces still looking different: one bar sat in a
|
|
51
|
+
* bordered, blurred card, the other bare on the page. If the bar is meant to read
|
|
52
|
+
* the same everywhere then its own chrome has to travel with it.
|
|
53
|
+
*/
|
|
54
|
+
var Container = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: 8px;\n border-radius: 8px;\n border: 1px solid rgba(255, 255, 255, 0.08);\n background: rgba(255, 255, 255, 0.04);\n backdrop-filter: blur(6px);\n\n ", "\n"], ["\n padding: 8px;\n border-radius: 8px;\n border: 1px solid rgba(255, 255, 255, 0.08);\n background: rgba(255, 255, 255, 0.04);\n backdrop-filter: blur(6px);\n\n ", "\n"])), function (_a) {
|
|
55
|
+
var $sticky = _a.$sticky;
|
|
56
|
+
return $sticky && (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: sticky;\n top: 0;\n z-index: 2;\n "], ["\n position: sticky;\n top: 0;\n z-index: 2;\n "])));
|
|
57
|
+
});
|
|
58
|
+
var SearchFilterBar = function (_a) {
|
|
59
|
+
var value = _a.value, onChange = _a.onChange, placeholder = _a.placeholder, _b = _a.filters, filters = _b === void 0 ? [] : _b, stacked = _a.stacked, sticky = _a.sticky;
|
|
60
|
+
return ((0, jsx_runtime_1.jsx)(Container, { "$sticky": sticky, children: (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { fluid: true, wrap: true, gapSize: 'small', size: 'small', vertical: stacked, verticalAlign: stacked ? undefined : 'center', children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreInput, { icon: 'Search2Line', placeholder: placeholder, value: value, onChange: function (event) { return onChange(event.currentTarget.value); }, onClearClick: value ? function () { return onChange(''); } : undefined, minimal: true, fluid: true }), filters.length ?
|
|
61
|
+
(0, jsx_runtime_1.jsx)(reqore_1.ReqoreControlGroup, { gapSize: 'small', size: 'small', fluid: stacked, children: filters.map(function (filter, index) { return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreDropdown, { icon: filter.icon, label: filter.label, minimal: true, flat: true,
|
|
62
|
+
/* stretch to share the row when stacked; hug the label otherwise */
|
|
63
|
+
fixed: !stacked,
|
|
64
|
+
/* the caret defaults to the LEFT slot, where the filter's own icon
|
|
65
|
+
already sits — without this each trigger shows two glyphs */
|
|
66
|
+
rightIcon: 'ArrowDownSLine', showCaret: false, items: filter.items.map(function (item) { return ({
|
|
67
|
+
label: item.label,
|
|
68
|
+
icon: item.icon,
|
|
69
|
+
selected: item.selected,
|
|
70
|
+
onClick: item.onClick,
|
|
71
|
+
}); }) }, index)); }) })
|
|
72
|
+
: null] }) }));
|
|
73
|
+
};
|
|
74
|
+
exports.SearchFilterBar = SearchFilterBar;
|
|
75
|
+
var templateObject_1, templateObject_2;
|
|
76
|
+
//# sourceMappingURL=SearchFilterBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchFilterBar.js","sourceRoot":"","sources":["../../../src/components/searchFilterBar/SearchFilterBar.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAA2F;AAE3F,qEAAgD;AAEhD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,IAAM,SAAS,GAAG,2BAAM,CAAC,GAAG,kPAAuB,yKAO/C,EAMC,IACJ,KAPG,UAAC,EAAW;QAAT,OAAO,aAAA;IACV,OAAA,OAAO,QACP,uBAAG,uIAAA,mEAIF,IAAA;AALD,CAKC,CACJ,CAAC;AAmCK,IAAM,eAAe,GAAG,UAAC,EAOR;QANtB,KAAK,WAAA,EACL,QAAQ,cAAA,EACR,WAAW,iBAAA,EACX,eAAY,EAAZ,OAAO,mBAAG,EAAE,KAAA,EACZ,OAAO,aAAA,EACP,MAAM,YAAA;IACqB,OAAA,CAC3B,uBAAC,SAAS,eAAU,MAAM,YAIxB,wBAAC,2BAAkB,IACjB,KAAK,QACL,IAAI,QACJ,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,OAAO,EACjB,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,aAE7C,uBAAC,oBAAW,IACV,IAAI,EAAC,aAAa,EAClB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAC,KAAK,IAAK,OAAA,QAAQ,CAAE,KAAK,CAAC,aAAkC,CAAC,KAAK,CAAC,EAAzD,CAAyD,EAC9E,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,cAAM,OAAA,QAAQ,CAAC,EAAE,CAAC,EAAZ,CAAY,CAAC,CAAC,CAAC,SAAS,EACpD,OAAO,QACP,KAAK,SACL,EACD,OAAO,CAAC,MAAM,CAAC,CAAC;oBACf,uBAAC,2BAAkB,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,OAAO,YAC5D,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,KAAK,IAAK,OAAA,CAC9B,uBAAC,uBAAc,IAEb,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,QACP,IAAI;4BACJ,oEAAoE;4BACpE,KAAK,EAAE,CAAC,OAAO;4BACf;yFAC6D;4BAC7D,SAAS,EAAC,gBAAgB,EAC1B,SAAS,EAAE,KAAK,EAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC;gCACjC,KAAK,EAAE,IAAI,CAAC,KAAK;gCACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gCACvB,OAAO,EAAE,IAAI,CAAC,OAAO;6BACtB,CAAC,EALgC,CAKhC,CAAC,IAhBE,KAAK,CAiBV,CACH,EApB+B,CAoB/B,CAAC,GACiB;oBACvB,CAAC,CAAC,IAAI,IACa,GACX,CACb;AAjD4B,CAiD5B,CAAC;AAxDW,QAAA,eAAe,mBAwD1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/searchFilterBar/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./SearchFilterBar"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/searchFilterBar/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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,4CAyH7F,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
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
|
+
}); }); },
|
|
117
|
+
// the lightbox ids ARE the stringified file indices, so renaming from the
|
|
118
|
+
// preview funnels into the same host callback as the chip pencil
|
|
119
|
+
onRename: onRename && !disabled ? function (id, name) { return onRename(Number(id), name); } : undefined })) : null] }));
|
|
120
|
+
};
|
|
121
|
+
exports.AttachmentChips = AttachmentChips;
|
|
122
|
+
//# sourceMappingURL=AttachmentChips.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttachmentChips.js","sourceRoot":"","sources":["../../../src/components/supportTicket/AttachmentChips.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
/**
|
|
18
|
+
* Detach a reference. Each chip grows an "×" when given — for the composer,
|
|
19
|
+
* where the chips are the references you're about to send and so are still
|
|
20
|
+
* editable. Omitted everywhere the chips are a record of what WAS sent (the
|
|
21
|
+
* thread, the ticket header, the Qonsole card): those aren't editable, and an
|
|
22
|
+
* × on them would offer to undo something that already happened.
|
|
23
|
+
*/
|
|
24
|
+
onRemove?: (reference: IInterfaceReference) => void;
|
|
25
|
+
size?: TSizes;
|
|
26
|
+
/** Chip styling — pass `intent`/`customTheme` (e.g. `{ main: 'custom1' }`) to tint
|
|
27
|
+
* the reference chips to a surface's accent (the Qonsole/helpdesk composer does). */
|
|
28
|
+
intent?: ComponentProps<typeof ReqoreTag>['intent'];
|
|
29
|
+
customTheme?: ComponentProps<typeof ReqoreTag>['customTheme'];
|
|
30
|
+
/** Resolve a per-reference image — e.g. a qog's trigger-app logo, the way the
|
|
31
|
+
* qogs list does. When this (or the reference's own `logo`) returns a value, the
|
|
32
|
+
* chip shows the image in place of the kind icon. */
|
|
33
|
+
resolveInterfaceImage?: (reference: IInterfaceReference) => string | undefined;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The chips for the Qorus interfaces a ticket or message references, as
|
|
37
|
+
* `{kind, name}` snapshots. The single renderer for interface references across
|
|
38
|
+
* every support surface — the ticket header (with a "References" label), the
|
|
39
|
+
* thread (per message, no label), and the Qonsole card — so a reference looks
|
|
40
|
+
* identical everywhere. Renders nothing when there are no references.
|
|
41
|
+
*/
|
|
42
|
+
export declare const InterfaceReferenceTags: ({ references, label, resolveInterfaceIcon, onInterfaceClick, onRemove, size, intent, customTheme, resolveInterfaceImage, }: IInterfaceReferenceTagsProps) => import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
//# sourceMappingURL=InterfaceReferenceTags.d.ts.map
|