@limetech/lime-crm-building-blocks 2.0.4 → 2.2.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 +19 -0
- package/dist/cjs/condition-tree-translate-B_qIQz9s.js +27 -0
- package/dist/cjs/index.cjs.js +6 -0
- package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
- package/dist/cjs/limebb-alert-dialog.cjs.entry.js +1 -1
- package/dist/cjs/limebb-browser.cjs.entry.js +2 -2
- package/dist/cjs/limebb-chat-icon-list_3.cjs.entry.js +4 -4
- package/dist/cjs/limebb-chat-list.cjs.entry.js +1 -1
- package/dist/cjs/limebb-color-palette-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-color-palette-swatches.cjs.entry.js +1 -1
- package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +2 -2
- package/dist/cjs/limebb-condition-tree-editor.cjs.entry.js +90 -0
- package/dist/cjs/limebb-condition-tree.cjs.entry.js +882 -0
- package/dist/cjs/limebb-currency-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-dashboard-widget.cjs.entry.js +1 -1
- package/dist/cjs/limebb-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-date-range.cjs.entry.js +1 -1
- package/dist/cjs/limebb-document-chips.cjs.entry.js +1 -1
- package/dist/cjs/limebb-document-item.cjs.entry.js +2 -2
- package/dist/cjs/limebb-document-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-feed-item-thumbnail-file-info.cjs.entry.js +1 -1
- package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +1 -1
- package/dist/cjs/limebb-feed.cjs.entry.js +1 -1
- package/dist/cjs/limebb-filter-chip_6.cjs.entry.js +7 -7
- package/dist/cjs/limebb-icon-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile.cjs.entry.js +1 -1
- package/dist/cjs/limebb-kanban-group.cjs.entry.js +1 -1
- package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
- package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +1 -1
- package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +2 -2
- package/dist/cjs/limebb-lime-query-order-by-editor_2.cjs.entry.js +2 -2
- package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +2 -2
- package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +1 -1
- package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +1 -1
- package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
- package/dist/cjs/limebb-locale-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
- package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +2 -2
- package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
- package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
- package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +2 -2
- package/dist/cjs/limebb-rule-editor.cjs.entry.js +162 -22
- package/dist/cjs/limebb-rule-gate.cjs.entry.js +1 -1
- package/dist/cjs/limebb-text-editor.cjs.entry.js +1 -1
- package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
- package/dist/cjs/limebb-value-comparison-editor.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/rule-editor-modes-Dc6rnwD2.js +76 -0
- package/dist/collection/collection-manifest.json +3 -1
- 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/condition-tree/condition-tree-combinators.js +78 -0
- package/dist/collection/components/condition-tree/condition-tree-editor/condition-tree-editor.css +17 -0
- package/dist/collection/components/condition-tree/condition-tree-editor/condition-tree-editor.js +333 -0
- package/dist/collection/components/condition-tree/condition-tree-nodes.js +218 -0
- package/dist/collection/components/condition-tree/condition-tree-open-state.js +127 -0
- package/dist/collection/components/condition-tree/condition-tree-translate.js +22 -0
- package/dist/collection/components/condition-tree/condition-tree-view-context.js +22 -0
- package/dist/collection/components/condition-tree/condition-tree.css +132 -0
- package/dist/collection/components/condition-tree/condition-tree.js +461 -0
- package/dist/collection/components/condition-tree/condition-tree.types.js +1 -0
- package/dist/collection/components/condition-tree/group-node-view.js +153 -0
- package/dist/collection/components/condition-tree/leaf-node-view.js +74 -0
- 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/filter-chip/filter-chip.js +2 -2
- package/dist/collection/components/filter-condition-picker/filter-condition-picker.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/lime-query-filter-comparison-editor.js +1 -1
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +2 -2
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +2 -2
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
- 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/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/group-node-view.js +3 -3
- package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +2 -2
- package/dist/collection/components/rule-editor/rule-editor-mode-view.js +32 -0
- package/dist/collection/components/rule-editor/rule-editor-modes.js +68 -0
- package/dist/collection/components/rule-editor/rule-editor.css +153 -12
- package/dist/collection/components/rule-editor/rule-editor.js +201 -19
- package/dist/collection/components/rule-editor/rule-editor.types.js +1 -0
- package/dist/collection/components/rule-editor/value-comparison-editor/value-comparison-editor.js +1 -1
- 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/collection/index.js +2 -0
- package/dist/components/chat-icon-list.js +1 -1
- package/dist/components/chat-item.js +1 -1
- package/dist/components/condition-tree-editor.js +1 -0
- 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/filter-chip.js +1 -1
- package/dist/components/filter-condition-picker.js +1 -1
- package/dist/components/index.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-comparison-editor.js +1 -1
- 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-condition-tree-editor.d.ts +11 -0
- package/dist/components/limebb-condition-tree-editor.js +1 -0
- package/dist/components/limebb-condition-tree.d.ts +11 -0
- package/dist/components/limebb-condition-tree.js +1 -0
- 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-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-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/limebb-value-comparison-editor.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/response-format-item.js +1 -1
- package/dist/components/rule-chip-popover.js +1 -1
- package/dist/components/rule-editor-modes.js +1 -0
- package/dist/components/summary-popover.js +1 -1
- package/dist/components/typing-indicator.js +1 -1
- package/dist/esm/condition-tree-translate-CBeXbZ_z.js +25 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/lime-crm-building-blocks.js +1 -1
- package/dist/esm/limebb-alert-dialog.entry.js +1 -1
- package/dist/esm/limebb-browser.entry.js +2 -2
- package/dist/esm/limebb-chat-icon-list_3.entry.js +4 -4
- package/dist/esm/limebb-chat-list.entry.js +1 -1
- package/dist/esm/limebb-color-palette-picker.entry.js +1 -1
- package/dist/esm/limebb-color-palette-swatches.entry.js +1 -1
- package/dist/esm/limebb-composer-toolbar.entry.js +2 -2
- package/dist/esm/limebb-condition-tree-editor.entry.js +88 -0
- package/dist/esm/limebb-condition-tree.entry.js +880 -0
- package/dist/esm/limebb-currency-picker.entry.js +1 -1
- package/dist/esm/limebb-dashboard-widget.entry.js +1 -1
- package/dist/esm/limebb-date-picker.entry.js +1 -1
- package/dist/esm/limebb-date-range.entry.js +1 -1
- package/dist/esm/limebb-document-chips.entry.js +1 -1
- package/dist/esm/limebb-document-item.entry.js +2 -2
- package/dist/esm/limebb-document-picker.entry.js +1 -1
- package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +1 -1
- package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
- package/dist/esm/limebb-feed.entry.js +1 -1
- package/dist/esm/limebb-filter-chip_6.entry.js +7 -7
- package/dist/esm/limebb-icon-picker.entry.js +1 -1
- package/dist/esm/limebb-info-tile-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile.entry.js +1 -1
- package/dist/esm/limebb-kanban-group.entry.js +1 -1
- package/dist/esm/limebb-kanban-item.entry.js +1 -1
- package/dist/esm/limebb-lime-query-builder.entry.js +1 -1
- package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +2 -2
- package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +2 -2
- package/dist/esm/limebb-lime-query-order-by-item.entry.js +2 -2
- package/dist/esm/limebb-lime-query-response-format-builder.entry.js +1 -1
- package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +1 -1
- package/dist/esm/limebb-live-docs-info.entry.js +2 -2
- package/dist/esm/limebb-locale-picker.entry.js +1 -1
- package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
- package/dist/esm/limebb-navigation-button_2.entry.js +2 -2
- package/dist/esm/limebb-notification-item.entry.js +1 -1
- package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
- package/dist/esm/limebb-rule-chip-popover.entry.js +2 -2
- package/dist/esm/limebb-rule-editor.entry.js +163 -23
- package/dist/esm/limebb-rule-gate.entry.js +1 -1
- package/dist/esm/limebb-text-editor.entry.js +1 -1
- package/dist/esm/limebb-trend-indicator.entry.js +1 -1
- package/dist/esm/limebb-value-comparison-editor.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/rule-editor-modes-BCglve2Z.js +70 -0
- package/dist/lime-crm-building-blocks/index.esm.js +1 -1
- package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
- package/dist/lime-crm-building-blocks/{p-2f8540ab.entry.js → p-02fba38e.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-76151fce.entry.js → p-0445035f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-4f0a4893.entry.js → p-0a05b3e9.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-0dd64440.entry.js +1 -0
- package/dist/lime-crm-building-blocks/p-1578c8f0.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-76064593.entry.js → p-170ab4be.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-542047c4.entry.js → p-27b9c824.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-2628fe8e.entry.js → p-2d1c7b6f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c2c181f1.entry.js → p-3fd84800.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c7daffb6.entry.js → p-45dd8663.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-cede8095.entry.js → p-4e4d096c.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-51eb53ee.entry.js → p-54735042.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c2899d68.entry.js → p-568c4e76.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-9907deb1.entry.js → p-584a48e4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ac4bddfc.entry.js → p-5b97d4f4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-615770be.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-edfaf566.entry.js → p-6d8efe87.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-705c53c0.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-031b1648.entry.js → p-73f23d08.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-2baab674.entry.js → p-7c5ecffe.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-1fac8130.entry.js → p-7cd8dffd.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-93af3e81.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-247fcace.entry.js → p-97e2e5c9.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-BCglve2Z.js +1 -0
- package/dist/lime-crm-building-blocks/p-BxCq236x.js +1 -0
- package/dist/lime-crm-building-blocks/p-a2b9c410.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-f9f7020f.entry.js → p-a716b3a8.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-b3529254.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-2bfd351d.entry.js → p-b48d7d23.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-b373c60f.entry.js → p-b6807166.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-318369ae.entry.js → p-b6c2d93b.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-d82a2424.entry.js → p-c46802cd.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-9099b440.entry.js → p-c635f826.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-fec173db.entry.js → p-d816fcc8.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-4594c2b1.entry.js → p-d8ce3497.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-0f74d662.entry.js → p-d8d32cb1.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-99556fc0.entry.js → p-de7724f0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-92403251.entry.js → p-e910963c.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-4274cbe3.entry.js → p-ea6ab8b0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-eedbf69a.entry.js → p-ee7bd504.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-e1f35866.entry.js → p-f024c185.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-7bb2788b.entry.js → p-f102f169.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-2984005d.entry.js → p-f1060c88.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-17588c29.entry.js → p-f3905fa2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ac97c7cc.entry.js → p-fc372344.entry.js} +1 -1
- package/dist/types/components/condition-tree/condition-tree-combinators.d.ts +47 -0
- package/dist/types/components/condition-tree/condition-tree-editor/condition-tree-editor.d.ts +84 -0
- package/dist/types/components/condition-tree/condition-tree-nodes.d.ts +130 -0
- package/dist/types/components/condition-tree/condition-tree-open-state.d.ts +76 -0
- package/dist/types/components/condition-tree/condition-tree-translate.d.ts +11 -0
- package/dist/types/components/condition-tree/condition-tree-view-context.d.ts +48 -0
- package/dist/types/components/condition-tree/condition-tree.d.ts +177 -0
- package/dist/types/components/condition-tree/condition-tree.types.d.ts +323 -0
- package/dist/types/components/condition-tree/group-node-view.d.ts +30 -0
- package/dist/types/components/condition-tree/leaf-node-view.d.ts +21 -0
- package/dist/types/components/rule-editor/rule-editor-mode-view.d.ts +22 -0
- package/dist/types/components/rule-editor/rule-editor-modes.d.ts +43 -0
- package/dist/types/components/rule-editor/rule-editor.d.ts +129 -5
- package/dist/types/components/rule-editor/rule-editor.types.d.ts +16 -0
- package/dist/types/components.d.ts +412 -4
- package/dist/types/index.d.ts +2 -0
- package/dist/types/interface.d.ts +2 -0
- package/package.json +3 -3
- package/dist/lime-crm-building-blocks/p-1e83a491.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-73f79d42.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-761deada.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-b8d74591.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-e8a7a94c.entry.js +0 -1
|
@@ -6,14 +6,15 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
|
|
8
8
|
import { AlertType } from "./components/alert-dialog/alert-dialog.types";
|
|
9
|
-
import { AggregateOperator, ContextMap, ContextScope, Expression, JsonValue, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator, PrimitiveMetadata, PropertyType, Rule, RuleRef } from "@limetech/lime-web-components";
|
|
9
|
+
import { AggregateOperator, ComponentDescriptor, ContextMap, ContextScope, Expression, JsonValue, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator, PrimitiveMetadata, PropertyType, Rule, RuleRef } from "@limetech/lime-web-components";
|
|
10
10
|
import { BrowserItem } from "./components/browser/browser-item.types";
|
|
11
|
-
import { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FileInfo, FormInfo, Icon, IconName, Image, Languages, ListItem, ListSeparator, OpenDirection } from "@limetech/lime-elements";
|
|
11
|
+
import { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FileInfo, FormInfo, Icon, IconName, Image, Languages, ListItem, ListSeparator, MenuItem, OpenDirection } from "@limetech/lime-elements";
|
|
12
12
|
import { ChatIconList } from "./components/chat-list/chat-icon-list/chat-icon-list.types";
|
|
13
13
|
import { ChatItem } from "./components/chat-list/chat-item/chat-item.types";
|
|
14
14
|
import { ChatListItem } from "./components/chat-list/chat-list.types";
|
|
15
15
|
import { ComponentPickerType } from "./components/component-command-picker/types";
|
|
16
16
|
import { ComposerTrigger, FileInputConfig } from "./components/composer-toolbar/composer-toolbar.types";
|
|
17
|
+
import { ConditionTreeAdapter, ConditionTreeCombinator } from "./components/condition-tree/condition-tree.types";
|
|
17
18
|
import { DataCell } from "./components/data-cells/data-cells.types";
|
|
18
19
|
import { DocumentChipFile } from "./components/document-chips/document-chips.types";
|
|
19
20
|
import { DocumentItem } from "./components/document-picker/document-item/document-item.types";
|
|
@@ -33,17 +34,19 @@ import { LanguagePickerType } from "./components/locale-picker/language-picker.t
|
|
|
33
34
|
import { NavigationButtonType } from "./components/navigation-button/navigation-button.types";
|
|
34
35
|
import { NotificationItem } from "./components/notification-list/notification-item/notification-item.types";
|
|
35
36
|
import { RuleArgFilterEditorValue } from "./components/rule-editor/rule-arg-filter-editor/rule-arg-filter-editor";
|
|
37
|
+
import { RuleEditorMode } from "./components/rule-editor/rule-editor.types";
|
|
36
38
|
import { TriggerMap } from "./components/text-editor/text-editor.types";
|
|
37
39
|
import { ValueComparisonEditorValue } from "./components/rule-editor/value-comparison-editor/value-comparison-editor";
|
|
38
40
|
export { AlertType } from "./components/alert-dialog/alert-dialog.types";
|
|
39
|
-
export { AggregateOperator, ContextMap, ContextScope, Expression, JsonValue, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator, PrimitiveMetadata, PropertyType, Rule, RuleRef } from "@limetech/lime-web-components";
|
|
41
|
+
export { AggregateOperator, ComponentDescriptor, ContextMap, ContextScope, Expression, JsonValue, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator, PrimitiveMetadata, PropertyType, Rule, RuleRef } from "@limetech/lime-web-components";
|
|
40
42
|
export { BrowserItem } from "./components/browser/browser-item.types";
|
|
41
|
-
export { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FileInfo, FormInfo, Icon, IconName, Image, Languages, ListItem, ListSeparator, OpenDirection } from "@limetech/lime-elements";
|
|
43
|
+
export { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FileInfo, FormInfo, Icon, IconName, Image, Languages, ListItem, ListSeparator, MenuItem, OpenDirection } from "@limetech/lime-elements";
|
|
42
44
|
export { ChatIconList } from "./components/chat-list/chat-icon-list/chat-icon-list.types";
|
|
43
45
|
export { ChatItem } from "./components/chat-list/chat-item/chat-item.types";
|
|
44
46
|
export { ChatListItem } from "./components/chat-list/chat-list.types";
|
|
45
47
|
export { ComponentPickerType } from "./components/component-command-picker/types";
|
|
46
48
|
export { ComposerTrigger, FileInputConfig } from "./components/composer-toolbar/composer-toolbar.types";
|
|
49
|
+
export { ConditionTreeAdapter, ConditionTreeCombinator } from "./components/condition-tree/condition-tree.types";
|
|
47
50
|
export { DataCell } from "./components/data-cells/data-cells.types";
|
|
48
51
|
export { DocumentChipFile } from "./components/document-chips/document-chips.types";
|
|
49
52
|
export { DocumentItem } from "./components/document-picker/document-item/document-item.types";
|
|
@@ -63,6 +66,7 @@ export { LanguagePickerType } from "./components/locale-picker/language-picker.t
|
|
|
63
66
|
export { NavigationButtonType } from "./components/navigation-button/navigation-button.types";
|
|
64
67
|
export { NotificationItem } from "./components/notification-list/notification-item/notification-item.types";
|
|
65
68
|
export { RuleArgFilterEditorValue } from "./components/rule-editor/rule-arg-filter-editor/rule-arg-filter-editor";
|
|
69
|
+
export { RuleEditorMode } from "./components/rule-editor/rule-editor.types";
|
|
66
70
|
export { TriggerMap } from "./components/text-editor/text-editor.types";
|
|
67
71
|
export { ValueComparisonEditorValue } from "./components/rule-editor/value-comparison-editor/value-comparison-editor";
|
|
68
72
|
export namespace Components {
|
|
@@ -503,6 +507,112 @@ export namespace Components {
|
|
|
503
507
|
*/
|
|
504
508
|
"textSnippets": boolean;
|
|
505
509
|
}
|
|
510
|
+
/**
|
|
511
|
+
* The shared skeleton for editing a tree of conditions: nested groups joined by
|
|
512
|
+
* "All of the following" or "Any of the following", or the negations of those
|
|
513
|
+
* two, each holding conditions shown as chips, with the buttons that add,
|
|
514
|
+
* remove and regroup them.
|
|
515
|
+
* This component is deliberately ignorant of what a condition *is*.
|
|
516
|
+
* A condition is visualized as a chip, plus the tag name of an editor to open.
|
|
517
|
+
* So the same skeleton serves a condition that tests a property ("Deal value is
|
|
518
|
+
* greater than 100 000") and one that is opaque ("User is a member of a group")
|
|
519
|
+
* without either model leaking into it.
|
|
520
|
+
* It holds no tree of its own either. The consumer passes in its own tree, and
|
|
521
|
+
* an adapter that reads one node and rebuilds one group. Every structural edit
|
|
522
|
+
* — add, delete, regroup, rejoin, negate — is applied here and handed back as a
|
|
523
|
+
* tree of the same kind, so no consumer has to write that code twice.
|
|
524
|
+
* @exampleComponent limebb-example-condition-tree-basic
|
|
525
|
+
* @exampleComponent limebb-example-condition-tree-combinators
|
|
526
|
+
* @exampleComponent limebb-example-condition-tree-editors
|
|
527
|
+
* @exampleComponent limebb-example-condition-tree-palette
|
|
528
|
+
* @beta
|
|
529
|
+
*/
|
|
530
|
+
interface LimebbConditionTree {
|
|
531
|
+
/**
|
|
532
|
+
* How to read and rebuild `value`. Build it once and hold on to it: one built inside a consumer's `render()` is a new object every time, which makes this component re-render for no reason. A Stencil element cannot be generic, so this is typed loosely here. Declare the adapter as `ConditionTreeAdapter<YourNode>` where you write it, and the compiler checks it against your own model.
|
|
533
|
+
*/
|
|
534
|
+
"adapter": ConditionTreeAdapter<any>;
|
|
535
|
+
/**
|
|
536
|
+
* The kinds of condition a user can add, offered as a menu when the add button is pressed. The chosen item is passed to `adapter.createLeaf`. Leave it unset when every condition in the tree is of the same kind: a blank one can simply be inserted, and its editor settles the rest, so pressing the button is the whole interaction. Set it when conditions come in kinds that have nothing in common — "the deal is worth more than 100 000", "the user belongs to a group", "it is the first day of the month" — where nothing can be inserted until the user says which. The menu has to be rendered here rather than by the consumer, because the button it hangs from lives inside this component.
|
|
537
|
+
*/
|
|
538
|
+
"addOptions"?: Array<MenuItem | ListSeparator>;
|
|
539
|
+
/**
|
|
540
|
+
* Which combinators to offer in the group dropdowns, in the order given. All four are offered by default. "Not all of the following" and "None of the following" are harder to reason about than the two they negate, so a consumer whose users would be better served without them passes `['all', 'any']`. A group that already uses a combinator left off this list still shows it, rather than misrepresenting itself as using one of the offered ones.
|
|
541
|
+
* @default [ ...CONDITION_TREE_COMBINATORS, ]
|
|
542
|
+
*/
|
|
543
|
+
"combinators": ConditionTreeCombinator[];
|
|
544
|
+
/**
|
|
545
|
+
* Component context, forwarded to each condition's editor.
|
|
546
|
+
*/
|
|
547
|
+
"context": LimeWebComponentContext;
|
|
548
|
+
/**
|
|
549
|
+
* Set to `true` when the tree *is* the viewer's to change, but not at this moment: every control stays where it is, dimmed and inert. Use it for a state that will pass — a form mid-save, or a tree behind an "Apply a filter" switch that is currently off.
|
|
550
|
+
* @default false
|
|
551
|
+
*/
|
|
552
|
+
"disabled": boolean;
|
|
553
|
+
/**
|
|
554
|
+
* Platform service provider
|
|
555
|
+
*/
|
|
556
|
+
"platform": LimeWebComponentPlatform;
|
|
557
|
+
/**
|
|
558
|
+
* Set to `true` when the tree is not the viewer's to change: the add, delete and negate controls are not rendered at all, leaving the conditions to be read. Use it where the tree is being shown rather than edited — a saved filter summarized on a card, or a rule the viewer has no rights over.
|
|
559
|
+
* @default false
|
|
560
|
+
*/
|
|
561
|
+
"readonly": boolean;
|
|
562
|
+
/**
|
|
563
|
+
* The consumer's own tree, rendered as-is — the root node, in whatever shape `adapter` reads. Leave it unset for a tree with nothing in it yet, which draws an empty group asking for its first condition.
|
|
564
|
+
*/
|
|
565
|
+
"value"?: any;
|
|
566
|
+
}
|
|
567
|
+
/**
|
|
568
|
+
* The body of a condition's editor popover: the consumer's editor, and — for a
|
|
569
|
+
* condition that cannot express its own negation — a switch that negates it.
|
|
570
|
+
* It is an element of its own rather than markup inside the tree because
|
|
571
|
+
* `limel-popover` portals its content out of the tree's shadow DOM, leaving it
|
|
572
|
+
* behind. Carrying its own shadow root means its styles travel with it.
|
|
573
|
+
* @private
|
|
574
|
+
*/
|
|
575
|
+
interface LimebbConditionTreeEditor {
|
|
576
|
+
/**
|
|
577
|
+
* Bridges the tree's context across the `limel-popover` portal.
|
|
578
|
+
*/
|
|
579
|
+
"context": LimeWebComponentContext;
|
|
580
|
+
/**
|
|
581
|
+
* @inheritdoc
|
|
582
|
+
* @default false
|
|
583
|
+
*/
|
|
584
|
+
"disabled": boolean;
|
|
585
|
+
/**
|
|
586
|
+
* The editor to mount, as given on the condition.
|
|
587
|
+
*/
|
|
588
|
+
"editor"?: ComponentDescriptor;
|
|
589
|
+
/**
|
|
590
|
+
* Title of the condition, shown above the editor when there is a header to show at all.
|
|
591
|
+
*/
|
|
592
|
+
"heading"?: string;
|
|
593
|
+
/**
|
|
594
|
+
* Whether the condition is negated. `undefined` means the condition expresses its own polarity and no switch is offered.
|
|
595
|
+
*/
|
|
596
|
+
"negated"?: boolean;
|
|
597
|
+
/**
|
|
598
|
+
* Whether the popover holding this element is open. The element itself stays in place while closed, because `limel-popover` moves its content into the popover surface once and for all when that surface first loads — anything not there by then is never moved. Drawing nothing until asked is what keeps the consumer's editor from being built for every condition in the tree.
|
|
599
|
+
* @default false
|
|
600
|
+
*/
|
|
601
|
+
"open": boolean;
|
|
602
|
+
/**
|
|
603
|
+
* Platform service provider
|
|
604
|
+
*/
|
|
605
|
+
"platform": LimeWebComponentPlatform;
|
|
606
|
+
/**
|
|
607
|
+
* @inheritdoc
|
|
608
|
+
* @default false
|
|
609
|
+
*/
|
|
610
|
+
"readonly": boolean;
|
|
611
|
+
/**
|
|
612
|
+
* The condition being edited, in the consumer's own model. Handed to the mounted editor as `value`.
|
|
613
|
+
*/
|
|
614
|
+
"value"?: any;
|
|
615
|
+
}
|
|
506
616
|
/**
|
|
507
617
|
* All currencies have a ISO code, an international standard with three-letters
|
|
508
618
|
* which is used by many systems such as ERPs.
|
|
@@ -2475,7 +2585,16 @@ export namespace Components {
|
|
|
2475
2585
|
* that provides it. An explicit Prop with a `limetype` wins, so an empty
|
|
2476
2586
|
* default (e.g. an admin form's "no selection" context) doesn't shadow a
|
|
2477
2587
|
* DOM-provided one.
|
|
2588
|
+
* Pass `modes` to offer the author a few pre-defined answers above the
|
|
2589
|
+
* tree — "Never", "Always", "Conditionally" — so an
|
|
2590
|
+
* unconditional state is one click instead of an empty tree they have
|
|
2591
|
+
* to reason about. A mode is a way of writing a rule, not a second
|
|
2592
|
+
* output: all of them end up in `value`, and `ruleForMode` builds the
|
|
2593
|
+
* same rule a click does.
|
|
2478
2594
|
* @exampleComponent limebb-example-rule-editor
|
|
2595
|
+
* @exampleComponent limebb-example-rule-editor-modes
|
|
2596
|
+
* @exampleComponent limebb-example-rule-editor-invalid
|
|
2597
|
+
* @exampleComponent limebb-example-rule-editor-help
|
|
2479
2598
|
* @alpha
|
|
2480
2599
|
* @private
|
|
2481
2600
|
*/
|
|
@@ -2493,16 +2612,28 @@ export namespace Components {
|
|
|
2493
2612
|
* @inheritdoc
|
|
2494
2613
|
*/
|
|
2495
2614
|
"disabled": boolean;
|
|
2615
|
+
/**
|
|
2616
|
+
* Contextual help for the setting as a whole, rendered as a `?` beside the label that opens a popover on click. Markdown. For what a rule *is* rather than what this one is for — the helper text is the shorter, always-legible answer, and the two are meant to be used together rather than instead of each other.
|
|
2617
|
+
*/
|
|
2618
|
+
"help"?: string;
|
|
2496
2619
|
/**
|
|
2497
2620
|
* The helper text for the current property
|
|
2498
2621
|
* @inheritdoc
|
|
2499
2622
|
*/
|
|
2500
2623
|
"helperText": string;
|
|
2624
|
+
/**
|
|
2625
|
+
* Set to `true` to mark the rule as invalid, which reddens the outline and the helper text. This is the caller's verdict on the rule as a whole — typically a form reporting that the field is required and empty. It is separate from the diagnostics the editor finds itself, which mark the individual nodes they belong to and show regardless of this prop.
|
|
2626
|
+
*/
|
|
2627
|
+
"invalid": boolean;
|
|
2501
2628
|
/**
|
|
2502
2629
|
* The label of the current property
|
|
2503
2630
|
* @inheritdoc
|
|
2504
2631
|
*/
|
|
2505
2632
|
"label": string;
|
|
2633
|
+
/**
|
|
2634
|
+
* The ways of writing a rule offered above the tree, in the order given. Leave it unset to offer none, and render the tree alone. Which modes make sense is the caller's to decide, because it differs per setting: a "when to show" toggle offers `always` and `conditional`, while a "when to make required" one also offers `never`. `conditional` is not forced into the list — a caller passing only the unconditional modes usually gets a plain toggle with no tree, which is a legitimate thing to want. "Usually", because the offered modes do not constrain `value`. A stored condition tree is still drawn, and the control then shows no mode as selected, because none of the offered ones describes what is stored. Hiding a rule the author cannot otherwise see would be worse than an unselected control.
|
|
2635
|
+
*/
|
|
2636
|
+
"modes"?: RuleEditorMode[];
|
|
2506
2637
|
/**
|
|
2507
2638
|
* Reference to the platform service container. Use this to access all platform services like repositories, HTTP client, command bus, navigator, and more. The platform instance is shared across all components in the same application context.
|
|
2508
2639
|
*/
|
|
@@ -2910,6 +3041,14 @@ export interface LimebbComposerToolbarCustomEvent<T> extends CustomEvent<T> {
|
|
|
2910
3041
|
detail: T;
|
|
2911
3042
|
target: HTMLLimebbComposerToolbarElement;
|
|
2912
3043
|
}
|
|
3044
|
+
export interface LimebbConditionTreeCustomEvent<T> extends CustomEvent<T> {
|
|
3045
|
+
detail: T;
|
|
3046
|
+
target: HTMLLimebbConditionTreeElement;
|
|
3047
|
+
}
|
|
3048
|
+
export interface LimebbConditionTreeEditorCustomEvent<T> extends CustomEvent<T> {
|
|
3049
|
+
detail: T;
|
|
3050
|
+
target: HTMLLimebbConditionTreeEditorElement;
|
|
3051
|
+
}
|
|
2913
3052
|
export interface LimebbCurrencyPickerCustomEvent<T> extends CustomEvent<T> {
|
|
2914
3053
|
detail: T;
|
|
2915
3054
|
target: HTMLLimebbCurrencyPickerElement;
|
|
@@ -3374,6 +3513,69 @@ declare global {
|
|
|
3374
3513
|
prototype: HTMLLimebbComposerToolbarElement;
|
|
3375
3514
|
new (): HTMLLimebbComposerToolbarElement;
|
|
3376
3515
|
};
|
|
3516
|
+
interface HTMLLimebbConditionTreeElementEventMap {
|
|
3517
|
+
"change": any;
|
|
3518
|
+
}
|
|
3519
|
+
/**
|
|
3520
|
+
* The shared skeleton for editing a tree of conditions: nested groups joined by
|
|
3521
|
+
* "All of the following" or "Any of the following", or the negations of those
|
|
3522
|
+
* two, each holding conditions shown as chips, with the buttons that add,
|
|
3523
|
+
* remove and regroup them.
|
|
3524
|
+
* This component is deliberately ignorant of what a condition *is*.
|
|
3525
|
+
* A condition is visualized as a chip, plus the tag name of an editor to open.
|
|
3526
|
+
* So the same skeleton serves a condition that tests a property ("Deal value is
|
|
3527
|
+
* greater than 100 000") and one that is opaque ("User is a member of a group")
|
|
3528
|
+
* without either model leaking into it.
|
|
3529
|
+
* It holds no tree of its own either. The consumer passes in its own tree, and
|
|
3530
|
+
* an adapter that reads one node and rebuilds one group. Every structural edit
|
|
3531
|
+
* — add, delete, regroup, rejoin, negate — is applied here and handed back as a
|
|
3532
|
+
* tree of the same kind, so no consumer has to write that code twice.
|
|
3533
|
+
* @exampleComponent limebb-example-condition-tree-basic
|
|
3534
|
+
* @exampleComponent limebb-example-condition-tree-combinators
|
|
3535
|
+
* @exampleComponent limebb-example-condition-tree-editors
|
|
3536
|
+
* @exampleComponent limebb-example-condition-tree-palette
|
|
3537
|
+
* @beta
|
|
3538
|
+
*/
|
|
3539
|
+
interface HTMLLimebbConditionTreeElement extends Components.LimebbConditionTree, HTMLStencilElement {
|
|
3540
|
+
addEventListener<K extends keyof HTMLLimebbConditionTreeElementEventMap>(type: K, listener: (this: HTMLLimebbConditionTreeElement, ev: LimebbConditionTreeCustomEvent<HTMLLimebbConditionTreeElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3541
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3542
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3543
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
3544
|
+
removeEventListener<K extends keyof HTMLLimebbConditionTreeElementEventMap>(type: K, listener: (this: HTMLLimebbConditionTreeElement, ev: LimebbConditionTreeCustomEvent<HTMLLimebbConditionTreeElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
3545
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
3546
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
3547
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
3548
|
+
}
|
|
3549
|
+
var HTMLLimebbConditionTreeElement: {
|
|
3550
|
+
prototype: HTMLLimebbConditionTreeElement;
|
|
3551
|
+
new (): HTMLLimebbConditionTreeElement;
|
|
3552
|
+
};
|
|
3553
|
+
interface HTMLLimebbConditionTreeEditorElementEventMap {
|
|
3554
|
+
"negateChange": boolean;
|
|
3555
|
+
"conditionChange": any;
|
|
3556
|
+
}
|
|
3557
|
+
/**
|
|
3558
|
+
* The body of a condition's editor popover: the consumer's editor, and — for a
|
|
3559
|
+
* condition that cannot express its own negation — a switch that negates it.
|
|
3560
|
+
* It is an element of its own rather than markup inside the tree because
|
|
3561
|
+
* `limel-popover` portals its content out of the tree's shadow DOM, leaving it
|
|
3562
|
+
* behind. Carrying its own shadow root means its styles travel with it.
|
|
3563
|
+
* @private
|
|
3564
|
+
*/
|
|
3565
|
+
interface HTMLLimebbConditionTreeEditorElement extends Components.LimebbConditionTreeEditor, HTMLStencilElement {
|
|
3566
|
+
addEventListener<K extends keyof HTMLLimebbConditionTreeEditorElementEventMap>(type: K, listener: (this: HTMLLimebbConditionTreeEditorElement, ev: LimebbConditionTreeEditorCustomEvent<HTMLLimebbConditionTreeEditorElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3567
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3568
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3569
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
3570
|
+
removeEventListener<K extends keyof HTMLLimebbConditionTreeEditorElementEventMap>(type: K, listener: (this: HTMLLimebbConditionTreeEditorElement, ev: LimebbConditionTreeEditorCustomEvent<HTMLLimebbConditionTreeEditorElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
3571
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
3572
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
3573
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
3574
|
+
}
|
|
3575
|
+
var HTMLLimebbConditionTreeEditorElement: {
|
|
3576
|
+
prototype: HTMLLimebbConditionTreeEditorElement;
|
|
3577
|
+
new (): HTMLLimebbConditionTreeEditorElement;
|
|
3578
|
+
};
|
|
3377
3579
|
interface HTMLLimebbCurrencyPickerElementEventMap {
|
|
3378
3580
|
"change": string;
|
|
3379
3581
|
}
|
|
@@ -4762,7 +4964,16 @@ declare global {
|
|
|
4762
4964
|
* that provides it. An explicit Prop with a `limetype` wins, so an empty
|
|
4763
4965
|
* default (e.g. an admin form's "no selection" context) doesn't shadow a
|
|
4764
4966
|
* DOM-provided one.
|
|
4967
|
+
* Pass `modes` to offer the author a few pre-defined answers above the
|
|
4968
|
+
* tree — "Never", "Always", "Conditionally" — so an
|
|
4969
|
+
* unconditional state is one click instead of an empty tree they have
|
|
4970
|
+
* to reason about. A mode is a way of writing a rule, not a second
|
|
4971
|
+
* output: all of them end up in `value`, and `ruleForMode` builds the
|
|
4972
|
+
* same rule a click does.
|
|
4765
4973
|
* @exampleComponent limebb-example-rule-editor
|
|
4974
|
+
* @exampleComponent limebb-example-rule-editor-modes
|
|
4975
|
+
* @exampleComponent limebb-example-rule-editor-invalid
|
|
4976
|
+
* @exampleComponent limebb-example-rule-editor-help
|
|
4766
4977
|
* @alpha
|
|
4767
4978
|
* @private
|
|
4768
4979
|
*/
|
|
@@ -5004,6 +5215,8 @@ declare global {
|
|
|
5004
5215
|
"limebb-component-config": HTMLLimebbComponentConfigElement;
|
|
5005
5216
|
"limebb-component-picker": HTMLLimebbComponentPickerElement;
|
|
5006
5217
|
"limebb-composer-toolbar": HTMLLimebbComposerToolbarElement;
|
|
5218
|
+
"limebb-condition-tree": HTMLLimebbConditionTreeElement;
|
|
5219
|
+
"limebb-condition-tree-editor": HTMLLimebbConditionTreeEditorElement;
|
|
5007
5220
|
"limebb-currency-picker": HTMLLimebbCurrencyPickerElement;
|
|
5008
5221
|
"limebb-dashboard-widget": HTMLLimebbDashboardWidgetElement;
|
|
5009
5222
|
"limebb-data-cells": HTMLLimebbDataCellsElement;
|
|
@@ -5540,6 +5753,124 @@ declare namespace LocalJSX {
|
|
|
5540
5753
|
*/
|
|
5541
5754
|
"textSnippets"?: boolean;
|
|
5542
5755
|
}
|
|
5756
|
+
/**
|
|
5757
|
+
* The shared skeleton for editing a tree of conditions: nested groups joined by
|
|
5758
|
+
* "All of the following" or "Any of the following", or the negations of those
|
|
5759
|
+
* two, each holding conditions shown as chips, with the buttons that add,
|
|
5760
|
+
* remove and regroup them.
|
|
5761
|
+
* This component is deliberately ignorant of what a condition *is*.
|
|
5762
|
+
* A condition is visualized as a chip, plus the tag name of an editor to open.
|
|
5763
|
+
* So the same skeleton serves a condition that tests a property ("Deal value is
|
|
5764
|
+
* greater than 100 000") and one that is opaque ("User is a member of a group")
|
|
5765
|
+
* without either model leaking into it.
|
|
5766
|
+
* It holds no tree of its own either. The consumer passes in its own tree, and
|
|
5767
|
+
* an adapter that reads one node and rebuilds one group. Every structural edit
|
|
5768
|
+
* — add, delete, regroup, rejoin, negate — is applied here and handed back as a
|
|
5769
|
+
* tree of the same kind, so no consumer has to write that code twice.
|
|
5770
|
+
* @exampleComponent limebb-example-condition-tree-basic
|
|
5771
|
+
* @exampleComponent limebb-example-condition-tree-combinators
|
|
5772
|
+
* @exampleComponent limebb-example-condition-tree-editors
|
|
5773
|
+
* @exampleComponent limebb-example-condition-tree-palette
|
|
5774
|
+
* @beta
|
|
5775
|
+
*/
|
|
5776
|
+
interface LimebbConditionTree {
|
|
5777
|
+
/**
|
|
5778
|
+
* How to read and rebuild `value`. Build it once and hold on to it: one built inside a consumer's `render()` is a new object every time, which makes this component re-render for no reason. A Stencil element cannot be generic, so this is typed loosely here. Declare the adapter as `ConditionTreeAdapter<YourNode>` where you write it, and the compiler checks it against your own model.
|
|
5779
|
+
*/
|
|
5780
|
+
"adapter"?: ConditionTreeAdapter<any>;
|
|
5781
|
+
/**
|
|
5782
|
+
* The kinds of condition a user can add, offered as a menu when the add button is pressed. The chosen item is passed to `adapter.createLeaf`. Leave it unset when every condition in the tree is of the same kind: a blank one can simply be inserted, and its editor settles the rest, so pressing the button is the whole interaction. Set it when conditions come in kinds that have nothing in common — "the deal is worth more than 100 000", "the user belongs to a group", "it is the first day of the month" — where nothing can be inserted until the user says which. The menu has to be rendered here rather than by the consumer, because the button it hangs from lives inside this component.
|
|
5783
|
+
*/
|
|
5784
|
+
"addOptions"?: Array<MenuItem | ListSeparator>;
|
|
5785
|
+
/**
|
|
5786
|
+
* Which combinators to offer in the group dropdowns, in the order given. All four are offered by default. "Not all of the following" and "None of the following" are harder to reason about than the two they negate, so a consumer whose users would be better served without them passes `['all', 'any']`. A group that already uses a combinator left off this list still shows it, rather than misrepresenting itself as using one of the offered ones.
|
|
5787
|
+
* @default [ ...CONDITION_TREE_COMBINATORS, ]
|
|
5788
|
+
*/
|
|
5789
|
+
"combinators"?: ConditionTreeCombinator[];
|
|
5790
|
+
/**
|
|
5791
|
+
* Component context, forwarded to each condition's editor.
|
|
5792
|
+
*/
|
|
5793
|
+
"context"?: LimeWebComponentContext;
|
|
5794
|
+
/**
|
|
5795
|
+
* Set to `true` when the tree *is* the viewer's to change, but not at this moment: every control stays where it is, dimmed and inert. Use it for a state that will pass — a form mid-save, or a tree behind an "Apply a filter" switch that is currently off.
|
|
5796
|
+
* @default false
|
|
5797
|
+
*/
|
|
5798
|
+
"disabled"?: boolean;
|
|
5799
|
+
/**
|
|
5800
|
+
* Emitted with the whole tree, of the consumer's own kind, whenever the user changes it. `null` means the last condition went and there is nothing left — an event carries no detail otherwise.
|
|
5801
|
+
*/
|
|
5802
|
+
"onChange"?: (event: LimebbConditionTreeCustomEvent<any>) => void;
|
|
5803
|
+
/**
|
|
5804
|
+
* Platform service provider
|
|
5805
|
+
*/
|
|
5806
|
+
"platform"?: LimeWebComponentPlatform;
|
|
5807
|
+
/**
|
|
5808
|
+
* Set to `true` when the tree is not the viewer's to change: the add, delete and negate controls are not rendered at all, leaving the conditions to be read. Use it where the tree is being shown rather than edited — a saved filter summarized on a card, or a rule the viewer has no rights over.
|
|
5809
|
+
* @default false
|
|
5810
|
+
*/
|
|
5811
|
+
"readonly"?: boolean;
|
|
5812
|
+
/**
|
|
5813
|
+
* The consumer's own tree, rendered as-is — the root node, in whatever shape `adapter` reads. Leave it unset for a tree with nothing in it yet, which draws an empty group asking for its first condition.
|
|
5814
|
+
*/
|
|
5815
|
+
"value"?: any;
|
|
5816
|
+
}
|
|
5817
|
+
/**
|
|
5818
|
+
* The body of a condition's editor popover: the consumer's editor, and — for a
|
|
5819
|
+
* condition that cannot express its own negation — a switch that negates it.
|
|
5820
|
+
* It is an element of its own rather than markup inside the tree because
|
|
5821
|
+
* `limel-popover` portals its content out of the tree's shadow DOM, leaving it
|
|
5822
|
+
* behind. Carrying its own shadow root means its styles travel with it.
|
|
5823
|
+
* @private
|
|
5824
|
+
*/
|
|
5825
|
+
interface LimebbConditionTreeEditor {
|
|
5826
|
+
/**
|
|
5827
|
+
* Bridges the tree's context across the `limel-popover` portal.
|
|
5828
|
+
*/
|
|
5829
|
+
"context"?: LimeWebComponentContext;
|
|
5830
|
+
/**
|
|
5831
|
+
* @inheritdoc
|
|
5832
|
+
* @default false
|
|
5833
|
+
*/
|
|
5834
|
+
"disabled"?: boolean;
|
|
5835
|
+
/**
|
|
5836
|
+
* The editor to mount, as given on the condition.
|
|
5837
|
+
*/
|
|
5838
|
+
"editor"?: ComponentDescriptor;
|
|
5839
|
+
/**
|
|
5840
|
+
* Title of the condition, shown above the editor when there is a header to show at all.
|
|
5841
|
+
*/
|
|
5842
|
+
"heading"?: string;
|
|
5843
|
+
/**
|
|
5844
|
+
* Whether the condition is negated. `undefined` means the condition expresses its own polarity and no switch is offered.
|
|
5845
|
+
*/
|
|
5846
|
+
"negated"?: boolean;
|
|
5847
|
+
/**
|
|
5848
|
+
* Emitted with the replacement condition when the mounted editor reports one. `limel-popover` portals this element out of the tree's shadow DOM, so an event from the editor never reaches the tree on its own. Catching it here and emitting it again is what carries it back across.
|
|
5849
|
+
*/
|
|
5850
|
+
"onConditionChange"?: (event: LimebbConditionTreeEditorCustomEvent<any>) => void;
|
|
5851
|
+
/**
|
|
5852
|
+
* Emitted when the user toggles the negation switch.
|
|
5853
|
+
*/
|
|
5854
|
+
"onNegateChange"?: (event: LimebbConditionTreeEditorCustomEvent<boolean>) => void;
|
|
5855
|
+
/**
|
|
5856
|
+
* Whether the popover holding this element is open. The element itself stays in place while closed, because `limel-popover` moves its content into the popover surface once and for all when that surface first loads — anything not there by then is never moved. Drawing nothing until asked is what keeps the consumer's editor from being built for every condition in the tree.
|
|
5857
|
+
* @default false
|
|
5858
|
+
*/
|
|
5859
|
+
"open"?: boolean;
|
|
5860
|
+
/**
|
|
5861
|
+
* Platform service provider
|
|
5862
|
+
*/
|
|
5863
|
+
"platform"?: LimeWebComponentPlatform;
|
|
5864
|
+
/**
|
|
5865
|
+
* @inheritdoc
|
|
5866
|
+
* @default false
|
|
5867
|
+
*/
|
|
5868
|
+
"readonly"?: boolean;
|
|
5869
|
+
/**
|
|
5870
|
+
* The condition being edited, in the consumer's own model. Handed to the mounted editor as `value`.
|
|
5871
|
+
*/
|
|
5872
|
+
"value"?: any;
|
|
5873
|
+
}
|
|
5543
5874
|
/**
|
|
5544
5875
|
* All currencies have a ISO code, an international standard with three-letters
|
|
5545
5876
|
* which is used by many systems such as ERPs.
|
|
@@ -7683,7 +8014,16 @@ declare namespace LocalJSX {
|
|
|
7683
8014
|
* that provides it. An explicit Prop with a `limetype` wins, so an empty
|
|
7684
8015
|
* default (e.g. an admin form's "no selection" context) doesn't shadow a
|
|
7685
8016
|
* DOM-provided one.
|
|
8017
|
+
* Pass `modes` to offer the author a few pre-defined answers above the
|
|
8018
|
+
* tree — "Never", "Always", "Conditionally" — so an
|
|
8019
|
+
* unconditional state is one click instead of an empty tree they have
|
|
8020
|
+
* to reason about. A mode is a way of writing a rule, not a second
|
|
8021
|
+
* output: all of them end up in `value`, and `ruleForMode` builds the
|
|
8022
|
+
* same rule a click does.
|
|
7686
8023
|
* @exampleComponent limebb-example-rule-editor
|
|
8024
|
+
* @exampleComponent limebb-example-rule-editor-modes
|
|
8025
|
+
* @exampleComponent limebb-example-rule-editor-invalid
|
|
8026
|
+
* @exampleComponent limebb-example-rule-editor-help
|
|
7687
8027
|
* @alpha
|
|
7688
8028
|
* @private
|
|
7689
8029
|
*/
|
|
@@ -7701,16 +8041,28 @@ declare namespace LocalJSX {
|
|
|
7701
8041
|
* @inheritdoc
|
|
7702
8042
|
*/
|
|
7703
8043
|
"disabled"?: boolean;
|
|
8044
|
+
/**
|
|
8045
|
+
* Contextual help for the setting as a whole, rendered as a `?` beside the label that opens a popover on click. Markdown. For what a rule *is* rather than what this one is for — the helper text is the shorter, always-legible answer, and the two are meant to be used together rather than instead of each other.
|
|
8046
|
+
*/
|
|
8047
|
+
"help"?: string;
|
|
7704
8048
|
/**
|
|
7705
8049
|
* The helper text for the current property
|
|
7706
8050
|
* @inheritdoc
|
|
7707
8051
|
*/
|
|
7708
8052
|
"helperText"?: string;
|
|
8053
|
+
/**
|
|
8054
|
+
* Set to `true` to mark the rule as invalid, which reddens the outline and the helper text. This is the caller's verdict on the rule as a whole — typically a form reporting that the field is required and empty. It is separate from the diagnostics the editor finds itself, which mark the individual nodes they belong to and show regardless of this prop.
|
|
8055
|
+
*/
|
|
8056
|
+
"invalid"?: boolean;
|
|
7709
8057
|
/**
|
|
7710
8058
|
* The label of the current property
|
|
7711
8059
|
* @inheritdoc
|
|
7712
8060
|
*/
|
|
7713
8061
|
"label"?: string;
|
|
8062
|
+
/**
|
|
8063
|
+
* The ways of writing a rule offered above the tree, in the order given. Leave it unset to offer none, and render the tree alone. Which modes make sense is the caller's to decide, because it differs per setting: a "when to show" toggle offers `always` and `conditional`, while a "when to make required" one also offers `never`. `conditional` is not forced into the list — a caller passing only the unconditional modes usually gets a plain toggle with no tree, which is a legitimate thing to want. "Usually", because the offered modes do not constrain `value`. A stored condition tree is still drawn, and the control then shows no mode as selected, because none of the offered ones describes what is stored. Hiding a rule the author cannot otherwise see would be worse than an unselected control.
|
|
8064
|
+
*/
|
|
8065
|
+
"modes"?: RuleEditorMode[];
|
|
7714
8066
|
/**
|
|
7715
8067
|
* Emitted when the rule tree is mutated. Detail is the new rule, or `undefined` when the user has cleared the editor to an empty root group — callers can persist `undefined` as "no rule" without having to inspect the rule shape themselves.
|
|
7716
8068
|
*/
|
|
@@ -8175,6 +8527,19 @@ declare namespace LocalJSX {
|
|
|
8175
8527
|
"internalLinks": boolean;
|
|
8176
8528
|
"richText": boolean;
|
|
8177
8529
|
}
|
|
8530
|
+
interface LimebbConditionTreeAttributes {
|
|
8531
|
+
"value": string;
|
|
8532
|
+
"readonly": boolean;
|
|
8533
|
+
"disabled": boolean;
|
|
8534
|
+
}
|
|
8535
|
+
interface LimebbConditionTreeEditorAttributes {
|
|
8536
|
+
"open": boolean;
|
|
8537
|
+
"value": string;
|
|
8538
|
+
"heading": string;
|
|
8539
|
+
"negated": boolean;
|
|
8540
|
+
"readonly": boolean;
|
|
8541
|
+
"disabled": boolean;
|
|
8542
|
+
}
|
|
8178
8543
|
interface LimebbCurrencyPickerAttributes {
|
|
8179
8544
|
"label": string;
|
|
8180
8545
|
"helperText": string;
|
|
@@ -8440,8 +8805,10 @@ declare namespace LocalJSX {
|
|
|
8440
8805
|
"required": boolean;
|
|
8441
8806
|
"readonly": boolean;
|
|
8442
8807
|
"disabled": boolean;
|
|
8808
|
+
"invalid": boolean;
|
|
8443
8809
|
"label": string;
|
|
8444
8810
|
"helperText": string;
|
|
8811
|
+
"help": string;
|
|
8445
8812
|
}
|
|
8446
8813
|
interface LimebbSummaryPopoverAttributes {
|
|
8447
8814
|
"triggerDelay": number;
|
|
@@ -8497,6 +8864,8 @@ declare namespace LocalJSX {
|
|
|
8497
8864
|
"limebb-component-config": Omit<LimebbComponentConfig, keyof LimebbComponentConfigAttributes> & { [K in keyof LimebbComponentConfig & keyof LimebbComponentConfigAttributes]?: LimebbComponentConfig[K] } & { [K in keyof LimebbComponentConfig & keyof LimebbComponentConfigAttributes as `attr:${K}`]?: LimebbComponentConfigAttributes[K] } & { [K in keyof LimebbComponentConfig & keyof LimebbComponentConfigAttributes as `prop:${K}`]?: LimebbComponentConfig[K] };
|
|
8498
8865
|
"limebb-component-picker": Omit<LimebbComponentPicker, keyof LimebbComponentPickerAttributes> & { [K in keyof LimebbComponentPicker & keyof LimebbComponentPickerAttributes]?: LimebbComponentPicker[K] } & { [K in keyof LimebbComponentPicker & keyof LimebbComponentPickerAttributes as `attr:${K}`]?: LimebbComponentPickerAttributes[K] } & { [K in keyof LimebbComponentPicker & keyof LimebbComponentPickerAttributes as `prop:${K}`]?: LimebbComponentPicker[K] };
|
|
8499
8866
|
"limebb-composer-toolbar": Omit<LimebbComposerToolbar, keyof LimebbComposerToolbarAttributes> & { [K in keyof LimebbComposerToolbar & keyof LimebbComposerToolbarAttributes]?: LimebbComposerToolbar[K] } & { [K in keyof LimebbComposerToolbar & keyof LimebbComposerToolbarAttributes as `attr:${K}`]?: LimebbComposerToolbarAttributes[K] } & { [K in keyof LimebbComposerToolbar & keyof LimebbComposerToolbarAttributes as `prop:${K}`]?: LimebbComposerToolbar[K] };
|
|
8867
|
+
"limebb-condition-tree": Omit<LimebbConditionTree, keyof LimebbConditionTreeAttributes> & { [K in keyof LimebbConditionTree & keyof LimebbConditionTreeAttributes]?: LimebbConditionTree[K] } & { [K in keyof LimebbConditionTree & keyof LimebbConditionTreeAttributes as `attr:${K}`]?: LimebbConditionTreeAttributes[K] } & { [K in keyof LimebbConditionTree & keyof LimebbConditionTreeAttributes as `prop:${K}`]?: LimebbConditionTree[K] };
|
|
8868
|
+
"limebb-condition-tree-editor": Omit<LimebbConditionTreeEditor, keyof LimebbConditionTreeEditorAttributes> & { [K in keyof LimebbConditionTreeEditor & keyof LimebbConditionTreeEditorAttributes]?: LimebbConditionTreeEditor[K] } & { [K in keyof LimebbConditionTreeEditor & keyof LimebbConditionTreeEditorAttributes as `attr:${K}`]?: LimebbConditionTreeEditorAttributes[K] } & { [K in keyof LimebbConditionTreeEditor & keyof LimebbConditionTreeEditorAttributes as `prop:${K}`]?: LimebbConditionTreeEditor[K] };
|
|
8500
8869
|
"limebb-currency-picker": Omit<LimebbCurrencyPicker, keyof LimebbCurrencyPickerAttributes> & { [K in keyof LimebbCurrencyPicker & keyof LimebbCurrencyPickerAttributes]?: LimebbCurrencyPicker[K] } & { [K in keyof LimebbCurrencyPicker & keyof LimebbCurrencyPickerAttributes as `attr:${K}`]?: LimebbCurrencyPickerAttributes[K] } & { [K in keyof LimebbCurrencyPicker & keyof LimebbCurrencyPickerAttributes as `prop:${K}`]?: LimebbCurrencyPicker[K] };
|
|
8501
8870
|
"limebb-dashboard-widget": Omit<LimebbDashboardWidget, keyof LimebbDashboardWidgetAttributes> & { [K in keyof LimebbDashboardWidget & keyof LimebbDashboardWidgetAttributes]?: LimebbDashboardWidget[K] } & { [K in keyof LimebbDashboardWidget & keyof LimebbDashboardWidgetAttributes as `attr:${K}`]?: LimebbDashboardWidgetAttributes[K] } & { [K in keyof LimebbDashboardWidget & keyof LimebbDashboardWidgetAttributes as `prop:${K}`]?: LimebbDashboardWidget[K] };
|
|
8502
8871
|
"limebb-data-cells": Omit<LimebbDataCells, keyof LimebbDataCellsAttributes> & { [K in keyof LimebbDataCells & keyof LimebbDataCellsAttributes]?: LimebbDataCells[K] } & { [K in keyof LimebbDataCells & keyof LimebbDataCellsAttributes as `attr:${K}`]?: LimebbDataCellsAttributes[K] } & { [K in keyof LimebbDataCells & keyof LimebbDataCellsAttributes as `prop:${K}`]?: LimebbDataCells[K] };
|
|
@@ -8730,6 +9099,36 @@ declare module "@stencil/core" {
|
|
|
8730
9099
|
* @beta
|
|
8731
9100
|
*/
|
|
8732
9101
|
"limebb-composer-toolbar": LocalJSX.IntrinsicElements["limebb-composer-toolbar"] & JSXBase.HTMLAttributes<HTMLLimebbComposerToolbarElement>;
|
|
9102
|
+
/**
|
|
9103
|
+
* The shared skeleton for editing a tree of conditions: nested groups joined by
|
|
9104
|
+
* "All of the following" or "Any of the following", or the negations of those
|
|
9105
|
+
* two, each holding conditions shown as chips, with the buttons that add,
|
|
9106
|
+
* remove and regroup them.
|
|
9107
|
+
* This component is deliberately ignorant of what a condition *is*.
|
|
9108
|
+
* A condition is visualized as a chip, plus the tag name of an editor to open.
|
|
9109
|
+
* So the same skeleton serves a condition that tests a property ("Deal value is
|
|
9110
|
+
* greater than 100 000") and one that is opaque ("User is a member of a group")
|
|
9111
|
+
* without either model leaking into it.
|
|
9112
|
+
* It holds no tree of its own either. The consumer passes in its own tree, and
|
|
9113
|
+
* an adapter that reads one node and rebuilds one group. Every structural edit
|
|
9114
|
+
* — add, delete, regroup, rejoin, negate — is applied here and handed back as a
|
|
9115
|
+
* tree of the same kind, so no consumer has to write that code twice.
|
|
9116
|
+
* @exampleComponent limebb-example-condition-tree-basic
|
|
9117
|
+
* @exampleComponent limebb-example-condition-tree-combinators
|
|
9118
|
+
* @exampleComponent limebb-example-condition-tree-editors
|
|
9119
|
+
* @exampleComponent limebb-example-condition-tree-palette
|
|
9120
|
+
* @beta
|
|
9121
|
+
*/
|
|
9122
|
+
"limebb-condition-tree": LocalJSX.IntrinsicElements["limebb-condition-tree"] & JSXBase.HTMLAttributes<HTMLLimebbConditionTreeElement>;
|
|
9123
|
+
/**
|
|
9124
|
+
* The body of a condition's editor popover: the consumer's editor, and — for a
|
|
9125
|
+
* condition that cannot express its own negation — a switch that negates it.
|
|
9126
|
+
* It is an element of its own rather than markup inside the tree because
|
|
9127
|
+
* `limel-popover` portals its content out of the tree's shadow DOM, leaving it
|
|
9128
|
+
* behind. Carrying its own shadow root means its styles travel with it.
|
|
9129
|
+
* @private
|
|
9130
|
+
*/
|
|
9131
|
+
"limebb-condition-tree-editor": LocalJSX.IntrinsicElements["limebb-condition-tree-editor"] & JSXBase.HTMLAttributes<HTMLLimebbConditionTreeEditorElement>;
|
|
8733
9132
|
/**
|
|
8734
9133
|
* All currencies have a ISO code, an international standard with three-letters
|
|
8735
9134
|
* which is used by many systems such as ERPs.
|
|
@@ -9400,7 +9799,16 @@ declare module "@stencil/core" {
|
|
|
9400
9799
|
* that provides it. An explicit Prop with a `limetype` wins, so an empty
|
|
9401
9800
|
* default (e.g. an admin form's "no selection" context) doesn't shadow a
|
|
9402
9801
|
* DOM-provided one.
|
|
9802
|
+
* Pass `modes` to offer the author a few pre-defined answers above the
|
|
9803
|
+
* tree — "Never", "Always", "Conditionally" — so an
|
|
9804
|
+
* unconditional state is one click instead of an empty tree they have
|
|
9805
|
+
* to reason about. A mode is a way of writing a rule, not a second
|
|
9806
|
+
* output: all of them end up in `value`, and `ruleForMode` builds the
|
|
9807
|
+
* same rule a click does.
|
|
9403
9808
|
* @exampleComponent limebb-example-rule-editor
|
|
9809
|
+
* @exampleComponent limebb-example-rule-editor-modes
|
|
9810
|
+
* @exampleComponent limebb-example-rule-editor-invalid
|
|
9811
|
+
* @exampleComponent limebb-example-rule-editor-help
|
|
9404
9812
|
* @alpha
|
|
9405
9813
|
* @private
|
|
9406
9814
|
*/
|
package/dist/types/index.d.ts
CHANGED
|
@@ -5,5 +5,7 @@ export * from './util/color-palettes';
|
|
|
5
5
|
export * from './components/filter-chip/filter-chip.types';
|
|
6
6
|
export * from './components/filter-chip/filter-condition-icons';
|
|
7
7
|
export * from './components/filter-chip/filter-operators';
|
|
8
|
+
export * from './components/rule-editor/rule-editor.types';
|
|
9
|
+
export * from './components/rule-editor/rule-editor-modes';
|
|
8
10
|
import '@lundalogik/lime-icons8';
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -16,3 +16,5 @@ export {
|
|
|
16
16
|
} from './components/text-editor/uploader/building-blocks-uploader';
|
|
17
17
|
export * from './components/document-chips/document-chips.types';
|
|
18
18
|
export * from './components/filter-chip/filter-chip.types';
|
|
19
|
+
export * from './components/condition-tree/condition-tree.types';
|
|
20
|
+
export * from './components/rule-editor/rule-editor.types';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@limetech/lime-crm-building-blocks",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "A home for shared components meant for use with Lime CRM",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@limetech/lime-elements": "^39.45.3",
|
|
38
38
|
"@limetech/lime-web-components": "^7.4.0",
|
|
39
39
|
"@lundalogik/lime-icons8": "^2.41.0",
|
|
40
|
-
"@lundalogik/limeclient.js": "^1.
|
|
40
|
+
"@lundalogik/limeclient.js": "^1.115.0",
|
|
41
41
|
"@stencil/core": "^4.44.2",
|
|
42
42
|
"@stencil/sass": "^3.3.3",
|
|
43
43
|
"@stencil/vitest": "^1.14.0",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"eslint": "^10.9.1",
|
|
51
51
|
"fs": "^0.0.1-security",
|
|
52
52
|
"globals": "^17.11.0",
|
|
53
|
-
"happy-dom": "^20.
|
|
53
|
+
"happy-dom": "^20.12.0",
|
|
54
54
|
"kompendium": "npm:@limetech/kompendium@^1.3.0",
|
|
55
55
|
"lodash-es": "^4.18.1",
|
|
56
56
|
"prettier": "^3.9.6",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,c as t,h as o}from"./p-COtSgrC5.js";import{k as r,n as i}from"./p-Cj_3f9vm.js";import{L as s}from"./p-DVypQWZ4.js";const a=class{constructor(o){e(this,o),this.negate=t(this,"negate"),this.updateArgs=t(this,"updateArgs"),this.deleteChip=t(this,"deleteChip"),this.isNegated=!1,this.readonly=!1,this.disabled=!1,this.isMutable=!0,this.focusOnOpen=!1,this.handleNegateChange=e=>{e.stopPropagation(),this.negate.emit(e.detail)},this.handleArgsChange=e=>{e.stopPropagation(),this.updateArgs.emit(e.detail)},this.handleDelete=()=>{this.deleteChip.emit()}}render(){return o("div",{key:"8bad60ba81cd77526779921e975f9d0f4d8bb0d7",class:"popover"},this.renderHeader(),this.renderBody())}renderHeader(){var e,t,r,i;const s=(null===(e=this.metadata)||void 0===e?void 0:e.title)?this.translator.get(this.metadata.title):null!==(r=null===(t=this.refNode)||void 0===t?void 0:t.id)&&void 0!==r?r:"";return o("limel-header",{class:"popover__header is-narrow",heading:s,icon:null===(i=this.metadata)||void 0===i?void 0:i.icon},this.renderHeaderActions())}renderHeaderActions(){return this.isMutable?o("div",{slot:"actions",class:"popover__header-actions"},o("limel-switch",{class:"popover__negate-switch",label:this.translator.get("webclient.rule-editor.negate"),value:this.isNegated,onChange:this.handleNegateChange}),o("limel-icon-button",{class:"popover__delete-button",icon:"trash",label:this.translator.get("webclient.rule-editor.delete"),onClick:this.handleDelete})):null}get translator(){return this.platform.get(i.Translate)}renderBody(){var e,t;const r=null===(e=this.metadata)||void 0===e?void 0:e.configComponent;return r?o("div",{class:"popover__body"},o(s,{platform:this.platform,context:this.context,name:r.name,props:Object.assign(Object.assign({},r.props),{value:null===(t=this.refNode)||void 0===t?void 0:t.args,readonly:this.readonly,disabled:this.disabled,focusOnOpen:this.focusOnOpen,onChange:this.handleArgsChange})})):null}};(function(e,t,o,r){var i,s=arguments.length,a=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,o,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(a=(s<3?i(a):s>3?i(t,o,a):i(t,o))||a);s>3&&a&&Object.defineProperty(t,o,a)})([r("context")],a.prototype,"context",void 0),a.style=":host{display:block}.popover{display:flex;flex-direction:column;min-width:24rem;background-color:rgb(var(--contrast-100));border:1px solid rgb(var(--contrast-700));border-radius:0.5rem;box-shadow:0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);overflow:hidden}.popover__header{--header-background-color:rgba(var(--contrast-300));padding-right:0.5rem;gap:1rem}.popover__header-actions{display:grid;grid-auto-flow:column;grid-gap:0.75rem;padding:0.25rem;align-items:center}.popover__delete-button{color:rgb(var(--contrast-1100))}.popover__body{padding:1rem}";export{a as limebb_rule_chip_popover}
|