@limetech/lime-crm-building-blocks 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -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-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 +3 -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 +1 -1
- package/dist/cjs/limebb-rule-editor.cjs.entry.js +159 -19
- 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/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/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/rule-chip-popover/rule-chip-popover.js +1 -1
- 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 +3 -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/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-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/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-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 +3 -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 +1 -1
- package/dist/esm/limebb-rule-editor.entry.js +160 -20
- 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-a0dee52a.entry.js → p-0445035f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-5b80d92a.entry.js → p-0a05b3e9.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-fb45e6d5.entry.js → p-0dd64440.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-76064593.entry.js → p-170ab4be.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-5b000748.entry.js → p-27b9c824.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c4e40c2c.entry.js → p-2d1c7b6f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-1731f5c3.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-d0c75083.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-9907deb1.entry.js → p-657b89d4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-edfaf566.entry.js → p-6d8efe87.entry.js} +1 -1
- 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-3c72400d.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-a2b9c410.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-3fe4f3f4.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-b48c23f4.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-11b41423.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-b46722c8.entry.js → p-fc372344.entry.js} +1 -1
- 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 +64 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/interface.d.ts +1 -0
- package/package.json +5 -5
- 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-e6605577.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-e8a7a94c.entry.js +0 -1
|
@@ -216,7 +216,7 @@ const FeedTimelineItem = class {
|
|
|
216
216
|
render() {
|
|
217
217
|
var _a, _b;
|
|
218
218
|
const helperTextId = `helper-text-${this.item.id}`;
|
|
219
|
-
return (h(Host, { key: '
|
|
219
|
+
return (h(Host, { key: '8348e3e4331d6e82b450f018901cc7de3b599954', id: this.item.id, class: {
|
|
220
220
|
'has-unpromoted-actions': !!((_a = this.item.unpromotedActions) === null || _a === void 0 ? void 0 : _a.length),
|
|
221
221
|
'has-author-picture': !!((_b = this.item.author) === null || _b === void 0 ? void 0 : _b.picture),
|
|
222
222
|
'shows-less': !this.showMore,
|
|
@@ -556,7 +556,7 @@ const Feed = class {
|
|
|
556
556
|
this.highlighter.unregisterFeed(this.feedItemElement);
|
|
557
557
|
}
|
|
558
558
|
render() {
|
|
559
|
-
return (h(Host, { key: '
|
|
559
|
+
return (h(Host, { key: '67cdc2679d56efee3433fbfa23f434fa284163fa', role: "log", "aria-busy": this.loading ? 'true' : 'false', style: {
|
|
560
560
|
'--limebb-feed-highlight-duration': `${ITEM_HIGHLIGHT_DURATION}ms`,
|
|
561
561
|
} }, this.renderLoadMore(), this.renderEmptyFeedMessage(), this.renderSpinner(), this.renderFeedItems()));
|
|
562
562
|
}
|
|
@@ -89,8 +89,8 @@ const FilterChip = class {
|
|
|
89
89
|
const items = this.getDisplayItems();
|
|
90
90
|
const conjunction = this.getConjunctionText();
|
|
91
91
|
const helperLabel = this.getHelperLabel(items, conjunction);
|
|
92
|
-
return (h(Host, { key: '
|
|
93
|
-
this.getFilterLabel(), "aria-pressed": this.getAriaPressed(), onKeyDown: this.handleKeyDown, disabled: this.disabled }, this.renderIcon(), this.renderValue(items, conjunction)), this.renderRemoveButton(chipId), h("limel-tooltip", { key: '
|
|
92
|
+
return (h(Host, { key: '1528a86d1e7f7f1749cc895787bca1e77c8678aa' }, this.renderLabel(), h("button", { key: '07dc7184d0a53472ed0d595a07941077aabaa5c0', class: { chip: true }, type: "button", id: chipId, "aria-label": [this.label, helperLabel].filter(Boolean).join(', ') ||
|
|
93
|
+
this.getFilterLabel(), "aria-pressed": this.getAriaPressed(), onKeyDown: this.handleKeyDown, disabled: this.disabled }, this.renderIcon(), this.renderValue(items, conjunction)), this.renderRemoveButton(chipId), h("limel-tooltip", { key: '665f0b32f7ccdc27b72a56bee9d39e83fb3945b7', elementId: chipId, label: this.label || this.getFilterLabel(), helperLabel: helperLabel })));
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
96
|
* `aria-pressed` only makes sense for an interactive toggle. A readonly
|
|
@@ -317,7 +317,7 @@ const FilterConditionPicker = class {
|
|
|
317
317
|
render() {
|
|
318
318
|
const items = this.buildItems();
|
|
319
319
|
const selected = this.selectedOption(items);
|
|
320
|
-
return (h(Host, { key: '
|
|
320
|
+
return (h(Host, { key: 'ca926963d368460db20fa8961f49825d19ae2c07' }, h("limel-select", { key: '5571b580b7da63d1a95fef6cb9b204ed3b32cf75', class: "condition", label: this.accessibleLabel, disabled: this.disabled, options: items, value: selected, onChange: this.handleChange })));
|
|
321
321
|
}
|
|
322
322
|
buildItems() {
|
|
323
323
|
var _a;
|
|
@@ -441,7 +441,7 @@ const LimeQueryFilterComparisonEditorComponent = class {
|
|
|
441
441
|
(_a = this.propertySelectorEl) === null || _a === void 0 ? void 0 : _a.focus();
|
|
442
442
|
}
|
|
443
443
|
render() {
|
|
444
|
-
return (h(Host, { key: '
|
|
444
|
+
return (h(Host, { key: '98144a439c21e88ba452732933dd155afa7f90d8' }, this.renderPropertySelector(), this.renderConditionPicker(), this.renderValueInput()));
|
|
445
445
|
}
|
|
446
446
|
renderPropertySelector() {
|
|
447
447
|
return (h("limebb-property-selector", { ref: (el) => (this.propertySelectorEl = el), class: "property", label: "Property", platform: this.platform, context: this.context, limetype: this.limetype, value: this.expression.key, required: true, onChange: this.handlePropertyChange }));
|
|
@@ -543,9 +543,9 @@ const LimeQueryFilterGroupComponent = class {
|
|
|
543
543
|
const combinator = getCombinator(this.expression);
|
|
544
544
|
const inner = getInnerAndOr(this.expression);
|
|
545
545
|
const selected = COMBINATOR_OPTIONS.find((o) => o.value === combinator);
|
|
546
|
-
return (h(Host, { key: '
|
|
546
|
+
return (h(Host, { key: 'f41c27e721c5241f03ebc380fc0bee1bc6488ba8', "data-op": combinator, style: {
|
|
547
547
|
'--limebb-query-filter-group-color-code': OP_STYLE[combinator].color,
|
|
548
|
-
} }, h("div", { key: '
|
|
548
|
+
} }, h("div", { key: '6dee3189e64ff49cc6b4234fcacabbcc592c56a7', class: "group" }, h("div", { key: 'c92e073de445fcefa48e8d90eeaa0357f2fbc9ea', class: "group-header" }, h("limel-select", { key: 'd0de8053b240e5d40b2f9d1de2defdb5257383b6', class: "combinator", label: "Match", value: selected, options: COMBINATOR_OPTIONS, onChange: this.handleCombinatorChange }), h("limel-icon-button", { key: '44b099283399ab33a906f0e7acc940dc39041b10', class: "delete-group", icon: "trash", label: "Delete this group", onClick: this.handleDeleteGroup })), h("ul", { key: 'a8d06013ab21aa149ea1dcf2293ffbb5d0d13e61', class: "rows" }, inner.exp.map(this.renderChildExpression), h("limel-chip", { key: 'f2866e974c93a0633b487d9943e63b929d67a7be', role: "listitem", class: "add-condition", text: "Condition", icon: { name: 'plus_math', title: 'Add' }, onClick: this.handleAddChildExpression })), h("limel-chip", { key: 'defd0ab0875920887391c2114139b92a63d10650', class: "add-group", size: "small", text: "Group", icon: {
|
|
549
549
|
name: 'plus_math',
|
|
550
550
|
title: 'Add',
|
|
551
551
|
color: 'var(--group-rail-color)',
|
|
@@ -585,7 +585,7 @@ const LimeQueryFilterNotComponent = class {
|
|
|
585
585
|
};
|
|
586
586
|
}
|
|
587
587
|
render() {
|
|
588
|
-
return (h("div", { key: '
|
|
588
|
+
return (h("div", { key: '7e9bac8c51b903d1a569d1272167870701412729', class: "expression" }, this.label && h("limel-header", { key: 'aa5d7a0d55a5b2754e02c58dc5c08614b8a0808b', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '573b8435f73b10bf1eb04ced205af5c4b295a01d', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
|
|
589
589
|
}
|
|
590
590
|
};
|
|
591
591
|
LimeQueryFilterNotComponent.style = limeQueryFilterNotCss();
|
|
@@ -53110,7 +53110,7 @@ const IconPicker = class {
|
|
|
53110
53110
|
icon: this.value,
|
|
53111
53111
|
};
|
|
53112
53112
|
}
|
|
53113
|
-
return (h("limel-picker", { key: '
|
|
53113
|
+
return (h("limel-picker", { key: 'bf6b76bbcea838150261e9e0037b1d7ca1ee08d1', label: this.label, helperText: this.helperText, disabled: this.disabled, readonly: this.readonly, invalid: this.invalid, required: this.required, value: value, searcher: this.search, onChange: this.handleChange, badgeIcons: false, leadingIcon: "search", searchLabel: "Start typing to find the right icon" }));
|
|
53114
53114
|
}
|
|
53115
53115
|
};
|
|
53116
53116
|
|
|
@@ -91,7 +91,7 @@ const InfoTileAdminConfig = class {
|
|
|
91
91
|
},
|
|
92
92
|
];
|
|
93
93
|
return [
|
|
94
|
-
h("limel-button-group", { key: '
|
|
94
|
+
h("limel-button-group", { key: '68999f607fd66a5a451929d6720200734c6505ea', value: buttons.filter(this.isValidButton), onChange: this.handleChangeType }),
|
|
95
95
|
this.renderFormatConfig(),
|
|
96
96
|
];
|
|
97
97
|
}
|
|
@@ -484,7 +484,7 @@ const InfoTile = class {
|
|
|
484
484
|
const errorProps = Object.assign(Object.assign({}, baseProps), { icon: 'error', prefix: 'ERROR', loading: true, label: this.getLabel(filter) });
|
|
485
485
|
const normalProps = Object.assign(Object.assign({}, baseProps), { label: this.getLabel(filter), link: this.getLink(filter), loading: this.loading, value: value === null || value === void 0 ? void 0 : value.value.trim() });
|
|
486
486
|
const props = !filter || this.error ? errorProps : normalProps;
|
|
487
|
-
return (h("limel-info-tile", Object.assign({ key: '
|
|
487
|
+
return (h("limel-info-tile", Object.assign({ key: '802c93fade2b3aff10e53c1a970798b994bff2d2', class: { error: !filter || this.error } }, props)));
|
|
488
488
|
}
|
|
489
489
|
/**
|
|
490
490
|
* Effective `reducedPresence` for this render. The boolean prop
|
|
@@ -27,7 +27,7 @@ const KanbanGroup = class {
|
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
render() {
|
|
30
|
-
return (h(Host, { key: '
|
|
30
|
+
return (h(Host, { key: 'b00741bf0f2c617453ce53ce2e6ec852472f20dc' }, this.renderHelp(), this.renderGroupHeading(), this.renderGroupSummary(), this.renderItems()));
|
|
31
31
|
}
|
|
32
32
|
renderGroupSummary() {
|
|
33
33
|
if (!this.summary || !this.totalCount) {
|
|
@@ -55,7 +55,7 @@ const KanbanItemComponent = class {
|
|
|
55
55
|
}
|
|
56
56
|
render() {
|
|
57
57
|
var _a, _b;
|
|
58
|
-
return (h(Host, { key: '
|
|
58
|
+
return (h(Host, { key: 'cc405f1c7ffd4e8a72158f53863b604e38df882e', id: this.item.id.toString(), class: {
|
|
59
59
|
'has-unpromoted-actions': !!((_a = this.item.unpromotedActions) === null || _a === void 0 ? void 0 : _a.length),
|
|
60
60
|
'is-selected': !!((_b = this.item) === null || _b === void 0 ? void 0 : _b.selected),
|
|
61
61
|
}, style: {
|
|
@@ -149,7 +149,7 @@ const LimeQueryBuilder = class {
|
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
render() {
|
|
152
|
-
return (h(Host, { key: '
|
|
152
|
+
return (h(Host, { key: '0f28a00b055f7e9094dd26cf733acba1158dda45' }, this.renderHeader(), this.renderContent()));
|
|
153
153
|
}
|
|
154
154
|
renderContent() {
|
|
155
155
|
const visualModeSupported = this.checkVisualModeSupport();
|
|
@@ -39,11 +39,11 @@ const LimeQueryFilterComparisonComponent = class {
|
|
|
39
39
|
const propertyType = hasKey
|
|
40
40
|
? this.getPropertyType(this.expression.key)
|
|
41
41
|
: undefined;
|
|
42
|
-
return (h(Host, { key: '
|
|
42
|
+
return (h(Host, { key: 'ebffd40bd7fe14023be8081b21a164fba7ff7d78' }, this.renderHeader(), h("limel-popover", { key: '1e6b11ad372ae6fe98d69d3da739f0f61c2e2015', open: this.isOpen, openDirection: "bottom-start", onClose: this.handleClose }, h("limebb-filter-chip", { key: '1017d1ff6512104d073430d7d233b3bfe14c1edd', slot: "trigger", platform: this.platform, label: hasKey
|
|
43
43
|
? this.getPropertyLabel(this.expression.key)
|
|
44
44
|
: undefined, condition: hasKey
|
|
45
45
|
? operatorToCondition(this.expression.op)
|
|
46
|
-
: undefined, propertyType: propertyType, value: hasKey ? this.chipValue() : 'New condition', conjunction: isList ? 'or' : undefined, selected: this.isOpen, removable: true, onClick: this.handleOpen, onRemove: this.removeExpression }), h("limebb-lime-query-filter-comparison-editor", { key: '
|
|
46
|
+
: undefined, propertyType: propertyType, value: hasKey ? this.chipValue() : 'New condition', conjunction: isList ? 'or' : undefined, selected: this.isOpen, removable: true, onClick: this.handleOpen, onRemove: this.removeExpression }), h("limebb-lime-query-filter-comparison-editor", { key: '802cd50b41afc9a3155d50cf8a28d7544cd673c1', platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression, propertyType: propertyType, onExpressionChange: this.handleEditorChange }))));
|
|
47
47
|
}
|
|
48
48
|
getPropertyLabel(key) {
|
|
49
49
|
return this.resolveProperty(key).labels.join(' › ');
|
|
@@ -119,7 +119,7 @@ const OrderByEditor = class {
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
render() {
|
|
122
|
-
return (h(Host, { key: '
|
|
122
|
+
return (h(Host, { key: 'f5426a11ccbc3f0e4159b50dea245f8da07f669c' }, this.renderEmptyState(), this.renderOrderByEditor()));
|
|
123
123
|
}
|
|
124
124
|
renderEmptyState() {
|
|
125
125
|
if (this.limetype) {
|
|
@@ -249,7 +249,7 @@ const LimetypeField = class {
|
|
|
249
249
|
value: '',
|
|
250
250
|
};
|
|
251
251
|
options.unshift(emptyOption);
|
|
252
|
-
return (h("limel-select", { key: '
|
|
252
|
+
return (h("limel-select", { key: 'c649a9e99ec7af2055df7f1cd82cdd87f19ddde7', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
|
|
253
253
|
}
|
|
254
254
|
componentWillRender() {
|
|
255
255
|
this.updatePropertyFields(this.value || '');
|
|
@@ -36,9 +36,9 @@ const OrderByItemComponent = class {
|
|
|
36
36
|
render() {
|
|
37
37
|
const propertyPath = Object.keys(this.item)[0] || '';
|
|
38
38
|
const direction = this.item[propertyPath] || 'ASC';
|
|
39
|
-
return (h(Host, { key: '
|
|
39
|
+
return (h(Host, { key: 'f3c2d3fa47d0e5e11ff2c9d8372ff5a625814462' }, h("limebb-property-selector", { key: 'f6290981aa40a2807722d82e23a893c8511e7892', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: propertyPath, required: true, onChange: this.handlePathChange }), h("div", { key: '365c64b46f428ff6e97cd2682688991bde32ce60', class: "control-buttons" }, h("limel-icon-button", { key: 'b3a8eb5d27dee271a4b989c57d925dc4023b88c0', icon: direction === 'ASC'
|
|
40
40
|
? 'sort_ascending'
|
|
41
|
-
: 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: '
|
|
41
|
+
: 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: '12ce082489ae86a246b84a7a8091ce382bf2acbd', icon: "trash", label: "Remove", onClick: this.handleRemove }))));
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
44
|
OrderByItemComponent.style = orderByItemCss();
|
|
@@ -191,7 +191,7 @@ const LimeQueryResponseFormatBuilder = class {
|
|
|
191
191
|
}
|
|
192
192
|
render() {
|
|
193
193
|
const visualModeSupported = this.checkVisualModeSupport();
|
|
194
|
-
return (h("div", { key: '
|
|
194
|
+
return (h("div", { key: '4c041be9c674f687bb3d03c3b8c1377a1d2ec6ee', class: "response-format-builder" }, this.label && h("h1", { key: 'ba7ea3457146bae1e97f252ac041aba21a02c27f', class: "builder-label" }, this.label), this.helperText && (h("p", { key: '9c6d9c8a355f24fa89aadd7eb8f138997bc790c0', class: "builder-helper-text" }, this.helperText)), this.visualModeEnabled && (h("div", { key: '9b62a2ab35e98ac15b53af561a51262495689392', 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()))));
|
|
195
195
|
}
|
|
196
196
|
renderModeSwitch(support) {
|
|
197
197
|
const visualDisabled = !support.visualModeSupported;
|
|
@@ -362,7 +362,7 @@ const ResponseFormatItem = class {
|
|
|
362
362
|
}
|
|
363
363
|
render() {
|
|
364
364
|
return [
|
|
365
|
-
h("div", { key: '
|
|
365
|
+
h("div", { key: '313244ac97300ccce92dae6a4df928543546352e', class: "property-controls" }, h("div", { key: '3173914b62fe297a78d61b2caa0c556b25763e21', class: "property-path" }, h("limebb-property-selector", { key: 'ab640577df46b04c03ccd85bb8aafa902a3cd15f', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: this.item.path, required: true, onChange: this.handlePathChange }), h("div", { key: '69ca13975174e89a52991b6c023779a19041c355', class: "input-grid" }, this.renderAliasInput()), h("div", { key: 'd2cdec55803d8bdb08977193c94a773509ac29b3', class: "input-grid" }, this.renderDescriptionInput()), h("div", { key: '32cdad6b755992ad207dd8bf7bfb3dc99a289663', class: "button-group" }, this.renderAliasButton(), this.renderDescriptionButton())), h("limel-icon-button", { key: 'cfb3aaea2911a34842f3f8ab652e4cdd5a0bedb6', icon: "trash", label: "Remove property", onClick: this.handleRemove })),
|
|
366
366
|
];
|
|
367
367
|
}
|
|
368
368
|
renderAliasButton() {
|
|
@@ -8,8 +8,8 @@ const LiveDocsInfo = class {
|
|
|
8
8
|
}
|
|
9
9
|
render() {
|
|
10
10
|
return [
|
|
11
|
-
h("div", { key: '
|
|
12
|
-
h("p", { key: '
|
|
11
|
+
h("div", { key: '189796d67448366e2af26362a29463afff7079a1', class: "header" }, h("limel-icon", { key: 'ffcee585bc30f862066e8dce49ad3330bca13afd', name: "not_showing_video_frames" }), h("h2", { key: '90c5c00930a425a39a144aec4232b76517184b2a' }, "Viewing this file type requires ", h("em", { key: 'c05d9ed5568c1a6cd393aa95e654ea19bf5c133a' }, "Live Docs"))),
|
|
12
|
+
h("p", { key: '09d96468c886fa0dcfe8b9b9a3df79c3f5c87f78' }, h("em", { key: 'c232fdf6277bbe910d23cebf18afadcd2118f43d' }, "Live Docs"), " not only enables you to view many file formats such as Microsoft Office documents, but it also empowers you to edit them right in the CRM. No need to download anything on your device!", h("a", { key: 'dbb74111b5995c013235ea585fa56fd41049540a', target: "_blank", href: "https://www.lime-technologies.com/en/lime-crm/live-docs/" }, "Learn more")),
|
|
13
13
|
];
|
|
14
14
|
}
|
|
15
15
|
};
|
|
@@ -1109,7 +1109,7 @@ const LocalePicker = class {
|
|
|
1109
1109
|
const value = this.value;
|
|
1110
1110
|
selectedOptions = options.find((option) => option.value === value);
|
|
1111
1111
|
}
|
|
1112
|
-
return (h("limel-select", { key: '
|
|
1112
|
+
return (h("limel-select", { key: 'a5dddeb9a8703c4c3f49d2aa8f6ca177765f9620', value: selectedOptions, options: sortBy(options, 'text'), helperText: this.helperText, label: this.label, required: this.required, disabled: this.disabled, readonly: this.readonly, onChange: this.handleChange, multiple: this.multipleChoice }));
|
|
1113
1113
|
}
|
|
1114
1114
|
};
|
|
1115
1115
|
|
|
@@ -10,8 +10,8 @@ const MentionGroupCounter = class {
|
|
|
10
10
|
render() {
|
|
11
11
|
const label = this.getLabel();
|
|
12
12
|
return [
|
|
13
|
-
h("span", { key: '
|
|
14
|
-
h("limel-tooltip", { key: '
|
|
13
|
+
h("span", { key: 'b6e816b8efd22fdaff81f6669d11ab8efae9e05e', id: this.tooltipId }, label),
|
|
14
|
+
h("limel-tooltip", { key: '62294172fabc48ad688b14ae75fe43d142ac0cb7', elementId: this.tooltipId, label: label, helperLabel: this.helperLabel }),
|
|
15
15
|
];
|
|
16
16
|
}
|
|
17
17
|
getLabel() {
|
|
@@ -119,10 +119,11 @@ const SummaryPopover = class {
|
|
|
119
119
|
position: 'absolute',
|
|
120
120
|
top: '0.125rem',
|
|
121
121
|
right: '0.125rem',
|
|
122
|
+
zIndex: '2',
|
|
122
123
|
};
|
|
123
|
-
return (h("limel-popover", { key: '
|
|
124
|
+
return (h("limel-popover", { key: '3ba80fbfe1353c6b45120fcc519263ab5002ccab', style: {
|
|
124
125
|
'--limebb-summary-popover-timeout': `${this.triggerDelay}ms`,
|
|
125
|
-
}, open: this.isPopoverOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("div", { key: '
|
|
126
|
+
}, open: this.isPopoverOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("div", { key: 'cb8b2686304b557a117b382374ba224a488f2b42', slot: "trigger", onMouseEnter: this.openPopoverWithDelay, onMouseLeave: this.resetTimeout, onFocusin: this.openPopoverWithDelay }, h("slot", { key: 'e4f92820c826fae8882aa01cad8bf953f5682699', name: "trigger" }), h("div", { key: 'affce8fe2320e15af21229b3c00872a7c47e70b2', class: "opening-countdown-indicator" })), this.renderCard(closeButtonStyle)));
|
|
126
127
|
}
|
|
127
128
|
renderCard(closeButtonStyle) {
|
|
128
129
|
return (h("limel-card", { style: {
|
|
@@ -55,7 +55,7 @@ const NotificationListItem = class {
|
|
|
55
55
|
}
|
|
56
56
|
render() {
|
|
57
57
|
var _a, _b;
|
|
58
|
-
return (h(Host, { key: '
|
|
58
|
+
return (h(Host, { key: '112cc269de3b604b8ab58f407fe450c86c5f0c98', id: this.item.id, class: {
|
|
59
59
|
'is-clickable': this.isItemClickable(),
|
|
60
60
|
'is-read': !!((_a = this.item) === null || _a === void 0 ? void 0 : _a.read),
|
|
61
61
|
'is-selected': !!((_b = this.item) === null || _b === void 0 ? void 0 : _b.selected),
|
|
@@ -88,11 +88,11 @@ const PercentageVisualizer = class {
|
|
|
88
88
|
render() {
|
|
89
89
|
const normalizedValue = this.getNormalizedValue();
|
|
90
90
|
const zeroPoint = this.getZeroPointPosition();
|
|
91
|
-
return (h(Host, { key: '
|
|
91
|
+
return (h(Host, { key: 'd98b9a92c8e20ee71c9cd4b0004cc92e71e3d681', class: this.getContainerClassList(), style: {
|
|
92
92
|
'--limebb-percentage-visualizer-zero-point-position': `${zeroPoint}%`,
|
|
93
93
|
'--limebb-percentage-visualizer-width': `${Math.abs(normalizedValue)}%`,
|
|
94
94
|
'--limebb-percentage-visualizer-rotate': `${normalizedValue >= 0 ? '0deg' : '180deg'}`,
|
|
95
|
-
} }, h("limel-notched-outline", { key: '
|
|
95
|
+
} }, h("limel-notched-outline", { key: '777218ebb6358304826eda6e09e797bddb70b03c', tabIndex: 0, role: "meter", "aria-valuemin": this.rangeMin, "aria-valuemax": this.rangeMax, "aria-valuenow": this.numValue, "aria-labelledby": this.labelId, "aria-describedby": this.helperTextId, label: this.label, labelId: this.labelId, invalid: this.invalid, required: this.required, hasValue: true, hasFloatingLabel: true, "aria-controls": this.helperTextId }, h("div", { key: '7b454018e8b772564797b31031584dc20e8bc05b', slot: "content" }, this.renderVisualization())), this.renderHelperLine()));
|
|
96
96
|
}
|
|
97
97
|
renderVisualization() {
|
|
98
98
|
if (this.reducePresence && (this.numValue === 0 || !this.hasValue())) {
|
|
@@ -45,7 +45,7 @@ const RuleChipPopover = class {
|
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
render() {
|
|
48
|
-
return (h("div", { key: '
|
|
48
|
+
return (h("div", { key: 'abb754c8d327cc82b5d4e7e44154e937c3aeb0d2', class: "popover" }, this.renderHeader(), this.renderBody()));
|
|
49
49
|
}
|
|
50
50
|
renderHeader() {
|
|
51
51
|
var _a, _b, _c, _d;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { h, r as registerInstance, c as createEvent, g as getElement } from './index-COtSgrC5.js';
|
|
1
|
+
import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-COtSgrC5.js';
|
|
2
2
|
import { M as Mt, n } from './index.esm-B9D_MXA6.js';
|
|
3
|
+
import { r as ruleForMode, b as ruleMode, A as ALWAYS_PRIMITIVE_ID } from './rule-editor-modes-BCglve2Z.js';
|
|
4
|
+
import { c as createRandomString } from './random-string-C2JP2nLw.js';
|
|
3
5
|
|
|
4
6
|
/**
|
|
5
7
|
* Remove the node at `path`.
|
|
@@ -493,7 +495,39 @@ const IssuesView = ({ issues }) => {
|
|
|
493
495
|
return issues.map((issue) => (h("div", { class: "rule-node__issue" }, issue.message)));
|
|
494
496
|
};
|
|
495
497
|
|
|
496
|
-
|
|
498
|
+
/**
|
|
499
|
+
* The shared string each mode is labelled from. Adverbs answering "when
|
|
500
|
+
* does this apply?", so they carry no rule-editor namespace and are
|
|
501
|
+
* spelled out here rather than built from the mode id — a key a
|
|
502
|
+
* translation extractor can find, and a human can grep for.
|
|
503
|
+
*/
|
|
504
|
+
const MODE_LABEL_KEYS = {
|
|
505
|
+
never: 'webclient.never',
|
|
506
|
+
always: 'webclient.always',
|
|
507
|
+
conditional: 'webclient.conditionally',
|
|
508
|
+
};
|
|
509
|
+
/**
|
|
510
|
+
* The segmented control that picks how the rule is written.
|
|
511
|
+
*
|
|
512
|
+
* `limel-button-group` renders radio inputs in one group, so at most
|
|
513
|
+
* one mode is ever selected. None is selected when `selected` is a mode
|
|
514
|
+
* the caller does not offer — a stored condition tree under a setting
|
|
515
|
+
* that offers only the unconditional modes.
|
|
516
|
+
* @param props
|
|
517
|
+
*/
|
|
518
|
+
const RuleModeView = (props) => {
|
|
519
|
+
const { modes, selected, disabled, translator, onModeChange } = props;
|
|
520
|
+
return (h("limel-button-group", { value: modes.map((mode) => ({
|
|
521
|
+
id: mode,
|
|
522
|
+
title: translator.get(MODE_LABEL_KEYS[mode]),
|
|
523
|
+
selected: mode === selected,
|
|
524
|
+
})), disabled: disabled, onChange: (event) => {
|
|
525
|
+
event.stopPropagation();
|
|
526
|
+
onModeChange(event.detail.id);
|
|
527
|
+
} }));
|
|
528
|
+
};
|
|
529
|
+
|
|
530
|
+
const ruleEditorCss = () => `@charset "UTF-8";:host{display:block;position:relative}.limel-notched-outline{--limel-notched-outline-background-color:transparent;padding:0.5rem 0 0 0}limel-notched-outline:not([invalid]:not([invalid=false])) .limel-notched-outline{--limel-notched-outline-border-color:transparent}.rule-editor--disabled{opacity:0.6;pointer-events:none}.rule-node{border:1px solid rgb(var(--contrast-500));border-radius:0.5rem;margin:0.25rem 0;overflow:hidden;background-color:rgb(var(--contrast-100))}.rule-node--invalid{border-color:rgb(var(--color-red-default))}.rule-node--all>.rule-node__header,.rule-node--any>.rule-node__header{background-color:rgb(var(--contrast-300));padding:0.375rem 0.75rem;border-bottom:1px solid rgb(var(--contrast-500))}.rule-node__header{display:flex;align-items:center;gap:0.5rem}.rule-node__header-actions{margin-left:auto;display:grid;grid-auto-flow:column;grid-gap:0.5rem;padding:0.125rem;align-items:center}.rule-node__combinator-select{min-width:6rem}.rule-node__body{padding:0.75rem;display:flex;flex-direction:column;gap:0.75rem}limel-popover.rule-node__chips-popover{display:contents;--popover-surface-width:min(calc(100vw - 4rem), 50rem)}.rule-node__chips{display:block;width:100%}.rule-node__chips limel-picker{display:block;width:100%}.rule-node__children{display:flex;flex-direction:column;gap:0.5rem}.rule-node__footer{display:flex;justify-content:center}.rule-node__issue{color:rgb(var(--color-red-default));font-size:0.875rem}:host(limebb-rule-editor:focus),:host(limebb-rule-editor:focus-visible),:host(limebb-rule-editor:focus-within){--limel-h-l-grid-template-rows-transition-speed:0.46s;--limel-h-l-grid-template-rows:1fr}:host(limebb-rule-editor){--limel-h-l-grid-template-rows-transition-speed:0.3s;--limel-h-l-grid-template-rows:0fr}:host(limebb-rule-editor:focus) limel-helper-line,:host(limebb-rule-editor:focus-visible) limel-helper-line,:host(limebb-rule-editor:focus-within) limel-helper-line,:host(limebb-rule-editor:hover) limel-helper-line{will-change:grid-template-rows}limel-help{position:absolute;top:calc(var(--form-row-gap, 1rem) * -0.5);left:calc(var(--form-column-gap, 1rem) * -0.5);z-index:1}`;
|
|
497
531
|
|
|
498
532
|
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
499
533
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -511,6 +545,16 @@ const RuleEditor = class {
|
|
|
511
545
|
this.change = createEvent(this, "change");
|
|
512
546
|
this.issues = [];
|
|
513
547
|
this.openChipPath = null;
|
|
548
|
+
/**
|
|
549
|
+
* The mode the author last clicked, held until `value` reads back
|
|
550
|
+
* as it.
|
|
551
|
+
*
|
|
552
|
+
* A purely derived mode cannot express one case: `conditional` with
|
|
553
|
+
* nothing to restore emits no rule, so the derivation would fall
|
|
554
|
+
* back to the first offered mode and snap the control away from
|
|
555
|
+
* what the author just clicked.
|
|
556
|
+
*/
|
|
557
|
+
this.modeOverride = null;
|
|
514
558
|
this.focusOnOpen = false;
|
|
515
559
|
this.metadataById = new Map();
|
|
516
560
|
this.allPrimitiveOptions = [];
|
|
@@ -518,6 +562,26 @@ const RuleEditor = class {
|
|
|
518
562
|
this.reachableSlots = new Set();
|
|
519
563
|
this.normalizedCache = null;
|
|
520
564
|
this.hasLoaded = false;
|
|
565
|
+
this.labelId = createRandomString();
|
|
566
|
+
this.helperTextId = createRandomString();
|
|
567
|
+
/**
|
|
568
|
+
* Write the picked mode as a rule and emit it. The tree the author
|
|
569
|
+
* had is stashed on the way out, so picking `conditional` again
|
|
570
|
+
* puts it back instead of starting from empty. An emptied tree is
|
|
571
|
+
* stashed too — restoring it is what tells the author their
|
|
572
|
+
* conditions are gone, rather than handing back the ones they
|
|
573
|
+
* removed. With nothing stashed, `conditional` emits no rule, which
|
|
574
|
+
* is how the editor already says "the author cleared this".
|
|
575
|
+
* @param mode
|
|
576
|
+
*/
|
|
577
|
+
this.handleModeChange = (mode) => {
|
|
578
|
+
var _a;
|
|
579
|
+
if (this.currentMode === 'conditional') {
|
|
580
|
+
this.stashedTree = this.value;
|
|
581
|
+
}
|
|
582
|
+
this.modeOverride = mode;
|
|
583
|
+
this.change.emit((_a = ruleForMode(mode)) !== null && _a !== void 0 ? _a : this.stashedTree);
|
|
584
|
+
};
|
|
521
585
|
this.handleDelete = (path) => {
|
|
522
586
|
this.openChipPath = null;
|
|
523
587
|
this.focusOnOpen = false;
|
|
@@ -571,6 +635,7 @@ const RuleEditor = class {
|
|
|
571
635
|
this.emitNormalization();
|
|
572
636
|
}
|
|
573
637
|
onValueChange() {
|
|
638
|
+
this.clearReachedModeOverride();
|
|
574
639
|
if (this.emitNormalization()) {
|
|
575
640
|
return;
|
|
576
641
|
}
|
|
@@ -580,23 +645,42 @@ const RuleEditor = class {
|
|
|
580
645
|
this.rebuildFromRegistries();
|
|
581
646
|
}
|
|
582
647
|
render() {
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
648
|
+
return (h(Host, { key: '4b342b249b781177e52a63b864e85ba3d17f7239' }, this.renderHelp(), h("limel-notched-outline", { key: 'e6ffe3d2dc9226e99be1f56bdd3274528b4d917f', label: this.label, labelId: this.labelId, required: this.required, readonly: this.readonly, disabled: this.disabled, invalid: this.invalid, hasValue: true, hasFloatingLabel: true }, h("div", { key: '790a6c064d07647ab3bbe5687af7a763f49e1982', slot: "content", class: {
|
|
649
|
+
'rule-editor': true,
|
|
650
|
+
'rule-editor--disabled': this.disabled,
|
|
651
|
+
}, role: "group", "aria-labelledby": this.label ? this.labelId : undefined, "aria-describedby": this.helperText ? this.helperTextId : undefined }, this.renderModes(), this.renderTree())), this.renderHelperLine()));
|
|
652
|
+
}
|
|
653
|
+
renderModes() {
|
|
654
|
+
const modes = this.modes;
|
|
655
|
+
const selected = this.currentMode;
|
|
656
|
+
if (!modes || !selected) {
|
|
657
|
+
return null;
|
|
658
|
+
}
|
|
659
|
+
return (h(RuleModeView, { modes: modes, selected: selected, disabled: this.disabled || this.readonly, translator: this.translator, onModeChange: this.handleModeChange }));
|
|
588
660
|
}
|
|
589
|
-
|
|
590
|
-
|
|
661
|
+
/**
|
|
662
|
+
* The condition tree, shown unless a mode other than `conditional`
|
|
663
|
+
* is selected — an unconditional rule has no conditions to show.
|
|
664
|
+
* A caller offering no modes at all gets the tree, as before.
|
|
665
|
+
*/
|
|
666
|
+
renderTree() {
|
|
667
|
+
const mode = this.currentMode;
|
|
668
|
+
if (mode && mode !== 'conditional') {
|
|
591
669
|
return null;
|
|
592
670
|
}
|
|
593
|
-
return h(
|
|
671
|
+
return (h(RuleNodeView, { node: this.normalizedValue, path: [], ctx: this.createRenderContext() }));
|
|
594
672
|
}
|
|
595
|
-
|
|
673
|
+
renderHelperLine() {
|
|
596
674
|
if (!this.helperText) {
|
|
597
675
|
return null;
|
|
598
676
|
}
|
|
599
|
-
return h("
|
|
677
|
+
return (h("limel-helper-line", { helperText: this.helperText, helperTextId: this.helperTextId, invalid: this.invalid }));
|
|
678
|
+
}
|
|
679
|
+
renderHelp() {
|
|
680
|
+
if (!this.help) {
|
|
681
|
+
return null;
|
|
682
|
+
}
|
|
683
|
+
return h("limel-help", { value: this.help });
|
|
600
684
|
}
|
|
601
685
|
createRenderContext() {
|
|
602
686
|
return {
|
|
@@ -619,6 +703,39 @@ const RuleEditor = class {
|
|
|
619
703
|
onPopoverClose: this.handlePopoverClose,
|
|
620
704
|
};
|
|
621
705
|
}
|
|
706
|
+
/**
|
|
707
|
+
* The mode the editor is in, or `undefined` when it offers none —
|
|
708
|
+
* then it is the plain tree editor it was before modes existed.
|
|
709
|
+
*
|
|
710
|
+
* Derived from `value`, falling back to the first offered mode for
|
|
711
|
+
* a caller who has not stored a rule yet: the control has to show
|
|
712
|
+
* something, and nothing is emitted until the author picks.
|
|
713
|
+
*/
|
|
714
|
+
get currentMode() {
|
|
715
|
+
var _a, _b;
|
|
716
|
+
const modes = this.modes;
|
|
717
|
+
if (!(modes === null || modes === void 0 ? void 0 : modes.length)) {
|
|
718
|
+
return undefined;
|
|
719
|
+
}
|
|
720
|
+
return (_b = (_a = this.modeOverride) !== null && _a !== void 0 ? _a : ruleMode(this.value)) !== null && _b !== void 0 ? _b : modes[0];
|
|
721
|
+
}
|
|
722
|
+
/**
|
|
723
|
+
* Drop the override once `value` contradicts it, handing the mode
|
|
724
|
+
* back to the derivation — that is how a later value from the
|
|
725
|
+
* caller wins over the mode the author picked.
|
|
726
|
+
*
|
|
727
|
+
* A value that expresses no mode at all does not contradict
|
|
728
|
+
* anything: an emptied tree emits no rule, and the author is still
|
|
729
|
+
* in `conditional`. Dropping the override there would read the
|
|
730
|
+
* empty value back as the first offered mode and rewrite the
|
|
731
|
+
* setting under the author.
|
|
732
|
+
*/
|
|
733
|
+
clearReachedModeOverride() {
|
|
734
|
+
const mode = ruleMode(this.value);
|
|
735
|
+
if (mode !== undefined && mode !== this.modeOverride) {
|
|
736
|
+
this.modeOverride = null;
|
|
737
|
+
}
|
|
738
|
+
}
|
|
622
739
|
/**
|
|
623
740
|
* Path of a newly added chip whose primitive declares a config
|
|
624
741
|
* component, so its args editor opens immediately on add. The new
|
|
@@ -677,14 +794,18 @@ const RuleEditor = class {
|
|
|
677
794
|
/**
|
|
678
795
|
* The subset of registered metadata offered for adding in the
|
|
679
796
|
* palette: primitives whose `reads` aren't fully covered by the
|
|
680
|
-
* reachable slots are dropped
|
|
681
|
-
*
|
|
682
|
-
*
|
|
797
|
+
* reachable slots are dropped, and so is the always primitive —
|
|
798
|
+
* it reads nothing, so it is always covered, but an "Always" chip
|
|
799
|
+
* among a group's conditions says nothing. Filtering only the
|
|
800
|
+
* palette — not the full `allPrimitiveOptions` — keeps
|
|
801
|
+
* already-placed chips resolving to their proper title even when
|
|
802
|
+
* their read slot isn't reachable.
|
|
683
803
|
*/
|
|
684
804
|
availablePrimitiveMetadata() {
|
|
685
805
|
const filtered = new Map();
|
|
686
806
|
for (const [id, meta] of this.metadataById) {
|
|
687
|
-
if (
|
|
807
|
+
if (id !== ALWAYS_PRIMITIVE_ID &&
|
|
808
|
+
primitiveReadsCovered(meta, this.reachableSlots)) {
|
|
688
809
|
filtered.set(id, meta);
|
|
689
810
|
}
|
|
690
811
|
}
|
|
@@ -725,10 +846,18 @@ const RuleEditor = class {
|
|
|
725
846
|
]);
|
|
726
847
|
this.issues = result.ok ? [] : result.issues;
|
|
727
848
|
}
|
|
849
|
+
/**
|
|
850
|
+
* Emit an edited tree. Editing the tree is only possible in
|
|
851
|
+
* `conditional`, so the edit itself records the mode: an edit that
|
|
852
|
+
* empties the tree emits no rule, and without this the empty value
|
|
853
|
+
* would read back as the first offered mode.
|
|
854
|
+
* @param next
|
|
855
|
+
*/
|
|
728
856
|
emitIfChanged(next) {
|
|
729
857
|
if (next === this.normalizedValue) {
|
|
730
858
|
return;
|
|
731
859
|
}
|
|
860
|
+
this.modeOverride = 'conditional';
|
|
732
861
|
this.change.emit(collapseEmptyRoot(next));
|
|
733
862
|
}
|
|
734
863
|
/**
|
|
@@ -738,17 +867,23 @@ const RuleEditor = class {
|
|
|
738
867
|
* `emitNormalization` will *not* push that placeholder back to the
|
|
739
868
|
* caller, so an unset value stays unset until the user edits.
|
|
740
869
|
*
|
|
870
|
+
* An unconditional mode is the exception: its sentinel is left
|
|
871
|
+
* exactly as it came in, because wrapping it would rewrite the
|
|
872
|
+
* shape the mode is read back from.
|
|
873
|
+
*
|
|
741
874
|
* Memoized so callers that read this several times in one handler
|
|
742
875
|
* see the same reference — the identity check in `emitIfChanged`
|
|
743
876
|
* depends on it.
|
|
744
877
|
*/
|
|
745
878
|
get normalizedValue() {
|
|
879
|
+
const mode = this.currentMode;
|
|
746
880
|
if (this.normalizedCache !== null &&
|
|
747
|
-
this.normalizedCache.source === this.value
|
|
881
|
+
this.normalizedCache.source === this.value &&
|
|
882
|
+
this.normalizedCache.mode === mode) {
|
|
748
883
|
return this.normalizedCache.normalized;
|
|
749
884
|
}
|
|
750
|
-
const normalized = normalize(this.value);
|
|
751
|
-
this.normalizedCache = { source: this.value, normalized };
|
|
885
|
+
const normalized = normalize(this.value, mode);
|
|
886
|
+
this.normalizedCache = { source: this.value, mode, normalized };
|
|
752
887
|
return normalized;
|
|
753
888
|
}
|
|
754
889
|
/**
|
|
@@ -806,10 +941,15 @@ const EMPTY_CONTEXT = Object.freeze({
|
|
|
806
941
|
limetype: null,
|
|
807
942
|
id: null,
|
|
808
943
|
});
|
|
809
|
-
function normalize(value) {
|
|
944
|
+
function normalize(value, mode) {
|
|
810
945
|
if (!value) {
|
|
811
946
|
return { type: 'all', rules: [] };
|
|
812
947
|
}
|
|
948
|
+
// Neither sentinel is a group, and wrapping one would rewrite the
|
|
949
|
+
// very shape the mode is read back from.
|
|
950
|
+
if (mode === 'always' || mode === 'never') {
|
|
951
|
+
return value;
|
|
952
|
+
}
|
|
813
953
|
if (extractGroup(value)) {
|
|
814
954
|
return value;
|
|
815
955
|
}
|
|
@@ -22,7 +22,7 @@ const RuleGate = class {
|
|
|
22
22
|
this.evaluate();
|
|
23
23
|
}
|
|
24
24
|
render() {
|
|
25
|
-
return (h(Host, { key: '
|
|
25
|
+
return (h(Host, { key: 'ce41c51b7f8b049d7d89374ef0c452b2e961aa23', hidden: !this.shouldRender }, h("slot", { key: 'ad04db83bceca78bf7bb2eb7b7b2dae018025319' })));
|
|
26
26
|
}
|
|
27
27
|
get ruleRegistry() {
|
|
28
28
|
return this.platform.get(n.RuleRegistry);
|
|
@@ -1400,7 +1400,7 @@ const LimeBBTextEditor = class {
|
|
|
1400
1400
|
}
|
|
1401
1401
|
render() {
|
|
1402
1402
|
return [
|
|
1403
|
-
h("limel-text-editor", { key: '
|
|
1403
|
+
h("limel-text-editor", { key: '7c5597fd2affe6f7a625c3fabfbaaef70ac41b00', ref: (el) => (this.textEditor = el), tabindex: this.disabled ? -1 : 0, value: this.value, contentType: this.contentType, customElements: this.registeredCustomElements, "aria-disabled": this.disabled, language: this.language, triggers: this.registeredTriggers, onTriggerStart: this.handleTriggerStart, onTriggerStop: this.handleTriggerStop, onTriggerChange: this.handleTriggerChange, inlineImages: this.inlineImages, ui: this.ui, allowResize: this.allowResize, required: this.required, disabled: this.disabled, readonly: this.readonly, helperText: this.helperText, placeholder: this.placeholder, label: this.label, invalid: this.invalid }),
|
|
1404
1404
|
this.renderPicker(),
|
|
1405
1405
|
];
|
|
1406
1406
|
}
|