@limetech/lime-crm-building-blocks 1.100.0 → 1.101.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 (123) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  3. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +177 -204
  4. package/dist/cjs/{limebb-lime-query-filter-builder_3.cjs.entry.js → limebb-lime-query-filter-builder_4.cjs.entry.js} +86 -1
  5. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +147 -0
  6. package/dist/cjs/{limebb-lime-query-filter-comparison_5.cjs.entry.js → limebb-lime-query-filter-group_3.cjs.entry.js} +5 -333
  7. package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +51 -0
  8. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  9. package/dist/cjs/limebb-locale-picker.cjs.entry.js +1 -1
  10. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  11. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
  12. package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
  13. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  14. package/dist/cjs/limebb-property-selector.cjs.entry.js +234 -0
  15. package/dist/cjs/limebb-text-editor.cjs.entry.js +1 -1
  16. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  17. package/dist/cjs/loader.cjs.js +1 -1
  18. package/dist/collection/collection-manifest.json +2 -2
  19. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +1 -1
  20. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +1 -1
  21. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  22. package/dist/collection/components/lime-query-builder/expressions/lime-query-value-input.js +7 -7
  23. package/dist/collection/components/lime-query-builder/lime-query-builder.css +2 -5
  24. package/dist/collection/components/lime-query-builder/lime-query-builder.js +19 -19
  25. package/dist/collection/components/lime-query-builder/lime-query-validation.js +160 -26
  26. package/dist/collection/components/lime-query-builder/lime-query.types.js +1 -57
  27. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  28. package/dist/collection/components/lime-query-builder/order-by/order-by-editor.css +72 -0
  29. package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +252 -0
  30. package/dist/collection/components/lime-query-builder/order-by/order-by-item.css +45 -0
  31. package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +173 -0
  32. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  33. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  34. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  35. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  36. package/dist/collection/components/summary-popover/summary-popover.js +3 -3
  37. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  38. package/dist/collection/components/text-editor/text-editor.js +1 -1
  39. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  40. package/dist/components/lime-query-filter-comparison.js +1 -1
  41. package/dist/components/lime-query-filter-expression.js +2 -2
  42. package/dist/components/lime-query-value-input.js +3 -3
  43. package/dist/components/limebb-lime-query-builder.js +201 -215
  44. package/dist/components/limebb-lime-query-order-by-editor.d.ts +11 -0
  45. package/dist/components/limebb-lime-query-order-by-editor.js +6 -0
  46. package/dist/components/limebb-lime-query-order-by-item.d.ts +11 -0
  47. package/dist/components/limebb-lime-query-order-by-item.js +6 -0
  48. package/dist/components/limebb-locale-picker.js +1 -1
  49. package/dist/components/limebb-mention-group-counter.js +2 -2
  50. package/dist/components/limebb-percentage-visualizer.js +2 -2
  51. package/dist/components/limebb-text-editor.js +1 -1
  52. package/dist/components/limebb-trend-indicator.js +1 -1
  53. package/dist/components/limetype-field.js +1 -1
  54. package/dist/components/live-docs-info.js +2 -2
  55. package/dist/components/notification-item.js +1 -1
  56. package/dist/components/order-by-editor.js +123 -0
  57. package/dist/components/order-by-item.js +73 -0
  58. package/dist/components/property-selector.js +1 -1
  59. package/dist/components/summary-popover.js +3 -3
  60. package/dist/esm/lime-crm-building-blocks.js +1 -1
  61. package/dist/esm/limebb-lime-query-builder.entry.js +179 -206
  62. package/dist/esm/{limebb-lime-query-filter-builder_3.entry.js → limebb-lime-query-filter-builder_4.entry.js} +86 -2
  63. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +142 -0
  64. package/dist/esm/{limebb-lime-query-filter-comparison_5.entry.js → limebb-lime-query-filter-group_3.entry.js} +7 -333
  65. package/dist/esm/limebb-lime-query-order-by-item.entry.js +47 -0
  66. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  67. package/dist/esm/limebb-locale-picker.entry.js +1 -1
  68. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  69. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  70. package/dist/esm/limebb-notification-item.entry.js +1 -1
  71. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  72. package/dist/esm/limebb-property-selector.entry.js +230 -0
  73. package/dist/esm/limebb-text-editor.entry.js +1 -1
  74. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  75. package/dist/esm/loader.js +1 -1
  76. package/dist/esm/{property-resolution-fde2375e.js → property-resolution-c21a1369.js} +1 -1
  77. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  78. package/dist/lime-crm-building-blocks/{p-631ca5a5.entry.js → p-0cd036ed.entry.js} +1 -1
  79. package/dist/lime-crm-building-blocks/p-2725671e.entry.js +1 -0
  80. package/dist/lime-crm-building-blocks/{p-9cac4de2.entry.js → p-425eaba2.entry.js} +1 -1
  81. package/dist/lime-crm-building-blocks/{p-e8946134.entry.js → p-5cf4898d.entry.js} +1 -1
  82. package/dist/lime-crm-building-blocks/p-67c174d0.entry.js +1 -0
  83. package/dist/lime-crm-building-blocks/p-6aa216ec.entry.js +1 -0
  84. package/dist/lime-crm-building-blocks/{p-93cadc1e.entry.js → p-8601eab5.entry.js} +1 -1
  85. package/dist/lime-crm-building-blocks/{p-b9b954d9.entry.js → p-8c2fb1c9.entry.js} +1 -1
  86. package/dist/lime-crm-building-blocks/{p-3122ea05.entry.js → p-92dfc5f8.entry.js} +1 -1
  87. package/dist/lime-crm-building-blocks/{p-569c86b5.entry.js → p-a1ee8990.entry.js} +1 -1
  88. package/dist/lime-crm-building-blocks/p-abfc7815.entry.js +1 -0
  89. package/dist/lime-crm-building-blocks/{p-e0ab1554.js → p-b748c770.js} +1 -1
  90. package/dist/lime-crm-building-blocks/p-ccf34631.entry.js +1 -0
  91. package/dist/lime-crm-building-blocks/{p-36ea13c0.entry.js → p-d84874dc.entry.js} +1 -1
  92. package/dist/lime-crm-building-blocks/p-f9efca1d.entry.js +1 -0
  93. package/dist/types/components/lime-query-builder/expressions/lime-query-value-input.d.ts +2 -3
  94. package/dist/types/components/lime-query-builder/lime-query-builder.d.ts +9 -6
  95. package/dist/types/components/lime-query-builder/lime-query.types.d.ts +0 -72
  96. package/dist/types/components/lime-query-builder/order-by/order-by-editor.d.ts +58 -0
  97. package/dist/types/components/lime-query-builder/order-by/order-by-item.d.ts +37 -0
  98. package/dist/types/components.d.ts +165 -205
  99. package/package.json +1 -1
  100. package/dist/cjs/limebb-lime-query-filter-and.cjs.entry.js +0 -80
  101. package/dist/cjs/limebb-lime-query-filter-expression.cjs.entry.js +0 -45
  102. package/dist/cjs/limebb-lime-query-filter-or.cjs.entry.js +0 -68
  103. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.css +0 -121
  104. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.js +0 -249
  105. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.css +0 -123
  106. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.js +0 -237
  107. package/dist/collection/components/lime-query-builder/filter-conversion.js +0 -255
  108. package/dist/components/limebb-lime-query-filter-and.d.ts +0 -11
  109. package/dist/components/limebb-lime-query-filter-and.js +0 -135
  110. package/dist/components/limebb-lime-query-filter-or.d.ts +0 -11
  111. package/dist/components/limebb-lime-query-filter-or.js +0 -123
  112. package/dist/esm/limebb-lime-query-filter-and.entry.js +0 -76
  113. package/dist/esm/limebb-lime-query-filter-expression.entry.js +0 -41
  114. package/dist/esm/limebb-lime-query-filter-or.entry.js +0 -64
  115. package/dist/lime-crm-building-blocks/p-24aeb928.entry.js +0 -1
  116. package/dist/lime-crm-building-blocks/p-422f6d51.entry.js +0 -1
  117. package/dist/lime-crm-building-blocks/p-67dbaa4c.entry.js +0 -1
  118. package/dist/lime-crm-building-blocks/p-6d119dab.entry.js +0 -1
  119. package/dist/lime-crm-building-blocks/p-91732502.entry.js +0 -1
  120. package/dist/lime-crm-building-blocks/p-b198194a.entry.js +0 -1
  121. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-and.d.ts +0 -57
  122. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-or.d.ts +0 -56
  123. package/dist/types/components/lime-query-builder/filter-conversion.d.ts +0 -31
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [1.101.0](https://github.com/Lundalogik/lime-crm-building-blocks/compare/v1.100.1...v1.101.0) (2025-11-07)
2
+
3
+ ### Features
4
+
5
+
6
+ * **lime-query-builder:** add GUI support for orderBy ([06840e8](https://github.com/Lundalogik/lime-crm-building-blocks/commit/06840e8e8c2c3f797f243ae4218379549fb5cac0)), closes [Lundalogik/crm-insights-and-intelligence#115](https://github.com/Lundalogik/crm-insights-and-intelligence/issues/115)
7
+
8
+ ## [1.100.1](https://github.com/Lundalogik/lime-crm-building-blocks/compare/v1.100.0...v1.100.1) (2025-11-07)
9
+
10
+ ### Bug Fixes
11
+
12
+
13
+ * **lime-query-builder:** add operator validation ([5abd88c](https://github.com/Lundalogik/lime-crm-building-blocks/commit/5abd88cc8e80ba1a8ccfb845c06ceca9b9fdc2e7))
14
+
1
15
  ## [1.100.0](https://github.com/Lundalogik/lime-crm-building-blocks/compare/v1.99.0...v1.100.0) (2025-11-07)
2
16
 
3
17
  ### Features
@@ -19,7 +19,7 @@ var patchBrowser = () => {
19
19
 
20
20
  patchBrowser().then(async (options) => {
21
21
  await appGlobals.globalScripts();
22
- return index.bootstrapLazy(JSON.parse("[[\"limebb-lime-query-builder.cjs\",[[1,\"limebb-lime-query-builder\",{\"platform\":[16],\"context\":[16],\"value\":[16],\"label\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"limetypes\":[32],\"mode\":[32],\"codeValue\":[32],\"limetype\":[32],\"filter\":[32],\"internalResponseFormat\":[32],\"limit\":[32]}]]],[\"limebb-lime-query-filter-and.cjs\",[[1,\"limebb-lime-query-filter-and\",{\"platform\":[16],\"context\":[16],\"label\":[1],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"expression\":[16]}]]],[\"limebb-lime-query-filter-or.cjs\",[[1,\"limebb-lime-query-filter-or\",{\"platform\":[16],\"context\":[16],\"label\":[1],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"expression\":[16]}]]],[\"limebb-feed.cjs\",[[1,\"limebb-feed\",{\"platform\":[16],\"context\":[16],\"items\":[16],\"emptyStateMessage\":[1,\"empty-state-message\"],\"heading\":[1],\"loading\":[4],\"minutesOfProximity\":[2,\"minutes-of-proximity\"],\"totalCount\":[2,\"total-count\"],\"direction\":[513],\"lastVisitedTimestamp\":[1,\"last-visited-timestamp\"],\"highlightedItemId\":[8,\"highlighted-item-id\"]},null,{\"highlightedItemId\":[\"highlightedItemIdChanged\"]}]]],[\"limebb-kanban.cjs\",[[1,\"limebb-kanban\",{\"platform\":[16],\"context\":[16],\"groups\":[16]}]]],[\"limebb-chat-list.cjs\",[[1,\"limebb-chat-list\",{\"platform\":[16],\"context\":[16],\"items\":[16],\"loading\":[516],\"isTypingIndicatorVisible\":[516,\"is-typing-indicator-visible\"],\"lastVisitedTimestamp\":[513,\"last-visited-timestamp\"],\"order\":[513]},null,{\"items\":[\"handleItemsChange\"]}]]],[\"limebb-limeobject-file-viewer.cjs\",[[1,\"limebb-limeobject-file-viewer\",{\"platform\":[16],\"context\":[16],\"property\":[1],\"fileTypes\":[16],\"limeobject\":[32],\"limetype\":[32]}]]],[\"limebb-text-editor.cjs\",[[1,\"limebb-text-editor\",{\"platform\":[16],\"context\":[16],\"allowMentioning\":[4,\"allow-mentioning\"],\"contentType\":[1,\"content-type\"],\"language\":[513],\"disabled\":[516],\"readonly\":[516],\"helperText\":[513,\"helper-text\"],\"placeholder\":[513],\"label\":[513],\"invalid\":[516],\"required\":[516],\"selectedContext\":[16],\"ui\":[513],\"allowResize\":[4,\"allow-resize\"],\"value\":[1],\"draftIdentifier\":[1,\"draft-identifier\"],\"triggerMap\":[16],\"customElements\":[16],\"allowInlineImages\":[4,\"allow-inline-images\"],\"items\":[32],\"highlightedItemIndex\":[32],\"editorPickerQuery\":[32],\"searchableLimetypes\":[32],\"isPickerOpen\":[32],\"isSearching\":[32]},null,{\"isPickerOpen\":[\"watchOpen\"],\"editorPickerQuery\":[\"watchQuery\"]}]]],[\"limebb-date-range.cjs\",[[1,\"limebb-date-range\",{\"platform\":[16],\"context\":[16],\"startTime\":[16],\"endTime\":[16],\"startTimeLabel\":[1,\"start-time-label\"],\"endTimeLabel\":[1,\"end-time-label\"],\"language\":[1],\"timeFormat\":[1,\"time-format\"],\"type\":[1]}]]],[\"limebb-document-picker.cjs\",[[1,\"limebb-document-picker\",{\"platform\":[16],\"context\":[16],\"items\":[16],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"invalid\":[516],\"required\":[516],\"type\":[513]}]]],[\"limebb-info-tile-currency-format.cjs\",[[1,\"limebb-info-tile-currency-format\",{\"platform\":[16],\"context\":[16],\"value\":[16]}]]],[\"limebb-notification-list.cjs\",[[1,\"limebb-notification-list\",{\"platform\":[16],\"context\":[16],\"items\":[16],\"loading\":[4],\"lastVisitedTimestamp\":[1,\"last-visited-timestamp\"]},null,{\"items\":[\"handleItemsChange\"]}]]],[\"limebb-browser.cjs\",[[17,\"limebb-browser\",{\"platform\":[16],\"context\":[16],\"items\":[16],\"layout\":[1],\"filter\":[32]}]]],[\"limebb-component-config.cjs\",[[1,\"limebb-component-config\",{\"platform\":[16],\"context\":[16],\"value\":[16],\"required\":[4],\"readonly\":[4],\"disabled\":[4],\"label\":[1],\"helperText\":[1,\"helper-text\"],\"formInfo\":[16],\"type\":[1],\"nameField\":[1,\"name-field\"],\"configComponent\":[32],\"configViewType\":[32]},null,{\"formInfo\":[\"watchFormInfo\"],\"configComponent\":[\"watchconfigComponent\"]}]]],[\"limebb-component-picker.cjs\",[[1,\"limebb-component-picker\",{\"platform\":[16],\"context\":[16],\"type\":[1],\"tags\":[16],\"value\":[1],\"copyLabel\":[1,\"copy-label\"],\"hideCopyButton\":[4,\"hide-copy-button\"],\"required\":[4],\"readonly\":[4],\"disabled\":[4],\"label\":[1],\"helperText\":[1,\"helper-text\"]}]]],[\"limebb-dashboard-widget.cjs\",[[1,\"limebb-dashboard-widget\",{\"heading\":[513],\"subheading\":[513],\"supportingText\":[513,\"supporting-text\"],\"icon\":[513]}]]],[\"limebb-icon-picker.cjs\",[[1,\"limebb-icon-picker\",{\"value\":[1],\"required\":[4],\"readonly\":[4],\"invalid\":[4],\"disabled\":[4],\"label\":[1],\"helperText\":[1,\"helper-text\"]}]]],[\"limebb-info-tile.cjs\",[[1,\"limebb-info-tile\",{\"platform\":[16],\"context\":[16],\"filterId\":[513,\"filter-id\"],\"disabled\":[4],\"icon\":[513],\"label\":[1],\"prefix\":[1],\"suffix\":[1],\"propertyName\":[1,\"property-name\"],\"aggregateOperator\":[1,\"aggregate-operator\"],\"format\":[16],\"config\":[32],\"filters\":[32],\"value\":[32],\"loading\":[32],\"error\":[32]},null,{\"filterId\":[\"watchFilterId\"],\"propertyName\":[\"watchPropertyName\"],\"aggregateOperator\":[\"watchAggregateOperator\"]}]]],[\"limebb-info-tile-date-format.cjs\",[[1,\"limebb-info-tile-date-format\",{\"value\":[16]}]]],[\"limebb-info-tile-decimal-format.cjs\",[[1,\"limebb-info-tile-decimal-format\",{\"value\":[16]}]]],[\"limebb-info-tile-format.cjs\",[[1,\"limebb-info-tile-format\",{\"platform\":[16],\"context\":[16],\"type\":[1],\"value\":[16]}]]],[\"limebb-info-tile-relative-date-format.cjs\",[[1,\"limebb-info-tile-relative-date-format\",{\"value\":[16]}]]],[\"limebb-info-tile-unit-format.cjs\",[[1,\"limebb-info-tile-unit-format\",{\"value\":[16]}]]],[\"limebb-loader.cjs\",[[1,\"limebb-loader\",{\"platform\":[16],\"context\":[16]}]]],[\"limebb-locale-picker.cjs\",[[1,\"limebb-locale-picker\",{\"platform\":[16],\"context\":[16],\"value\":[1],\"required\":[4],\"disabled\":[4],\"label\":[1],\"helperText\":[1,\"helper-text\"],\"readonly\":[4],\"multipleChoice\":[4,\"multiple-choice\"],\"allLanguages\":[32]}]]],[\"limebb-mention.cjs\",[[1,\"limebb-mention\",{\"limetype\":[1],\"objectid\":[2],\"limeobject\":[32]}]]],[\"limebb-mention-group-counter.cjs\",[[1,\"limebb-mention-group-counter\",{\"count\":[2],\"limetype\":[16],\"helperLabel\":[1,\"helper-label\"]}]]],[\"limebb-percentage-visualizer.cjs\",[[1,\"limebb-percentage-visualizer\",{\"platform\":[16],\"context\":[16],\"value\":[520],\"rangeMax\":[514,\"range-max\"],\"rangeMin\":[514,\"range-min\"],\"multiplier\":[514],\"label\":[513],\"invalid\":[516],\"required\":[516],\"helperText\":[513,\"helper-text\"],\"reducePresence\":[516,\"reduce-presence\"],\"displayPercentageColors\":[516,\"display-percentage-colors\"]},null,{\"value\":[\"valueChanged\"]}]]],[\"limebb-trend-indicator.cjs\",[[1,\"limebb-trend-indicator\",{\"platform\":[16],\"context\":[16],\"value\":[520],\"formerValue\":[514,\"former-value\"],\"suffix\":[513],\"label\":[513],\"invalid\":[516],\"required\":[516],\"helperText\":[513,\"helper-text\"],\"reducePresence\":[516,\"reduce-presence\"]},null,{\"value\":[\"valueChanged\"]}]]],[\"limebb-feed-item-thumbnail-file-info.cjs\",[[1,\"limebb-feed-item-thumbnail-file-info\",{\"description\":[1]}]]],[\"limebb-feed-timeline-item.cjs\",[[1,\"limebb-feed-timeline-item\",{\"platform\":[16],\"context\":[16],\"item\":[16],\"ui\":[513],\"helperText\":[1,\"helper-text\"],\"hasError\":[516,\"has-error\"],\"isBundled\":[516,\"is-bundled\"],\"headingCanExpand\":[32],\"isHeadingExpanded\":[32],\"showMore\":[32],\"isTall\":[32]}]]],[\"limebb-kanban-group.cjs\",[[1,\"limebb-kanban-group\",{\"platform\":[16],\"context\":[16],\"identifier\":[1],\"heading\":[513],\"help\":[1],\"items\":[16],\"summary\":[1],\"loading\":[516],\"totalCount\":[514,\"total-count\"]}]]],[\"limebb-empty-state.cjs\",[[1,\"limebb-empty-state\",{\"heading\":[513],\"value\":[513],\"icon\":[16]}]]],[\"limebb-text-editor-picker.cjs\",[[1,\"limebb-text-editor-picker\",{\"items\":[16],\"open\":[516],\"isSearching\":[4,\"is-searching\"],\"emptyMessage\":[1,\"empty-message\"]},null,{\"open\":[\"watchOpen\"]}]]],[\"limebb-currency-picker.cjs\",[[1,\"limebb-currency-picker\",{\"platform\":[16],\"context\":[16],\"label\":[513],\"currencies\":[16],\"helperText\":[513,\"helper-text\"],\"required\":[516],\"readonly\":[516],\"invalid\":[516],\"disabled\":[516],\"value\":[1]}]]],[\"limebb-date-picker.cjs\",[[1,\"limebb-date-picker\",{\"platform\":[16],\"context\":[16],\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"label\":[513],\"placeholder\":[513],\"helperText\":[513,\"helper-text\"],\"required\":[516],\"value\":[1],\"type\":[513]}]]],[\"limebb-document-item.cjs\",[[17,\"limebb-document-item\",{\"platform\":[16],\"context\":[16],\"item\":[16],\"type\":[513]}]]],[\"limebb-live-docs-info.cjs\",[[1,\"limebb-live-docs-info\"]]],[\"limebb-notification-item.cjs\",[[1,\"limebb-notification-item\",{\"platform\":[16],\"context\":[16],\"item\":[16]}]]],[\"limebb-kanban-item.cjs\",[[1,\"limebb-kanban-item\",{\"platform\":[16],\"context\":[16],\"item\":[16]}]]],[\"limebb-response-format-item.cjs\",[[1,\"limebb-response-format-item\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"item\":[16],\"showAliasInput\":[32],\"showDescriptionInput\":[32]}]]],[\"limebb-chat-item_2.cjs\",[[1,\"limebb-chat-item\",{\"platform\":[16],\"context\":[16],\"item\":[16],\"helperText\":[1,\"helper-text\"],\"hasError\":[516,\"has-error\"]}],[1,\"limebb-typing-indicator\"]]],[\"limebb-lime-query-filter-comparison_5.cjs\",[[1,\"limebb-lime-query-value-input\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"propertyPath\":[1,\"property-path\"],\"operator\":[1],\"value\":[8],\"label\":[1],\"limetypes\":[32],\"inputMode\":[32]}],[1,\"limebb-lime-query-filter-group\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"expression\":[16]}],[1,\"limebb-lime-query-filter-not\",{\"platform\":[16],\"context\":[16],\"label\":[1],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"expression\":[16]}],[1,\"limebb-lime-query-filter-comparison\",{\"platform\":[16],\"context\":[16],\"label\":[1],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"expression\":[16]}],[1,\"limebb-property-selector\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"value\":[1],\"label\":[1],\"required\":[4],\"helperText\":[1,\"helper-text\"],\"limetypes\":[32],\"isOpen\":[32],\"navigationPath\":[32]}]]],[\"limebb-lime-query-filter-expression.cjs\",[[1,\"limebb-lime-query-filter-expression\",{\"platform\":[16],\"context\":[16],\"label\":[1],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"expression\":[16]}]]],[\"limebb-lime-query-filter-builder_3.cjs\",[[1,\"limebb-lime-query-filter-builder\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"expression\":[16]}],[1,\"limebb-response-format-editor\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"value\":[16],\"label\":[1],\"items\":[32]}],[0,\"limebb-limetype-field\",{\"platform\":[16],\"context\":[16],\"label\":[513],\"required\":[516],\"readonly\":[516],\"disabled\":[516],\"value\":[513],\"helperText\":[513,\"helper-text\"],\"invalid\":[4],\"limetypes\":[16],\"propertyFields\":[16],\"fieldName\":[1,\"field-name\"],\"formInfo\":[16]}]]],[\"limebb-navigation-button_2.cjs\",[[1,\"limebb-summary-popover\",{\"triggerDelay\":[514,\"trigger-delay\"],\"heading\":[513],\"subheading\":[513],\"image\":[16],\"icon\":[513],\"value\":[1],\"openDirection\":[513,\"open-direction\"],\"popoverMaxWidth\":[513,\"popover-max-width\"],\"popoverMaxHeight\":[513,\"popover-max-height\"],\"actions\":[16],\"isPopoverOpen\":[32]}],[17,\"limebb-navigation-button\",{\"href\":[513],\"tooltipLabel\":[513,\"tooltip-label\"],\"tooltipHelperLabel\":[513,\"tooltip-helper-label\"],\"type\":[513]}]]]]"), options);
22
+ return index.bootstrapLazy(JSON.parse("[[\"limebb-lime-query-builder.cjs\",[[1,\"limebb-lime-query-builder\",{\"platform\":[16],\"context\":[16],\"value\":[16],\"label\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"limetypes\":[32],\"mode\":[32],\"codeValue\":[32],\"limetype\":[32],\"filter\":[32],\"internalResponseFormat\":[32],\"limit\":[32],\"orderBy\":[32]}]]],[\"limebb-feed.cjs\",[[1,\"limebb-feed\",{\"platform\":[16],\"context\":[16],\"items\":[16],\"emptyStateMessage\":[1,\"empty-state-message\"],\"heading\":[1],\"loading\":[4],\"minutesOfProximity\":[2,\"minutes-of-proximity\"],\"totalCount\":[2,\"total-count\"],\"direction\":[513],\"lastVisitedTimestamp\":[1,\"last-visited-timestamp\"],\"highlightedItemId\":[8,\"highlighted-item-id\"]},null,{\"highlightedItemId\":[\"highlightedItemIdChanged\"]}]]],[\"limebb-kanban.cjs\",[[1,\"limebb-kanban\",{\"platform\":[16],\"context\":[16],\"groups\":[16]}]]],[\"limebb-chat-list.cjs\",[[1,\"limebb-chat-list\",{\"platform\":[16],\"context\":[16],\"items\":[16],\"loading\":[516],\"isTypingIndicatorVisible\":[516,\"is-typing-indicator-visible\"],\"lastVisitedTimestamp\":[513,\"last-visited-timestamp\"],\"order\":[513]},null,{\"items\":[\"handleItemsChange\"]}]]],[\"limebb-limeobject-file-viewer.cjs\",[[1,\"limebb-limeobject-file-viewer\",{\"platform\":[16],\"context\":[16],\"property\":[1],\"fileTypes\":[16],\"limeobject\":[32],\"limetype\":[32]}]]],[\"limebb-text-editor.cjs\",[[1,\"limebb-text-editor\",{\"platform\":[16],\"context\":[16],\"allowMentioning\":[4,\"allow-mentioning\"],\"contentType\":[1,\"content-type\"],\"language\":[513],\"disabled\":[516],\"readonly\":[516],\"helperText\":[513,\"helper-text\"],\"placeholder\":[513],\"label\":[513],\"invalid\":[516],\"required\":[516],\"selectedContext\":[16],\"ui\":[513],\"allowResize\":[4,\"allow-resize\"],\"value\":[1],\"draftIdentifier\":[1,\"draft-identifier\"],\"triggerMap\":[16],\"customElements\":[16],\"allowInlineImages\":[4,\"allow-inline-images\"],\"items\":[32],\"highlightedItemIndex\":[32],\"editorPickerQuery\":[32],\"searchableLimetypes\":[32],\"isPickerOpen\":[32],\"isSearching\":[32]},null,{\"isPickerOpen\":[\"watchOpen\"],\"editorPickerQuery\":[\"watchQuery\"]}]]],[\"limebb-date-range.cjs\",[[1,\"limebb-date-range\",{\"platform\":[16],\"context\":[16],\"startTime\":[16],\"endTime\":[16],\"startTimeLabel\":[1,\"start-time-label\"],\"endTimeLabel\":[1,\"end-time-label\"],\"language\":[1],\"timeFormat\":[1,\"time-format\"],\"type\":[1]}]]],[\"limebb-document-picker.cjs\",[[1,\"limebb-document-picker\",{\"platform\":[16],\"context\":[16],\"items\":[16],\"label\":[513],\"helperText\":[513,\"helper-text\"],\"invalid\":[516],\"required\":[516],\"type\":[513]}]]],[\"limebb-info-tile-currency-format.cjs\",[[1,\"limebb-info-tile-currency-format\",{\"platform\":[16],\"context\":[16],\"value\":[16]}]]],[\"limebb-notification-list.cjs\",[[1,\"limebb-notification-list\",{\"platform\":[16],\"context\":[16],\"items\":[16],\"loading\":[4],\"lastVisitedTimestamp\":[1,\"last-visited-timestamp\"]},null,{\"items\":[\"handleItemsChange\"]}]]],[\"limebb-browser.cjs\",[[17,\"limebb-browser\",{\"platform\":[16],\"context\":[16],\"items\":[16],\"layout\":[1],\"filter\":[32]}]]],[\"limebb-component-config.cjs\",[[1,\"limebb-component-config\",{\"platform\":[16],\"context\":[16],\"value\":[16],\"required\":[4],\"readonly\":[4],\"disabled\":[4],\"label\":[1],\"helperText\":[1,\"helper-text\"],\"formInfo\":[16],\"type\":[1],\"nameField\":[1,\"name-field\"],\"configComponent\":[32],\"configViewType\":[32]},null,{\"formInfo\":[\"watchFormInfo\"],\"configComponent\":[\"watchconfigComponent\"]}]]],[\"limebb-component-picker.cjs\",[[1,\"limebb-component-picker\",{\"platform\":[16],\"context\":[16],\"type\":[1],\"tags\":[16],\"value\":[1],\"copyLabel\":[1,\"copy-label\"],\"hideCopyButton\":[4,\"hide-copy-button\"],\"required\":[4],\"readonly\":[4],\"disabled\":[4],\"label\":[1],\"helperText\":[1,\"helper-text\"]}]]],[\"limebb-dashboard-widget.cjs\",[[1,\"limebb-dashboard-widget\",{\"heading\":[513],\"subheading\":[513],\"supportingText\":[513,\"supporting-text\"],\"icon\":[513]}]]],[\"limebb-icon-picker.cjs\",[[1,\"limebb-icon-picker\",{\"value\":[1],\"required\":[4],\"readonly\":[4],\"invalid\":[4],\"disabled\":[4],\"label\":[1],\"helperText\":[1,\"helper-text\"]}]]],[\"limebb-info-tile.cjs\",[[1,\"limebb-info-tile\",{\"platform\":[16],\"context\":[16],\"filterId\":[513,\"filter-id\"],\"disabled\":[4],\"icon\":[513],\"label\":[1],\"prefix\":[1],\"suffix\":[1],\"propertyName\":[1,\"property-name\"],\"aggregateOperator\":[1,\"aggregate-operator\"],\"format\":[16],\"config\":[32],\"filters\":[32],\"value\":[32],\"loading\":[32],\"error\":[32]},null,{\"filterId\":[\"watchFilterId\"],\"propertyName\":[\"watchPropertyName\"],\"aggregateOperator\":[\"watchAggregateOperator\"]}]]],[\"limebb-info-tile-date-format.cjs\",[[1,\"limebb-info-tile-date-format\",{\"value\":[16]}]]],[\"limebb-info-tile-decimal-format.cjs\",[[1,\"limebb-info-tile-decimal-format\",{\"value\":[16]}]]],[\"limebb-info-tile-format.cjs\",[[1,\"limebb-info-tile-format\",{\"platform\":[16],\"context\":[16],\"type\":[1],\"value\":[16]}]]],[\"limebb-info-tile-relative-date-format.cjs\",[[1,\"limebb-info-tile-relative-date-format\",{\"value\":[16]}]]],[\"limebb-info-tile-unit-format.cjs\",[[1,\"limebb-info-tile-unit-format\",{\"value\":[16]}]]],[\"limebb-loader.cjs\",[[1,\"limebb-loader\",{\"platform\":[16],\"context\":[16]}]]],[\"limebb-locale-picker.cjs\",[[1,\"limebb-locale-picker\",{\"platform\":[16],\"context\":[16],\"value\":[1],\"required\":[4],\"disabled\":[4],\"label\":[1],\"helperText\":[1,\"helper-text\"],\"readonly\":[4],\"multipleChoice\":[4,\"multiple-choice\"],\"allLanguages\":[32]}]]],[\"limebb-mention.cjs\",[[1,\"limebb-mention\",{\"limetype\":[1],\"objectid\":[2],\"limeobject\":[32]}]]],[\"limebb-mention-group-counter.cjs\",[[1,\"limebb-mention-group-counter\",{\"count\":[2],\"limetype\":[16],\"helperLabel\":[1,\"helper-label\"]}]]],[\"limebb-percentage-visualizer.cjs\",[[1,\"limebb-percentage-visualizer\",{\"platform\":[16],\"context\":[16],\"value\":[520],\"rangeMax\":[514,\"range-max\"],\"rangeMin\":[514,\"range-min\"],\"multiplier\":[514],\"label\":[513],\"invalid\":[516],\"required\":[516],\"helperText\":[513,\"helper-text\"],\"reducePresence\":[516,\"reduce-presence\"],\"displayPercentageColors\":[516,\"display-percentage-colors\"]},null,{\"value\":[\"valueChanged\"]}]]],[\"limebb-trend-indicator.cjs\",[[1,\"limebb-trend-indicator\",{\"platform\":[16],\"context\":[16],\"value\":[520],\"formerValue\":[514,\"former-value\"],\"suffix\":[513],\"label\":[513],\"invalid\":[516],\"required\":[516],\"helperText\":[513,\"helper-text\"],\"reducePresence\":[516,\"reduce-presence\"]},null,{\"value\":[\"valueChanged\"]}]]],[\"limebb-feed-timeline-item.cjs\",[[1,\"limebb-feed-timeline-item\",{\"platform\":[16],\"context\":[16],\"item\":[16],\"ui\":[513],\"helperText\":[1,\"helper-text\"],\"hasError\":[516,\"has-error\"],\"isBundled\":[516,\"is-bundled\"],\"headingCanExpand\":[32],\"isHeadingExpanded\":[32],\"showMore\":[32],\"isTall\":[32]}]]],[\"limebb-kanban-group.cjs\",[[1,\"limebb-kanban-group\",{\"platform\":[16],\"context\":[16],\"identifier\":[1],\"heading\":[513],\"help\":[1],\"items\":[16],\"summary\":[1],\"loading\":[516],\"totalCount\":[514,\"total-count\"]}]]],[\"limebb-text-editor-picker.cjs\",[[1,\"limebb-text-editor-picker\",{\"items\":[16],\"open\":[516],\"isSearching\":[4,\"is-searching\"],\"emptyMessage\":[1,\"empty-message\"]},null,{\"open\":[\"watchOpen\"]}]]],[\"limebb-currency-picker.cjs\",[[1,\"limebb-currency-picker\",{\"platform\":[16],\"context\":[16],\"label\":[513],\"currencies\":[16],\"helperText\":[513,\"helper-text\"],\"required\":[516],\"readonly\":[516],\"invalid\":[516],\"disabled\":[516],\"value\":[1]}]]],[\"limebb-date-picker.cjs\",[[1,\"limebb-date-picker\",{\"platform\":[16],\"context\":[16],\"disabled\":[516],\"readonly\":[516],\"invalid\":[516],\"label\":[513],\"placeholder\":[513],\"helperText\":[513,\"helper-text\"],\"required\":[516],\"value\":[1],\"type\":[513]}]]],[\"limebb-document-item.cjs\",[[17,\"limebb-document-item\",{\"platform\":[16],\"context\":[16],\"item\":[16],\"type\":[513]}]]],[\"limebb-live-docs-info.cjs\",[[1,\"limebb-live-docs-info\"]]],[\"limebb-notification-item.cjs\",[[1,\"limebb-notification-item\",{\"platform\":[16],\"context\":[16],\"item\":[16]}]]],[\"limebb-kanban-item.cjs\",[[1,\"limebb-kanban-item\",{\"platform\":[16],\"context\":[16],\"item\":[16]}]]],[\"limebb-property-selector.cjs\",[[1,\"limebb-property-selector\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"value\":[1],\"label\":[1],\"required\":[4],\"helperText\":[1,\"helper-text\"],\"limetypes\":[32],\"isOpen\":[32],\"navigationPath\":[32]}]]],[\"limebb-lime-query-order-by-item.cjs\",[[1,\"limebb-lime-query-order-by-item\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"item\":[16]}]]],[\"limebb-response-format-item.cjs\",[[1,\"limebb-response-format-item\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"item\":[16],\"showAliasInput\":[32],\"showDescriptionInput\":[32]}]]],[\"limebb-chat-item_2.cjs\",[[1,\"limebb-chat-item\",{\"platform\":[16],\"context\":[16],\"item\":[16],\"helperText\":[1,\"helper-text\"],\"hasError\":[516,\"has-error\"]}],[1,\"limebb-typing-indicator\"]]],[\"limebb-feed-item-thumbnail-file-info.cjs\",[[1,\"limebb-feed-item-thumbnail-file-info\",{\"description\":[1]}]]],[\"limebb-lime-query-filter-group_3.cjs\",[[1,\"limebb-lime-query-value-input\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"propertyPath\":[1,\"property-path\"],\"operator\":[1],\"value\":[8],\"label\":[1],\"limetypes\":[32],\"inputMode\":[32]}],[1,\"limebb-lime-query-filter-group\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"expression\":[16]}],[1,\"limebb-lime-query-filter-not\",{\"platform\":[16],\"context\":[16],\"label\":[1],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"expression\":[16]}]]],[\"limebb-lime-query-filter-comparison_2.cjs\",[[1,\"limebb-lime-query-filter-expression\",{\"platform\":[16],\"context\":[16],\"label\":[1],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"expression\":[16]}],[1,\"limebb-lime-query-filter-comparison\",{\"platform\":[16],\"context\":[16],\"label\":[1],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"expression\":[16]}]]],[\"limebb-lime-query-filter-builder_4.cjs\",[[1,\"limebb-lime-query-filter-builder\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"activeLimetype\":[1,\"active-limetype\"],\"expression\":[16]}],[1,\"limebb-lime-query-order-by-editor\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"value\":[16],\"label\":[1],\"items\":[32]},null,{\"value\":[\"handleValueChange\"]}],[1,\"limebb-response-format-editor\",{\"platform\":[16],\"context\":[16],\"limetype\":[1],\"value\":[16],\"label\":[1],\"items\":[32]}],[0,\"limebb-limetype-field\",{\"platform\":[16],\"context\":[16],\"label\":[513],\"required\":[516],\"readonly\":[516],\"disabled\":[516],\"value\":[513],\"helperText\":[513,\"helper-text\"],\"invalid\":[4],\"limetypes\":[16],\"propertyFields\":[16],\"fieldName\":[1,\"field-name\"],\"formInfo\":[16]}]]],[\"limebb-empty-state.cjs\",[[1,\"limebb-empty-state\",{\"heading\":[513],\"value\":[513],\"icon\":[16]}]]],[\"limebb-navigation-button_2.cjs\",[[1,\"limebb-summary-popover\",{\"triggerDelay\":[514,\"trigger-delay\"],\"heading\":[513],\"subheading\":[513],\"image\":[16],\"icon\":[513],\"value\":[1],\"openDirection\":[513,\"open-direction\"],\"popoverMaxWidth\":[513,\"popover-max-width\"],\"popoverMaxHeight\":[513,\"popover-max-height\"],\"actions\":[16],\"isPopoverOpen\":[32]}],[17,\"limebb-navigation-button\",{\"href\":[513],\"tooltipLabel\":[513,\"tooltip-label\"],\"tooltipHelperLabel\":[513,\"tooltip-helper-label\"],\"type\":[513]}]]]]"), options);
23
23
  });
24
24
 
25
25
  exports.setNonce = index.setNonce;
@@ -6,166 +6,6 @@ const index = require('./index-ff255a0d.js');
6
6
  const index_esm = require('./index.esm-d785eb6e.js');
7
7
  const propertyResolution = require('./property-resolution-fb42a46b.js');
8
8
 
9
- /**
10
- * TypeScript type definitions for Lime Query DSL
11
- *
12
- * These types represent the structure of Lime Query as defined in:
13
- * - lime-core/lime_query/schema.py
14
- * - lime-core/lime_filter/schema.py
15
- */
16
- /**
17
- * Available operators with display metadata
18
- */
19
- const LIME_QUERY_OPERATORS = [
20
- { value: '=', label: 'Equals', icon: 'equals' },
21
- { value: '!=', label: 'Not Equals', icon: 'not-equal' },
22
- {
23
- value: '>',
24
- label: 'Greater Than',
25
- icon: 'greater-than',
26
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
27
- },
28
- {
29
- value: '>=',
30
- label: 'Greater or Equal',
31
- icon: 'greater-or-equal',
32
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
33
- },
34
- {
35
- value: '<',
36
- label: 'Less Than',
37
- icon: 'less-than',
38
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
39
- },
40
- {
41
- value: '<=',
42
- label: 'Less or Equal',
43
- icon: 'less-or-equal',
44
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
45
- },
46
- { value: 'IN', label: 'In List', icon: 'list' },
47
- {
48
- value: '?',
49
- label: 'Contains',
50
- icon: '-lime-filter-contain',
51
- applicableTypes: ['string', 'text'],
52
- },
53
- {
54
- value: '=?',
55
- label: 'Begins With',
56
- icon: '-lime-filter-begin',
57
- applicableTypes: ['string', 'text'],
58
- },
59
- {
60
- value: '=$',
61
- label: 'Ends With',
62
- icon: '-lime-filter-end',
63
- applicableTypes: ['string', 'text'],
64
- },
65
- ];
66
-
67
- /**
68
- * Validate and convert a FilterExpression (comparison filter)
69
- * @param filter
70
- */
71
- function validateAndConvertFilterExpression(filter) {
72
- // Validate required properties exist
73
- if (!('op' in filter) || !('exp' in filter)) {
74
- throw new Error('Invalid filter: comparison must have key, op, and exp properties');
75
- }
76
- // Validate operator is supported
77
- const supportedOps = LIME_QUERY_OPERATORS.map((o) => o.value);
78
- if (!supportedOps.includes(filter.op)) {
79
- throw new Error(`Unsupported filter operator: ${filter.op}`);
80
- }
81
- // Check for unexpected properties
82
- // Note: 'type' property is allowed for filter references
83
- const knownProps = new Set(['key', 'op', 'exp', 'type']);
84
- const unexpectedProps = Object.keys(filter).filter((k) => !knownProps.has(k));
85
- if (unexpectedProps.length > 0) {
86
- throw new Error(`Unexpected properties in filter comparison: ${unexpectedProps.join(', ')}`);
87
- }
88
- return {
89
- filter_type: 'comparison',
90
- property: filter.key,
91
- operator: filter.op,
92
- value: filter.exp,
93
- };
94
- }
95
- /**
96
- * Validate and convert a FilterGroup (AND/OR/NOT filter)
97
- * @param filter
98
- */
99
- function validateAndConvertFilterGroup(filter) {
100
- // Validate it has 'op' property
101
- if (!('op' in filter)) {
102
- throw new Error('Invalid filter: filter group must have op property');
103
- }
104
- // Validate it has 'exp' property
105
- if (!('exp' in filter)) {
106
- throw new Error('Invalid filter: filter group must have exp property');
107
- }
108
- // Check for unexpected properties in filter groups
109
- const knownGroupProps = new Set(['op', 'exp']);
110
- const unexpectedGroupProps = Object.keys(filter).filter((k) => !knownGroupProps.has(k));
111
- if (unexpectedGroupProps.length > 0) {
112
- throw new Error(`Unexpected properties in filter group: ${unexpectedGroupProps.join(', ')}`);
113
- }
114
- if (filter.op === '!') {
115
- // NOT filter: exp should be a single expression (not array)
116
- if (Array.isArray(filter.exp)) {
117
- throw new TypeError('Invalid NOT filter: exp should be a single expression, not an array');
118
- }
119
- return {
120
- filter_type: 'NOT',
121
- expression: limeQueryToGuiFilter(filter.exp),
122
- };
123
- }
124
- if (filter.op === 'AND') {
125
- // AND filter: exp should be an array
126
- if (!Array.isArray(filter.exp)) {
127
- throw new TypeError('Invalid AND filter: exp must be an array');
128
- }
129
- return {
130
- filter_type: 'AND',
131
- expressions: filter.exp.map(limeQueryToGuiFilter),
132
- };
133
- }
134
- if (filter.op === 'OR') {
135
- // OR filter: exp should be an array
136
- if (!Array.isArray(filter.exp)) {
137
- throw new TypeError('Invalid OR filter: exp must be an array');
138
- }
139
- return {
140
- filter_type: 'OR',
141
- expressions: filter.exp.map(limeQueryToGuiFilter),
142
- };
143
- }
144
- // If we reach here, the operator is unsupported
145
- throw new Error(`Unsupported filter operator: ${filter.op}`);
146
- }
147
- /**
148
- * Convert Lime Query filter to UI filter representation
149
- * Throws errors for unsupported filter structures
150
- * @param filter
151
- */
152
- function limeQueryToGuiFilter(filter) {
153
- if (!filter) {
154
- // Return empty AND instead of missing expression
155
- // This ensures users see the "Add a condition" button
156
- return {
157
- filter_type: 'AND',
158
- expressions: [],
159
- };
160
- }
161
- // Check if it's a FilterExpression (has 'key' property)
162
- if ('key' in filter) {
163
- return validateAndConvertFilterExpression(filter);
164
- }
165
- // It's a FilterGroup
166
- return validateAndConvertFilterGroup(filter);
167
- }
168
-
169
9
  /**
170
10
  * Dynamic filter values and placeholders that are valid in Lime Query
171
11
  */
@@ -413,6 +253,49 @@ function validatePropertySelection(selection, limetypes, limetype, guiModeEnable
413
253
  }
414
254
  return allGuiLimitations;
415
255
  }
256
+ /**
257
+ * Validate a comparison expression (has 'key' property)
258
+ * @param filter
259
+ * @param activeLimetype
260
+ * @param limetypes
261
+ */
262
+ function validateComparisonExpression(filter, activeLimetype, limetypes) {
263
+ // Validate operator
264
+ const allValidOperators = Object.values(index_esm.Zt);
265
+ if (!allValidOperators.includes(filter.op)) {
266
+ throw new Error(`Unsupported filter operator: ${filter.op}`);
267
+ }
268
+ // Validate placeholder
269
+ const result = validatePlaceholder(filter.exp, activeLimetype, limetypes);
270
+ if (!result.valid) {
271
+ throw new Error(`Invalid placeholder in filter '${filter.key}': ${result.error}`);
272
+ }
273
+ }
274
+ /**
275
+ * Validate a group expression (AND/OR/NOT)
276
+ * @param filter
277
+ * @param activeLimetype
278
+ * @param limetypes
279
+ * @param guiModeEnabled
280
+ */
281
+ function validateGroupExpression(filter, activeLimetype, limetypes, guiModeEnabled) {
282
+ // Validate operator
283
+ if (filter.op !== index_esm.Zt.AND &&
284
+ filter.op !== index_esm.Zt.OR &&
285
+ filter.op !== index_esm.Zt.NOT) {
286
+ throw new Error(`Unsupported group operator: ${filter.op}`);
287
+ }
288
+ // Recursively validate children
289
+ if (filter.op === index_esm.Zt.NOT) {
290
+ validateFilterPlaceholders(filter.exp, activeLimetype, limetypes, guiModeEnabled);
291
+ }
292
+ else if (filter.op === index_esm.Zt.AND || filter.op === index_esm.Zt.OR) {
293
+ const expressions = filter.exp;
294
+ for (const expr of expressions) {
295
+ validateFilterPlaceholders(expr, activeLimetype, limetypes, guiModeEnabled);
296
+ }
297
+ }
298
+ }
416
299
  /**
417
300
  * Validate placeholders in a filter expression
418
301
  * @param filter Filter expression to validate
@@ -424,27 +307,12 @@ function validateFilterPlaceholders(filter, activeLimetype, limetypes, guiModeEn
424
307
  if (!filter) {
425
308
  return;
426
309
  }
427
- // Check if it's a FilterExpression (has 'key' property)
428
310
  if ('key' in filter) {
429
- const result = validatePlaceholder(filter.exp, activeLimetype, limetypes);
430
- if (!result.valid) {
431
- throw new Error(`Invalid placeholder in filter '${filter.key}': ${result.error}`);
432
- }
311
+ validateComparisonExpression(filter, activeLimetype, limetypes);
433
312
  return;
434
313
  }
435
- // It's a FilterGroup - recursively validate children
436
314
  if ('exp' in filter) {
437
- if (filter.op === '!') {
438
- // NOT has a single expression
439
- validateFilterPlaceholders(filter.exp, activeLimetype, limetypes, guiModeEnabled);
440
- }
441
- else if (filter.op === 'AND' || filter.op === 'OR') {
442
- // AND/OR have array of expressions
443
- const expressions = filter.exp;
444
- for (const expr of expressions) {
445
- validateFilterPlaceholders(expr, activeLimetype, limetypes, guiModeEnabled);
446
- }
447
- }
315
+ validateGroupExpression(filter, activeLimetype, limetypes, guiModeEnabled);
448
316
  }
449
317
  }
450
318
  /**
@@ -458,7 +326,6 @@ function validateFilterPlaceholders(filter, activeLimetype, limetypes, guiModeEn
458
326
  function validateLimeQueryFilterInternal(filter, activeLimetype, limetypes, guiModeEnabled) {
459
327
  const errors = [];
460
328
  try {
461
- limeQueryToGuiFilter(filter);
462
329
  validateFilterPlaceholders(filter, activeLimetype, limetypes, guiModeEnabled);
463
330
  }
464
331
  catch (error) {
@@ -466,6 +333,113 @@ function validateLimeQueryFilterInternal(filter, activeLimetype, limetypes, guiM
466
333
  }
467
334
  return errors;
468
335
  }
336
+ /**
337
+ * Validate orderBy specification
338
+ * @param orderBy Array of orderBy items to validate
339
+ * @param limetypes Record of all available limetypes
340
+ * @param limetype The limetype for this Lime Query
341
+ * @returns Array of validation error messages
342
+ */
343
+ function validateOrderBy(orderBy, limetypes, limetype) {
344
+ const errors = [];
345
+ if (!Array.isArray(orderBy)) {
346
+ errors.push('orderBy must be an array');
347
+ return errors;
348
+ }
349
+ if (!limetype || !limetypes[limetype]) {
350
+ // Can't validate property paths without limetype
351
+ return errors;
352
+ }
353
+ for (const [index, item] of orderBy.entries()) {
354
+ const itemErrors = validateOrderByItem(item, index, limetypes, limetype);
355
+ errors.push(...itemErrors);
356
+ }
357
+ return errors;
358
+ }
359
+ /**
360
+ * Validate a single orderBy item
361
+ * @param item The orderBy item to validate
362
+ * @param index The index of the item in the array (for error messages)
363
+ * @param limetypes Record of all available limetypes
364
+ * @param limetype The limetype for this Lime Query
365
+ * @returns Array of validation error messages for this item
366
+ */
367
+ function validateOrderByItem(item, index, limetypes, limetype) {
368
+ const errors = [];
369
+ const objectError = validateOrderByItemIsObject(item, index);
370
+ if (objectError) {
371
+ return [objectError];
372
+ }
373
+ const keys = Object.keys(item);
374
+ const keyError = validateOrderByItemHasSingleKey(keys, index);
375
+ if (keyError) {
376
+ return [keyError];
377
+ }
378
+ const propertyPath = keys[0];
379
+ const direction = item[propertyPath];
380
+ const directionError = validateOrderByDirection(direction, index);
381
+ if (directionError) {
382
+ errors.push(directionError);
383
+ }
384
+ const pathError = validateOrderByPropertyPath(propertyPath, limetypes, limetype, index);
385
+ if (pathError) {
386
+ errors.push(pathError);
387
+ }
388
+ return errors;
389
+ }
390
+ /**
391
+ * Validate that the orderBy item is an object
392
+ * @param item
393
+ * @param index
394
+ */
395
+ function validateOrderByItemIsObject(item, index) {
396
+ if (typeof item !== 'object' || item === null) {
397
+ return `orderBy[${index}] must be an object`;
398
+ }
399
+ return null;
400
+ }
401
+ /**
402
+ * Validate that the orderBy item has exactly one property key
403
+ * @param keys
404
+ * @param index
405
+ */
406
+ function validateOrderByItemHasSingleKey(keys, index) {
407
+ if (keys.length === 0) {
408
+ return `orderBy[${index}] must have a property path`;
409
+ }
410
+ if (keys.length > 1) {
411
+ return `orderBy[${index}] must have exactly one property, got ${keys.length}`;
412
+ }
413
+ return null;
414
+ }
415
+ /**
416
+ * Validate that the sort direction is either ASC or DESC
417
+ * @param direction
418
+ * @param index
419
+ */
420
+ function validateOrderByDirection(direction, index) {
421
+ if (direction !== 'ASC' && direction !== 'DESC') {
422
+ return `orderBy[${index}]: direction must be 'ASC' or 'DESC', got '${direction}'`;
423
+ }
424
+ return null;
425
+ }
426
+ /**
427
+ * Validate that the property path exists on the limetype
428
+ * @param propertyPath
429
+ * @param limetypes
430
+ * @param limetype
431
+ * @param index
432
+ */
433
+ function validateOrderByPropertyPath(propertyPath, limetypes, limetype, index) {
434
+ if (!propertyPath || propertyPath === '') {
435
+ return null;
436
+ }
437
+ const property = propertyResolution.getPropertyFromPath(limetypes, limetype, propertyPath);
438
+ if (!property) {
439
+ return `orderBy[${index}]: property path '${propertyPath}' does not exist on limetype '${limetype}'`;
440
+ }
441
+ return null;
442
+ }
469
443
  /**
470
444
  * Validate Lime Query response format and collect errors/limitations
471
445
  * @param responseFormat The response format to validate
@@ -515,14 +489,14 @@ function isLimeQuerySupported(limeQuery, limetypes, activeLimetype, guiModeEnabl
515
489
  if (limeQuery.offset !== undefined && !limeQuery.orderBy) {
516
490
  validationErrors.push('offset requires orderBy to be specified');
517
491
  }
492
+ // Validate orderBy
493
+ if (limeQuery.orderBy) {
494
+ const orderByErrors = validateOrderBy(limeQuery.orderBy, limetypes, limeQuery.limetype);
495
+ validationErrors.push(...orderByErrors);
496
+ }
518
497
  // Check for GUI-unsupported top-level properties
519
- if (guiModeEnabled) {
520
- if (limeQuery.orderBy) {
521
- guiLimitations.push('orderBy is not yet supported in GUI mode');
522
- }
523
- if (limeQuery.offset !== undefined) {
524
- guiLimitations.push('offset is not yet supported in GUI mode');
525
- }
498
+ if (guiModeEnabled && limeQuery.offset !== undefined) {
499
+ guiLimitations.push('offset is not yet supported in GUI mode');
526
500
  }
527
501
  // Validate filter
528
502
  if (limeQuery.filter) {
@@ -543,7 +517,7 @@ function isLimeQuerySupported(limeQuery, limetypes, activeLimetype, guiModeEnabl
543
517
  };
544
518
  }
545
519
 
546
- const limeQueryBuilderCss = ":host(limebb-lime-lime-query-builder){display:block;width:100%}.lime-query-builder{display:flex;flex-direction:column;gap:2rem}.mode-controls{display:flex;align-items:center;gap:0.5rem;padding:0.5rem}.mode-switch{display:flex;align-items:center;gap:0.5rem}.mode-switch limel-button{min-width:5rem}.mode-switch limel-helper-text{margin-left:1rem;color:rgb(var(--color-red-default))}.gui-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 .gui-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 .gui-limitations strong{display:block;margin-bottom:0.5rem;font-weight:600}.code-editor-container .gui-limitations ul{margin:0;padding-left:1.5rem}.code-editor-container .gui-limitations li{margin:0.25rem 0}.lime-query-builder-label{margin:0;font-size:1.5rem;font-weight:600;color:rgb(var(--contrast-1100))}.limetype-section{display:flex;flex-direction:column}.filter-section,.query-options-section{display:flex;flex-direction:column;gap:1rem}.section-label{margin:0;font-size:1.125rem;font-weight:600;color:rgb(var(--contrast-1000))}.query-options-controls{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:1rem}@media (max-width: 768px){.lime-query-builder{gap:1.5rem}.query-options-controls{grid-template-columns:1fr}}";
520
+ const limeQueryBuilderCss = ":host(limebb-lime-lime-query-builder){display:block;width:100%}.lime-query-builder{display:flex;flex-direction:column;gap:2rem}.mode-controls{display:flex;align-items:center;gap:0.5rem;padding:0.5rem}.mode-switch{display:flex;align-items:center;gap:0.5rem}.mode-switch limel-button{min-width:5rem}.mode-switch limel-helper-text{margin-left:1rem;color:rgb(var(--color-red-default))}.gui-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 .gui-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 .gui-limitations strong{display:block;margin-bottom:0.5rem;font-weight:600}.code-editor-container .gui-limitations ul{margin:0;padding-left:1.5rem}.code-editor-container .gui-limitations li{margin:0.25rem 0}.lime-query-builder-label{margin:0;font-size:1.5rem;font-weight:600;color:rgb(var(--contrast-1100))}.limetype-section{display:flex;flex-direction:column}.filter-section,.query-options-section{display:flex;flex-direction:column;gap:1rem}.section-label{margin:0;font-size:1.125rem;font-weight:600;color:rgb(var(--contrast-1000))}.query-options-controls{display:flex;flex-direction:column;gap:1rem}@media (max-width: 768px){.lime-query-builder{gap:1.5rem}}";
547
521
  const LimebbLimeQueryBuilderStyle0 = limeQueryBuilderCss;
548
522
 
549
523
  var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -593,6 +567,11 @@ const LimeQueryBuilder = class {
593
567
  this.limit = value ? Number.parseInt(value, 10) : undefined;
594
568
  this.emitChange();
595
569
  };
570
+ this.handleOrderByChange = (event) => {
571
+ event.stopPropagation();
572
+ this.orderBy = event.detail;
573
+ this.emitChange();
574
+ };
596
575
  this.switchToGui = () => {
597
576
  // Validate JSON before switching
598
577
  try {
@@ -608,6 +587,7 @@ const LimeQueryBuilder = class {
608
587
  this.filter = parsed.filter;
609
588
  this.internalResponseFormat = parsed.responseFormat;
610
589
  this.limit = parsed.limit;
590
+ this.orderBy = parsed.orderBy;
611
591
  this.mode = 'gui';
612
592
  this.change.emit(parsed);
613
593
  }
@@ -649,6 +629,7 @@ const LimeQueryBuilder = class {
649
629
  this.filter = this.value.filter;
650
630
  this.internalResponseFormat = this.value.responseFormat;
651
631
  this.limit = this.value.limit;
632
+ this.orderBy = this.value.orderBy;
652
633
  }
653
634
  // Initialize code value from prop
654
635
  this.updateCodeValue();
@@ -661,7 +642,7 @@ const LimeQueryBuilder = class {
661
642
  render() {
662
643
  const guiSupported = this.checkGuiSupport();
663
644
  const showCodeMode = !this.guiModeEnabled || this.mode === 'code';
664
- return (index.h("div", { key: '0b4d2bb5b4d503a775d8d3215e1e4c74fdb1eceb', class: "lime-query-builder" }, this.renderLabel(), this.renderModeControls(guiSupported), showCodeMode
645
+ return (index.h("div", { key: 'f51ae0459c1c7f482f3a790abb4cc3bd60b83e70', class: "lime-query-builder" }, this.renderLabel(), this.renderModeControls(guiSupported), showCodeMode
665
646
  ? this.renderCodeMode(guiSupported)
666
647
  : this.renderGuiMode()));
667
648
  }
@@ -673,27 +654,16 @@ const LimeQueryBuilder = class {
673
654
  if (!this.limetype) {
674
655
  return;
675
656
  }
676
- // Use internal state, then default to returning just _id
677
- const responseFormat = this.internalResponseFormat || {
678
- object: {
679
- _id: null,
680
- },
681
- };
682
- const limeQuery = {
683
- limetype: this.limetype,
684
- responseFormat: responseFormat,
685
- filter: this.filter,
686
- };
687
- if (this.limit !== undefined && this.limit > 0) {
688
- limeQuery.limit = this.limit;
689
- }
690
- this.change.emit(limeQuery);
657
+ this.change.emit(this.buildLimeQuery());
691
658
  }
692
659
  updateCodeValue() {
693
660
  if (!this.limetype) {
694
661
  this.codeValue = JSON.stringify(this.value || {}, null, 2);
695
662
  return;
696
663
  }
664
+ this.codeValue = JSON.stringify(this.buildLimeQuery(), null, 2);
665
+ }
666
+ buildLimeQuery() {
697
667
  // Use internal state, then default to returning just _id
698
668
  const responseFormat = this.internalResponseFormat || {
699
669
  object: {
@@ -708,7 +678,10 @@ const LimeQueryBuilder = class {
708
678
  if (this.limit !== undefined && this.limit > 0) {
709
679
  limeQuery.limit = this.limit;
710
680
  }
711
- this.codeValue = JSON.stringify(limeQuery, null, 2);
681
+ if (this.orderBy && this.orderBy.length > 0) {
682
+ limeQuery.orderBy = this.orderBy;
683
+ }
684
+ return limeQuery;
712
685
  }
713
686
  checkGuiSupport() {
714
687
  if (!this.limetypes) {
@@ -793,7 +766,7 @@ const LimeQueryBuilder = class {
793
766
  if (!this.limetype) {
794
767
  return;
795
768
  }
796
- return (index.h("div", { class: "query-options-section" }, index.h("h4", { class: "section-label" }, "Query Options"), index.h("div", { class: "query-options-controls" }, index.h("limel-input-field", { label: "Limit", type: "number", value: ((_a = this.limit) === null || _a === void 0 ? void 0 : _a.toString()) || '', placeholder: "No limit", helperText: "Maximum number of results", onChange: this.handleLimitChange }))));
769
+ return (index.h("div", { class: "query-options-section" }, index.h("h4", { class: "section-label" }, "Query Options"), index.h("div", { class: "query-options-controls" }, index.h("limel-input-field", { label: "Limit", type: "number", value: ((_a = this.limit) === null || _a === void 0 ? void 0 : _a.toString()) || '', placeholder: "No limit", helperText: "Maximum number of results", onChange: this.handleLimitChange }), index.h("limebb-lime-query-order-by-editor", { platform: this.platform, context: this.context, limetype: this.limetype, value: this.orderBy, onChange: this.handleOrderByChange }))));
797
770
  }
798
771
  renderGuiMode() {
799
772
  return (index.h("div", { class: "gui-mode" }, this.renderLimetypeSection(), this.renderResponseFormatSection(), this.renderFilterSection(), this.renderQueryOptionsSection()));