@limetech/lime-crm-building-blocks 1.113.5 → 1.115.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/{_baseIsEqual-cb7951b0.js → _baseIsEqual-f2d60d3e.js} +1 -1
  3. package/dist/cjs/extension-mapping-63bdafd3.js +57 -0
  4. package/dist/cjs/file-extension-7c2eae39.js +22 -0
  5. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  6. package/dist/cjs/limebb-document-chips.cjs.entry.js +407 -0
  7. package/dist/cjs/limebb-document-item.cjs.entry.js +2 -2
  8. package/dist/cjs/limebb-document-picker.cjs.entry.js +1 -1
  9. package/dist/cjs/limebb-feed-item-thumbnail-file-info.cjs.entry.js +1 -1
  10. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +1 -1
  11. package/dist/cjs/limebb-feed.cjs.entry.js +1 -1
  12. package/dist/cjs/limebb-icon-picker.cjs.entry.js +1 -1
  13. package/dist/cjs/limebb-info-tile-format.cjs.entry.js +1 -1
  14. package/dist/cjs/limebb-info-tile.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-kanban-group.cjs.entry.js +1 -1
  16. package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
  17. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +1 -1
  18. package/dist/cjs/limebb-lime-query-filter-builder_3.cjs.entry.js +3 -3
  19. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +1 -1
  20. package/dist/cjs/limebb-lime-query-filter-group_3.cjs.entry.js +3 -3
  21. package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +2 -2
  22. package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +1 -1
  23. package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +1 -1
  24. package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +2 -55
  25. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  26. package/dist/cjs/limebb-locale-picker.cjs.entry.js +3 -3
  27. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  28. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +25 -3
  29. package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
  30. package/dist/cjs/limebb-object-chip.cjs.entry.js +15 -1
  31. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  32. package/dist/cjs/limebb-text-editor.cjs.entry.js +1 -1
  33. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  34. package/dist/cjs/loader.cjs.js +1 -1
  35. package/dist/collection/collection-manifest.json +1 -0
  36. package/dist/collection/components/document-chips/document-chips.css +20 -0
  37. package/dist/collection/components/document-chips/document-chips.js +178 -0
  38. package/dist/collection/components/document-chips/document-chips.types.js +1 -0
  39. package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
  40. package/dist/collection/components/document-picker/document-picker.js +1 -1
  41. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
  42. package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
  43. package/dist/collection/components/feed/feed.js +1 -1
  44. package/dist/collection/components/icon-picker/icon-picker.js +1 -1
  45. package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
  46. package/dist/collection/components/info-tile/info-tile.js +1 -1
  47. package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
  48. package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
  49. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +1 -1
  50. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +2 -2
  51. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  52. package/dist/collection/components/lime-query-builder/lime-query-builder.js +1 -1
  53. package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +1 -1
  54. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  55. package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
  56. package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
  57. package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +1 -1
  58. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  59. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  60. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  61. package/dist/collection/components/object-chip/object-chip.js +37 -2
  62. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  63. package/dist/collection/components/summary-popover/summary-popover.js +49 -3
  64. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  65. package/dist/collection/components/text-editor/text-editor.js +1 -1
  66. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  67. package/dist/collection/util/file-extension.js +18 -0
  68. package/dist/collection/util/file-icon-background-colors.js +98 -0
  69. package/dist/collection/util/file-icon-fill-colors.js +98 -0
  70. package/dist/collection/util/file-icon.js +18 -0
  71. package/dist/collection/util/file-icons.js +99 -0
  72. package/dist/components/_baseIsEqual.js +1 -1
  73. package/dist/components/document-item.js +2 -2
  74. package/dist/components/extension-mapping.js +55 -0
  75. package/dist/components/feed-item-thumbnail-file-info.js +1 -1
  76. package/dist/components/feed-timeline-item.js +1 -1
  77. package/dist/components/kanban-group.js +1 -1
  78. package/dist/components/kanban-item.js +1 -1
  79. package/dist/components/lime-query-filter-comparison.js +1 -1
  80. package/dist/components/lime-query-filter-expression.js +3 -3
  81. package/dist/components/limebb-document-chips.d.ts +11 -0
  82. package/dist/components/limebb-document-chips.js +437 -0
  83. package/dist/components/limebb-document-picker.js +1 -1
  84. package/dist/components/limebb-feed.js +1 -1
  85. package/dist/components/limebb-icon-picker.js +1 -1
  86. package/dist/components/limebb-info-tile-format.js +1 -1
  87. package/dist/components/limebb-info-tile.js +1 -1
  88. package/dist/components/limebb-lime-query-builder.js +1 -1
  89. package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
  90. package/dist/components/limebb-limeobject-file-viewer.js +1 -54
  91. package/dist/components/limebb-locale-picker.js +2 -2
  92. package/dist/components/limebb-mention-group-counter.js +2 -2
  93. package/dist/components/limebb-object-chip.js +16 -1
  94. package/dist/components/limebb-text-editor.js +1 -1
  95. package/dist/components/limebb-trend-indicator.js +1 -1
  96. package/dist/components/limetype-field.js +1 -1
  97. package/dist/components/live-docs-info.js +2 -2
  98. package/dist/components/notification-item.js +1 -1
  99. package/dist/components/order-by-editor.js +1 -1
  100. package/dist/components/order-by-item.js +2 -2
  101. package/dist/components/percentage-visualizer.js +2 -2
  102. package/dist/components/response-format-item.js +1 -1
  103. package/dist/components/summary-popover.js +45 -4
  104. package/dist/esm/{_baseIsEqual-28053b81.js → _baseIsEqual-077b6bb3.js} +1 -1
  105. package/dist/esm/extension-mapping-fcade195.js +55 -0
  106. package/dist/esm/file-extension-568475d1.js +20 -0
  107. package/dist/esm/lime-crm-building-blocks.js +1 -1
  108. package/dist/esm/limebb-document-chips.entry.js +403 -0
  109. package/dist/esm/limebb-document-item.entry.js +2 -2
  110. package/dist/esm/limebb-document-picker.entry.js +1 -1
  111. package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +1 -1
  112. package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
  113. package/dist/esm/limebb-feed.entry.js +1 -1
  114. package/dist/esm/limebb-icon-picker.entry.js +1 -1
  115. package/dist/esm/limebb-info-tile-format.entry.js +1 -1
  116. package/dist/esm/limebb-info-tile.entry.js +1 -1
  117. package/dist/esm/limebb-kanban-group.entry.js +1 -1
  118. package/dist/esm/limebb-kanban-item.entry.js +1 -1
  119. package/dist/esm/limebb-lime-query-builder.entry.js +1 -1
  120. package/dist/esm/limebb-lime-query-filter-builder_3.entry.js +3 -3
  121. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +1 -1
  122. package/dist/esm/limebb-lime-query-filter-group_3.entry.js +3 -3
  123. package/dist/esm/limebb-lime-query-order-by-item.entry.js +2 -2
  124. package/dist/esm/limebb-lime-query-response-format-builder.entry.js +1 -1
  125. package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +1 -1
  126. package/dist/esm/limebb-limeobject-file-viewer.entry.js +1 -54
  127. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  128. package/dist/esm/limebb-locale-picker.entry.js +3 -3
  129. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  130. package/dist/esm/limebb-navigation-button_2.entry.js +25 -3
  131. package/dist/esm/limebb-notification-item.entry.js +1 -1
  132. package/dist/esm/limebb-object-chip.entry.js +15 -1
  133. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  134. package/dist/esm/limebb-text-editor.entry.js +1 -1
  135. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  136. package/dist/esm/loader.js +1 -1
  137. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  138. package/dist/lime-crm-building-blocks/{p-0c25d565.entry.js → p-0d0f4c0f.entry.js} +1 -1
  139. package/dist/lime-crm-building-blocks/{p-711df3e6.entry.js → p-103654ac.entry.js} +1 -1
  140. package/dist/lime-crm-building-blocks/{p-35b75e49.entry.js → p-18d1ab86.entry.js} +1 -1
  141. package/dist/lime-crm-building-blocks/{p-ddf0dcbc.entry.js → p-20b5ff30.entry.js} +1 -1
  142. package/dist/lime-crm-building-blocks/{p-b2e705bc.entry.js → p-22fffe85.entry.js} +1 -1
  143. package/dist/lime-crm-building-blocks/{p-83ff2b4c.entry.js → p-2ed843e9.entry.js} +1 -1
  144. package/dist/lime-crm-building-blocks/{p-14cd62c1.entry.js → p-375f40d9.entry.js} +1 -1
  145. package/dist/lime-crm-building-blocks/{p-c09dcd4c.entry.js → p-3a7b37cc.entry.js} +1 -1
  146. package/dist/lime-crm-building-blocks/{p-3443a292.entry.js → p-3b3e7328.entry.js} +1 -1
  147. package/dist/lime-crm-building-blocks/{p-551ffa9f.entry.js → p-4066e17a.entry.js} +1 -1
  148. package/dist/lime-crm-building-blocks/{p-a4f367f8.entry.js → p-4dad4ce8.entry.js} +1 -1
  149. package/dist/lime-crm-building-blocks/p-50aad872.entry.js +1 -0
  150. package/dist/lime-crm-building-blocks/{p-9161869b.entry.js → p-53d54dc8.entry.js} +1 -1
  151. package/dist/lime-crm-building-blocks/{p-1d44c670.entry.js → p-6bd5c65f.entry.js} +1 -1
  152. package/dist/lime-crm-building-blocks/p-6bf1ab6d.entry.js +1 -0
  153. package/dist/lime-crm-building-blocks/{p-0536bf83.entry.js → p-7a6c1595.entry.js} +1 -1
  154. package/dist/lime-crm-building-blocks/{p-9aad6195.entry.js → p-7b5a1e83.entry.js} +1 -1
  155. package/dist/lime-crm-building-blocks/{p-df13ebba.entry.js → p-812bf26e.entry.js} +1 -1
  156. package/dist/lime-crm-building-blocks/{p-385020b4.entry.js → p-81f8e5df.entry.js} +1 -1
  157. package/dist/lime-crm-building-blocks/{p-4d9244e7.entry.js → p-94e6f0de.entry.js} +1 -1
  158. package/dist/lime-crm-building-blocks/{p-6c67ed0e.entry.js → p-9bc5caac.entry.js} +1 -1
  159. package/dist/lime-crm-building-blocks/{p-283a6f9e.entry.js → p-9c204549.entry.js} +1 -1
  160. package/dist/lime-crm-building-blocks/{p-00414464.entry.js → p-a7e55181.entry.js} +1 -1
  161. package/dist/lime-crm-building-blocks/p-ab2a95a6.js +1 -0
  162. package/dist/lime-crm-building-blocks/p-b42e9740.js +1 -0
  163. package/dist/lime-crm-building-blocks/{p-5d0874f6.entry.js → p-d5b835a6.entry.js} +1 -1
  164. package/dist/lime-crm-building-blocks/p-d7fc530f.entry.js +1 -0
  165. package/dist/lime-crm-building-blocks/{p-401ccdec.entry.js → p-d9f76810.entry.js} +1 -1
  166. package/dist/lime-crm-building-blocks/{p-2395476f.entry.js → p-dddd8a43.entry.js} +1 -1
  167. package/dist/lime-crm-building-blocks/{p-ed14ca30.entry.js → p-f7122d8e.entry.js} +1 -1
  168. package/dist/types/components/document-chips/document-chips.d.ts +45 -0
  169. package/dist/types/components/document-chips/document-chips.types.d.ts +23 -0
  170. package/dist/types/components/object-chip/object-chip.d.ts +5 -0
  171. package/dist/types/components/summary-popover/summary-popover.d.ts +10 -1
  172. package/dist/types/components.d.ts +120 -4
  173. package/dist/types/interface.d.ts +1 -0
  174. package/dist/types/util/file-extension.d.ts +10 -0
  175. package/dist/types/util/file-icon-background-colors.d.ts +3 -0
  176. package/dist/types/util/file-icon-fill-colors.d.ts +3 -0
  177. package/dist/types/util/file-icon.d.ts +9 -0
  178. package/dist/types/util/file-icons.d.ts +3 -0
  179. package/package.json +3 -3
  180. package/dist/lime-crm-building-blocks/p-7b9981b9.entry.js +0 -1
  181. package/dist/lime-crm-building-blocks/p-d2bd2fc3.entry.js +0 -1
  182. /package/dist/lime-crm-building-blocks/{p-a659d55a.js → p-f788a48d.js} +0 -0
@@ -0,0 +1 @@
1
+ import{r as e,h as o,c as t}from"./p-52cf8641.js";import{g as r}from"./p-ab2a95a6.js";import{g as i}from"./p-b42e9740.js";const a={expand:"expand",minimize:"minus_math",maximize:"minus_math",newTab:"up_right_arrow",back:"left_arrow",close:"multiply",shrink:"compress",float:"rectangle"},n=class{constructor(t){e(this,t),this.renderAsLink=()=>o("a",{class:this.getContainerClassList(),id:"tooltipId","aria-label":this.tooltipLabel&&this.tooltipHelperLabel,href:this.href,target:"newTab"===this.type?"_blank":void 0},this.renderType(),this.renderTooltip()),this.renderAsButton=()=>o("button",{class:this.getContainerClassList(),id:"tooltipId","aria-label":this.tooltipLabel&&this.tooltipHelperLabel},this.renderType(),this.renderTooltip()),this.getContainerClassList=()=>({"navigation-button":!0,[this.type]:!0})}render(){return this.href?this.renderAsLink():this.renderAsButton()}renderType(){return this.renderIcon(a[this.type])}renderTooltip(){if(this.tooltipLabel)return o("limel-tooltip",{label:this.tooltipLabel,helperLabel:this.tooltipHelperLabel,elementId:"tooltipId"})}renderIcon(e){return o("limel-icon",{name:e})}static get delegatesFocus(){return!0}};n.style='@charset "UTF-8";.navigation-button{all:unset;isolation:isolate;position:relative;display:flex;justify-content:center;align-items:center;height:1.875rem;width:1.875rem;border-radius:50%;transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:var(--navigation-button-background-color, var(--lime-elevated-surface-background-color))}.navigation-button:hover,.navigation-button:focus,.navigation-button:focus-visible{will-change:color, background-color, box-shadow, transform}.navigation-button:hover,.navigation-button:focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color)}.navigation-button:hover{box-shadow:var(--button-shadow-hovered)}.navigation-button:active{--limel-clickable-transform-timing-function:cubic-bezier(\n 0.83,\n -0.15,\n 0.49,\n 1.16\n );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}.navigation-button:hover,.navigation-button:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}.navigation-button:focus{outline:none}.navigation-button:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.navigation-button limel-icon{transition:color 0.2s ease, transform 0.2s cubic-bezier(0.84, 0.15, 0.52, 1.42);color:var(--header-menu-icon-color);width:1.25rem}.newTab limel-icon{transition:transform 0.2s ease;transform:scale(0.8);z-index:3}.newTab:before{z-index:2}.newTab::after{z-index:1}.newTab:before,.newTab:after{content:"";transition:transform 0.2s ease, border-color 0.2s ease;position:absolute;width:0.875rem;height:0.875rem;outline:1.5px solid rgb(var(--contrast-900));border-radius:1px;background-color:var(--navigation-button-background-color, rgb(var(--contrast-100)))}.newTab:hover limel-icon{color:var(--mdc-theme-primary);transform:translate3d(-0.1rem, 0.1rem, 0) scale(1)}.newTab:hover:before{transform:translate3d(0.125rem, -0.125rem, 0);border-color:rgb(var(--contrast-1000));box-shadow:var(--shadow-depth-8)}.newTab:hover:after{transform:translate3d(-0.15rem, 0.15rem, 0) scale(0.9);border-color:rgb(var(--contrast-700))}.expand:after{transition:transform 0.2s ease;content:"";position:absolute;z-index:1;background-color:var(--navigation-button-background-color, rgb(var(--contrast-100)));width:0.75rem;height:0.75rem}.expand:hover limel-icon{color:var(--mdc-theme-primary)}.expand:hover:after{transform:scale(0.5)}.expand:hover limel-icon{transform:scale(1.18)}.minimize:before,.minimize:after,.maximize:before,.maximize:after{content:"";transition:transform 0.3s ease-out 0.15s, background-color 0.1s ease}.minimize limel-icon,.maximize limel-icon{transition:transform 0.2s ease 0.1s}.minimize:before,.maximize:after,.maximize:hover:before{transform:scaleY(1) scaleX(1);z-index:-1;box-sizing:border-box;position:absolute;width:70%;height:60%;border-radius:0.25rem;transform-origin:bottom}.minimize:hover:before,.maximize:before{transition:transform 0.3s ease-out 0.15s, background-color 0.1s ease;transform:scaleY(0.3) scaleX(0.7);background-color:rgb(var(--contrast-500))}.minimize:hover limel-icon,.maximize limel-icon{transform:scaleX(0.8) translate3d(0, 0.4rem, 0)}.maximize limel-icon{color:rgb(var(--contrast-900))}.maximize:hover limel-icon{color:currentColor;transform:scaleX(1.1) translate3d(0, -0.1rem, 0)}.maximize:after{z-index:-2;border:1px dashed rgb(var(--contrast-800))}.close limel-icon{transition:transform 0.2s ease, color 0.2s ease}.close:before,.close:after{transition-delay:0.1s;content:"";position:absolute;inset:0;border-radius:50%;opacity:0}.close:before{transition:transform 0.3s ease, opacity 0.3s ease;background-color:rgb(var(--color-orange-dark))}.close:after{transition:transform 0.6s ease, opacity 0.6s ease;background-color:rgb(var(--color-orange-light))}.close:hover limel-icon{color:rgb(var(--color-white));transform:scale(0.7) rotate(90deg)}.close:hover:before{opacity:1;transform:scale(0.4)}.close:hover:after{opacity:0.4;transform:scale(0.6)}.float:after{transition:width 0.2s ease-out, opacity 0.2s ease;content:"";position:absolute;inset:0 0.5rem 0 auto;border-radius:1px;opacity:0.8;transform:translate3d(0, 0, 0);background-color:rgb(var(--contrast-800));width:0.125rem;height:0.6rem;margin:auto}.float:hover:after{width:0.4rem;opacity:1;transform:translate3d(0, 0, 0)}';const s=class{constructor(o){e(this,o),this.actionSelected=t(this,"actionSelected",7),this.triggerDelay=600,this.openDirection="top",this.popoverMaxWidth="20rem",this.popoverMaxHeight="min(35rem, calc(100vh - 2rem))",this.actions=[],this.isPopoverOpen=!1,this.openPopoverWithDelay=e=>{e.stopPropagation(),clearTimeout(this.hoverTimeout),this.hoverTimeout=window.setTimeout((()=>{s.currentOpenPopover&&s.currentOpenPopover!==this&&(s.currentOpenPopover.isPopoverOpen=!1),s.currentOpenPopover=this,this.isPopoverOpen=!0}),this.triggerDelay)},this.resetTimeout=()=>{this.isPopoverOpen||clearTimeout(this.hoverTimeout)},this.onPopoverClose=e=>{e.stopPropagation(),this.isPopoverOpen=!1,s.currentOpenPopover===this&&(s.currentOpenPopover=null)},this.handleCloseClick=e=>{e.stopPropagation(),this.isPopoverOpen=!1},this.handleSelected=e=>{this.actionSelected.emit(e.detail)}}render(){return o("limel-popover",{key:"26159e81e1fd3547fe0f9b59f5edd9144778cc15",style:{"--limebb-summary-popover-timeout":`${this.triggerDelay}ms`},open:this.isPopoverOpen,onClose:this.onPopoverClose,openDirection:this.openDirection},o("div",{key:"5f6c72787f4dafebbce1428da6ba1515ecce451e",slot:"trigger",onMouseEnter:this.openPopoverWithDelay,onMouseLeave:this.resetTimeout,onFocusin:this.openPopoverWithDelay},o("slot",{key:"4a5d186f511a245d6d4c48df754add7eaf3380df",name:"trigger"}),o("div",{key:"64a9db4b3ff460b84345a60b9efccc80aa75a2cd",class:"opening-countdown-indicator"})),this.renderCard({"--navigation-button-background-color":"rgb(var(--contrast-100), 0.8)",position:"absolute",top:"0.125rem",right:"0.125rem"}))}renderCard(e){return o("limel-card",{style:{"max-width":this.popoverMaxWidth,"max-height":this.popoverMaxHeight,"min-width":"7rem","min-height":"3rem"},orientation:"landscape",heading:this.heading,subheading:this.subheading,icon:this.icon,value:this.value,image:this.image,actions:this.actions,onActionSelected:this.handleSelected},this.renderFileViewer(),o("limebb-navigation-button",{slot:"component",type:"close",style:e,tooltipLabel:"Close",tooltipHelperLabel:"Esc",onClick:this.handleCloseClick}))}renderFileViewer(){var e;if(!this.file)return;const t=i(null!==(e=this.file.filename)&&void 0!==e?e:""),a=r(t);return o("limel-file-viewer",{slot:"component",style:{flex:"1",overflow:"hidden",borderRadius:"0.5rem",minHeight:"pdf"===t?"20rem":void 0},url:this.file.href,filename:"sharepoint"===a||"unsupported"===a?void 0:this.file.filename})}};s.currentOpenPopover=null,s.style="limel-popover{--popover-border-radius:0.95rem;--popover-body-background-color:transparent;--popover-box-shadow:var(--shadow-depth-8)}div[slot=trigger]{position:relative;display:flex;align-items:center;justify-content:center}div[slot=trigger] *{min-width:0;min-height:0}.opening-countdown-indicator{position:absolute;inset:auto 0 -0.25rem 0;margin:0 auto;height:0.125rem;border-radius:1rem;transition:width ease-out, opacity ease;transition-duration:120ms;opacity:0;width:0%;background-color:var(--mdc-theme-primary)}div[slot=trigger]:not([aria-expanded=true]):hover .opening-countdown-indicator{transition-duration:var(--limebb-summary-popover-timeout);opacity:1;width:100%}";export{n as limebb_navigation_button,s as limebb_summary_popover}
@@ -1 +1 @@
1
- import{r as t,h as e,g as i}from"./p-52cf8641.js";import{c as r,a as o,f as s,Z as n,s as l,r as a}from"./p-199799ff.js";import{i as h,a as u,b as c,c as f,g as d,d as v,e as p}from"./p-5322fd19.js";import{i as g}from"./p-b31772c8.js";var b=Object.prototype.hasOwnProperty;class m{constructor(t){this.getState=t,this.contextType="info-tile"}getContext(){const{limetype:t,filterId:e,filterName:i,aggregateOperator:r,propertyName:o,value:s,label:n}=this.getState();if(!t||!e)return console.debug("InfoTileContextProvider: No limetype or filterId available"),null;const l={widgetType:"info-tile",limetype:t,filterId:e};return i&&(l.filterName=i),l.aggregateOperator=r,o&&(l.propertyName=o),void 0!==s&&(l.value=s),n&&(l.label=n),{data:l,purpose:"Shows an aggregated value from a filter. Clicking navigates to the explorer with that filter applied."}}}class w{constructor(t,e=[]){this.platform=t,this.filters=e}async load(t,e){let i;return i=this.isObjectIdentifier(e)?await this.loadLimeObjectInfoTile(t,e):await this.loadBasicInfoTile(t),i}async loadBasicInfoTile(t){const e=this.getFilter(t.filter);if(!e)throw new Error(`Filter "${t.filter}" not found`);return(await this.query.execute({limetype:e.limetype,responseFormat:{aggregates:{infotiles:{value:{op:t.operator,key:t.name}}}},filter:e.filter})).aggregates.infotiles[0].value}async loadLimeObjectInfoTile(t,e){await this.objectRepository.loadObject(e.limetype,e.id,{properties:[t]});const i=this.objectRepository.getObject(e.limetype,e.id);return null==i?void 0:i.getValue([t.name,t.key].join("."))}isObjectIdentifier(t){return Boolean((null==t?void 0:t.limetype)&&(null==t?void 0:t.id))}getFilter(t){return this.filters.find((e=>e.id===t))}get query(){return this.platform.get(r.Query)}get objectRepository(){return this.platform.get(r.LimeObjectRepository)}}class y{constructor(t){this.locale=t}format(t){let e=String(t);return"number"==typeof t?e=new Intl.NumberFormat(this.locale).format(t):new Date(t).getTime()&&(e=new Intl.DateTimeFormat(this.locale).format(new Date(t))),{value:e}}}class j{constructor(t){this.locale=t}format(t,e){const i=new Date(t);return{prefix:this.formatAffix("prefix",i,e),value:this.formatValue(i,e),suffix:this.formatAffix("suffix",i,e)}}formatValue(t,e){const i=Object.assign({},e.options);if(e.prefix)for(const t of e.prefix)delete i[t];if(e.suffix)for(const t of e.suffix)delete i[t];return new Intl.DateTimeFormat(this.locale,i).format(t)}formatAffix(t,e,i){const r=Object.assign({},i.options);for(const e of Object.keys(r))"hour12"!==e&&((i[t]||[]).includes(e)||delete r[e]);if(0!==Object.values(r).filter(Boolean).length)return new Intl.DateTimeFormat(this.locale,r).format(e)}}class O{constructor(t){this.locale=t}format(t,e){var i,r;const o=new Intl.NumberFormat(this.locale,e.options),s=o.formatToParts(t);let n="",l="",a="";for(const t of s)(null===(i=e.prefix)||void 0===i?void 0:i.includes(t.type))?n+=t.value:(null===(r=e.suffix)||void 0===r?void 0:r.includes(t.type))?a+=t.value:l+=t.value;return l||(l=o.format(t),n="",a=""),{prefix:n,value:l,suffix:a}}}class x{constructor(t){this.locale=t}format(t,e){const i=new Intl.RelativeTimeFormat(this.locale,e.options),{value:r,unit:o}=this.getRelativeTime(t),s=i.formatToParts(r,o);let n="",l="",a="";for(const t of s)"literal"!==t.type||l?"literal"===t.type&&l?a+=t.value:l+=t.value:n+=t.value;return l||(l=n||a,n="",a=""),{prefix:n,value:l,suffix:a}}getRelativeTime(t){const e=new Date(t),i=new Date,r=e.getTime()-i.getTime(),o=[{unit:"year",value:31536e6},{unit:"month",value:2592e6},{unit:"week",value:6048e5},{unit:"day",value:864e5},{unit:"hour",value:36e5},{unit:"minute",value:6e4},{unit:"second",value:1e3}];for(const t of o){const e=r/t.value;if(Math.abs(e)>=1)return{value:Math.round(e),unit:t.unit}}return{value:0,unit:"second"}}}class I{constructor(t){this.locale=t}createFormatter(t,e){return"number"===(null==t?void 0:t.type)&&"number"==typeof e?new O(this.locale):"date"===(null==t?void 0:t.type)&&"string"==typeof e?new j(this.locale):"relative-date"===(null==t?void 0:t.type)&&"string"==typeof e?new x(this.locale):new y(this.locale)}}var k=function(t,e,i,r){var o,s=arguments.length,n=s<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,i,r);else for(var l=t.length-1;l>=0;l--)(o=t[l])&&(n=(s<3?o(n):s>3?o(e,i,n):o(e,i))||n);return s>3&&n&&Object.defineProperty(e,i,n),n};const F=class{constructor(e){t(this,e),this.aggregateOperator=l.Count,this.loading=!1,this.error=!1}connectedCallback(){this.registerContextProvider()}disconnectedCallback(){var t;null===(t=this.unregisterContextProvider)||void 0===t||t.call(this)}componentWillLoad(){this.loadInfoTileValue()}watchFilterId(){this.loadInfoTileValue()}watchPropertyName(){this.loadInfoTileValue()}watchAggregateOperator(){this.loadInfoTileValue()}async loadInfoTileValue(){if(this.loading=!0,this.error=!1,this.getFilter()){try{const t={key:this.getKey(),name:this.propertyName,operator:this.aggregateOperator,filter:this.filterId};this.value=await this.loader.load(t,this.context)}catch(t){console.error(t),this.error=!0}this.loading=!1}else this.error=!0}getKey(){return Math.random().toString(36).slice(2)}render(){var t,i;const r=this.getFilter(),o=this.getFormattedValue(),s={disabled:this.disabled,icon:this.icon,prefix:(null===(t=null==o?void 0:o.prefix)||void 0===t?void 0:t.trim())||this.prefix,suffix:(null===(i=null==o?void 0:o.suffix)||void 0===i?void 0:i.trim())||this.suffix},n=Object.assign(Object.assign({},s),{icon:"error",prefix:"ERROR",loading:!0,label:this.getLabel(r)}),l=Object.assign(Object.assign({},s),{label:this.getLabel(r),link:this.getLink(r),loading:this.loading,value:null==o?void 0:o.value.trim()});return e("limel-info-tile",Object.assign({key:"9634fc3d797fa0382b9e0eca1eabf67c19ffa4a6",class:{error:!r||this.error}},!r||this.error?n:l))}getFormattedValue(){if(!this.value&&0!==this.value)return{value:""};try{return this.getFormatter(this.value).format(this.value,this.format)}catch(t){return new y(this.language).format(this.value)}}getLabel(t){return t?"string"==typeof this.label?this.translator.get(this.label):this.getLocalizedString(this.label&&"object"==typeof this.label?this.label:t.name):"No filter set is selected"}getLocalizedString(t){if(function(t){if(null==t)return!0;if(h(t)&&(g(t)||"string"==typeof t||"function"==typeof t.splice||u(t)||c(t)||f(t)))return!t.length;var e=d(t);if("[object Map]"==e||"[object Set]"==e)return!t.size;if(v(t))return!p(t).length;for(var i in t)if(b.call(t,i))return!1;return!0}(t))return"";let e=t[this.language];return e||(e=t.en||t.en_us||Object.values(null!=e?e:{}).find((t=>!!t))),null!=e?e:""}getLink(t){if(!t)return{href:"#"};const e=["explorer",t.limetype,t.id].join("/"),i=this.getRelationPropertyName(this.limetypes[t.limetype]),r=this.buildContextAwareFilter(t.filter,i);return r?{href:`${e}?filter=${encodeURIComponent(JSON.stringify(r))}`}:{href:e}}buildContextAwareFilter(t,e){if(!e)return t;const i={key:e,op:a.EQUALS,exp:this.context.id};return t?{op:a.AND,exp:[i,t]}:{relationFilter:i}}getFilter(){var t;return null===(t=this.filters)||void 0===t?void 0:t.find((t=>t.id===this.filterId))}getFormatter(t){return new I(this.language).createFormatter(this.format,t)}getRelationPropertyName(t){var e,i,r;if(t&&this.context.limetype&&this.context.id){if(this.propertyName){const t=this.limetypes[this.context.limetype],r=null===(i=null===(e=null==t?void 0:t.getProperty(this.propertyName))||void 0===e?void 0:e.relation)||void 0===i?void 0:i.getBackreference();if(r)return r.name}return null===(r=Object.values(t.properties).find((t=>{var e;return(null===(e=t.relation)||void 0===e?void 0:e.getLimetype().name)===this.context.limetype})))||void 0===r?void 0:r.name}}get translator(){return this.platform.get(r.Translate)}get language(){return this.platform.get(r.Application).getLanguage()}get loader(){return new w(this.platform,this.filters)}registerContextProvider(){const t=this.platform.get(r.AIContextRegistry);if(!(null==t?void 0:t.register))return;const e=new m((()=>{const t=this.getFilter();return{limetype:null==t?void 0:t.limetype,filterId:this.filterId,filterName:t?this.getLocalizedString(t.name):void 0,aggregateOperator:this.aggregateOperator,propertyName:this.propertyName,value:this.value,label:this.getLabel(t)}}));this.unregisterContextProvider=t.register(e,this.host)}get host(){return i(this)}static get watchers(){return{filterId:["watchFilterId"],propertyName:["watchPropertyName"],aggregateOperator:["watchAggregateOperator"]}}};k([o({})],F.prototype,"config",void 0),k([s()],F.prototype,"filters",void 0),k([n()],F.prototype,"limetypes",void 0),F.style=":host(limebb-info-tile){display:block;overflow:visible !important;background-color:transparent !important}limel-info-tile.error{--info-tile-icon-color:rgb(var(--color-red-dark));border:1px dashed rgb(var(--contrast-500));border-radius:var(--info-tile-border-radius, 1rem)}";export{F as limebb_info_tile}
1
+ import{r as t,h as e,g as i}from"./p-52cf8641.js";import{c as r,a as o,f as s,Z as n,s as l,r as a}from"./p-199799ff.js";import{i as h,a as u,b as c,c as f,g as d,d as v,e as p}from"./p-5322fd19.js";import{i as g}from"./p-b31772c8.js";var b=Object.prototype.hasOwnProperty;class m{constructor(t){this.getState=t,this.contextType="info-tile"}getContext(){const{limetype:t,filterId:e,filterName:i,aggregateOperator:r,propertyName:o,value:s,label:n}=this.getState();if(!t||!e)return console.debug("InfoTileContextProvider: No limetype or filterId available"),null;const l={widgetType:"info-tile",limetype:t,filterId:e};return i&&(l.filterName=i),l.aggregateOperator=r,o&&(l.propertyName=o),void 0!==s&&(l.value=s),n&&(l.label=n),{data:l,purpose:"Shows an aggregated value from a filter. Clicking navigates to the explorer with that filter applied."}}}class w{constructor(t,e=[]){this.platform=t,this.filters=e}async load(t,e){let i;return i=this.isObjectIdentifier(e)?await this.loadLimeObjectInfoTile(t,e):await this.loadBasicInfoTile(t),i}async loadBasicInfoTile(t){const e=this.getFilter(t.filter);if(!e)throw new Error(`Filter "${t.filter}" not found`);return(await this.query.execute({limetype:e.limetype,responseFormat:{aggregates:{infotiles:{value:{op:t.operator,key:t.name}}}},filter:e.filter})).aggregates.infotiles[0].value}async loadLimeObjectInfoTile(t,e){await this.objectRepository.loadObject(e.limetype,e.id,{properties:[t]});const i=this.objectRepository.getObject(e.limetype,e.id);return null==i?void 0:i.getValue([t.name,t.key].join("."))}isObjectIdentifier(t){return Boolean((null==t?void 0:t.limetype)&&(null==t?void 0:t.id))}getFilter(t){return this.filters.find((e=>e.id===t))}get query(){return this.platform.get(r.Query)}get objectRepository(){return this.platform.get(r.LimeObjectRepository)}}class y{constructor(t){this.locale=t}format(t){let e=String(t);return"number"==typeof t?e=new Intl.NumberFormat(this.locale).format(t):new Date(t).getTime()&&(e=new Intl.DateTimeFormat(this.locale).format(new Date(t))),{value:e}}}class j{constructor(t){this.locale=t}format(t,e){const i=new Date(t);return{prefix:this.formatAffix("prefix",i,e),value:this.formatValue(i,e),suffix:this.formatAffix("suffix",i,e)}}formatValue(t,e){const i=Object.assign({},e.options);if(e.prefix)for(const t of e.prefix)delete i[t];if(e.suffix)for(const t of e.suffix)delete i[t];return new Intl.DateTimeFormat(this.locale,i).format(t)}formatAffix(t,e,i){const r=Object.assign({},i.options);for(const e of Object.keys(r))"hour12"!==e&&((i[t]||[]).includes(e)||delete r[e]);if(0!==Object.values(r).filter(Boolean).length)return new Intl.DateTimeFormat(this.locale,r).format(e)}}class O{constructor(t){this.locale=t}format(t,e){var i,r;const o=new Intl.NumberFormat(this.locale,e.options),s=o.formatToParts(t);let n="",l="",a="";for(const t of s)(null===(i=e.prefix)||void 0===i?void 0:i.includes(t.type))?n+=t.value:(null===(r=e.suffix)||void 0===r?void 0:r.includes(t.type))?a+=t.value:l+=t.value;return l||(l=o.format(t),n="",a=""),{prefix:n,value:l,suffix:a}}}class x{constructor(t){this.locale=t}format(t,e){const i=new Intl.RelativeTimeFormat(this.locale,e.options),{value:r,unit:o}=this.getRelativeTime(t),s=i.formatToParts(r,o);let n="",l="",a="";for(const t of s)"literal"!==t.type||l?"literal"===t.type&&l?a+=t.value:l+=t.value:n+=t.value;return l||(l=n||a,n="",a=""),{prefix:n,value:l,suffix:a}}getRelativeTime(t){const e=new Date(t),i=new Date,r=e.getTime()-i.getTime(),o=[{unit:"year",value:31536e6},{unit:"month",value:2592e6},{unit:"week",value:6048e5},{unit:"day",value:864e5},{unit:"hour",value:36e5},{unit:"minute",value:6e4},{unit:"second",value:1e3}];for(const t of o){const e=r/t.value;if(Math.abs(e)>=1)return{value:Math.round(e),unit:t.unit}}return{value:0,unit:"second"}}}class I{constructor(t){this.locale=t}createFormatter(t,e){return"number"===(null==t?void 0:t.type)&&"number"==typeof e?new O(this.locale):"date"===(null==t?void 0:t.type)&&"string"==typeof e?new j(this.locale):"relative-date"===(null==t?void 0:t.type)&&"string"==typeof e?new x(this.locale):new y(this.locale)}}var k=function(t,e,i,r){var o,s=arguments.length,n=s<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,i,r);else for(var l=t.length-1;l>=0;l--)(o=t[l])&&(n=(s<3?o(n):s>3?o(e,i,n):o(e,i))||n);return s>3&&n&&Object.defineProperty(e,i,n),n};const F=class{constructor(e){t(this,e),this.aggregateOperator=l.Count,this.loading=!1,this.error=!1}connectedCallback(){this.registerContextProvider()}disconnectedCallback(){var t;null===(t=this.unregisterContextProvider)||void 0===t||t.call(this)}componentWillLoad(){this.loadInfoTileValue()}watchFilterId(){this.loadInfoTileValue()}watchPropertyName(){this.loadInfoTileValue()}watchAggregateOperator(){this.loadInfoTileValue()}async loadInfoTileValue(){if(this.loading=!0,this.error=!1,this.getFilter()){try{const t={key:this.getKey(),name:this.propertyName,operator:this.aggregateOperator,filter:this.filterId};this.value=await this.loader.load(t,this.context)}catch(t){console.error(t),this.error=!0}this.loading=!1}else this.error=!0}getKey(){return Math.random().toString(36).slice(2)}render(){var t,i;const r=this.getFilter(),o=this.getFormattedValue(),s={disabled:this.disabled,icon:this.icon,prefix:(null===(t=null==o?void 0:o.prefix)||void 0===t?void 0:t.trim())||this.prefix,suffix:(null===(i=null==o?void 0:o.suffix)||void 0===i?void 0:i.trim())||this.suffix},n=Object.assign(Object.assign({},s),{icon:"error",prefix:"ERROR",loading:!0,label:this.getLabel(r)}),l=Object.assign(Object.assign({},s),{label:this.getLabel(r),link:this.getLink(r),loading:this.loading,value:null==o?void 0:o.value.trim()});return e("limel-info-tile",Object.assign({key:"1211ee931d2cf7a5a3c13896515812ddbcab29f2",class:{error:!r||this.error}},!r||this.error?n:l))}getFormattedValue(){if(!this.value&&0!==this.value)return{value:""};try{return this.getFormatter(this.value).format(this.value,this.format)}catch(t){return new y(this.language).format(this.value)}}getLabel(t){return t?"string"==typeof this.label?this.translator.get(this.label):this.getLocalizedString(this.label&&"object"==typeof this.label?this.label:t.name):"No filter set is selected"}getLocalizedString(t){if(function(t){if(null==t)return!0;if(h(t)&&(g(t)||"string"==typeof t||"function"==typeof t.splice||u(t)||c(t)||f(t)))return!t.length;var e=d(t);if("[object Map]"==e||"[object Set]"==e)return!t.size;if(v(t))return!p(t).length;for(var i in t)if(b.call(t,i))return!1;return!0}(t))return"";let e=t[this.language];return e||(e=t.en||t.en_us||Object.values(null!=e?e:{}).find((t=>!!t))),null!=e?e:""}getLink(t){if(!t)return{href:"#"};const e=["explorer",t.limetype,t.id].join("/"),i=this.getRelationPropertyName(this.limetypes[t.limetype]),r=this.buildContextAwareFilter(t.filter,i);return r?{href:`${e}?filter=${encodeURIComponent(JSON.stringify(r))}`}:{href:e}}buildContextAwareFilter(t,e){if(!e)return t;const i={key:e,op:a.EQUALS,exp:this.context.id};return t?{op:a.AND,exp:[i,t]}:{relationFilter:i}}getFilter(){var t;return null===(t=this.filters)||void 0===t?void 0:t.find((t=>t.id===this.filterId))}getFormatter(t){return new I(this.language).createFormatter(this.format,t)}getRelationPropertyName(t){var e,i,r;if(t&&this.context.limetype&&this.context.id){if(this.propertyName){const t=this.limetypes[this.context.limetype],r=null===(i=null===(e=null==t?void 0:t.getProperty(this.propertyName))||void 0===e?void 0:e.relation)||void 0===i?void 0:i.getBackreference();if(r)return r.name}return null===(r=Object.values(t.properties).find((t=>{var e;return(null===(e=t.relation)||void 0===e?void 0:e.getLimetype().name)===this.context.limetype})))||void 0===r?void 0:r.name}}get translator(){return this.platform.get(r.Translate)}get language(){return this.platform.get(r.Application).getLanguage()}get loader(){return new w(this.platform,this.filters)}registerContextProvider(){const t=this.platform.get(r.AIContextRegistry);if(!(null==t?void 0:t.register))return;const e=new m((()=>{const t=this.getFilter();return{limetype:null==t?void 0:t.limetype,filterId:this.filterId,filterName:t?this.getLocalizedString(t.name):void 0,aggregateOperator:this.aggregateOperator,propertyName:this.propertyName,value:this.value,label:this.getLabel(t)}}));this.unregisterContextProvider=t.register(e,this.host)}get host(){return i(this)}static get watchers(){return{filterId:["watchFilterId"],propertyName:["watchPropertyName"],aggregateOperator:["watchAggregateOperator"]}}};k([o({})],F.prototype,"config",void 0),k([s()],F.prototype,"filters",void 0),k([n()],F.prototype,"limetypes",void 0),F.style=":host(limebb-info-tile){display:block;overflow:visible !important;background-color:transparent !important}limel-info-tile.error{--info-tile-icon-color:rgb(var(--color-red-dark));border:1px dashed rgb(var(--contrast-500));border-radius:var(--info-tile-border-radius, 1rem)}";export{F as limebb_info_tile}
@@ -1 +1 @@
1
- import{r as e,c as t,h as i}from"./p-52cf8641.js";import{Z as o}from"./p-199799ff.js";import{v as r}from"./p-d47b6c3c.js";import"./p-b02c99d5.js";function s(e){let t;try{t=JSON.parse(e)}catch(e){throw new Error(`Invalid JSON: ${e.message}`)}if(null===t||"object"!=typeof t)throw new Error("Response format must be an object");const i=new Set(["object","aggregates"]),o=Object.keys(t),r=o.filter((e=>!i.has(e)));if(r.length>0)throw new Error(`Unexpected properties in response format: ${r.join(", ")}. Only 'object' and 'aggregates' are allowed.`);if(o.length>0&&!t.object&&!t.aggregates)throw new Error("Response format must contain at least one of: object, aggregates");return t}const l=class{constructor(i){e(this,i),this.change=t(this,"change",7),this.label="Response Format",this.helperText="",this.mode="visual",this.codeValue="",this.handleModeChange=e=>{e.stopPropagation();const t=e.detail.id;"visual"===t?this.switchToVisualMode():"code"===t&&this.switchToCode()},this.switchToVisualMode=()=>{try{const e=s(this.codeValue);if(!r(e,this.limetypes,this.limetype,this.visualModeEnabled).visualModeSupported)return;this.internalValue=e,this.mode="visual",this.change.emit(e)}catch(e){}},this.switchToCode=()=>{this.updateCodeValue(),this.mode="code"},this.handleCodeChange=e=>{e.stopPropagation(),this.codeValue=e.detail;try{const e=s(this.codeValue);this.internalValue=e,this.change.emit(e)}catch(e){}},this.handleVisualModeChange=e=>{e.stopPropagation(),this.internalValue=e.detail,this.updateCodeValue(),this.change.emit(e.detail)}}get visualModeEnabled(){var e,t,i;return null!==(i=null===(t=null===(e=this.platform)||void 0===e?void 0:e.isFeatureEnabled)||void 0===t?void 0:t.call(e,"useLimeQueryBuilderGuiMode"))&&void 0!==i&&i}componentWillLoad(){this.internalValue=this.value||{object:{_id:null}},this.updateCodeValue(),this.visualModeEnabled&&this.checkVisualModeSupport().visualModeSupported||(this.mode="code")}componentWillUpdate(){this.value&&"visual"===this.mode&&(this.internalValue=this.value)}render(){const e=this.checkVisualModeSupport();return i("div",{key:"56166271cfd95e3164f6002605de9b4a73d5b850",class:"response-format-builder"},this.label&&i("h1",{key:"cccc53913dc0ced44b736328a16c85b3db2a61d4",class:"builder-label"},this.label),this.helperText&&i("p",{key:"765ea2f4a052f78beba9c60157f07711f432293e",class:"builder-helper-text"},this.helperText),this.visualModeEnabled&&i("div",{key:"15a7159322713ab288ef70e8f98aaa11d5064d1f",class:"mode-controls"},this.renderModeSwitch(e)),this.visualModeEnabled&&"code"!==this.mode?i("div",{class:"visual-mode"},this.renderVisualMode()):i("div",{class:"code-mode"},this.renderCodeEditor(e)))}renderModeSwitch(e){const t=!e.visualModeSupported,o=[{id:"visual",title:"Visual"},{id:"code",title:"Code"}].map((e=>Object.assign(Object.assign({},e),{selected:e.id===this.mode})));return i("limel-button-group",{value:o,disabled:t,onChange:this.handleModeChange})}renderCodeEditor(e){return i("div",{class:"code-editor-container"},i("limel-code-editor",{value:this.codeValue,language:"json",lineNumbers:!0,fold:!0,lint:!0,onChange:this.handleCodeChange}),!e.valid&&e.validationErrors.length>0&&i("div",{class:"validation-errors"},i("strong",null,"Invalid Response Format:"),i("ul",null,e.validationErrors.map((e=>i("li",null,e))))),this.visualModeEnabled&&e.valid&&!e.visualModeSupported&&e.visualModeLimitations.length>0&&i("div",{class:"visual-mode-limitations"},i("strong",null,"Cannot switch to visual mode:"),i("ul",null,e.visualModeLimitations.map((e=>i("li",null,e))))))}renderVisualMode(){return i("limebb-lime-query-response-format-editor",{platform:this.platform,context:this.context,limetype:this.limetype,value:this.internalValue,onChange:this.handleVisualModeChange})}checkVisualModeSupport(){if(!this.limetypes)return{valid:!1,visualModeSupported:!1,validationErrors:["Limetypes not loaded"],visualModeLimitations:[]};let e;if("code"===this.mode)try{e=s(this.codeValue)}catch(e){return{valid:!1,visualModeSupported:!1,validationErrors:[e.message],visualModeLimitations:[]}}else e=this.internalValue;return r(e,this.limetypes,this.limetype,this.visualModeEnabled)}updateCodeValue(){this.codeValue=JSON.stringify(this.internalValue,null,2)}};(function(e,t,i,o){var r,s=arguments.length,l=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(l=(s<3?r(l):s>3?r(t,i,l):r(t,i))||l);s>3&&l&&Object.defineProperty(t,i,l)})([o()],l.prototype,"limetypes",void 0),l.style=":host(limebb-lime-query-response-format-builder){display:block;width:100%}.response-format-builder{display:flex;flex-direction:column}.builder-label{color:rgb(var(--contrast-1100));font-size:1.625rem;line-height:1.25rem;font-weight:300;margin-top:1rem;margin-bottom:0.25rem}.builder-helper-text{margin-top:0px;margin-bottom:0.5rem;font-size:var(--limel-theme-default-font-size);color:rgb(var(--contrast-1100))}.mode-controls{display:flex;justify-content:flex-end;padding:0.5rem}.visual-mode,.code-mode{display:block}.code-editor-container{--code-editor-max-height:70vh;display:flex;flex-direction:column;gap:1rem}.code-editor-container .validation-errors{padding:0.75rem 1rem;color:rgb(var(--color-red-default));background-color:rgb(var(--color-red-lighter));border-left:0.25rem solid rgb(var(--color-red-default));border-radius:0.25rem;font-size:0.875rem}.code-editor-container .validation-errors strong{display:block;margin-bottom:0.5rem;font-weight:600}.code-editor-container .validation-errors ul{margin:0;padding-left:1.5rem}.code-editor-container .validation-errors li{margin:0.25rem 0}.code-editor-container .visual-mode-limitations{padding:0.75rem 1rem;color:rgb(var(--color-blue-dark));background-color:rgb(var(--color-blue-lighter));border-left:0.25rem solid rgb(var(--color-blue-default));border-radius:0.25rem;font-size:0.875rem}.code-editor-container .visual-mode-limitations strong{display:block;margin-bottom:0.5rem;font-weight:600}.code-editor-container .visual-mode-limitations ul{margin:0;padding-left:1.5rem}.code-editor-container .visual-mode-limitations li{margin:0.25rem 0}";export{l as limebb_lime_query_response_format_builder}
1
+ import{r as e,c as t,h as i}from"./p-52cf8641.js";import{Z as o}from"./p-199799ff.js";import{v as r}from"./p-d47b6c3c.js";import"./p-b02c99d5.js";function s(e){let t;try{t=JSON.parse(e)}catch(e){throw new Error(`Invalid JSON: ${e.message}`)}if(null===t||"object"!=typeof t)throw new Error("Response format must be an object");const i=new Set(["object","aggregates"]),o=Object.keys(t),r=o.filter((e=>!i.has(e)));if(r.length>0)throw new Error(`Unexpected properties in response format: ${r.join(", ")}. Only 'object' and 'aggregates' are allowed.`);if(o.length>0&&!t.object&&!t.aggregates)throw new Error("Response format must contain at least one of: object, aggregates");return t}const l=class{constructor(i){e(this,i),this.change=t(this,"change",7),this.label="Response Format",this.helperText="",this.mode="visual",this.codeValue="",this.handleModeChange=e=>{e.stopPropagation();const t=e.detail.id;"visual"===t?this.switchToVisualMode():"code"===t&&this.switchToCode()},this.switchToVisualMode=()=>{try{const e=s(this.codeValue);if(!r(e,this.limetypes,this.limetype,this.visualModeEnabled).visualModeSupported)return;this.internalValue=e,this.mode="visual",this.change.emit(e)}catch(e){}},this.switchToCode=()=>{this.updateCodeValue(),this.mode="code"},this.handleCodeChange=e=>{e.stopPropagation(),this.codeValue=e.detail;try{const e=s(this.codeValue);this.internalValue=e,this.change.emit(e)}catch(e){}},this.handleVisualModeChange=e=>{e.stopPropagation(),this.internalValue=e.detail,this.updateCodeValue(),this.change.emit(e.detail)}}get visualModeEnabled(){var e,t,i;return null!==(i=null===(t=null===(e=this.platform)||void 0===e?void 0:e.isFeatureEnabled)||void 0===t?void 0:t.call(e,"useLimeQueryBuilderGuiMode"))&&void 0!==i&&i}componentWillLoad(){this.internalValue=this.value||{object:{_id:null}},this.updateCodeValue(),this.visualModeEnabled&&this.checkVisualModeSupport().visualModeSupported||(this.mode="code")}componentWillUpdate(){this.value&&"visual"===this.mode&&(this.internalValue=this.value)}render(){const e=this.checkVisualModeSupport();return i("div",{key:"7f4adae0e3f4d14194fc558600db983f45fe760a",class:"response-format-builder"},this.label&&i("h1",{key:"eeb78bdccf2f8e344de742618b72a7bb341e5bf5",class:"builder-label"},this.label),this.helperText&&i("p",{key:"03ff96e0645d03377b28c048f02d868046f17903",class:"builder-helper-text"},this.helperText),this.visualModeEnabled&&i("div",{key:"65ca3551326e0ec4deff00aff4a19aec2fee9702",class:"mode-controls"},this.renderModeSwitch(e)),this.visualModeEnabled&&"code"!==this.mode?i("div",{class:"visual-mode"},this.renderVisualMode()):i("div",{class:"code-mode"},this.renderCodeEditor(e)))}renderModeSwitch(e){const t=!e.visualModeSupported,o=[{id:"visual",title:"Visual"},{id:"code",title:"Code"}].map((e=>Object.assign(Object.assign({},e),{selected:e.id===this.mode})));return i("limel-button-group",{value:o,disabled:t,onChange:this.handleModeChange})}renderCodeEditor(e){return i("div",{class:"code-editor-container"},i("limel-code-editor",{value:this.codeValue,language:"json",lineNumbers:!0,fold:!0,lint:!0,onChange:this.handleCodeChange}),!e.valid&&e.validationErrors.length>0&&i("div",{class:"validation-errors"},i("strong",null,"Invalid Response Format:"),i("ul",null,e.validationErrors.map((e=>i("li",null,e))))),this.visualModeEnabled&&e.valid&&!e.visualModeSupported&&e.visualModeLimitations.length>0&&i("div",{class:"visual-mode-limitations"},i("strong",null,"Cannot switch to visual mode:"),i("ul",null,e.visualModeLimitations.map((e=>i("li",null,e))))))}renderVisualMode(){return i("limebb-lime-query-response-format-editor",{platform:this.platform,context:this.context,limetype:this.limetype,value:this.internalValue,onChange:this.handleVisualModeChange})}checkVisualModeSupport(){if(!this.limetypes)return{valid:!1,visualModeSupported:!1,validationErrors:["Limetypes not loaded"],visualModeLimitations:[]};let e;if("code"===this.mode)try{e=s(this.codeValue)}catch(e){return{valid:!1,visualModeSupported:!1,validationErrors:[e.message],visualModeLimitations:[]}}else e=this.internalValue;return r(e,this.limetypes,this.limetype,this.visualModeEnabled)}updateCodeValue(){this.codeValue=JSON.stringify(this.internalValue,null,2)}};(function(e,t,i,o){var r,s=arguments.length,l=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(l=(s<3?r(l):s>3?r(t,i,l):r(t,i))||l);s>3&&l&&Object.defineProperty(t,i,l)})([o()],l.prototype,"limetypes",void 0),l.style=":host(limebb-lime-query-response-format-builder){display:block;width:100%}.response-format-builder{display:flex;flex-direction:column}.builder-label{color:rgb(var(--contrast-1100));font-size:1.625rem;line-height:1.25rem;font-weight:300;margin-top:1rem;margin-bottom:0.25rem}.builder-helper-text{margin-top:0px;margin-bottom:0.5rem;font-size:var(--limel-theme-default-font-size);color:rgb(var(--contrast-1100))}.mode-controls{display:flex;justify-content:flex-end;padding:0.5rem}.visual-mode,.code-mode{display:block}.code-editor-container{--code-editor-max-height:70vh;display:flex;flex-direction:column;gap:1rem}.code-editor-container .validation-errors{padding:0.75rem 1rem;color:rgb(var(--color-red-default));background-color:rgb(var(--color-red-lighter));border-left:0.25rem solid rgb(var(--color-red-default));border-radius:0.25rem;font-size:0.875rem}.code-editor-container .validation-errors strong{display:block;margin-bottom:0.5rem;font-weight:600}.code-editor-container .validation-errors ul{margin:0;padding-left:1.5rem}.code-editor-container .validation-errors li{margin:0.25rem 0}.code-editor-container .visual-mode-limitations{padding:0.75rem 1rem;color:rgb(var(--color-blue-dark));background-color:rgb(var(--color-blue-lighter));border-left:0.25rem solid rgb(var(--color-blue-default));border-radius:0.25rem;font-size:0.875rem}.code-editor-container .visual-mode-limitations strong{display:block;margin-bottom:0.5rem;font-weight:600}.code-editor-container .visual-mode-limitations ul{margin:0;padding-left:1.5rem}.code-editor-container .visual-mode-limitations li{margin:0.25rem 0}";export{l as limebb_lime_query_response_format_builder}
@@ -1 +1 @@
1
- import{r as t,g as i,h as s}from"./p-52cf8641.js";import{g as e}from"./p-0a266c26.js";import{f as h}from"./p-4a85590d.js";import{D as o,c as a}from"./p-199799ff.js";const r=o("object-resolver");class l{constructor(t){this.onStateChange=t,this.state={loadFailed:!1},this.hasPendingLoad=!1,this.isDisconnected=!1}get resolvedPlatform(){return this._platform}connect(t,i,s,e){this.limetype=t,this.objectid=i,this.isDisconnected=!1,this.hasPendingLoad=!1,this._platform=e||this.findPlatform(s),this._platform?(this.resolveLimeType(),this.loadLimeObject()):r.error(`No platform found. Pass "platform" prop or place the component inside a parent that exposes "platform". limetype=${t}, objectid=${i}`)}update(t,i){this.limetype=t,this.objectid=i,this.updateState({limeobject:void 0,limetypeData:void 0,loadFailed:!1}),this.hasPendingLoad||(this.hasPendingLoad=!0,queueMicrotask((()=>{if(this.hasPendingLoad=!1,!this.isDisconnected){if(!this._platform)return this.updateState({loadFailed:!0}),void r.warn(`Cannot update: no platform available. limetype=${this.limetype}, objectid=${this.objectid}`);this.resolveLimeType(),this.loadLimeObject()}})))}disconnect(){this.isDisconnected=!0}findPlatform(t){const i=h(t,this.hasPlatformProp);return null==i?void 0:i.platform}hasPlatformProp(t){return"platform"in t&&!!t.platform&&"object"==typeof t.platform}resolveLimeType(){const t=this._platform.get(a.LimeTypeRepository);this.updateState({limetypeData:t.getLimeType(this.limetype)})}async loadLimeObject(){const t=this.limetype,i=this.objectid,s=this._platform.get(a.LimeObjectRepository),e=s.getObject(t,i);if(e)this.updateState({limeobject:e});else{try{await s.loadObject(t,i)}catch(s){if(this.isStale(t,i))return;return this.updateState({loadFailed:!0}),void r.error(`Failed to load ${t}/${i}`,s)}this.isStale(t,i)||this.updateState({limeobject:s.getObject(t,i)})}}isStale(t,i){return this.isDisconnected||this.limetype!==t||this.objectid!==i}updateState(t){this.state=Object.assign(Object.assign({},this.state),t),this.isDisconnected||this.onStateChange(this.state)}}const n=class{constructor(i){t(this,i),this.data={loadFailed:!1},this.resolver=new l((t=>{this.data=t}))}connectedCallback(){this.resolver.connect(this.limetype,this.objectid,i(this),this.platform)}disconnectedCallback(){this.resolver.disconnect()}handlePropChange(){this.resolver.update(this.limetype,this.objectid)}render(){if(!this.resolver.resolvedPlatform)return;const t=e(this.data.limetypeData);return s("limel-chip",{text:this.getChipText(),icon:t,link:{href:(i=this.limetype,h=this.objectid,`object/${i}/${h}`)},loading:!this.data.limeobject&&!this.data.loadFailed});var i,h}getChipText(){var t;return(null===(t=this.data.limeobject)||void 0===t?void 0:t.descriptive)?this.data.limeobject.descriptive:this.data.loadFailed?this.getErrorText():""}getErrorText(){if(!this.resolver.resolvedPlatform)return"loading failed";try{return this.resolver.resolvedPlatform.get(a.Translate).get("webclient.limeobject.errors.load-failed")}catch(t){return"loading failed"}}static get watchers(){return{limetype:["handlePropChange"],objectid:["handlePropChange"]}}};n.style=":host{display:inline-block;vertical-align:baseline}";export{n as limebb_object_chip}
1
+ import{r as t,g as i,h as s}from"./p-52cf8641.js";import{g as e}from"./p-0a266c26.js";import{f as h}from"./p-4a85590d.js";import{D as o,c as a}from"./p-199799ff.js";const r=o("object-resolver");class l{constructor(t){this.onStateChange=t,this.state={loadFailed:!1},this.hasPendingLoad=!1,this.isDisconnected=!1}get resolvedPlatform(){return this._platform}connect(t,i,s,e){this.limetype=t,this.objectid=i,this.isDisconnected=!1,this.hasPendingLoad=!1,this._platform=e||this.findPlatform(s),this._platform?(this.resolveLimeType(),this.loadLimeObject()):r.error(`No platform found. Pass "platform" prop or place the component inside a parent that exposes "platform". limetype=${t}, objectid=${i}`)}update(t,i){this.limetype=t,this.objectid=i,this.updateState({limeobject:void 0,limetypeData:void 0,loadFailed:!1}),this.hasPendingLoad||(this.hasPendingLoad=!0,queueMicrotask((()=>{if(this.hasPendingLoad=!1,!this.isDisconnected){if(!this._platform)return this.updateState({loadFailed:!0}),void r.warn(`Cannot update: no platform available. limetype=${this.limetype}, objectid=${this.objectid}`);this.resolveLimeType(),this.loadLimeObject()}})))}disconnect(){this.isDisconnected=!0}findPlatform(t){const i=h(t,this.hasPlatformProp);return null==i?void 0:i.platform}hasPlatformProp(t){return"platform"in t&&!!t.platform&&"object"==typeof t.platform}resolveLimeType(){const t=this._platform.get(a.LimeTypeRepository);this.updateState({limetypeData:t.getLimeType(this.limetype)})}async loadLimeObject(){const t=this.limetype,i=this.objectid,s=this._platform.get(a.LimeObjectRepository),e=s.getObject(t,i);if(e)this.updateState({limeobject:e});else{try{await s.loadObject(t,i)}catch(s){if(this.isStale(t,i))return;return this.updateState({loadFailed:!0}),void r.error(`Failed to load ${t}/${i}`,s)}this.isStale(t,i)||this.updateState({limeobject:s.getObject(t,i)})}}isStale(t,i){return this.isDisconnected||this.limetype!==t||this.objectid!==i}updateState(t){this.state=Object.assign(Object.assign({},this.state),t),this.isDisconnected||this.onStateChange(this.state)}}const n=class{constructor(i){t(this,i),this.size="default",this.data={loadFailed:!1},this.resolver=new l((t=>{this.data=t}))}connectedCallback(){this.resolver.connect(this.limetype,this.objectid,i(this),this.platform)}disconnectedCallback(){this.resolver.disconnect()}handlePropChange(){this.resolver.update(this.limetype,this.objectid)}render(){if(!this.resolver.resolvedPlatform)return;const t=e(this.data.limetypeData);return s("limel-chip",{text:this.getChipText(),icon:t,size:this.size,link:{href:(i=this.limetype,h=this.objectid,`object/${i}/${h}`)},loading:!this.data.limeobject&&!this.data.loadFailed});var i,h}getChipText(){var t;return(null===(t=this.data.limeobject)||void 0===t?void 0:t.descriptive)?this.data.limeobject.descriptive:this.data.loadFailed?this.getErrorText():""}getErrorText(){if(!this.resolver.resolvedPlatform)return"loading failed";try{return this.resolver.resolvedPlatform.get(a.Translate).get("webclient.limeobject.errors.load-failed")}catch(t){return"loading failed"}}static get watchers(){return{limetype:["handlePropChange"],objectid:["handlePropChange"]}}};n.style=":host{display:inline-block;vertical-align:baseline}";export{n as limebb_object_chip}
@@ -0,0 +1,45 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { DocumentChipFile } from './document-chips.types';
3
+ /**
4
+ * Renders a list of document chips, each wrapped in a
5
+ * `limebb-summary-popover` that shows a file preview on hover or
6
+ * keyboard focus.
7
+ *
8
+ * Supports browser-previewable files (images, PDFs, video, audio, text).
9
+ * Office file types show a fallback message instead of an unsupported preview.
10
+ *
11
+ * The component manages blob URL creation for local files internally
12
+ * and cleans them up when files are removed or the component is destroyed.
13
+ *
14
+ * @exampleComponent limebb-example-document-chips-basic
15
+ * @exampleComponent limebb-example-document-chips-upload-states
16
+ *
17
+ * @beta
18
+ */
19
+ export declare class DocumentChips {
20
+ /**
21
+ * A label used to describe the purpose of the list to users
22
+ * of assistive technologies, like screen readers.
23
+ */
24
+ accessibleLabel?: string;
25
+ /**
26
+ * The list of files to display as document chips.
27
+ */
28
+ files: DocumentChipFile[];
29
+ /**
30
+ * Fired when a document chip's remove button is clicked.
31
+ * The event detail contains the file's `id`.
32
+ */
33
+ removeFile: EventEmitter<string | number>;
34
+ private blobUrls;
35
+ protected onFilesChanged(newFiles: DocumentChipFile[], oldFiles: DocumentChipFile[]): void;
36
+ disconnectedCallback(): void;
37
+ render(): any;
38
+ private renderFile;
39
+ private getIcon;
40
+ private getPreviewUrl;
41
+ private handleRemove;
42
+ private revokeBlobUrl;
43
+ private revokeAllBlobUrls;
44
+ }
45
+ //# sourceMappingURL=document-chips.d.ts.map
@@ -0,0 +1,23 @@
1
+ import { FileInfo } from '@limetech/lime-elements';
2
+ /**
3
+ * Represents a document in a document chips list, extending the base
4
+ * `FileInfo` with upload state tracking.
5
+ *
6
+ * @public
7
+ */
8
+ export interface DocumentChipFile extends FileInfo {
9
+ /**
10
+ * Upload progress as a percentage (0–100).
11
+ */
12
+ uploadProgress?: number;
13
+ /**
14
+ * Current state of the file in the upload lifecycle.
15
+ *
16
+ * - `added`: file selected, upload not yet started
17
+ * - `uploading`: upload in progress, `uploadProgress` is active
18
+ * - `finalizing`: server-side processing after upload
19
+ * - `done`: upload complete
20
+ */
21
+ uploadState?: 'added' | 'uploading' | 'finalizing' | 'done' | 'failed';
22
+ }
23
+ //# sourceMappingURL=document-chips.types.d.ts.map
@@ -13,6 +13,7 @@ import { LimeWebComponentPlatform } from '@limetech/lime-web-components';
13
13
  *
14
14
  * @exampleComponent limebb-example-object-chip
15
15
  * @exampleComponent limebb-example-object-chip-icon-and-color-fallbacks
16
+ * @exampleComponent limebb-example-object-chip-size
16
17
  * @beta
17
18
  */
18
19
  export declare class ObjectChip {
@@ -34,6 +35,10 @@ export declare class ObjectChip {
34
35
  * the platform after the component has connected is not supported.
35
36
  * :::
36
37
  */
38
+ /**
39
+ * Defines the size of the chip.
40
+ */
41
+ size: 'small' | 'default';
37
42
  platform?: LimeWebComponentPlatform;
38
43
  private data;
39
44
  private resolver;
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
- import { Image, Icon, OpenDirection, ListSeparator, ActionBarItem } from '@limetech/lime-elements';
2
+ import { Image, Icon, FileInfo, OpenDirection, ListSeparator, ActionBarItem } from '@limetech/lime-elements';
3
3
  /**
4
4
  * This component uses
5
5
  * [limel-popover](https://lundalogik.github.io/lime-elements/versions/latest/#/component/limel-popover/)
@@ -57,6 +57,7 @@ import { Image, Icon, OpenDirection, ListSeparator, ActionBarItem } from '@limet
57
57
  *
58
58
  * @exampleComponent limebb-example-summary-popover-basic
59
59
  * @exampleComponent limebb-example-summary-popover-image
60
+ * @exampleComponent limebb-example-summary-popover-file-preview
60
61
  * @exampleComponent limebb-example-summary-popover-actions
61
62
  * @exampleComponent limebb-example-summary-popover-trigger-delay
62
63
  *
@@ -81,6 +82,12 @@ export declare class SummaryPopover {
81
82
  * to enrich the content with visual information.
82
83
  */
83
84
  image?: Image;
85
+ /**
86
+ * A file to preview in the popover.
87
+ * When provided, a `limel-file-viewer` is rendered
88
+ * inside the card alongside any other card content.
89
+ */
90
+ file?: FileInfo;
84
91
  /**
85
92
  * An icon, to display along with the heading and subheading.
86
93
  */
@@ -115,6 +122,8 @@ export declare class SummaryPopover {
115
122
  private hoverTimeout;
116
123
  private static currentOpenPopover;
117
124
  render(): any;
125
+ private renderCard;
126
+ private renderFileViewer;
118
127
  private openPopoverWithDelay;
119
128
  private resetTimeout;
120
129
  private onPopoverClose;
@@ -13,6 +13,7 @@ import { ChatItem } from "./components/chat-list/chat-item/chat-item.types";
13
13
  import { ComponentPickerType } from "./components/component-command-picker/types";
14
14
  import { ComposerTrigger, FileInputConfig } from "./components/composer-toolbar/composer-toolbar.types";
15
15
  import { DataCell } from "./components/data-cells/data-cells.types";
16
+ import { DocumentChipFile } from "./components/document-chips/document-chips.types";
16
17
  import { DocumentItem } from "./components/document-picker/document-item/document-item.types";
17
18
  import { DocumentType } from "./components/document-picker/document.types";
18
19
  import { FeedItem } from "./components/feed/feed-item/feed-item.types";
@@ -35,6 +36,7 @@ export { ChatItem } from "./components/chat-list/chat-item/chat-item.types";
35
36
  export { ComponentPickerType } from "./components/component-command-picker/types";
36
37
  export { ComposerTrigger, FileInputConfig } from "./components/composer-toolbar/composer-toolbar.types";
37
38
  export { DataCell } from "./components/data-cells/data-cells.types";
39
+ export { DocumentChipFile } from "./components/document-chips/document-chips.types";
38
40
  export { DocumentItem } from "./components/document-picker/document-item/document-item.types";
39
41
  export { DocumentType } from "./components/document-picker/document.types";
40
42
  export { FeedItem } from "./components/feed/feed-item/feed-item.types";
@@ -597,6 +599,28 @@ export namespace Components {
597
599
  */
598
600
  "type": DateType;
599
601
  }
602
+ /**
603
+ * Renders a list of document chips, each wrapped in a
604
+ * `limebb-summary-popover` that shows a file preview on hover or
605
+ * keyboard focus.
606
+ * Supports browser-previewable files (images, PDFs, video, audio, text).
607
+ * Office file types show a fallback message instead of an unsupported preview.
608
+ * The component manages blob URL creation for local files internally
609
+ * and cleans them up when files are removed or the component is destroyed.
610
+ * @exampleComponent limebb-example-document-chips-basic
611
+ * @exampleComponent limebb-example-document-chips-upload-states
612
+ * @beta
613
+ */
614
+ interface LimebbDocumentChips {
615
+ /**
616
+ * A label used to describe the purpose of the list to users of assistive technologies, like screen readers.
617
+ */
618
+ "accessibleLabel"?: string;
619
+ /**
620
+ * The list of files to display as document chips.
621
+ */
622
+ "files": DocumentChipFile[];
623
+ }
600
624
  /**
601
625
  * Document item
602
626
  * Renders individual items of the document picker component.
@@ -1868,6 +1892,7 @@ export namespace Components {
1868
1892
  * :::
1869
1893
  * @exampleComponent limebb-example-object-chip
1870
1894
  * @exampleComponent limebb-example-object-chip-icon-and-color-fallbacks
1895
+ * @exampleComponent limebb-example-object-chip-size
1871
1896
  * @beta
1872
1897
  */
1873
1898
  interface LimebbObjectChip {
@@ -1879,10 +1904,11 @@ export namespace Components {
1879
1904
  * Id of the object.
1880
1905
  */
1881
1906
  "objectid": number;
1907
+ "platform"?: LimeWebComponentPlatform;
1882
1908
  /**
1883
- * Platform instance. If not provided, the component will walk the DOM to find a parent with a platform. :::note The platform must be available when the component connects to the DOM, either as a prop or via a parent element. Changing the platform after the component has connected is not supported. :::
1909
+ * Defines the size of the chip.
1884
1910
  */
1885
- "platform"?: LimeWebComponentPlatform;
1911
+ "size": 'small' | 'default';
1886
1912
  }
1887
1913
  /**
1888
1914
  * This component generates a visualization that displays a percentage value
@@ -2043,6 +2069,7 @@ export namespace Components {
2043
2069
  * :::
2044
2070
  * @exampleComponent limebb-example-summary-popover-basic
2045
2071
  * @exampleComponent limebb-example-summary-popover-image
2072
+ * @exampleComponent limebb-example-summary-popover-file-preview
2046
2073
  * @exampleComponent limebb-example-summary-popover-actions
2047
2074
  * @exampleComponent limebb-example-summary-popover-trigger-delay
2048
2075
  * @beta
@@ -2052,6 +2079,10 @@ export namespace Components {
2052
2079
  * Actions to display in the card, to provide the user with options to interact with the content.
2053
2080
  */
2054
2081
  "actions"?: Array<ActionBarItem | ListSeparator>;
2082
+ /**
2083
+ * A file to preview in the popover. When provided, a `limel-file-viewer` is rendered inside the card alongside any other card content.
2084
+ */
2085
+ "file"?: FileInfo;
2055
2086
  /**
2056
2087
  * Text to display a header inside the card.
2057
2088
  */
@@ -2313,6 +2344,10 @@ export interface LimebbDateRangeCustomEvent<T> extends CustomEvent<T> {
2313
2344
  detail: T;
2314
2345
  target: HTMLLimebbDateRangeElement;
2315
2346
  }
2347
+ export interface LimebbDocumentChipsCustomEvent<T> extends CustomEvent<T> {
2348
+ detail: T;
2349
+ target: HTMLLimebbDocumentChipsElement;
2350
+ }
2316
2351
  export interface LimebbDocumentItemCustomEvent<T> extends CustomEvent<T> {
2317
2352
  detail: T;
2318
2353
  target: HTMLLimebbDocumentItemElement;
@@ -2782,6 +2817,35 @@ declare global {
2782
2817
  prototype: HTMLLimebbDateRangeElement;
2783
2818
  new (): HTMLLimebbDateRangeElement;
2784
2819
  };
2820
+ interface HTMLLimebbDocumentChipsElementEventMap {
2821
+ "removeFile": string | number;
2822
+ }
2823
+ /**
2824
+ * Renders a list of document chips, each wrapped in a
2825
+ * `limebb-summary-popover` that shows a file preview on hover or
2826
+ * keyboard focus.
2827
+ * Supports browser-previewable files (images, PDFs, video, audio, text).
2828
+ * Office file types show a fallback message instead of an unsupported preview.
2829
+ * The component manages blob URL creation for local files internally
2830
+ * and cleans them up when files are removed or the component is destroyed.
2831
+ * @exampleComponent limebb-example-document-chips-basic
2832
+ * @exampleComponent limebb-example-document-chips-upload-states
2833
+ * @beta
2834
+ */
2835
+ interface HTMLLimebbDocumentChipsElement extends Components.LimebbDocumentChips, HTMLStencilElement {
2836
+ addEventListener<K extends keyof HTMLLimebbDocumentChipsElementEventMap>(type: K, listener: (this: HTMLLimebbDocumentChipsElement, ev: LimebbDocumentChipsCustomEvent<HTMLLimebbDocumentChipsElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2837
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2838
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2839
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2840
+ removeEventListener<K extends keyof HTMLLimebbDocumentChipsElementEventMap>(type: K, listener: (this: HTMLLimebbDocumentChipsElement, ev: LimebbDocumentChipsCustomEvent<HTMLLimebbDocumentChipsElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2841
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2842
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2843
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2844
+ }
2845
+ var HTMLLimebbDocumentChipsElement: {
2846
+ prototype: HTMLLimebbDocumentChipsElement;
2847
+ new (): HTMLLimebbDocumentChipsElement;
2848
+ };
2785
2849
  interface HTMLLimebbDocumentItemElementEventMap {
2786
2850
  "interact": DocumentItem;
2787
2851
  }
@@ -3760,6 +3824,7 @@ declare global {
3760
3824
  * :::
3761
3825
  * @exampleComponent limebb-example-object-chip
3762
3826
  * @exampleComponent limebb-example-object-chip-icon-and-color-fallbacks
3827
+ * @exampleComponent limebb-example-object-chip-size
3763
3828
  * @beta
3764
3829
  */
3765
3830
  interface HTMLLimebbObjectChipElement extends Components.LimebbObjectChip, HTMLStencilElement {
@@ -3871,6 +3936,7 @@ declare global {
3871
3936
  * :::
3872
3937
  * @exampleComponent limebb-example-summary-popover-basic
3873
3938
  * @exampleComponent limebb-example-summary-popover-image
3939
+ * @exampleComponent limebb-example-summary-popover-file-preview
3874
3940
  * @exampleComponent limebb-example-summary-popover-actions
3875
3941
  * @exampleComponent limebb-example-summary-popover-trigger-delay
3876
3942
  * @beta
@@ -4003,6 +4069,7 @@ declare global {
4003
4069
  "limebb-data-cells": HTMLLimebbDataCellsElement;
4004
4070
  "limebb-date-picker": HTMLLimebbDatePickerElement;
4005
4071
  "limebb-date-range": HTMLLimebbDateRangeElement;
4072
+ "limebb-document-chips": HTMLLimebbDocumentChipsElement;
4006
4073
  "limebb-document-item": HTMLLimebbDocumentItemElement;
4007
4074
  "limebb-document-picker": HTMLLimebbDocumentPickerElement;
4008
4075
  "limebb-empty-state": HTMLLimebbEmptyStateElement;
@@ -4644,6 +4711,32 @@ declare namespace LocalJSX {
4644
4711
  */
4645
4712
  "type"?: DateType;
4646
4713
  }
4714
+ /**
4715
+ * Renders a list of document chips, each wrapped in a
4716
+ * `limebb-summary-popover` that shows a file preview on hover or
4717
+ * keyboard focus.
4718
+ * Supports browser-previewable files (images, PDFs, video, audio, text).
4719
+ * Office file types show a fallback message instead of an unsupported preview.
4720
+ * The component manages blob URL creation for local files internally
4721
+ * and cleans them up when files are removed or the component is destroyed.
4722
+ * @exampleComponent limebb-example-document-chips-basic
4723
+ * @exampleComponent limebb-example-document-chips-upload-states
4724
+ * @beta
4725
+ */
4726
+ interface LimebbDocumentChips {
4727
+ /**
4728
+ * A label used to describe the purpose of the list to users of assistive technologies, like screen readers.
4729
+ */
4730
+ "accessibleLabel"?: string;
4731
+ /**
4732
+ * The list of files to display as document chips.
4733
+ */
4734
+ "files"?: DocumentChipFile[];
4735
+ /**
4736
+ * Fired when a document chip's remove button is clicked. The event detail contains the file's `id`.
4737
+ */
4738
+ "onRemoveFile"?: (event: LimebbDocumentChipsCustomEvent<string | number>) => void;
4739
+ }
4647
4740
  /**
4648
4741
  * Document item
4649
4742
  * Renders individual items of the document picker component.
@@ -6045,6 +6138,7 @@ declare namespace LocalJSX {
6045
6138
  * :::
6046
6139
  * @exampleComponent limebb-example-object-chip
6047
6140
  * @exampleComponent limebb-example-object-chip-icon-and-color-fallbacks
6141
+ * @exampleComponent limebb-example-object-chip-size
6048
6142
  * @beta
6049
6143
  */
6050
6144
  interface LimebbObjectChip {
@@ -6056,10 +6150,11 @@ declare namespace LocalJSX {
6056
6150
  * Id of the object.
6057
6151
  */
6058
6152
  "objectid"?: number;
6153
+ "platform"?: LimeWebComponentPlatform;
6059
6154
  /**
6060
- * Platform instance. If not provided, the component will walk the DOM to find a parent with a platform. :::note The platform must be available when the component connects to the DOM, either as a prop or via a parent element. Changing the platform after the component has connected is not supported. :::
6155
+ * Defines the size of the chip.
6061
6156
  */
6062
- "platform"?: LimeWebComponentPlatform;
6157
+ "size"?: 'small' | 'default';
6063
6158
  }
6064
6159
  /**
6065
6160
  * This component generates a visualization that displays a percentage value
@@ -6224,6 +6319,7 @@ declare namespace LocalJSX {
6224
6319
  * :::
6225
6320
  * @exampleComponent limebb-example-summary-popover-basic
6226
6321
  * @exampleComponent limebb-example-summary-popover-image
6322
+ * @exampleComponent limebb-example-summary-popover-file-preview
6227
6323
  * @exampleComponent limebb-example-summary-popover-actions
6228
6324
  * @exampleComponent limebb-example-summary-popover-trigger-delay
6229
6325
  * @beta
@@ -6233,6 +6329,10 @@ declare namespace LocalJSX {
6233
6329
  * Actions to display in the card, to provide the user with options to interact with the content.
6234
6330
  */
6235
6331
  "actions"?: Array<ActionBarItem | ListSeparator>;
6332
+ /**
6333
+ * A file to preview in the popover. When provided, a `limel-file-viewer` is rendered inside the card alongside any other card content.
6334
+ */
6335
+ "file"?: FileInfo;
6236
6336
  /**
6237
6337
  * Text to display a header inside the card.
6238
6338
  */
@@ -6491,6 +6591,7 @@ declare namespace LocalJSX {
6491
6591
  "limebb-data-cells": LimebbDataCells;
6492
6592
  "limebb-date-picker": LimebbDatePicker;
6493
6593
  "limebb-date-range": LimebbDateRange;
6594
+ "limebb-document-chips": LimebbDocumentChips;
6494
6595
  "limebb-document-item": LimebbDocumentItem;
6495
6596
  "limebb-document-picker": LimebbDocumentPicker;
6496
6597
  "limebb-empty-state": LimebbEmptyState;
@@ -6725,6 +6826,19 @@ declare module "@stencil/core" {
6725
6826
  * @exampleComponent limebb-example-date-range
6726
6827
  */
6727
6828
  "limebb-date-range": LocalJSX.LimebbDateRange & JSXBase.HTMLAttributes<HTMLLimebbDateRangeElement>;
6829
+ /**
6830
+ * Renders a list of document chips, each wrapped in a
6831
+ * `limebb-summary-popover` that shows a file preview on hover or
6832
+ * keyboard focus.
6833
+ * Supports browser-previewable files (images, PDFs, video, audio, text).
6834
+ * Office file types show a fallback message instead of an unsupported preview.
6835
+ * The component manages blob URL creation for local files internally
6836
+ * and cleans them up when files are removed or the component is destroyed.
6837
+ * @exampleComponent limebb-example-document-chips-basic
6838
+ * @exampleComponent limebb-example-document-chips-upload-states
6839
+ * @beta
6840
+ */
6841
+ "limebb-document-chips": LocalJSX.LimebbDocumentChips & JSXBase.HTMLAttributes<HTMLLimebbDocumentChipsElement>;
6728
6842
  /**
6729
6843
  * Document item
6730
6844
  * Renders individual items of the document picker component.
@@ -7176,6 +7290,7 @@ declare module "@stencil/core" {
7176
7290
  * :::
7177
7291
  * @exampleComponent limebb-example-object-chip
7178
7292
  * @exampleComponent limebb-example-object-chip-icon-and-color-fallbacks
7293
+ * @exampleComponent limebb-example-object-chip-size
7179
7294
  * @beta
7180
7295
  */
7181
7296
  "limebb-object-chip": LocalJSX.LimebbObjectChip & JSXBase.HTMLAttributes<HTMLLimebbObjectChipElement>;
@@ -7258,6 +7373,7 @@ declare module "@stencil/core" {
7258
7373
  * :::
7259
7374
  * @exampleComponent limebb-example-summary-popover-basic
7260
7375
  * @exampleComponent limebb-example-summary-popover-image
7376
+ * @exampleComponent limebb-example-summary-popover-file-preview
7261
7377
  * @exampleComponent limebb-example-summary-popover-actions
7262
7378
  * @exampleComponent limebb-example-summary-popover-trigger-delay
7263
7379
  * @beta
@@ -17,3 +17,4 @@ export {
17
17
  FileStatus,
18
18
  FileWrapper,
19
19
  } from './components/text-editor/uploader/building-blocks-uploader';
20
+ export * from './components/document-chips/document-chips.types';
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Extracts the file extension from a filename.
3
+ *
4
+ * Returns the lowercased extension without the dot,
5
+ * or an empty string if the filename has no extension.
6
+ *
7
+ * @param filename - the filename to extract the extension from
8
+ */
9
+ export declare function getFileExtension(filename: string): string;
10
+ //# sourceMappingURL=file-extension.d.ts.map
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_ICON_BACKGROUND = "rgba(var(--color-gray-lighter), 0.4)";
2
+ export declare const filetypeBackgroundColorTable: Record<string, string>;
3
+ //# sourceMappingURL=file-icon-background-colors.d.ts.map
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_ICON_FILL = "rgb(var(--color-gray-dark))";
2
+ export declare const filetypeFillColorTable: Record<string, string>;
3
+ //# sourceMappingURL=file-icon-fill-colors.d.ts.map
@@ -0,0 +1,9 @@
1
+ import { Icon } from '@limetech/lime-elements';
2
+ /**
3
+ * Returns an icon with name, fill color, and background color
4
+ * based on the file extension of the given filename.
5
+ *
6
+ * @param filename - the filename to get the icon for
7
+ */
8
+ export declare function getFileIcon(filename: string): Icon;
9
+ //# sourceMappingURL=file-icon.d.ts.map
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_FILE_ICON = "file";
2
+ export declare const filetypeIconTable: Record<string, string>;
3
+ //# sourceMappingURL=file-icons.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-crm-building-blocks",
3
- "version": "1.113.5",
3
+ "version": "1.115.0",
4
4
  "description": "A home for shared components meant for use with Lime CRM",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -35,7 +35,7 @@
35
35
  },
36
36
  "devDependencies": {
37
37
  "@limetech/eslint-config": "^3.0.1",
38
- "@limetech/lime-elements": "^39.12.5",
38
+ "@limetech/lime-elements": "^39.13.1",
39
39
  "@limetech/lime-web-components": "^6.13.1",
40
40
  "@limetech/lime-web-components-testing": "^1.0.0",
41
41
  "@lundalogik/lime-icons8": "^2.38.2",
@@ -54,7 +54,7 @@
54
54
  "jest": "^29.7.0",
55
55
  "jest-cli": "^29.7.0",
56
56
  "kompendium": "^0.15.0",
57
- "lodash-es": "^4.17.21",
57
+ "lodash-es": "^4.18.1",
58
58
  "prettier": "^3.4.2",
59
59
  "puppeteer": "^19.4.1",
60
60
  "replace-in-file": "^7.2.0",
@@ -1 +0,0 @@
1
- import{r as e,h as o,c as t}from"./p-52cf8641.js";const r={expand:"expand",minimize:"minus_math",maximize:"minus_math",newTab:"up_right_arrow",back:"left_arrow",close:"multiply",shrink:"compress",float:"rectangle"},i=class{constructor(t){e(this,t),this.renderAsLink=()=>o("a",{class:this.getContainerClassList(),id:"tooltipId","aria-label":this.tooltipLabel&&this.tooltipHelperLabel,href:this.href,target:"newTab"===this.type?"_blank":void 0},this.renderType(),this.renderTooltip()),this.renderAsButton=()=>o("button",{class:this.getContainerClassList(),id:"tooltipId","aria-label":this.tooltipLabel&&this.tooltipHelperLabel},this.renderType(),this.renderTooltip()),this.getContainerClassList=()=>({"navigation-button":!0,[this.type]:!0})}render(){return this.href?this.renderAsLink():this.renderAsButton()}renderType(){return this.renderIcon(r[this.type])}renderTooltip(){if(this.tooltipLabel)return o("limel-tooltip",{label:this.tooltipLabel,helperLabel:this.tooltipHelperLabel,elementId:"tooltipId"})}renderIcon(e){return o("limel-icon",{name:e})}static get delegatesFocus(){return!0}};i.style='@charset "UTF-8";.navigation-button{all:unset;isolation:isolate;position:relative;display:flex;justify-content:center;align-items:center;height:1.875rem;width:1.875rem;border-radius:50%;transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:var(--navigation-button-background-color, var(--lime-elevated-surface-background-color))}.navigation-button:hover,.navigation-button:focus,.navigation-button:focus-visible{will-change:color, background-color, box-shadow, transform}.navigation-button:hover,.navigation-button:focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color)}.navigation-button:hover{box-shadow:var(--button-shadow-hovered)}.navigation-button:active{--limel-clickable-transform-timing-function:cubic-bezier(\n 0.83,\n -0.15,\n 0.49,\n 1.16\n );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}.navigation-button:hover,.navigation-button:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}.navigation-button:focus{outline:none}.navigation-button:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.navigation-button limel-icon{transition:color 0.2s ease, transform 0.2s cubic-bezier(0.84, 0.15, 0.52, 1.42);color:var(--header-menu-icon-color);width:1.25rem}.newTab limel-icon{transition:transform 0.2s ease;transform:scale(0.8);z-index:3}.newTab:before{z-index:2}.newTab::after{z-index:1}.newTab:before,.newTab:after{content:"";transition:transform 0.2s ease, border-color 0.2s ease;position:absolute;width:0.875rem;height:0.875rem;outline:1.5px solid rgb(var(--contrast-900));border-radius:1px;background-color:var(--navigation-button-background-color, rgb(var(--contrast-100)))}.newTab:hover limel-icon{color:var(--mdc-theme-primary);transform:translate3d(-0.1rem, 0.1rem, 0) scale(1)}.newTab:hover:before{transform:translate3d(0.125rem, -0.125rem, 0);border-color:rgb(var(--contrast-1000));box-shadow:var(--shadow-depth-8)}.newTab:hover:after{transform:translate3d(-0.15rem, 0.15rem, 0) scale(0.9);border-color:rgb(var(--contrast-700))}.expand:after{transition:transform 0.2s ease;content:"";position:absolute;z-index:1;background-color:var(--navigation-button-background-color, rgb(var(--contrast-100)));width:0.75rem;height:0.75rem}.expand:hover limel-icon{color:var(--mdc-theme-primary)}.expand:hover:after{transform:scale(0.5)}.expand:hover limel-icon{transform:scale(1.18)}.minimize:before,.minimize:after,.maximize:before,.maximize:after{content:"";transition:transform 0.3s ease-out 0.15s, background-color 0.1s ease}.minimize limel-icon,.maximize limel-icon{transition:transform 0.2s ease 0.1s}.minimize:before,.maximize:after,.maximize:hover:before{transform:scaleY(1) scaleX(1);z-index:-1;box-sizing:border-box;position:absolute;width:70%;height:60%;border-radius:0.25rem;transform-origin:bottom}.minimize:hover:before,.maximize:before{transition:transform 0.3s ease-out 0.15s, background-color 0.1s ease;transform:scaleY(0.3) scaleX(0.7);background-color:rgb(var(--contrast-500))}.minimize:hover limel-icon,.maximize limel-icon{transform:scaleX(0.8) translate3d(0, 0.4rem, 0)}.maximize limel-icon{color:rgb(var(--contrast-900))}.maximize:hover limel-icon{color:currentColor;transform:scaleX(1.1) translate3d(0, -0.1rem, 0)}.maximize:after{z-index:-2;border:1px dashed rgb(var(--contrast-800))}.close limel-icon{transition:transform 0.2s ease, color 0.2s ease}.close:before,.close:after{transition-delay:0.1s;content:"";position:absolute;inset:0;border-radius:50%;opacity:0}.close:before{transition:transform 0.3s ease, opacity 0.3s ease;background-color:rgb(var(--color-orange-dark))}.close:after{transition:transform 0.6s ease, opacity 0.6s ease;background-color:rgb(var(--color-orange-light))}.close:hover limel-icon{color:rgb(var(--color-white));transform:scale(0.7) rotate(90deg)}.close:hover:before{opacity:1;transform:scale(0.4)}.close:hover:after{opacity:0.4;transform:scale(0.6)}.float:after{transition:width 0.2s ease-out, opacity 0.2s ease;content:"";position:absolute;inset:0 0.5rem 0 auto;border-radius:1px;opacity:0.8;transform:translate3d(0, 0, 0);background-color:rgb(var(--contrast-800));width:0.125rem;height:0.6rem;margin:auto}.float:hover:after{width:0.4rem;opacity:1;transform:translate3d(0, 0, 0)}';const a=class{constructor(o){e(this,o),this.actionSelected=t(this,"actionSelected",7),this.triggerDelay=600,this.openDirection="top",this.popoverMaxWidth="20rem",this.popoverMaxHeight="min(35rem, calc(100vh - 2rem))",this.actions=[],this.isPopoverOpen=!1,this.openPopoverWithDelay=e=>{e.stopPropagation(),clearTimeout(this.hoverTimeout),this.hoverTimeout=window.setTimeout((()=>{a.currentOpenPopover&&a.currentOpenPopover!==this&&(a.currentOpenPopover.isPopoverOpen=!1),a.currentOpenPopover=this,this.isPopoverOpen=!0}),this.triggerDelay)},this.resetTimeout=()=>{this.isPopoverOpen||clearTimeout(this.hoverTimeout)},this.onPopoverClose=e=>{e.stopPropagation(),this.isPopoverOpen=!1,a.currentOpenPopover===this&&(a.currentOpenPopover=null)},this.handleCloseClick=e=>{e.stopPropagation(),this.isPopoverOpen=!1},this.handleSelected=e=>{this.actionSelected.emit(e.detail)}}render(){return o("limel-popover",{key:"fb257457f12e1b4711a40a8507bcbe4317edace2",style:{"--limebb-summary-popover-timeout":`${this.triggerDelay}ms`},open:this.isPopoverOpen,onClose:this.onPopoverClose,openDirection:this.openDirection},o("div",{key:"10ecbea67152f6e3c6102d01c28c3aceb13427a0",slot:"trigger",onMouseEnter:this.openPopoverWithDelay,onMouseLeave:this.resetTimeout,onFocusin:this.openPopoverWithDelay},o("slot",{key:"bd545c3365ed44a60a7427bb8767c7373ce6a177",name:"trigger"}),o("div",{key:"0a537eca8171d183b693549158acfb29f099ee7f",class:"opening-countdown-indicator"})),o("limel-card",{key:"8befb62c7d075284e9fd0af373ae00e2c54ac058",style:{"max-width":this.popoverMaxWidth,"max-height":this.popoverMaxHeight,"min-width":"7rem","min-height":"3rem"},orientation:"landscape",heading:this.heading,subheading:this.subheading,icon:this.icon,value:this.value,image:this.image,actions:this.actions,onActionSelected:this.handleSelected},o("limebb-navigation-button",{key:"699c17c2d51575f4c82fa9bbc4dcc9a96a495eee",slot:"component",type:"close",style:{"--navigation-button-background-color":"rgb(var(--contrast-100), 0.8)",position:"absolute",top:"0.125rem",right:"0.125rem"},tooltipLabel:"Close",tooltipHelperLabel:"Esc",onClick:this.handleCloseClick})))}};a.currentOpenPopover=null,a.style="limel-popover{--popover-border-radius:0.95rem;--popover-body-background-color:transparent;--popover-box-shadow:var(--shadow-depth-8)}div[slot=trigger]{position:relative;display:flex;align-items:center;justify-content:center}div[slot=trigger] *{min-width:0;min-height:0}.opening-countdown-indicator{position:absolute;inset:auto 0 -0.25rem 0;margin:0 auto;height:0.125rem;border-radius:1rem;transition:width ease-out, opacity ease;transition-duration:120ms;opacity:0;width:0%;background-color:var(--mdc-theme-primary)}div[slot=trigger]:not([aria-expanded=true]):hover .opening-countdown-indicator{transition-duration:var(--limebb-summary-popover-timeout);opacity:1;width:100%}";export{i as limebb_navigation_button,a as limebb_summary_popover}
@@ -1 +0,0 @@
1
- import{r as e,h as r}from"./p-52cf8641.js";import{i as t,z as i,c as o}from"./p-199799ff.js";import{n as s}from"./p-7c9484b1.js";const n=["pdf","edit","view"],l={avi:"browser",bmp:"browser",csv:"browser",gif:"browser",heic:"browser",html:"browser",jpeg:"browser",jpg:"browser",json:"browser",mp3:"browser",mp4:"browser",mov:"browser",ogg:"browser",pdf:"browser",png:"browser",svg:"browser",svgz:"browser",txt:"browser",wav:"browser",wmv:"browser",xml:"browser",eml:"fileViewer",doc:"sharepoint",docx:"sharepoint",dot:"sharepoint",dotx:"sharepoint",odp:"sharepoint",ods:"sharepoint",pot:"sharepoint",ppt:"sharepoint",pptx:"sharepoint",pps:"sharepoint",ppsx:"sharepoint",xls:"sharepoint",xlsb:"sharepoint",xlsm:"sharepoint",xlsx:"sharepoint",odt:"sharepoint"};var a=function(e,r,t,i){var o,s=arguments.length,n=s<3?r:null===i?i=Object.getOwnPropertyDescriptor(r,t):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,r,t,i);else for(var l=e.length-1;l>=0;l--)(o=e[l])&&(n=(s<3?o(n):s>3?o(r,t,n):o(r,t))||n);return s>3&&n&&Object.defineProperty(r,t,n),n};const h=class{constructor(t){e(this,t),this.fileTypes=["view","contents","download"],this.renderLiveDocs=e=>{if(!this.isLiveDocsAvailable(e))return r("limebb-live-docs-info",null);if(!this.platform.isFeatureEnabled("useOfficeFilePreview"))return r("limebb-empty-state",{value:"Preview of this file type will be available soon",icon:{name:"attention",color:"rgb(var(--color-blue-light))"}});const t=this.getLiveDocsUrl(e);return r("iframe",{src:t,frameBorder:0,marginHeight:0,marginWidth:0})},this.renderFileViewer=e=>{const t=e.filename,i=this.getFileUrl(e);return i?r("limel-file-viewer",{filename:t,url:i,allowFullscreen:!0,allowOpenInNewTab:!0}):this.renderNotFound()},this.renderUnsupported=e=>r("limel-file-viewer",{filename:e.filename,url:void 0,allowFullscreen:!0,allowOpenInNewTab:!0}),this.renderNotFound=()=>[r("section",{class:"not-found"},r("limel-icon",{name:"error",size:"large"}),r("h2",null,this.translator.get("webclient.not-found")),r("p",null,this.translator.get("webclient.no-files-attached",{object:this.getDescriptive(this.limeobject)})))]}render(){const e=this.getFile();if(!e)return this.renderNotFound();const r=l[e.extension.toLowerCase()]||"unsupported";return(0,{fileViewer:this.renderFileViewer,browser:this.renderFileViewer,sharepoint:this.renderLiveDocs,unsupported:this.renderUnsupported}[r])(e)}getLiveDocsUrl(e){let r=[...this.fileTypes];return this.platform.isFeatureEnabled("useOfficeFilePreview")&&(r=["pdf",...r]),r.filter(this.isLiveDocsType).map((r=>e.getUrl(r))).find(Boolean)}getFileUrl(e){return this.fileTypes.filter(s(this.isLiveDocsType)).map((r=>e.getUrl(r))).find(Boolean)}getFile(){const e=this.fileProperty;if(e)return this.limeobject.getFile(e.name)}isLiveDocsAvailable(e){return n.some((r=>e.getUrl(r)))}isLiveDocsType(e){return n.includes(e)}getDescriptive(e){var r;return(null==e?void 0:e.descriptive)||(null===(r=this.limetype)||void 0===r?void 0:r.localname.singular)||this.translator.get("object")}get fileProperty(){if(this.limeobject){if(this.property){const e=this.limeobject.getLimetype().getProperty(this.property);if("file"===e.type)return e}return Object.values(this.limeobject.getLimetype().properties).find((e=>"file"===e.type))}}get translator(){return this.platform.get(o.Translate)}};a([t()],h.prototype,"limeobject",void 0),a([i()],h.prototype,"limetype",void 0),h.style=".not-found{display:flex;flex-direction:column;height:100%;align-items:center;justify-content:center;line-height:1rem;color:rgb(var(--contrast-1100))}.not-found limel-icon{color:rgb(var(--color-red-default))}iframe{height:100%;width:100%}";export{h as limebb_limeobject_file_viewer}