@limetech/lime-crm-building-blocks 1.99.0 → 1.100.1

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 (106) 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 +52 -216
  4. package/dist/cjs/{limebb-limetype-field_2.cjs.entry.js → limebb-lime-query-filter-builder_3.cjs.entry.js} +72 -1
  5. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +1 -1
  6. package/dist/cjs/{limebb-lime-query-filter-group_4.cjs.entry.js → limebb-lime-query-filter-group_3.cjs.entry.js} +5 -231
  7. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  8. package/dist/cjs/limebb-locale-picker.cjs.entry.js +1 -1
  9. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  10. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
  11. package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
  12. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  13. package/dist/cjs/limebb-property-selector.cjs.entry.js +234 -0
  14. package/dist/cjs/limebb-text-editor.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  16. package/dist/cjs/loader.cjs.js +1 -1
  17. package/dist/collection/collection-manifest.json +1 -2
  18. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-builder.css +5 -0
  19. package/dist/collection/components/lime-query-builder/expressions/{lime-query-filter-and.js → lime-query-filter-builder.js} +59 -83
  20. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +1 -1
  21. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +1 -1
  22. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  23. package/dist/collection/components/lime-query-builder/expressions/lime-query-value-input.js +7 -7
  24. package/dist/collection/components/lime-query-builder/lime-query-builder.js +9 -39
  25. package/dist/collection/components/lime-query-builder/lime-query-validation.js +46 -19
  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/limeobject/file-viewer/live-docs-info.js +2 -2
  29. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  30. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  31. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  32. package/dist/collection/components/summary-popover/summary-popover.js +3 -3
  33. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  34. package/dist/collection/components/text-editor/text-editor.js +1 -1
  35. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  36. package/dist/components/lime-query-filter-builder.js +129 -0
  37. package/dist/components/lime-query-filter-comparison.js +1 -1
  38. package/dist/components/lime-query-filter-expression.js +2 -2
  39. package/dist/components/lime-query-value-input.js +2 -2
  40. package/dist/components/limebb-lime-query-builder.js +60 -218
  41. package/dist/components/limebb-lime-query-filter-builder.d.ts +11 -0
  42. package/dist/components/limebb-lime-query-filter-builder.js +6 -0
  43. package/dist/components/limebb-locale-picker.js +1 -1
  44. package/dist/components/limebb-mention-group-counter.js +2 -2
  45. package/dist/components/limebb-percentage-visualizer.js +2 -2
  46. package/dist/components/limebb-text-editor.js +1 -1
  47. package/dist/components/limebb-trend-indicator.js +1 -1
  48. package/dist/components/limetype-field.js +1 -1
  49. package/dist/components/live-docs-info.js +2 -2
  50. package/dist/components/notification-item.js +1 -1
  51. package/dist/components/summary-popover.js +3 -3
  52. package/dist/esm/lime-crm-building-blocks.js +1 -1
  53. package/dist/esm/limebb-lime-query-builder.entry.js +53 -217
  54. package/dist/esm/{limebb-limetype-field_2.entry.js → limebb-lime-query-filter-builder_3.entry.js} +73 -3
  55. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +1 -1
  56. package/dist/esm/{limebb-lime-query-filter-group_4.entry.js → limebb-lime-query-filter-group_3.entry.js} +7 -232
  57. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  58. package/dist/esm/limebb-locale-picker.entry.js +1 -1
  59. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  60. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  61. package/dist/esm/limebb-notification-item.entry.js +1 -1
  62. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  63. package/dist/esm/limebb-property-selector.entry.js +230 -0
  64. package/dist/esm/limebb-text-editor.entry.js +1 -1
  65. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  66. package/dist/esm/loader.js +1 -1
  67. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  68. package/dist/lime-crm-building-blocks/{p-b9b954d9.entry.js → p-1034b4a5.entry.js} +1 -1
  69. package/dist/lime-crm-building-blocks/{p-93cadc1e.entry.js → p-2048ac67.entry.js} +1 -1
  70. package/dist/lime-crm-building-blocks/p-323c49bc.entry.js +1 -0
  71. package/dist/lime-crm-building-blocks/{p-631ca5a5.entry.js → p-58782467.entry.js} +1 -1
  72. package/dist/lime-crm-building-blocks/{p-aa646df7.entry.js → p-6aa216ec.entry.js} +1 -1
  73. package/dist/lime-crm-building-blocks/{p-9cac4de2.entry.js → p-76d81eee.entry.js} +1 -1
  74. package/dist/lime-crm-building-blocks/{p-e8946134.entry.js → p-79b8b09b.entry.js} +1 -1
  75. package/dist/lime-crm-building-blocks/{p-569c86b5.entry.js → p-8581245a.entry.js} +1 -1
  76. package/dist/lime-crm-building-blocks/p-89a6c396.entry.js +1 -0
  77. package/dist/lime-crm-building-blocks/{p-36ea13c0.entry.js → p-8fb2e192.entry.js} +1 -1
  78. package/dist/lime-crm-building-blocks/{p-3122ea05.entry.js → p-b57dafef.entry.js} +1 -1
  79. package/dist/lime-crm-building-blocks/p-f22b66f6.entry.js +1 -0
  80. package/dist/lime-crm-building-blocks/p-f79e354b.entry.js +1 -0
  81. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-builder.d.ts +50 -0
  82. package/dist/types/components/lime-query-builder/expressions/lime-query-value-input.d.ts +2 -3
  83. package/dist/types/components/lime-query-builder/lime-query-builder.d.ts +1 -6
  84. package/dist/types/components/lime-query-builder/lime-query.types.d.ts +0 -72
  85. package/dist/types/components.d.ts +58 -198
  86. package/package.json +1 -1
  87. package/dist/cjs/limebb-lime-query-filter-and.cjs.entry.js +0 -80
  88. package/dist/cjs/limebb-lime-query-filter-or.cjs.entry.js +0 -68
  89. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.css +0 -121
  90. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.css +0 -123
  91. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.js +0 -237
  92. package/dist/collection/components/lime-query-builder/filter-conversion.js +0 -255
  93. package/dist/components/limebb-lime-query-filter-and.d.ts +0 -11
  94. package/dist/components/limebb-lime-query-filter-and.js +0 -135
  95. package/dist/components/limebb-lime-query-filter-or.d.ts +0 -11
  96. package/dist/components/limebb-lime-query-filter-or.js +0 -123
  97. package/dist/esm/limebb-lime-query-filter-and.entry.js +0 -76
  98. package/dist/esm/limebb-lime-query-filter-or.entry.js +0 -64
  99. package/dist/lime-crm-building-blocks/p-03accd53.entry.js +0 -1
  100. package/dist/lime-crm-building-blocks/p-4715210d.entry.js +0 -1
  101. package/dist/lime-crm-building-blocks/p-5f7644b5.entry.js +0 -1
  102. package/dist/lime-crm-building-blocks/p-67dbaa4c.entry.js +0 -1
  103. package/dist/lime-crm-building-blocks/p-91732502.entry.js +0 -1
  104. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-and.d.ts +0 -57
  105. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-or.d.ts +0 -56
  106. package/dist/types/components/lime-query-builder/filter-conversion.d.ts +0 -31
@@ -8,7 +8,7 @@ const appGlobals = require('./app-globals-3a1e7e63.js');
8
8
  const defineCustomElements = async (win, options) => {
9
9
  if (typeof window === 'undefined') return undefined;
10
10
  await appGlobals.globalScripts();
11
- 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-limetype-field_2.cjs\",[[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-kanban-item.cjs\",[[1,\"limebb-kanban-item\",{\"platform\":[16],\"context\":[16],\"item\":[16]}]]],[\"limebb-lime-query-filter-group_4.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-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-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-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]}]]],[\"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]}]]]]"), options);
11
+ 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-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-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_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-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);
12
12
  };
13
13
 
14
14
  exports.setNonce = index.setNonce;
@@ -30,12 +30,11 @@
30
30
  "components/lime-query-builder/lime-query-builder.js",
31
31
  "components/lime-query-builder/response-format-editor.js",
32
32
  "components/lime-query-builder/response-format-item.js",
33
- "components/lime-query-builder/expressions/lime-query-filter-and.js",
33
+ "components/lime-query-builder/expressions/lime-query-filter-builder.js",
34
34
  "components/lime-query-builder/expressions/lime-query-filter-comparison.js",
35
35
  "components/lime-query-builder/expressions/lime-query-filter-expression.js",
36
36
  "components/lime-query-builder/expressions/lime-query-filter-group.js",
37
37
  "components/lime-query-builder/expressions/lime-query-filter-not.js",
38
- "components/lime-query-builder/expressions/lime-query-filter-or.js",
39
38
  "components/lime-query-builder/expressions/lime-query-value-input.js",
40
39
  "components/lime-query-builder/limetype-field/limetype-field.js",
41
40
  "components/lime-query-builder/property-selector/property-selector.js",
@@ -0,0 +1,5 @@
1
+ .expression-with-promotion {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 1rem;
5
+ }
@@ -1,28 +1,37 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { Operator, } from "@limetech/lime-web-components";
3
3
  /**
4
- * Lime Query Filter AND Component
4
+ * Lime Query Filter Builder
5
5
  *
6
- * Renders a group of filter expressions where **all conditions must be true**.
7
- * Users can add multiple child expressions, and a record must match all of them
8
- * to be included in the result set.
6
+ * Entry component for building Lime Query filter expressions.
7
+ * This component wraps the expression router and adds promotion logic
8
+ * for handling Add buttons and expression structure.
9
9
  *
10
- * This component displays:
11
- * - A header with "All of these conditions are true" when there are multiple conditions
12
- * - A list of child expressions (which can be comparisons or nested AND/OR/NOT groups)
13
- * - An "Add another condition" button to add more expressions
14
- *
15
- * Clicking the trash icon on a child expression removes it from the AND group.
10
+ * Unlike the expression router (which is pure routing), this component
11
+ * contains business logic for promoting expressions and managing the
12
+ * filter structure.
16
13
  *
17
14
  * @private
18
15
  */
19
- export class LimeQueryFilterAndComponent {
16
+ export class LimeQueryFilterBuilderComponent {
20
17
  constructor() {
21
- this.renderChildExpression = (expression, childIndex) => (h("li", null, h("limebb-lime-query-filter-expression", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: expression, onExpressionChange: this.handleExpressionChange(childIndex) })));
22
- this.handleAddChildExpression = () => {
23
- const newOrGroup = {
24
- op: Operator.OR,
18
+ this.handleAddFirstCondition = () => {
19
+ const newExpression = {
20
+ key: '',
21
+ op: Operator.EQUALS,
22
+ exp: '',
23
+ };
24
+ this.expressionChange.emit(newExpression);
25
+ };
26
+ this.handlePromoteAndAdd = () => {
27
+ if (!this.expression) {
28
+ return;
29
+ }
30
+ // Wrap current expression in AND and add a new comparison
31
+ const newExpression = {
32
+ op: Operator.AND,
25
33
  exp: [
34
+ this.expression,
26
35
  {
27
36
  key: '',
28
37
  op: Operator.EQUALS,
@@ -30,66 +39,52 @@ export class LimeQueryFilterAndComponent {
30
39
  },
31
40
  ],
32
41
  };
33
- const updatedExpressionsList = [
34
- ...this.expression.exp,
35
- newOrGroup,
36
- ];
37
- this.expressionChange.emit({
38
- op: Operator.AND,
39
- exp: updatedExpressionsList,
40
- });
42
+ this.expressionChange.emit(newExpression);
41
43
  };
42
- this.handleExpressionChange = (updatedChildIndex) => (event) => {
44
+ this.handleExpressionChange = (event) => {
43
45
  var _a;
44
46
  event.stopPropagation();
45
- const updatedExpression = (_a = event.detail) !== null && _a !== void 0 ? _a : undefined;
46
- const expressions = [...this.expression.exp];
47
- if (updatedExpression === undefined) {
48
- expressions.splice(updatedChildIndex, 1);
49
- }
50
- else {
51
- expressions[updatedChildIndex] = updatedExpression;
52
- }
53
- if (expressions.length === 0) {
54
- this.expressionChange.emit(undefined);
55
- return;
56
- }
57
- if (expressions.length === 1) {
58
- this.expressionChange.emit(expressions[0]);
59
- return;
60
- }
61
- this.expressionChange.emit({
62
- op: Operator.AND,
63
- exp: expressions,
64
- });
47
+ this.expressionChange.emit((_a = event.detail) !== null && _a !== void 0 ? _a : undefined);
65
48
  };
66
49
  }
67
50
  render() {
68
- let subheading = 'All of these conditions are true';
69
- if (this.expression.exp.length <= 1) {
70
- subheading = '';
51
+ if (!this.expression) {
52
+ return this.renderEmptyState();
71
53
  }
72
- return (h("div", { key: 'f07c53808d6be8d846f5a45223abb5c94b1a0b16', class: "expression" }, (this.label || subheading) && (h("limel-header", { key: '229f0d58ff15743fbb12da53ad9c593bfba801d1', heading: this.label, subheading: subheading })), h("ul", { key: '2600c2bee2b958036ea606141bcfcac0e277114c' }, this.expression.exp.map(this.renderChildExpression), h("li", { key: '6395e605ee8f454a820ac73601da89b19686187a', class: "add-button" }, this.renderAddChildExpression()))));
73
- }
74
- renderAddChildExpression() {
75
- return (h("limel-button", { label: this.getAddButtonLabel(), icon: "plus_math", onClick: this.handleAddChildExpression }));
54
+ // Check if we need to show promotion UI (comparison or NOT)
55
+ if (this.needsPromotion()) {
56
+ return this.renderWithPromotionButton();
57
+ }
58
+ // AND/OR groups handle their own Add buttons
59
+ return (h("limebb-lime-query-filter-expression", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression, onExpressionChange: this.handleExpressionChange }));
76
60
  }
77
- getAddButtonLabel() {
78
- if (this.expression.exp.length === 0) {
79
- return 'Add a condition';
61
+ needsPromotion() {
62
+ if (!this.expression) {
63
+ return false;
64
+ }
65
+ // Basic comparison needs promotion
66
+ if ('key' in this.expression) {
67
+ return true;
80
68
  }
81
- return 'Add another condition';
69
+ // NOT needs promotion
70
+ return this.expression.op === Operator.NOT;
71
+ }
72
+ renderEmptyState() {
73
+ return (h("limel-button", { label: "Add a condition", icon: "plus_math", onClick: this.handleAddFirstCondition }));
82
74
  }
83
- static get is() { return "limebb-lime-query-filter-and"; }
75
+ renderWithPromotionButton() {
76
+ return (h("div", { class: "expression-with-promotion" }, h("limebb-lime-query-filter-expression", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression, onExpressionChange: this.handleExpressionChange }), h("limel-button", { label: "Add another condition", icon: "plus_math", onClick: this.handlePromoteAndAdd })));
77
+ }
78
+ static get is() { return "limebb-lime-query-filter-builder"; }
84
79
  static get encapsulation() { return "shadow"; }
85
80
  static get originalStyleUrls() {
86
81
  return {
87
- "$": ["lime-query-filter-and.scss"]
82
+ "$": ["lime-query-filter-builder.scss"]
88
83
  };
89
84
  }
90
85
  static get styleUrls() {
91
86
  return {
92
- "$": ["lime-query-filter-and.css"]
87
+ "$": ["lime-query-filter-builder.css"]
93
88
  };
94
89
  }
95
90
  static get properties() {
@@ -140,25 +135,6 @@ export class LimeQueryFilterAndComponent {
140
135
  "getter": false,
141
136
  "setter": false
142
137
  },
143
- "label": {
144
- "type": "string",
145
- "mutable": false,
146
- "complexType": {
147
- "original": "string",
148
- "resolved": "string",
149
- "references": {}
150
- },
151
- "required": false,
152
- "optional": false,
153
- "docs": {
154
- "tags": [],
155
- "text": "Optional label for the AND group"
156
- },
157
- "getter": false,
158
- "setter": false,
159
- "attribute": "label",
160
- "reflect": false
161
- },
162
138
  "limetype": {
163
139
  "type": "string",
164
140
  "mutable": false,
@@ -201,13 +177,13 @@ export class LimeQueryFilterAndComponent {
201
177
  "type": "unknown",
202
178
  "mutable": false,
203
179
  "complexType": {
204
- "original": "AndOrExpression",
205
- "resolved": "{ op: Operator.AND | Operator.OR; exp: Expression[]; }",
180
+ "original": "Expression | undefined",
181
+ "resolved": "undefined | { key: string; op: BasicOperator; exp: ExpressionValue; } | { key: string; op: Operator.IN; exp: ExpressionValue[]; } | { op: Operator.AND | Operator.OR; exp: Expression[]; } | { op: Operator.NOT; exp: Expression; } | { type: \"filter\"; key: string; op: Operator.IN; exp: string; }",
206
182
  "references": {
207
- "AndOrExpression": {
183
+ "Expression": {
208
184
  "location": "import",
209
185
  "path": "@limetech/lime-web-components",
210
- "id": "node_modules::AndOrExpression"
186
+ "id": "node_modules::Expression"
211
187
  }
212
188
  }
213
189
  },
@@ -215,7 +191,7 @@ export class LimeQueryFilterAndComponent {
215
191
  "optional": false,
216
192
  "docs": {
217
193
  "tags": [],
218
- "text": "The AND expression containing child expressions"
194
+ "text": "The filter expression to build"
219
195
  },
220
196
  "getter": false,
221
197
  "setter": false
@@ -231,7 +207,7 @@ export class LimeQueryFilterAndComponent {
231
207
  "composed": true,
232
208
  "docs": {
233
209
  "tags": [],
234
- "text": "Emitted when the AND expression changes (expressions added/removed/modified)\nEmits undefined when expression should be removed\nCan emit any Expression type when unwrapping (single child)"
210
+ "text": "Emitted when the filter expression changes\nEmits undefined when expression should be removed"
235
211
  },
236
212
  "complexType": {
237
213
  "original": "Expression | undefined",
@@ -94,7 +94,7 @@ export class LimeQueryFilterComparisonComponent {
94
94
  };
95
95
  }
96
96
  render() {
97
- return (h("div", { key: '668e0f05bdb1fb25ffd652ea650c34e5431a3332', class: "expression" }, this.label && h("limel-header", { key: '5034070b58afe31cf90699dd2a27f884e647f540', heading: this.label }), h("div", { key: '14a2b1270e5e6d7e158e29ebc5f61051e5670e80', class: "expression-container" }, this.renderPropertySelector(), this.renderOperator(), this.renderValueInput(), h("limel-icon-button", { key: 'b69bde6e88c40d2623ef015794db28cec3676c73', class: "remove", icon: "trash", label: "Remove condition", onClick: this.removeExpression }))));
97
+ return (h("div", { key: 'a077c982ced9840beec3e574cd3e2e336cff6071', class: "expression" }, this.label && h("limel-header", { key: 'fbcb5cf515aac2c8e68d29947c7560684f30822c', heading: this.label }), h("div", { key: 'ffea426ea1295ae11aaa3c910f835acbeed24cd9', class: "expression-container" }, this.renderPropertySelector(), this.renderOperator(), this.renderValueInput(), h("limel-icon-button", { key: '20064f9fe42a4dfa71b2e1e2d393d50bbe20e2cb', class: "remove", icon: "trash", label: "Remove condition", onClick: this.removeExpression }))));
98
98
  }
99
99
  renderPropertySelector() {
100
100
  return (h("limebb-property-selector", { platform: this.platform, context: this.context, label: "Property", limetype: this.limetype, value: this.expression.key, required: true, onChange: this.handlePropertyChange }));
@@ -87,7 +87,7 @@ export class LimeQueryFilterGroupComponent {
87
87
  }
88
88
  render() {
89
89
  const subheading = this.getSubheading();
90
- return (h("div", { key: '43a1d99fd896e3ad49dd97594e54bccaf74c3aa0', class: "expression" }, subheading && (h("limel-header", { key: '534eb0a3db2f0194e8a28e2fb071beb545f38458', subheading: subheading, onClick: this.handleToggleOperator, class: "clickable-header" })), h("ul", { key: '9d29d98ab034bf2878e7dc19828bc045dbdd492f' }, this.expression.exp.map(this.renderChildExpression), h("li", { key: '44b266c8aeb390b8a68b3e08a51a0760a6421f93', class: "add-button" }, this.renderAddButton(), this.renderAddGroupButton()))));
90
+ return (h("div", { key: '0ed5a1403d9641926cd6d474910cedf9c7bba89e', class: "expression" }, subheading && (h("limel-header", { key: 'ea88a97df09f0fb5a21bf9afb4745256a611c7f8', subheading: subheading, onClick: this.handleToggleOperator, class: "clickable-header" })), h("ul", { key: 'cfbcdd539e84f79bf1d778e075cd3317d7409647' }, this.expression.exp.map(this.renderChildExpression), h("li", { key: 'ec443459245bf5852920bb4d3e341f2490a7b75b', class: "add-button" }, this.renderAddButton(), this.renderAddGroupButton()))));
91
91
  }
92
92
  getSubheading() {
93
93
  if (this.expression.exp.length <= 1) {
@@ -35,7 +35,7 @@ export class LimeQueryFilterNotComponent {
35
35
  };
36
36
  }
37
37
  render() {
38
- return (h("div", { key: 'f1dfd7fd4ec7dc1873841d1c8b3d2bb6677634fd', class: "expression" }, this.label && h("limel-header", { key: '91e1b754f6e45c70f49bf2a770898a590defaf22', heading: this.label }), h("limebb-lime-query-filter-expression", { key: 'bf42f3c71521a413e5ecc49a8e0d6401b34384a2', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
38
+ return (h("div", { key: '9ab4a6b1e99668a0bcee3e3ba8cbbbe5185222e0', class: "expression" }, this.label && h("limel-header", { key: '85e997b0f96db306dd7a4433da959a74303aacfa', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '14f634e125ee78f2aa70c7537b270a31699ba7c2', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
39
39
  }
40
40
  static get is() { return "limebb-lime-query-filter-not"; }
41
41
  static get encapsulation() { return "shadow"; }
@@ -9,7 +9,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
9
9
  return c > 3 && r && Object.defineProperty(target, key, r), r;
10
10
  };
11
11
  import { h } from "@stencil/core";
12
- import { SelectLimeTypes as Limetypes, } from "@limetech/lime-web-components";
12
+ import { Operator, SelectLimeTypes as Limetypes, } from "@limetech/lime-web-components";
13
13
  import { getPropertyFromPath } from "../property-resolution";
14
14
  /**
15
15
  * Query Value Input Component
@@ -165,7 +165,7 @@ export class LimeQueryValueInput {
165
165
  }
166
166
  renderValueInputByType() {
167
167
  // Special handling for IN operator - always use chip set for arrays
168
- if (this.operator === 'IN') {
168
+ if (this.operator === Operator.IN) {
169
169
  return this.renderMultiValueInput();
170
170
  }
171
171
  const property = this.getProperty();
@@ -365,13 +365,13 @@ export class LimeQueryValueInput {
365
365
  "type": "string",
366
366
  "mutable": false,
367
367
  "complexType": {
368
- "original": "FilterOperator",
369
- "resolved": "\"!=\" | \"<\" | \"<=\" | \"=\" | \"=$\" | \"=?\" | \">\" | \">=\" | \"?\" | \"IN\"",
368
+ "original": "Operator",
369
+ "resolved": "Operator.AND | Operator.BEGINS | Operator.ENDS | Operator.EQUALS | Operator.GREATER | Operator.GREATER_OR_EQUAL | Operator.IN | Operator.LESS | Operator.LESS_OR_EQUAL | Operator.LIKE | Operator.NOT | Operator.NOT_EQUALS | Operator.OR",
370
370
  "references": {
371
- "FilterOperator": {
371
+ "Operator": {
372
372
  "location": "import",
373
- "path": "../lime-query.types",
374
- "id": "src/components/lime-query-builder/lime-query.types.ts::FilterOperator"
373
+ "path": "@limetech/lime-web-components",
374
+ "id": "node_modules::Operator"
375
375
  }
376
376
  }
377
377
  },
@@ -9,7 +9,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
9
9
  return c > 3 && r && Object.defineProperty(target, key, r), r;
10
10
  };
11
11
  import { h } from "@stencil/core";
12
- import { Operator, SelectLimeTypes as Limetypes, } from "@limetech/lime-web-components";
12
+ import { SelectLimeTypes as Limetypes, } from "@limetech/lime-web-components";
13
13
  import { isLimeQuerySupported, } from "./lime-query-validation";
14
14
  /**
15
15
  * Lime Query Builder Component
@@ -37,6 +37,7 @@ import { isLimeQuerySupported, } from "./lime-query-validation";
37
37
  * (e.g., `%activeObject%.company` references the company of the active object).
38
38
  *
39
39
  * @exampleComponent limebb-example-lime-query-builder-basic
40
+ * @exampleComponent limebb-example-lime-query-builder-with-active-limetype
40
41
  * @private
41
42
  */
42
43
  export class LimeQueryBuilder {
@@ -44,18 +45,11 @@ export class LimeQueryBuilder {
44
45
  this.mode = 'gui';
45
46
  this.codeValue = '';
46
47
  this.limetype = '';
47
- this.filter = {
48
- op: Operator.AND,
49
- exp: [],
50
- };
51
48
  this.handleLimetypeChange = (event) => {
52
49
  event.stopPropagation();
53
50
  this.limetype = event.detail;
54
51
  // Reset filter when limetype changes
55
- this.filter = {
56
- op: Operator.AND,
57
- exp: [],
58
- };
52
+ this.filter = undefined;
59
53
  // Reset response format when limetype changes
60
54
  this.internalResponseFormat = {
61
55
  object: {
@@ -65,17 +59,9 @@ export class LimeQueryBuilder {
65
59
  this.emitChange();
66
60
  };
67
61
  this.handleFilterChange = (event) => {
62
+ var _a;
68
63
  event.stopPropagation();
69
- const expression = event.detail;
70
- if (expression === undefined) {
71
- this.filter = {
72
- op: Operator.AND,
73
- exp: [],
74
- };
75
- }
76
- else {
77
- this.filter = expression;
78
- }
64
+ this.filter = (_a = event.detail) !== null && _a !== void 0 ? _a : undefined;
79
65
  this.emitChange();
80
66
  };
81
67
  this.handleResponseFormatChange = (event) => {
@@ -101,7 +87,7 @@ export class LimeQueryBuilder {
101
87
  }
102
88
  // Update internal state from parsed query
103
89
  this.limetype = parsed.limetype || '';
104
- this.filter = this.normalizeFilter(parsed.filter);
90
+ this.filter = parsed.filter;
105
91
  this.internalResponseFormat = parsed.responseFormat;
106
92
  this.limit = parsed.limit;
107
93
  this.mode = 'gui';
@@ -142,7 +128,7 @@ export class LimeQueryBuilder {
142
128
  }
143
129
  if (this.value) {
144
130
  this.limetype = this.value.limetype || '';
145
- this.filter = this.normalizeFilter(this.value.filter);
131
+ this.filter = this.value.filter;
146
132
  this.internalResponseFormat = this.value.responseFormat;
147
133
  this.limit = this.value.limit;
148
134
  }
@@ -157,26 +143,10 @@ export class LimeQueryBuilder {
157
143
  render() {
158
144
  const guiSupported = this.checkGuiSupport();
159
145
  const showCodeMode = !this.guiModeEnabled || this.mode === 'code';
160
- return (h("div", { key: '5ff70a352e3e57ff4c51d44627bd4b5ed367fff4', class: "lime-query-builder" }, this.renderLabel(), this.renderModeControls(guiSupported), showCodeMode
146
+ return (h("div", { key: '0b4d2bb5b4d503a775d8d3215e1e4c74fdb1eceb', class: "lime-query-builder" }, this.renderLabel(), this.renderModeControls(guiSupported), showCodeMode
161
147
  ? this.renderCodeMode(guiSupported)
162
148
  : this.renderGuiMode()));
163
149
  }
164
- /**
165
- * Normalize filter to ensure top-level is an AND group.
166
- * This ensures Add buttons are available in the UI.
167
- * @param filter
168
- */
169
- normalizeFilter(filter) {
170
- if (!filter) {
171
- return { op: Operator.AND, exp: [] };
172
- }
173
- // If it's already an AND at the top level, keep it
174
- if ('op' in filter && filter.op === Operator.AND) {
175
- return filter;
176
- }
177
- // Otherwise wrap in AND
178
- return { op: Operator.AND, exp: [filter] };
179
- }
180
150
  emitChange() {
181
151
  // Only emit in GUI mode
182
152
  if (this.mode === 'code') {
@@ -298,7 +268,7 @@ export class LimeQueryBuilder {
298
268
  if (!this.limetype) {
299
269
  return;
300
270
  }
301
- return (h("div", { class: "filter-section" }, h("h4", { class: "section-label" }, "Filter Conditions"), h("limebb-lime-query-filter-expression", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.filter, onExpressionChange: this.handleFilterChange })));
271
+ return (h("div", { class: "filter-section" }, h("h4", { class: "section-label" }, "Filter Conditions"), h("limebb-lime-query-filter-builder", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.filter, onExpressionChange: this.handleFilterChange })));
302
272
  }
303
273
  renderQueryOptionsSection() {
304
274
  var _a;
@@ -1,5 +1,5 @@
1
+ import { Operator } from "@limetech/lime-web-components";
1
2
  import { getNormalizedProperties } from "./property-resolution";
2
- import { limeQueryToGuiFilter } from "./filter-conversion";
3
3
  import { getPropertyFromPath } from "./property-resolution";
4
4
  /**
5
5
  * Dynamic filter values and placeholders that are valid in Lime Query
@@ -248,6 +248,49 @@ export function validatePropertySelection(selection, limetypes, limetype, guiMod
248
248
  }
249
249
  return allGuiLimitations;
250
250
  }
251
+ /**
252
+ * Validate a comparison expression (has 'key' property)
253
+ * @param filter
254
+ * @param activeLimetype
255
+ * @param limetypes
256
+ */
257
+ function validateComparisonExpression(filter, activeLimetype, limetypes) {
258
+ // Validate operator
259
+ const allValidOperators = Object.values(Operator);
260
+ if (!allValidOperators.includes(filter.op)) {
261
+ throw new Error(`Unsupported filter operator: ${filter.op}`);
262
+ }
263
+ // Validate placeholder
264
+ const result = validatePlaceholder(filter.exp, activeLimetype, limetypes);
265
+ if (!result.valid) {
266
+ throw new Error(`Invalid placeholder in filter '${filter.key}': ${result.error}`);
267
+ }
268
+ }
269
+ /**
270
+ * Validate a group expression (AND/OR/NOT)
271
+ * @param filter
272
+ * @param activeLimetype
273
+ * @param limetypes
274
+ * @param guiModeEnabled
275
+ */
276
+ function validateGroupExpression(filter, activeLimetype, limetypes, guiModeEnabled) {
277
+ // Validate operator
278
+ if (filter.op !== Operator.AND &&
279
+ filter.op !== Operator.OR &&
280
+ filter.op !== Operator.NOT) {
281
+ throw new Error(`Unsupported group operator: ${filter.op}`);
282
+ }
283
+ // Recursively validate children
284
+ if (filter.op === Operator.NOT) {
285
+ validateFilterPlaceholders(filter.exp, activeLimetype, limetypes, guiModeEnabled);
286
+ }
287
+ else if (filter.op === Operator.AND || filter.op === Operator.OR) {
288
+ const expressions = filter.exp;
289
+ for (const expr of expressions) {
290
+ validateFilterPlaceholders(expr, activeLimetype, limetypes, guiModeEnabled);
291
+ }
292
+ }
293
+ }
251
294
  /**
252
295
  * Validate placeholders in a filter expression
253
296
  * @param filter Filter expression to validate
@@ -259,27 +302,12 @@ function validateFilterPlaceholders(filter, activeLimetype, limetypes, guiModeEn
259
302
  if (!filter) {
260
303
  return;
261
304
  }
262
- // Check if it's a FilterExpression (has 'key' property)
263
305
  if ('key' in filter) {
264
- const result = validatePlaceholder(filter.exp, activeLimetype, limetypes);
265
- if (!result.valid) {
266
- throw new Error(`Invalid placeholder in filter '${filter.key}': ${result.error}`);
267
- }
306
+ validateComparisonExpression(filter, activeLimetype, limetypes);
268
307
  return;
269
308
  }
270
- // It's a FilterGroup - recursively validate children
271
309
  if ('exp' in filter) {
272
- if (filter.op === '!') {
273
- // NOT has a single expression
274
- validateFilterPlaceholders(filter.exp, activeLimetype, limetypes, guiModeEnabled);
275
- }
276
- else if (filter.op === 'AND' || filter.op === 'OR') {
277
- // AND/OR have array of expressions
278
- const expressions = filter.exp;
279
- for (const expr of expressions) {
280
- validateFilterPlaceholders(expr, activeLimetype, limetypes, guiModeEnabled);
281
- }
282
- }
310
+ validateGroupExpression(filter, activeLimetype, limetypes, guiModeEnabled);
283
311
  }
284
312
  }
285
313
  /**
@@ -293,7 +321,6 @@ function validateFilterPlaceholders(filter, activeLimetype, limetypes, guiModeEn
293
321
  function validateLimeQueryFilterInternal(filter, activeLimetype, limetypes, guiModeEnabled) {
294
322
  const errors = [];
295
323
  try {
296
- limeQueryToGuiFilter(filter);
297
324
  validateFilterPlaceholders(filter, activeLimetype, limetypes, guiModeEnabled);
298
325
  }
299
326
  catch (error) {