@limetech/lime-crm-building-blocks 1.129.0 → 1.131.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/filter-group-logic-Bwk6B784.js +136 -0
- package/dist/cjs/{index-C_OnxXhP.js → index-dBY184XR.js} +12 -0
- package/dist/cjs/{index.esm-g8gOl7RV.js → index.esm-DcWSoSRE.js} +2 -2
- package/dist/cjs/lime-crm-building-blocks.cjs.js +2 -2
- package/dist/cjs/lime-query-operators-Ci-RNshi.js +65 -0
- package/dist/cjs/{lime-query-validation-DTurSvtv.js → lime-query-validation-nql4N6Z8.js} +1 -1
- package/dist/cjs/limebb-alert-dialog.cjs.entry.js +2 -2
- package/dist/cjs/limebb-browser.cjs.entry.js +4 -4
- package/dist/cjs/limebb-chat-icon-list_3.cjs.entry.js +6 -6
- package/dist/cjs/limebb-chat-list.cjs.entry.js +3 -3
- package/dist/cjs/limebb-color-palette-picker.cjs.entry.js +2 -2
- package/dist/cjs/limebb-color-palette-swatches.cjs.entry.js +2 -2
- package/dist/cjs/limebb-component-config.cjs.entry.js +3 -3
- package/dist/cjs/limebb-component-picker.cjs.entry.js +2 -2
- package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +4 -4
- package/dist/cjs/limebb-currency-picker.cjs.entry.js +3 -3
- package/dist/cjs/limebb-dashboard-widget.cjs.entry.js +2 -2
- package/dist/cjs/limebb-data-cells.cjs.entry.js +2 -2
- package/dist/cjs/limebb-date-picker.cjs.entry.js +3 -3
- package/dist/cjs/limebb-date-range.cjs.entry.js +2 -2
- package/dist/cjs/limebb-document-chips.cjs.entry.js +2 -2
- package/dist/cjs/limebb-document-item.cjs.entry.js +3 -3
- package/dist/cjs/limebb-document-picker.cjs.entry.js +2 -2
- package/dist/cjs/limebb-empty-state.cjs.entry.js +1 -1
- package/dist/cjs/limebb-feed-item-thumbnail-file-info.cjs.entry.js +2 -2
- package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +3 -3
- package/dist/cjs/limebb-feed.cjs.entry.js +3 -3
- package/dist/cjs/limebb-icon-picker.cjs.entry.js +2 -2
- package/dist/cjs/limebb-info-tile-currency-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-date-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-decimal-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-format.cjs.entry.js +2 -2
- package/dist/cjs/limebb-info-tile-relative-date-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-unit-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile.cjs.entry.js +4 -4
- package/dist/cjs/limebb-kanban-group.cjs.entry.js +3 -3
- package/dist/cjs/limebb-kanban-item.cjs.entry.js +3 -3
- package/dist/cjs/limebb-kanban.cjs.entry.js +1 -1
- package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +4 -4
- package/dist/cjs/limebb-lime-query-filter-builder.cjs.entry.js +4 -8
- package/dist/cjs/{limebb-lime-query-filter-group_3.cjs.entry.js → limebb-lime-query-filter-comparison-editor_4.cjs.entry.js} +158 -187
- package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +83 -121
- package/dist/cjs/limebb-lime-query-order-by-editor_2.cjs.entry.js +5 -5
- package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +3 -3
- package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +4 -4
- package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +2 -2
- package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +2 -2
- package/dist/cjs/limebb-live-docs-info.cjs.entry.js +3 -3
- package/dist/cjs/limebb-loader.cjs.entry.js +2 -2
- package/dist/cjs/limebb-locale-picker.cjs.entry.js +3 -3
- package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +3 -3
- package/dist/cjs/limebb-mention.cjs.entry.js +2 -2
- package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
- package/dist/cjs/limebb-notification-item.cjs.entry.js +3 -3
- package/dist/cjs/limebb-notification-list.cjs.entry.js +2 -2
- package/dist/cjs/limebb-object-chip.cjs.entry.js +3 -3
- package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +4 -4
- package/dist/cjs/limebb-property-selector.cjs.entry.js +42 -19
- package/dist/cjs/limebb-rule-arg-filter-editor.cjs.entry.js +2 -2
- package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +4 -4
- package/dist/cjs/limebb-rule-editor.cjs.entry.js +104 -12
- package/dist/cjs/limebb-rule-gate.cjs.entry.js +3 -3
- package/dist/cjs/limebb-text-editor-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-text-editor.cjs.entry.js +4 -4
- package/dist/cjs/limebb-trend-indicator.cjs.entry.js +3 -3
- package/dist/cjs/{limetype-DJNXULgk.js → limetype-CNjUGemK.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{web-component-template-BWCutZB6.js → web-component-template-CZ0lPHIg.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/alert-dialog/alert-dialog.js +1 -1
- package/dist/collection/components/browser/browser.js +2 -2
- package/dist/collection/components/chat-list/chat-icon-list/chat-icon-list.js +1 -1
- package/dist/collection/components/chat-list/chat-item/chat-item.js +2 -2
- package/dist/collection/components/chat-list/chat-list.js +1 -1
- package/dist/collection/components/chat-list/typing-indicator/typing-indicator.js +1 -1
- package/dist/collection/components/color-palette-picker/color-palette-picker.js +1 -1
- package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.js +1 -1
- package/dist/collection/components/composer-toolbar/composer-toolbar.js +2 -2
- package/dist/collection/components/currency-picker/currency-picker.js +1 -1
- package/dist/collection/components/dashboard-widget/dashboard-widget.js +1 -1
- package/dist/collection/components/date-picker/date-picker.js +1 -1
- package/dist/collection/components/date-range/date-range.js +1 -1
- package/dist/collection/components/document-chips/document-chips.js +1 -1
- package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
- package/dist/collection/components/document-picker/document-picker.js +1 -1
- package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
- package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
- package/dist/collection/components/feed/feed.js +1 -1
- package/dist/collection/components/icon-picker/icon-picker.js +1 -1
- package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
- package/dist/collection/components/info-tile/info-tile.js +1 -1
- package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
- package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
- package/dist/collection/components/lime-query-builder/expressions/filter-group-logic.js +75 -72
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-builder.js +2 -6
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.css +12 -0
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.js +231 -0
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.css +2 -17
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +91 -118
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +9 -14
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.css +105 -179
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +93 -94
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
- package/dist/collection/components/lime-query-builder/expressions/lime-query-operators.js +60 -0
- package/dist/collection/components/lime-query-builder/lime-query-builder.js +1 -1
- package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +1 -1
- package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
- package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
- package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
- package/dist/collection/components/lime-query-builder/property-selector/property-selector.js +39 -16
- package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +1 -1
- package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
- package/dist/collection/components/locale-picker/locale-picker.js +1 -1
- package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
- package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
- package/dist/collection/components/rule-editor/chip-picker-view.js +2 -2
- package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +1 -1
- package/dist/collection/components/rule-editor/rule-editor.css +1 -0
- package/dist/collection/components/rule-editor/rule-editor.js +102 -10
- package/dist/collection/components/rule-editor/view-helpers.js +9 -0
- package/dist/collection/components/rule-gate/rule-gate.js +1 -1
- package/dist/collection/components/summary-popover/summary-popover.js +2 -2
- package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
- package/dist/collection/components/text-editor/text-editor.js +1 -1
- package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
- package/dist/components/chat-icon-list.js +1 -1
- package/dist/components/chat-item.js +1 -1
- package/dist/components/currency-picker.js +1 -1
- package/dist/components/date-picker.js +1 -1
- package/dist/components/document-item.js +1 -1
- package/dist/components/feed-item-thumbnail-file-info.js +1 -1
- package/dist/components/feed-timeline-item.js +1 -1
- package/dist/components/kanban-group.js +1 -1
- package/dist/components/kanban-item.js +1 -1
- package/dist/components/lime-query-filter-builder.js +1 -1
- package/dist/components/lime-query-filter-comparison-editor.js +1 -0
- package/dist/components/lime-query-filter-comparison.js +1 -1
- package/dist/components/lime-query-filter-expression.js +1 -1
- package/dist/components/limebb-alert-dialog.js +1 -1
- package/dist/components/limebb-browser.js +1 -1
- package/dist/components/limebb-chat-list.js +1 -1
- package/dist/components/limebb-color-palette-picker.js +1 -1
- package/dist/components/limebb-color-palette-swatches.js +1 -1
- package/dist/components/limebb-composer-toolbar.js +1 -1
- package/dist/components/limebb-dashboard-widget.js +1 -1
- package/dist/components/limebb-date-range.js +1 -1
- package/dist/components/limebb-document-chips.js +1 -1
- package/dist/components/limebb-document-picker.js +1 -1
- package/dist/components/limebb-feed.js +1 -1
- package/dist/components/limebb-icon-picker.js +1 -1
- package/dist/components/limebb-info-tile-format.js +1 -1
- package/dist/components/limebb-info-tile.js +1 -1
- package/dist/components/limebb-lime-query-builder.js +1 -1
- package/dist/components/limebb-lime-query-filter-comparison-editor.d.ts +11 -0
- package/dist/components/limebb-lime-query-filter-comparison-editor.js +1 -0
- package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
- package/dist/components/limebb-locale-picker.js +1 -1
- package/dist/components/limebb-mention-group-counter.js +1 -1
- package/dist/components/limebb-rule-arg-filter-editor.js +1 -1
- package/dist/components/limebb-rule-editor.js +1 -1
- package/dist/components/limebb-rule-gate.js +1 -1
- package/dist/components/limebb-text-editor.js +1 -1
- package/dist/components/limebb-trend-indicator.js +1 -1
- package/dist/components/limetype-field.js +1 -1
- package/dist/components/live-docs-info.js +1 -1
- package/dist/components/notification-item.js +1 -1
- package/dist/components/order-by-editor.js +1 -1
- package/dist/components/order-by-item.js +1 -1
- package/dist/components/percentage-visualizer.js +1 -1
- package/dist/components/property-selector.js +1 -1
- package/dist/components/response-format-item.js +1 -1
- package/dist/components/rule-chip-popover.js +1 -1
- package/dist/components/summary-popover.js +1 -1
- package/dist/components/typing-indicator.js +1 -1
- package/dist/esm/filter-group-logic-RXn-GGk1.js +126 -0
- package/dist/esm/{index-BIwHMk6j.js → index-DYpn0EkA.js} +12 -0
- package/dist/esm/{index.esm-CJU4N9K8.js → index.esm-DAe4_MLR.js} +1 -1
- package/dist/esm/lime-crm-building-blocks.js +3 -3
- package/dist/esm/lime-query-operators-DYlN1dAt.js +63 -0
- package/dist/esm/{lime-query-validation-COGfPUFN.js → lime-query-validation-DXxPZ2CH.js} +1 -1
- package/dist/esm/limebb-alert-dialog.entry.js +2 -2
- package/dist/esm/limebb-browser.entry.js +4 -4
- package/dist/esm/limebb-chat-icon-list_3.entry.js +6 -6
- package/dist/esm/limebb-chat-list.entry.js +3 -3
- package/dist/esm/limebb-color-palette-picker.entry.js +2 -2
- package/dist/esm/limebb-color-palette-swatches.entry.js +2 -2
- package/dist/esm/limebb-component-config.entry.js +3 -3
- package/dist/esm/limebb-component-picker.entry.js +2 -2
- package/dist/esm/limebb-composer-toolbar.entry.js +4 -4
- package/dist/esm/limebb-currency-picker.entry.js +3 -3
- package/dist/esm/limebb-dashboard-widget.entry.js +2 -2
- package/dist/esm/limebb-data-cells.entry.js +2 -2
- package/dist/esm/limebb-date-picker.entry.js +3 -3
- package/dist/esm/limebb-date-range.entry.js +2 -2
- package/dist/esm/limebb-document-chips.entry.js +2 -2
- package/dist/esm/limebb-document-item.entry.js +3 -3
- package/dist/esm/limebb-document-picker.entry.js +2 -2
- package/dist/esm/limebb-empty-state.entry.js +1 -1
- package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +2 -2
- package/dist/esm/limebb-feed-timeline-item.entry.js +3 -3
- package/dist/esm/limebb-feed.entry.js +3 -3
- package/dist/esm/limebb-icon-picker.entry.js +2 -2
- package/dist/esm/limebb-info-tile-currency-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile-date-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile-decimal-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile-format.entry.js +2 -2
- package/dist/esm/limebb-info-tile-relative-date-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile-unit-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile.entry.js +4 -4
- package/dist/esm/limebb-kanban-group.entry.js +3 -3
- package/dist/esm/limebb-kanban-item.entry.js +3 -3
- package/dist/esm/limebb-kanban.entry.js +1 -1
- package/dist/esm/limebb-lime-query-builder.entry.js +4 -4
- package/dist/esm/limebb-lime-query-filter-builder.entry.js +4 -8
- package/dist/esm/{limebb-lime-query-filter-group_3.entry.js → limebb-lime-query-filter-comparison-editor_4.entry.js} +158 -188
- package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +83 -121
- package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +5 -5
- package/dist/esm/limebb-lime-query-order-by-item.entry.js +3 -3
- package/dist/esm/limebb-lime-query-response-format-builder.entry.js +4 -4
- package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +2 -2
- package/dist/esm/limebb-limeobject-file-viewer.entry.js +2 -2
- package/dist/esm/limebb-live-docs-info.entry.js +3 -3
- package/dist/esm/limebb-loader.entry.js +2 -2
- package/dist/esm/limebb-locale-picker.entry.js +3 -3
- package/dist/esm/limebb-mention-group-counter.entry.js +3 -3
- package/dist/esm/limebb-mention.entry.js +2 -2
- package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
- package/dist/esm/limebb-notification-item.entry.js +3 -3
- package/dist/esm/limebb-notification-list.entry.js +2 -2
- package/dist/esm/limebb-object-chip.entry.js +3 -3
- package/dist/esm/limebb-percentage-visualizer.entry.js +4 -4
- package/dist/esm/limebb-property-selector.entry.js +42 -19
- package/dist/esm/limebb-rule-arg-filter-editor.entry.js +2 -2
- package/dist/esm/limebb-rule-chip-popover.entry.js +4 -4
- package/dist/esm/limebb-rule-editor.entry.js +104 -12
- package/dist/esm/limebb-rule-gate.entry.js +3 -3
- package/dist/esm/limebb-text-editor-picker.entry.js +1 -1
- package/dist/esm/limebb-text-editor.entry.js +4 -4
- package/dist/esm/limebb-trend-indicator.entry.js +3 -3
- package/dist/esm/{limetype-Dc4uQPMG.js → limetype-C1wEJnPI.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{web-component-template-6zRYia86.js → web-component-template-D6zkEjKN.js} +1 -1
- package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
- package/dist/lime-crm-building-blocks/{p-34eb61da.entry.js → p-00d00277.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-072756ea.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-32c3789e.entry.js → p-07ef2fd0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c609b5ec.entry.js → p-0ba1294a.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-7fee7ef3.entry.js → p-0fac2307.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-97e6712f.entry.js → p-16fa6f3e.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-0c572fe9.entry.js → p-18ce3ce5.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-1dfdf045.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-20206710.entry.js → p-22296e19.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-1747221f.entry.js → p-24337de2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-de6f4670.entry.js → p-3996a598.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-d2a01f51.entry.js → p-3bff70d2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-7c96b265.entry.js → p-3c437049.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-3a112b17.entry.js → p-43af24b5.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-2cb31064.entry.js → p-464b02c2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-02565865.entry.js → p-47a7b3fd.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-e6083593.entry.js → p-4c10bea0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-e7a10082.entry.js → p-4e0d077b.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-25d8a718.entry.js → p-5006c5ea.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c678f22f.entry.js → p-52c07130.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-492b1b0c.entry.js → p-55692241.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-b2383e7f.entry.js → p-5573a867.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-bec4231f.entry.js → p-563d69ff.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-32f8477f.entry.js → p-571777c3.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-4446f170.entry.js → p-58e63c29.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-31d8f414.entry.js → p-5a718d20.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-9c27e558.entry.js → p-5eef1781.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-861ac606.entry.js → p-603ab702.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-3252e153.entry.js → p-661e4700.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-184ae23d.entry.js → p-68a951f5.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ed1e7e34.entry.js → p-692084d2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-1428aa13.entry.js → p-6ee28dfc.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-fdd236ff.entry.js → p-725e6748.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c394c1f6.entry.js → p-7a4704dc.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-48c2b617.entry.js → p-7b9359cc.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-6ff38954.entry.js → p-7d969bbe.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-eb8d58ab.entry.js → p-7f5c97fe.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-6cceabf1.entry.js → p-81655182.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-8238723b.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-2a3098a7.entry.js → p-898b097e.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-46c00a4b.entry.js → p-8d14a58a.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-48deac2a.entry.js → p-8d5311e4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-08eb070d.entry.js → p-8ed7b025.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-99464fa7.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-C_tMNOSt.js → p-BKtEmDNs.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-BV8CPdbi.js → p-BbFGcMnU.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-C84z8BwL.js → p-CqRNpSRV.js} +1 -1
- package/dist/lime-crm-building-blocks/p-D3UYWGdn.js +1 -0
- package/dist/lime-crm-building-blocks/p-DYpn0EkA.js +2 -0
- package/dist/lime-crm-building-blocks/{p-BsNp-hBU.js → p-DzXJyKRS.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-d910699a.entry.js → p-a5850f04.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-8d3fa274.entry.js → p-a6103d04.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-b24b7338.entry.js → p-b01f2045.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-731820f0.entry.js → p-b16bbda2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-dabb227b.entry.js → p-b424f55f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-b95b94b6.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-2a46f4be.entry.js → p-bd264cfa.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-9e5862de.entry.js → p-c7c5991f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c9003b76.entry.js → p-dc1d543d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-e4fe45d3.entry.js → p-dc3a86f3.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-ec335be5.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-5743a74e.entry.js → p-ecd0280d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-efab4f7e.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-9f7992b0.entry.js → p-efb70fbb.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-3263f8d5.entry.js → p-f011673a.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-y_s8hZmV.js +1 -0
- package/dist/types/components/lime-query-builder/expressions/filter-group-logic.d.ts +56 -54
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.d.ts +29 -0
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +12 -9
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +4 -0
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-group.d.ts +14 -30
- package/dist/types/components/lime-query-builder/expressions/lime-query-operators.d.ts +12 -0
- package/dist/types/components/lime-query-builder/property-selector/property-selector.d.ts +1 -0
- package/dist/types/components/rule-editor/rule-editor-views.d.ts +2 -1
- package/dist/types/components/rule-editor/rule-editor.d.ts +54 -3
- package/dist/types/components/rule-editor/view-helpers.d.ts +8 -1
- package/dist/types/components.d.ts +136 -49
- package/package.json +2 -2
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.css +0 -137
- package/dist/lime-crm-building-blocks/p-6002654f.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-7acd06eb.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-89b43ac5.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-BIwHMk6j.js +0 -2
- package/dist/lime-crm-building-blocks/p-a3556715.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-bd6e12e6.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-c6a913af.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-c6fee2bd.entry.js +0 -1
package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.css
CHANGED
|
@@ -1,205 +1,131 @@
|
|
|
1
|
-
@charset "UTF-8";
|
|
2
|
-
/**
|
|
3
|
-
* Root-level entry point for consuming @limetech/lime-elements SCSS utilities.
|
|
4
|
-
*
|
|
5
|
-
* This file enables the clean import path:
|
|
6
|
-
* `@use '@limetech/lime-elements' as lime-elements;`
|
|
7
|
-
*
|
|
8
|
-
* It simply forwards everything from the built exports file.
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Public SCSS exports for consumers of @limetech/lime-elements.
|
|
12
|
-
*
|
|
13
|
-
* This file provides reusable styling utilities.
|
|
14
|
-
*
|
|
15
|
-
* Import this file using:
|
|
16
|
-
* `@use '@limetech/lime-elements' as lime-elements;`
|
|
17
|
-
*
|
|
18
|
-
* For detailed documentation of each utility, its parameters,
|
|
19
|
-
* and usage examples, refer to the respective source files.
|
|
20
|
-
*/
|
|
21
|
-
/**
|
|
22
|
-
* Note! This file is forwarded via `src/style/exports.scss`
|
|
23
|
-
* and exposed to consumers through the root `index.scss`.
|
|
24
|
-
*
|
|
25
|
-
* Consumers import it using:
|
|
26
|
-
* `@use '@limetech/lime-elements' as lime-elements;`
|
|
27
|
-
*
|
|
28
|
-
* Legacy import paths (`dist/scss/mixins`) are maintained
|
|
29
|
-
* for backward compatibility via copy rules in the Stencil config.
|
|
30
|
-
*/
|
|
31
|
-
/**
|
|
32
|
-
* Neutralizes the user-agent styles that browsers apply to `<button>` elements
|
|
33
|
-
* (their default background, border, padding, font, etc.), without stripping
|
|
34
|
-
* the useful defaults that `all: unset;` would also remove
|
|
35
|
-
* (such as `display`, `cursor`, and focus behavior).
|
|
36
|
-
*
|
|
37
|
-
* Prefer this mixin over `all: unset;` on `<button>` elements, then layer
|
|
38
|
-
* the styling you want on top — often one of the `is-*-clickable` mixins.
|
|
39
|
-
*/
|
|
40
|
-
/**
|
|
41
|
-
* This can be used on a trigger element that opens a dropdown menu or a popover.
|
|
42
|
-
*/
|
|
43
|
-
/**
|
|
44
|
-
* This mixin will mask out the content that is close to
|
|
45
|
-
* the edges of a scrollable area.
|
|
46
|
-
* - If the scrollable content has `overflow-y`, use `vertically`
|
|
47
|
-
* as an argument for `$direction`.
|
|
48
|
-
- If the scrollable content has `overflow-x`, use `horizontally`
|
|
49
|
-
* as an argument for `$direction`.
|
|
50
|
-
*
|
|
51
|
-
* For the visual effect to work smoothly, we need to make sure that
|
|
52
|
-
* the size of the fade-out edge effect is the same as the
|
|
53
|
-
* internal paddings of the scrollable area. Otherwise, content of a
|
|
54
|
-
* scrollable area that does not have a padding will fade out before
|
|
55
|
-
* any scrolling has been done.
|
|
56
|
-
* This is why this mixin already adds paddings, which automatically
|
|
57
|
-
* default to the size of the fade-out effect.
|
|
58
|
-
* This size defaults to `1rem`, but to override the size use
|
|
59
|
-
* `--limel-top-edge-fade-height` & `--limel-bottom-edge-fade-height`
|
|
60
|
-
* when `vertically` argument is set, and use
|
|
61
|
-
* `--limel-left-edge-fade-width` & `--limel-right-edge-fade-width`
|
|
62
|
-
* when `horizontally` argument is set.
|
|
63
|
-
* Of course you can also programmatically increase and decrease the
|
|
64
|
-
* size of these variables for each edge, based on the amount of
|
|
65
|
-
* scrolling that has been done by the user. In this case, make sure
|
|
66
|
-
* to add a custom padding where the mixin is used, to override
|
|
67
|
-
* the paddings that are automatically added by the mixin in the
|
|
68
|
-
* compiled CSS code.
|
|
69
|
-
*/
|
|
70
|
-
/**
|
|
71
|
-
* This mixin will add an animated underline to the bottom of an `a` elements.
|
|
72
|
-
* Note that you may need to add `all: unset;` –depending on your use case–
|
|
73
|
-
* before using this mixin.
|
|
74
|
-
*/
|
|
75
|
-
/**
|
|
76
|
-
* This mixin creates a cross-browser font stack.
|
|
77
|
-
* - `sans-serif` can be used for the UI of the components.
|
|
78
|
-
* - `monospace` can be used for code.
|
|
79
|
-
*
|
|
80
|
-
* ⚠️ If we change the font stacks, we need to update
|
|
81
|
-
* 1. the consumer documentation in `README.md`, and
|
|
82
|
-
* 2. the CSS variables of `--kompendium-example-font-family`
|
|
83
|
-
* in the `<style>` tag of `index.html`.
|
|
84
|
-
*/
|
|
85
|
-
/**
|
|
86
|
-
* This mixin is a hack, using old CSS syntax
|
|
87
|
-
* to enable you to truncate a piece of text,
|
|
88
|
-
* after a certain number of lines.
|
|
89
|
-
*/
|
|
90
|
-
/**
|
|
91
|
-
* This mixin will add a chessboard background pattern,
|
|
92
|
-
* typically used to visualize transparency.
|
|
93
|
-
*/
|
|
94
|
-
/**
|
|
95
|
-
* Make a container resizable by the user.
|
|
96
|
-
* This is used in the documentations and examples
|
|
97
|
-
* of some components, to demonstrate how the component
|
|
98
|
-
* behaves in a resizable container.
|
|
99
|
-
*/
|
|
100
|
-
/**
|
|
101
|
-
* Drag to reorder mixins
|
|
102
|
-
*/
|
|
103
|
-
/**
|
|
104
|
-
* The breakpoints below are used to create responsive designs
|
|
105
|
-
* in Lime's products. Therefore, they are here to get distributed
|
|
106
|
-
* to all components in other private repos, which rely on this `mixins`
|
|
107
|
-
* file, to create consistent styles.
|
|
108
|
-
*
|
|
109
|
-
* :::important
|
|
110
|
-
* In very rare cases you should used media queries!
|
|
111
|
-
* Nowadays, there are many better ways of achieving responsive design
|
|
112
|
-
* without media queries. For example, using CSS Grid, Flexbox, and their features.
|
|
113
|
-
* :::
|
|
114
|
-
*/
|
|
115
|
-
/**
|
|
116
|
-
* Media query mixins for responsive design based on screen width.
|
|
117
|
-
* Note that these mixins do not detect the device type!
|
|
118
|
-
*/
|
|
119
|
-
/**
|
|
120
|
-
* @mixin action-bar-interactions($item-selector)
|
|
121
|
-
* This mixin applies styles for the action bar interactions.
|
|
122
|
-
* For example, it animates the height of the action bar from `0` to `auto`.
|
|
123
|
-
*
|
|
124
|
-
* :::note
|
|
125
|
-
* The consumer should set:
|
|
126
|
-
* `--limebb-promoted-action-bar-grid-template-rows: 0fr;`
|
|
127
|
-
* when the action bar is not supposed to be visible.
|
|
128
|
-
* :::
|
|
129
|
-
*
|
|
130
|
-
* @param {string} $item-selector - The consumer component's tag name for the item that displays the action bar.
|
|
131
|
-
*/
|
|
132
1
|
*,
|
|
133
|
-
|
|
2
|
+
*:before,
|
|
134
3
|
*::after {
|
|
135
4
|
box-sizing: border-box;
|
|
136
5
|
}
|
|
137
6
|
|
|
138
|
-
limebb-lime-query-filter-
|
|
7
|
+
:host(limebb-lime-query-filter-group) {
|
|
8
|
+
--group-rail-color: var(--limebb-query-filter-group-color-code);
|
|
9
|
+
display: flex;
|
|
10
|
+
flex-direction: column;
|
|
11
|
+
gap: 1.5rem;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
:host([data-op=AND]) {
|
|
15
|
+
--combinator-symbol: "&";
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
:host([data-op=NOT_AND]) {
|
|
19
|
+
--combinator-symbol: "- &";
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
:host([data-op=OR]) {
|
|
23
|
+
--combinator-symbol: "or";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
:host([data-op=NOT_OR]) {
|
|
27
|
+
--combinator-symbol: "- or";
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.group {
|
|
139
31
|
position: relative;
|
|
140
|
-
|
|
32
|
+
display: flex;
|
|
33
|
+
flex-direction: column;
|
|
34
|
+
gap: 1rem;
|
|
35
|
+
padding: 0.5rem;
|
|
36
|
+
border-radius: 0.75rem;
|
|
37
|
+
background-color: rgb(var(--contrast-800), 0.15);
|
|
38
|
+
transition: box-shadow 120ms ease;
|
|
141
39
|
}
|
|
142
|
-
|
|
40
|
+
.group:before {
|
|
143
41
|
content: "";
|
|
144
42
|
position: absolute;
|
|
145
|
-
top:
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
border-radius: 1rem;
|
|
149
|
-
height: 2rem;
|
|
43
|
+
top: 1rem;
|
|
44
|
+
bottom: calc(1rem + 1.75rem);
|
|
45
|
+
left: 0;
|
|
150
46
|
width: 0.125rem;
|
|
151
|
-
|
|
47
|
+
transform: translateX(-50%);
|
|
48
|
+
border-radius: 1rem;
|
|
49
|
+
background-color: var(--group-rail-color);
|
|
152
50
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
51
|
+
.group:has(limel-icon-button.delete-group:hover), .group:has(limel-icon-button.delete-group:focus-within) {
|
|
52
|
+
box-shadow: var(--shadow-error-state);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.group-header {
|
|
156
56
|
display: flex;
|
|
157
|
-
justify-content: center;
|
|
158
57
|
align-items: center;
|
|
159
|
-
|
|
160
|
-
content: var(--limebb-lime-query-filter-group-operator);
|
|
161
|
-
display: inline-block;
|
|
162
|
-
margin: 0 auto 0.5rem auto;
|
|
163
|
-
transform: translateY(-50%);
|
|
164
|
-
font-size: 0.625rem;
|
|
165
|
-
padding: 0 0.5rem;
|
|
166
|
-
color: rgb(var(--color-blue-dark));
|
|
167
|
-
background-color: var(--limebb-lime-query-builder-group-color);
|
|
168
|
-
border-radius: 2rem;
|
|
58
|
+
gap: 0.5rem;
|
|
169
59
|
}
|
|
170
60
|
|
|
171
|
-
.
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
61
|
+
limel-select.combinator {
|
|
62
|
+
min-width: 9rem;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
limel-icon-button.delete-group {
|
|
66
|
+
margin-left: auto;
|
|
67
|
+
opacity: 0;
|
|
68
|
+
transition: opacity 120ms ease;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
limel-chip.add-group {
|
|
72
|
+
--lime-elevated-surface-background-color: transparent;
|
|
73
|
+
--button-shadow-normal: none;
|
|
74
|
+
isolation: isolate;
|
|
75
|
+
position: relative;
|
|
76
|
+
margin-right: auto;
|
|
77
|
+
}
|
|
78
|
+
limel-chip.add-group:after {
|
|
79
|
+
content: "";
|
|
80
|
+
position: absolute;
|
|
81
|
+
width: 0.5rem;
|
|
82
|
+
height: 1.75rem;
|
|
83
|
+
top: 0;
|
|
84
|
+
left: calc(0.5rem * -1 - 0.125rem / 2);
|
|
85
|
+
border-width: 0 0 0.125rem 0.125rem;
|
|
86
|
+
border-color: var(--group-rail-color);
|
|
87
|
+
border-style: solid;
|
|
88
|
+
border-radius: 0 0 0 0.5rem;
|
|
89
|
+
transform: translateY(calc(-50% - 0.125rem / 2));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.group:hover > .group-header > limel-icon-button.delete-group,
|
|
93
|
+
limel-icon-button.delete-group:focus-within {
|
|
94
|
+
opacity: 1;
|
|
179
95
|
}
|
|
180
|
-
|
|
96
|
+
|
|
97
|
+
ul.rows {
|
|
181
98
|
list-style: none;
|
|
182
99
|
margin: 0;
|
|
183
|
-
padding: 0.5rem;
|
|
184
100
|
display: flex;
|
|
185
|
-
flex-direction:
|
|
101
|
+
flex-direction: row;
|
|
102
|
+
flex-wrap: wrap;
|
|
186
103
|
align-items: center;
|
|
187
|
-
gap:
|
|
104
|
+
column-gap: 0.5rem;
|
|
105
|
+
row-gap: 0.5rem;
|
|
106
|
+
padding: 0 0.5rem 0.5rem 0.5rem;
|
|
188
107
|
}
|
|
189
|
-
|
|
108
|
+
|
|
109
|
+
li.row {
|
|
190
110
|
list-style: none;
|
|
191
|
-
|
|
111
|
+
position: relative;
|
|
192
112
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
margin: 0.5rem;
|
|
113
|
+
li.row:has(> limebb-lime-query-filter-expression > limebb-lime-query-filter-group) {
|
|
114
|
+
flex-basis: 100%;
|
|
115
|
+
align-self: stretch;
|
|
197
116
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
117
|
+
li.row + li.row:before {
|
|
118
|
+
content: var(--combinator-symbol);
|
|
119
|
+
color: var(--limebb-query-filter-group-color-code);
|
|
120
|
+
font-size: 0.75rem;
|
|
121
|
+
font-weight: 600;
|
|
201
122
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
123
|
+
li.row + li.row:has(> limebb-lime-query-filter-expression > limebb-lime-query-filter-group):before {
|
|
124
|
+
position: absolute;
|
|
125
|
+
left: 0;
|
|
126
|
+
top: 0;
|
|
127
|
+
transform: translate(-50%, -50%);
|
|
128
|
+
}
|
|
129
|
+
li.row + li.row:not(:has(> limebb-lime-query-filter-expression > limebb-lime-query-filter-group)):before {
|
|
130
|
+
margin-right: 0.5rem;
|
|
205
131
|
}
|
package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js
CHANGED
|
@@ -1,108 +1,112 @@
|
|
|
1
|
-
import { h, Host
|
|
1
|
+
import { h, Host } from "@stencil/core";
|
|
2
2
|
import { Operator, } from "@limetech/lime-web-components";
|
|
3
|
-
import { addExpressionToGroup, createEmptyComparison, createNestedGroup,
|
|
3
|
+
import { addExpressionToGroup, createEmptyComparison, createNestedGroup, getCombinator, getInnerAndOr, setCombinator, updateChildExpression, } from "./filter-group-logic";
|
|
4
|
+
const OP_STYLE = {
|
|
5
|
+
AND: {
|
|
6
|
+
color: 'rgb(var(--contrast-900))',
|
|
7
|
+
iconName: 'dot_circle',
|
|
8
|
+
text: 'All of',
|
|
9
|
+
secondaryText: 'True when every condition is true',
|
|
10
|
+
},
|
|
11
|
+
OR: {
|
|
12
|
+
color: 'rgb(var(--color-sky-default))',
|
|
13
|
+
iconName: 'centre_point',
|
|
14
|
+
text: 'Any of',
|
|
15
|
+
secondaryText: 'True when at least one condition is true',
|
|
16
|
+
},
|
|
17
|
+
NOT_AND: {
|
|
18
|
+
color: 'rgb(var(--color-orange-default))',
|
|
19
|
+
iconName: 'dot_circle',
|
|
20
|
+
text: 'Not all of',
|
|
21
|
+
secondaryText: 'True when at least one condition is false',
|
|
22
|
+
},
|
|
23
|
+
NOT_OR: {
|
|
24
|
+
color: 'rgb(var(--color-red-default))',
|
|
25
|
+
iconName: 'centre_point',
|
|
26
|
+
text: 'None of',
|
|
27
|
+
secondaryText: 'True when every condition is false',
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
const COMBINATOR_OPTIONS = ['AND', 'OR', 'NOT_AND', 'NOT_OR'].map((value) => ({
|
|
31
|
+
text: OP_STYLE[value].text,
|
|
32
|
+
secondaryText: OP_STYLE[value].secondaryText,
|
|
33
|
+
value,
|
|
34
|
+
icon: { name: OP_STYLE[value].iconName, color: OP_STYLE[value].color },
|
|
35
|
+
}));
|
|
4
36
|
/**
|
|
5
37
|
* Lime Query Filter Group Component
|
|
6
38
|
*
|
|
7
|
-
* Renders a group of filter expressions with
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* This component displays:
|
|
12
|
-
* - A clickable header showing the current logic (AND/OR)
|
|
13
|
-
* - A list of child expressions (which can be comparisons or nested groups)
|
|
14
|
-
* - An "Add" button to add more expressions
|
|
15
|
-
*
|
|
16
|
-
* Clicking the header toggles between AND and OR logic.
|
|
17
|
-
* If a child component emits an ExpressionChange event with undefined, the
|
|
18
|
-
* child is removed from the group.
|
|
39
|
+
* Renders a group of filter expressions with a combinator picker that selects
|
|
40
|
+
* between All, Any, Not all, and Not any. The first two map to a bare AND/OR
|
|
41
|
+
* group; the latter two wrap the same group in a NOT expression. Choosing a
|
|
42
|
+
* value re-shapes the group, preserving all children.
|
|
19
43
|
*
|
|
20
44
|
* @private
|
|
21
45
|
*/
|
|
22
46
|
export class LimeQueryFilterGroupComponent {
|
|
23
47
|
constructor() {
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
value: 'or',
|
|
34
|
-
},
|
|
35
|
-
];
|
|
36
|
-
this.renderChildExpression = (expression, childIndex) => (h("limebb-lime-query-filter-expression", { role: "listitem", platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: expression, onExpressionChange: this.handleExpressionChange(childIndex) }));
|
|
48
|
+
this.renderChildExpression = (expression, childIndex) => (h("li", { class: "row" }, h("limebb-lime-query-filter-expression", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: expression, onExpressionChange: this.handleChildExpressionChange(childIndex) })));
|
|
49
|
+
this.handleCombinatorChange = (event) => {
|
|
50
|
+
event.stopPropagation();
|
|
51
|
+
const next = event.detail.value;
|
|
52
|
+
if (!next || next === getCombinator(this.expression)) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
this.expressionChange.emit(setCombinator(this.expression, next));
|
|
56
|
+
};
|
|
37
57
|
this.handleDeleteGroup = () => {
|
|
38
58
|
this.expressionChange.emit();
|
|
39
59
|
};
|
|
40
|
-
this.handleToggleOperator = (event) => {
|
|
41
|
-
const selectedOption = Array.isArray(event.detail)
|
|
42
|
-
? event.detail[0]
|
|
43
|
-
: event.detail;
|
|
44
|
-
this.value = selectedOption;
|
|
45
|
-
const newOp = selectedOption.value === 'and' ? Operator.AND : Operator.OR;
|
|
46
|
-
if (newOp !== this.expression.op) {
|
|
47
|
-
const newGroup = toggleGroupOperator(this.expression);
|
|
48
|
-
this.expressionChange.emit(newGroup);
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
60
|
this.handleAddChildExpression = () => {
|
|
52
|
-
const
|
|
53
|
-
const
|
|
54
|
-
this.expressionChange.emit(
|
|
61
|
+
const inner = getInnerAndOr(this.expression);
|
|
62
|
+
const updatedInner = addExpressionToGroup(inner, createEmptyComparison());
|
|
63
|
+
this.expressionChange.emit(this.wrap(updatedInner));
|
|
55
64
|
};
|
|
56
65
|
this.handleAddChildGroup = () => {
|
|
57
|
-
const
|
|
58
|
-
const
|
|
59
|
-
|
|
66
|
+
const inner = getInnerAndOr(this.expression);
|
|
67
|
+
const newChild = createNestedGroup(inner.op);
|
|
68
|
+
const updatedInner = addExpressionToGroup(inner, newChild);
|
|
69
|
+
this.expressionChange.emit(this.wrap(updatedInner));
|
|
60
70
|
};
|
|
61
|
-
this.
|
|
71
|
+
this.handleChildExpressionChange = (childIndex) => (event) => {
|
|
62
72
|
event.stopPropagation();
|
|
63
|
-
const
|
|
64
|
-
const result = updateChildExpression(
|
|
73
|
+
const inner = getInnerAndOr(this.expression);
|
|
74
|
+
const result = updateChildExpression(inner, childIndex, event.detail);
|
|
75
|
+
if (result.type === 'removed') {
|
|
76
|
+
this.expressionChange.emit(undefined);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (this.isNegated) {
|
|
80
|
+
this.expressionChange.emit({
|
|
81
|
+
op: Operator.NOT,
|
|
82
|
+
exp: result.expression,
|
|
83
|
+
});
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
65
86
|
this.expressionChange.emit(result.expression);
|
|
66
87
|
};
|
|
67
88
|
}
|
|
68
|
-
// Initialize value to match current operator
|
|
69
|
-
componentWillLoad() {
|
|
70
|
-
this.value =
|
|
71
|
-
this.options.find((option) => option.value ===
|
|
72
|
-
(this.expression.op === Operator.AND ? 'and' : 'or')) || this.options[0];
|
|
73
|
-
}
|
|
74
89
|
render() {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (!subheading) {
|
|
82
|
-
return null;
|
|
83
|
-
}
|
|
84
|
-
return (h("limel-header", { subheading: subheading }, this.renderOperators(), this.renderDeleteGroupButton()));
|
|
85
|
-
}
|
|
86
|
-
renderOperators() {
|
|
87
|
-
return (h("limel-select", { class: "operator-select", slot: "actions", value: this.value, options: this.options, onChange: this.handleToggleOperator }));
|
|
88
|
-
}
|
|
89
|
-
renderDeleteGroupButton() {
|
|
90
|
-
return (h("limel-icon-button", { class: "delete-group", slot: "actions", icon: "trash", label: "Delete This Group", onClick: this.handleDeleteGroup }));
|
|
91
|
-
}
|
|
92
|
-
getSubheading() {
|
|
93
|
-
return getFilterGroupSubheading(this.expression.op, this.expression.exp.length);
|
|
94
|
-
}
|
|
95
|
-
renderAddButton() {
|
|
96
|
-
return (h("limel-button", { role: "listitem", label: "Condition", icon: {
|
|
90
|
+
const combinator = getCombinator(this.expression);
|
|
91
|
+
const inner = getInnerAndOr(this.expression);
|
|
92
|
+
const selected = COMBINATOR_OPTIONS.find((o) => o.value === combinator);
|
|
93
|
+
return (h(Host, { key: 'c9ca20c6b893416088807266fede19e5a24e360d', "data-op": combinator, style: {
|
|
94
|
+
'--limebb-query-filter-group-color-code': OP_STYLE[combinator].color,
|
|
95
|
+
} }, h("div", { key: '8efe9e6e4d1ba552b8a761ec23b18668a1aef7f3', class: "group" }, h("div", { key: 'e99bb85a9532431a63ce0916dc4882a2f73d2307', class: "group-header" }, h("limel-select", { key: '981fd5c1d4755ef937451144245640228ed515a9', class: "combinator", label: "Match", value: selected, options: COMBINATOR_OPTIONS, onChange: this.handleCombinatorChange }), h("limel-icon-button", { key: 'caa427e897501a12a98a370c4d2364564904c042', class: "delete-group", icon: "trash", label: "Delete this group", onClick: this.handleDeleteGroup })), h("ul", { key: '8a21efdd1d783b11bb00f39c3579eec7277a505e', class: "rows" }, inner.exp.map(this.renderChildExpression), h("limel-chip", { key: 'b4612f1899060f2f553283cc7afac53777b0c1ef', role: "listitem", class: "add-condition", text: "Condition", icon: { name: 'plus_math', title: 'Add' }, onClick: this.handleAddChildExpression })), h("limel-chip", { key: '7046abfe1929fa13f4de3e90285610280467fd76', class: "add-group", size: "small", text: "Group", icon: {
|
|
97
96
|
name: 'plus_math',
|
|
98
97
|
title: 'Add',
|
|
99
|
-
|
|
98
|
+
color: 'var(--group-rail-color)',
|
|
99
|
+
}, onClick: this.handleAddChildGroup }))));
|
|
100
100
|
}
|
|
101
|
-
|
|
102
|
-
return
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
get isNegated() {
|
|
102
|
+
return this.expression.op === Operator.NOT;
|
|
103
|
+
}
|
|
104
|
+
wrap(inner) {
|
|
105
|
+
if (this.isNegated) {
|
|
106
|
+
const wrapped = { op: Operator.NOT, exp: inner };
|
|
107
|
+
return wrapped;
|
|
108
|
+
}
|
|
109
|
+
return inner;
|
|
106
110
|
}
|
|
107
111
|
static get is() { return "limebb-lime-query-filter-group"; }
|
|
108
112
|
static get encapsulation() { return "shadow"; }
|
|
@@ -208,14 +212,14 @@ export class LimeQueryFilterGroupComponent {
|
|
|
208
212
|
"type": "unknown",
|
|
209
213
|
"mutable": false,
|
|
210
214
|
"complexType": {
|
|
211
|
-
"original": "
|
|
212
|
-
"resolved": "{ op: Operator.AND | Operator.OR; exp: Expression[]; }",
|
|
215
|
+
"original": "GroupExpression",
|
|
216
|
+
"resolved": "{ op: Operator.AND | Operator.OR; exp: Expression[]; } | { op: Operator.NOT; exp: AndOrExpression; }",
|
|
213
217
|
"references": {
|
|
214
|
-
"
|
|
218
|
+
"GroupExpression": {
|
|
215
219
|
"location": "import",
|
|
216
|
-
"path": "
|
|
217
|
-
"id": "
|
|
218
|
-
"referenceLocation": "
|
|
220
|
+
"path": "./filter-group-logic",
|
|
221
|
+
"id": "src/components/lime-query-builder/expressions/filter-group-logic.ts::GroupExpression",
|
|
222
|
+
"referenceLocation": "GroupExpression"
|
|
219
223
|
}
|
|
220
224
|
}
|
|
221
225
|
},
|
|
@@ -223,18 +227,13 @@ export class LimeQueryFilterGroupComponent {
|
|
|
223
227
|
"optional": false,
|
|
224
228
|
"docs": {
|
|
225
229
|
"tags": [],
|
|
226
|
-
"text": "The group expression
|
|
230
|
+
"text": "The group expression: an AND/OR group, optionally wrapped in NOT"
|
|
227
231
|
},
|
|
228
232
|
"getter": false,
|
|
229
233
|
"setter": false
|
|
230
234
|
}
|
|
231
235
|
};
|
|
232
236
|
}
|
|
233
|
-
static get states() {
|
|
234
|
-
return {
|
|
235
|
-
"value": {}
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
237
|
static get events() {
|
|
239
238
|
return [{
|
|
240
239
|
"method": "expressionChange",
|
|
@@ -244,7 +243,7 @@ export class LimeQueryFilterGroupComponent {
|
|
|
244
243
|
"composed": true,
|
|
245
244
|
"docs": {
|
|
246
245
|
"tags": [],
|
|
247
|
-
"text": "Emitted when the group expression changes
|
|
246
|
+
"text": "Emitted when the group expression changes.\nEmits undefined when the group itself should be removed."
|
|
248
247
|
},
|
|
249
248
|
"complexType": {
|
|
250
249
|
"original": "Expression | undefined",
|
|
@@ -35,7 +35,7 @@ export class LimeQueryFilterNotComponent {
|
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
render() {
|
|
38
|
-
return (h("div", { key: '
|
|
38
|
+
return (h("div", { key: '30b9f2fbe27c8277633ef02fbebbafb227387ed8', class: "expression" }, this.label && h("limel-header", { key: '05b193ac0ec191b1f9394ed48691c24e534ba66c', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '83b6a42631b886735502a8ec6454f5e9c868cc4c', 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"; }
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Operator, } from "@limetech/lime-web-components";
|
|
2
|
+
export const LIME_QUERY_OPERATORS = [
|
|
3
|
+
{
|
|
4
|
+
value: Operator.EQUALS,
|
|
5
|
+
label: 'webclient.operator.equals',
|
|
6
|
+
icon: '-lime-filter-equal',
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
value: Operator.NOT_EQUALS,
|
|
10
|
+
label: 'webclient.operator.not-equals',
|
|
11
|
+
icon: '-lime-filter-equal-not',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
value: Operator.GREATER,
|
|
15
|
+
label: 'webclient.operator.greater-than',
|
|
16
|
+
icon: '-lime-filter-greater',
|
|
17
|
+
applicableTypes: ['integer', 'decimal', 'date', 'time'],
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
value: Operator.GREATER_OR_EQUAL,
|
|
21
|
+
label: 'webclient.operator.greater-than-or-equal-to',
|
|
22
|
+
icon: '-lime-filter-greater-equal',
|
|
23
|
+
applicableTypes: ['integer', 'decimal', 'date', 'time'],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
value: Operator.LESS,
|
|
27
|
+
label: 'webclient.operator.less-than',
|
|
28
|
+
icon: '-lime-filter-less',
|
|
29
|
+
applicableTypes: ['integer', 'decimal', 'date', 'time'],
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
value: Operator.LESS_OR_EQUAL,
|
|
33
|
+
label: 'webclient.operator.less-than-or-equal-to',
|
|
34
|
+
icon: '-lime-filter-less-equal',
|
|
35
|
+
applicableTypes: ['integer', 'decimal', 'date', 'time'],
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
value: Operator.IN,
|
|
39
|
+
label: 'webclient.operator.in-filter',
|
|
40
|
+
icon: '-lime-filter-set-included',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
value: Operator.LIKE,
|
|
44
|
+
label: 'webclient.operator.contains',
|
|
45
|
+
icon: '-lime-filter-contain',
|
|
46
|
+
applicableTypes: ['string', 'text'],
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
value: Operator.BEGINS,
|
|
50
|
+
label: 'webclient.operator.begins-with',
|
|
51
|
+
icon: '-lime-filter-starts-with',
|
|
52
|
+
applicableTypes: ['string', 'text'],
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
value: Operator.ENDS,
|
|
56
|
+
label: 'webclient.operator.ends-with',
|
|
57
|
+
icon: '-lime-filter-ends-with',
|
|
58
|
+
applicableTypes: ['string', 'text'],
|
|
59
|
+
},
|
|
60
|
+
];
|
|
@@ -172,7 +172,7 @@ export class LimeQueryBuilder {
|
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
render() {
|
|
175
|
-
return (h(Host, { key: '
|
|
175
|
+
return (h(Host, { key: '08917b4c102db24180be24f392067ba5ec14569f' }, this.renderHeader(), this.renderContent()));
|
|
176
176
|
}
|
|
177
177
|
renderContent() {
|
|
178
178
|
const visualModeSupported = this.checkVisualModeSupport();
|
|
@@ -154,7 +154,7 @@ export class LimeQueryResponseFormatBuilder {
|
|
|
154
154
|
}
|
|
155
155
|
render() {
|
|
156
156
|
const visualModeSupported = this.checkVisualModeSupport();
|
|
157
|
-
return (h("div", { key: '
|
|
157
|
+
return (h("div", { key: '6f59c4ff1f5ef1ee726bacbe3b8333cd5f6dff77', class: "response-format-builder" }, this.label && h("h1", { key: '28d5825c0ca043f6f671cf812c174aa028950524', class: "builder-label" }, this.label), this.helperText && (h("p", { key: '1e35efbfaa73c0fd871f813059660eea3d026063', class: "builder-helper-text" }, this.helperText)), this.visualModeEnabled && (h("div", { key: '8cbe1f088d88cbdefbdd092cdf879facdbb807a3', class: "mode-controls" }, this.renderModeSwitch(visualModeSupported))), !this.visualModeEnabled || this.mode === 'code' ? (h("div", { class: "code-mode" }, this.renderCodeEditor(visualModeSupported))) : (h("div", { class: "visual-mode" }, this.renderVisualMode()))));
|
|
158
158
|
}
|
|
159
159
|
renderModeSwitch(support) {
|
|
160
160
|
const visualDisabled = !support.visualModeSupported;
|
|
@@ -78,7 +78,7 @@ export class LimetypeField {
|
|
|
78
78
|
value: '',
|
|
79
79
|
};
|
|
80
80
|
options.unshift(emptyOption);
|
|
81
|
-
return (h("limel-select", { key: '
|
|
81
|
+
return (h("limel-select", { key: '85956ae62a4975a7706b4a561b1e321078e0dc2a', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
|
|
82
82
|
}
|
|
83
83
|
componentWillRender() {
|
|
84
84
|
this.updatePropertyFields(this.value || '');
|
|
@@ -69,7 +69,7 @@ export class OrderByEditor {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
render() {
|
|
72
|
-
return (h(Host, { key: '
|
|
72
|
+
return (h(Host, { key: '59e3bb0334e5528fc8a0f8747086348d1a195c82' }, this.renderEmptyState(), this.renderOrderByEditor()));
|
|
73
73
|
}
|
|
74
74
|
renderEmptyState() {
|
|
75
75
|
if (this.limetype) {
|