@limetech/lime-crm-building-blocks 1.100.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 (101) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  3. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +45 -178
  4. package/dist/cjs/limebb-lime-query-filter-builder_3.cjs.entry.js +1 -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-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 +0 -2
  18. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +1 -1
  19. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +1 -1
  20. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  21. package/dist/collection/components/lime-query-builder/expressions/lime-query-value-input.js +7 -7
  22. package/dist/collection/components/lime-query-builder/lime-query-validation.js +46 -19
  23. package/dist/collection/components/lime-query-builder/lime-query.types.js +1 -57
  24. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  25. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  26. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  27. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  28. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  29. package/dist/collection/components/summary-popover/summary-popover.js +3 -3
  30. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  31. package/dist/collection/components/text-editor/text-editor.js +1 -1
  32. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  33. package/dist/components/lime-query-filter-comparison.js +1 -1
  34. package/dist/components/lime-query-filter-expression.js +2 -2
  35. package/dist/components/lime-query-value-input.js +2 -2
  36. package/dist/components/limebb-lime-query-builder.js +46 -179
  37. package/dist/components/limebb-locale-picker.js +1 -1
  38. package/dist/components/limebb-mention-group-counter.js +2 -2
  39. package/dist/components/limebb-percentage-visualizer.js +2 -2
  40. package/dist/components/limebb-text-editor.js +1 -1
  41. package/dist/components/limebb-trend-indicator.js +1 -1
  42. package/dist/components/limetype-field.js +1 -1
  43. package/dist/components/live-docs-info.js +2 -2
  44. package/dist/components/notification-item.js +1 -1
  45. package/dist/components/summary-popover.js +3 -3
  46. package/dist/esm/lime-crm-building-blocks.js +1 -1
  47. package/dist/esm/limebb-lime-query-builder.entry.js +46 -179
  48. package/dist/esm/limebb-lime-query-filter-builder_3.entry.js +1 -1
  49. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +142 -0
  50. package/dist/esm/{limebb-lime-query-filter-comparison_5.entry.js → limebb-lime-query-filter-group_3.entry.js} +7 -333
  51. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  52. package/dist/esm/limebb-locale-picker.entry.js +1 -1
  53. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  54. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  55. package/dist/esm/limebb-notification-item.entry.js +1 -1
  56. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  57. package/dist/esm/limebb-property-selector.entry.js +230 -0
  58. package/dist/esm/limebb-text-editor.entry.js +1 -1
  59. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  60. package/dist/esm/loader.js +1 -1
  61. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  62. package/dist/lime-crm-building-blocks/{p-b9b954d9.entry.js → p-1034b4a5.entry.js} +1 -1
  63. package/dist/lime-crm-building-blocks/{p-93cadc1e.entry.js → p-2048ac67.entry.js} +1 -1
  64. package/dist/lime-crm-building-blocks/{p-6d119dab.entry.js → p-323c49bc.entry.js} +1 -1
  65. package/dist/lime-crm-building-blocks/{p-631ca5a5.entry.js → p-58782467.entry.js} +1 -1
  66. package/dist/lime-crm-building-blocks/p-6aa216ec.entry.js +1 -0
  67. package/dist/lime-crm-building-blocks/{p-9cac4de2.entry.js → p-76d81eee.entry.js} +1 -1
  68. package/dist/lime-crm-building-blocks/{p-e8946134.entry.js → p-79b8b09b.entry.js} +1 -1
  69. package/dist/lime-crm-building-blocks/{p-569c86b5.entry.js → p-8581245a.entry.js} +1 -1
  70. package/dist/lime-crm-building-blocks/p-89a6c396.entry.js +1 -0
  71. package/dist/lime-crm-building-blocks/{p-36ea13c0.entry.js → p-8fb2e192.entry.js} +1 -1
  72. package/dist/lime-crm-building-blocks/{p-3122ea05.entry.js → p-b57dafef.entry.js} +1 -1
  73. package/dist/lime-crm-building-blocks/p-f22b66f6.entry.js +1 -0
  74. package/dist/lime-crm-building-blocks/p-f79e354b.entry.js +1 -0
  75. package/dist/types/components/lime-query-builder/expressions/lime-query-value-input.d.ts +2 -3
  76. package/dist/types/components/lime-query-builder/lime-query.types.d.ts +0 -72
  77. package/dist/types/components.d.ts +6 -262
  78. package/package.json +1 -1
  79. package/dist/cjs/limebb-lime-query-filter-and.cjs.entry.js +0 -80
  80. package/dist/cjs/limebb-lime-query-filter-expression.cjs.entry.js +0 -45
  81. package/dist/cjs/limebb-lime-query-filter-or.cjs.entry.js +0 -68
  82. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.css +0 -121
  83. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.js +0 -249
  84. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.css +0 -123
  85. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.js +0 -237
  86. package/dist/collection/components/lime-query-builder/filter-conversion.js +0 -255
  87. package/dist/components/limebb-lime-query-filter-and.d.ts +0 -11
  88. package/dist/components/limebb-lime-query-filter-and.js +0 -135
  89. package/dist/components/limebb-lime-query-filter-or.d.ts +0 -11
  90. package/dist/components/limebb-lime-query-filter-or.js +0 -123
  91. package/dist/esm/limebb-lime-query-filter-and.entry.js +0 -76
  92. package/dist/esm/limebb-lime-query-filter-expression.entry.js +0 -41
  93. package/dist/esm/limebb-lime-query-filter-or.entry.js +0 -64
  94. package/dist/lime-crm-building-blocks/p-24aeb928.entry.js +0 -1
  95. package/dist/lime-crm-building-blocks/p-422f6d51.entry.js +0 -1
  96. package/dist/lime-crm-building-blocks/p-67dbaa4c.entry.js +0 -1
  97. package/dist/lime-crm-building-blocks/p-91732502.entry.js +0 -1
  98. package/dist/lime-crm-building-blocks/p-b198194a.entry.js +0 -1
  99. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-and.d.ts +0 -57
  100. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-or.d.ts +0 -56
  101. package/dist/types/components/lime-query-builder/filter-conversion.d.ts +0 -31
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [1.100.1](https://github.com/Lundalogik/lime-crm-building-blocks/compare/v1.100.0...v1.100.1) (2025-11-07)
2
+
3
+ ### Bug Fixes
4
+
5
+
6
+ * **lime-query-builder:** add operator validation ([5abd88c](https://github.com/Lundalogik/lime-crm-building-blocks/commit/5abd88cc8e80ba1a8ccfb845c06ceca9b9fdc2e7))
7
+
1
8
  ## [1.100.0](https://github.com/Lundalogik/lime-crm-building-blocks/compare/v1.99.0...v1.100.0) (2025-11-07)
2
9
 
3
10
  ### 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]}]]],[\"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);
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) {
@@ -224,7 +224,7 @@ const LimetypeField = class {
224
224
  value: '',
225
225
  };
226
226
  options.unshift(emptyOption);
227
- return (index.h("limel-select", { key: 'cf27b83c4751838e85436af443a275b3d7c9dfee', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
227
+ return (index.h("limel-select", { key: 'fd9522c5df730f65a5ac57140bca6c05c5acd63d', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
228
228
  }
229
229
  componentWillRender() {
230
230
  this.updatePropertyFields(this.value || '');
@@ -0,0 +1,147 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-ff255a0d.js');
6
+ const index_esm = require('./index.esm-d785eb6e.js');
7
+
8
+ const limeQueryFilterComparisonCss = ".expression-container{display:flex;flex-direction:row;align-items:flex-start;gap:1rem;flex-wrap:wrap}.expression-container>*{flex-grow:2;width:30%;max-width:calc(100% - 3.25rem)}.expression-container>.operator{flex-grow:1;width:calc(30% + 1rem);min-width:4rem}.expression-container>.remove{flex-grow:0;width:auto;margin-left:auto}@media (max-width: 768px){.expression-container{flex-direction:column}.expression-container>*{width:100%;max-width:100%}.expression-container>.operator{width:100%}.expression-container>.remove{margin-left:0;align-self:flex-end}}";
9
+ const LimebbLimeQueryFilterComparisonStyle0 = limeQueryFilterComparisonCss;
10
+
11
+ const LIME_QUERY_OPERATORS = [
12
+ { value: index_esm.Zt.EQUALS, label: 'Equals', icon: 'equals' },
13
+ { value: index_esm.Zt.NOT_EQUALS, label: 'Not Equals', icon: 'not-equal' },
14
+ {
15
+ value: index_esm.Zt.GREATER,
16
+ label: 'Greater Than',
17
+ icon: 'greater-than',
18
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
19
+ },
20
+ {
21
+ value: index_esm.Zt.GREATER_OR_EQUAL,
22
+ label: 'Greater or Equal',
23
+ icon: 'greater-or-equal',
24
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
25
+ },
26
+ {
27
+ value: index_esm.Zt.LESS,
28
+ label: 'Less Than',
29
+ icon: 'less-than',
30
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
31
+ },
32
+ {
33
+ value: index_esm.Zt.LESS_OR_EQUAL,
34
+ label: 'Less or Equal',
35
+ icon: 'less-or-equal',
36
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
37
+ },
38
+ { value: index_esm.Zt.IN, label: 'In List', icon: 'list' },
39
+ {
40
+ value: index_esm.Zt.LIKE,
41
+ label: 'Contains',
42
+ icon: '-lime-filter-contain',
43
+ applicableTypes: ['string', 'text'],
44
+ },
45
+ {
46
+ value: index_esm.Zt.BEGINS,
47
+ label: 'Begins With',
48
+ icon: '-lime-filter-begin',
49
+ applicableTypes: ['string', 'text'],
50
+ },
51
+ {
52
+ value: index_esm.Zt.ENDS,
53
+ label: 'Ends With',
54
+ icon: '-lime-filter-end',
55
+ applicableTypes: ['string', 'text'],
56
+ },
57
+ ];
58
+ const LimeQueryFilterComparisonComponent = class {
59
+ constructor(hostRef) {
60
+ index.registerInstance(this, hostRef);
61
+ this.expressionChange = index.createEvent(this, "expressionChange", 7);
62
+ this.handlePropertyChange = (event) => {
63
+ event.stopPropagation();
64
+ this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { key: event.detail }));
65
+ };
66
+ this.handleOperatorChange = (event) => {
67
+ event.stopPropagation();
68
+ // TODO: Clear value when switching between IN and other operators
69
+ // since array values are incompatible with single-value operators
70
+ this.expressionChange.emit({
71
+ key: this.expression.key,
72
+ op: event.detail.value,
73
+ exp: this.expression.exp,
74
+ });
75
+ };
76
+ this.handleValueChange = (event) => {
77
+ event.stopPropagation();
78
+ this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { exp: event.detail }));
79
+ };
80
+ this.removeExpression = () => {
81
+ this.expressionChange.emit(undefined);
82
+ };
83
+ }
84
+ render() {
85
+ return (index.h("div", { key: 'a077c982ced9840beec3e574cd3e2e336cff6071', class: "expression" }, this.label && index.h("limel-header", { key: 'fbcb5cf515aac2c8e68d29947c7560684f30822c', heading: this.label }), index.h("div", { key: 'ffea426ea1295ae11aaa3c910f835acbeed24cd9', class: "expression-container" }, this.renderPropertySelector(), this.renderOperator(), this.renderValueInput(), index.h("limel-icon-button", { key: '20064f9fe42a4dfa71b2e1e2d393d50bbe20e2cb', class: "remove", icon: "trash", label: "Remove condition", onClick: this.removeExpression }))));
86
+ }
87
+ renderPropertySelector() {
88
+ return (index.h("limebb-property-selector", { platform: this.platform, context: this.context, label: "Property", limetype: this.limetype, value: this.expression.key, required: true, onChange: this.handlePropertyChange }));
89
+ }
90
+ renderOperator() {
91
+ const operatorHasBeenSet = !!this.expression.op;
92
+ const options = LIME_QUERY_OPERATORS.map((op) => ({
93
+ text: op.label,
94
+ value: op.value,
95
+ icon: op.icon ? { name: op.icon } : undefined,
96
+ }));
97
+ const selectedOption = options.find((o) => o.value === this.expression.op);
98
+ return (index.h("limel-select", { class: "operator", label: "Operator", value: selectedOption, options: options, disabled: !operatorHasBeenSet && !this.expression.key, onChange: this.handleOperatorChange }));
99
+ }
100
+ renderValueInput() {
101
+ if (!this.expression.op) {
102
+ return null;
103
+ }
104
+ return (index.h("limebb-lime-query-value-input", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, propertyPath: this.expression.key, operator: this.expression.op, value: this.expression.exp, onChange: this.handleValueChange }));
105
+ }
106
+ };
107
+ LimeQueryFilterComparisonComponent.style = LimebbLimeQueryFilterComparisonStyle0;
108
+
109
+ const limeQueryFilterExpressionCss = "@charset \"UTF-8\";.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:1rem}";
110
+ const LimebbLimeQueryFilterExpressionStyle0 = limeQueryFilterExpressionCss;
111
+
112
+ const LimeQueryFilterExpressionComponent = class {
113
+ constructor(hostRef) {
114
+ index.registerInstance(this, hostRef);
115
+ this.expressionChange = index.createEvent(this, "expressionChange", 7);
116
+ this.handleExpressionChange = (event) => {
117
+ event.stopPropagation();
118
+ this.expressionChange.emit(event.detail);
119
+ };
120
+ }
121
+ render() {
122
+ if (!this.expression) {
123
+ return;
124
+ }
125
+ const props = {
126
+ platform: this.platform,
127
+ context: this.context,
128
+ label: this.label,
129
+ limetype: this.limetype,
130
+ activeLimetype: this.activeLimetype,
131
+ };
132
+ if ('key' in this.expression) {
133
+ return (index.h("limebb-lime-query-filter-comparison", Object.assign({}, props, { expression: this.expression, onExpressionChange: this.handleExpressionChange })));
134
+ }
135
+ if (this.expression.op === index_esm.Zt.AND ||
136
+ this.expression.op === index_esm.Zt.OR) {
137
+ return (index.h("limebb-lime-query-filter-group", Object.assign({}, props, { expression: this.expression, onExpressionChange: this.handleExpressionChange })));
138
+ }
139
+ if (this.expression.op === index_esm.Zt.NOT) {
140
+ return (index.h("limebb-lime-query-filter-not", Object.assign({}, props, { expression: this.expression, onExpressionChange: this.handleExpressionChange })));
141
+ }
142
+ }
143
+ };
144
+ LimeQueryFilterExpressionComponent.style = LimebbLimeQueryFilterExpressionStyle0;
145
+
146
+ exports.limebb_lime_query_filter_comparison = LimeQueryFilterComparisonComponent;
147
+ exports.limebb_lime_query_filter_expression = LimeQueryFilterExpressionComponent;