@limetech/lime-crm-building-blocks 2.0.3 → 2.1.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 +18 -0
- package/dist/cjs/condition-tree-translate-B_qIQz9s.js +27 -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 +12 -5
- 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 +4 -4
- 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/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.css +4 -1
- package/dist/collection/components/chat-list/chat-item/chat-item.js +9 -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.js +1 -1
- 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/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/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/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/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 +12 -5
- 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 +4 -4
- 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/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
- package/dist/lime-crm-building-blocks/{p-73f23d08.entry.js → p-031b1648.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-d8d32cb1.entry.js → p-0f74d662.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-242ed59b.entry.js → p-11b41423.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-1578c8f0.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-7a9d7d87.entry.js → p-1731f5c3.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-956e466d.entry.js → p-17588c29.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-7cd8dffd.entry.js → p-1fac8130.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-f1060c88.entry.js → p-2984005d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-080a1166.entry.js → p-2baab674.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-02fba38e.entry.js → p-2f8540ab.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-848462ee.entry.js → p-318369ae.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ac13feb9.entry.js → p-3c72400d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-79bb58b0.entry.js → p-3fe4f3f4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-f9b1cd5e.entry.js → p-4274cbe3.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-4594c2b1.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-abe751c0.entry.js → p-51eb53ee.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-78118c62.entry.js → p-5b000748.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-7ccca5e4.entry.js → p-5b80d92a.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-705c53c0.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-170ab4be.entry.js → p-76064593.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-4f0939e6.entry.js → p-761deada.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-d071bd2d.entry.js → p-9099b440.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-e910963c.entry.js → p-92403251.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-584a48e4.entry.js → p-9907deb1.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-5268fc02.entry.js → p-99556fc0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-BxCq236x.js +1 -0
- package/dist/lime-crm-building-blocks/{p-3c3009e3.entry.js → p-a0dee52a.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-40cb2c7c.entry.js → p-b373c60f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-bd89279d.entry.js → p-b46722c8.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-56d125c7.entry.js → p-b48c23f4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-43dfbefb.entry.js → p-b8d74591.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-10da40f8.entry.js → p-c2899d68.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-d23f4604.entry.js → p-c4e40c2c.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-6951dcf7.entry.js → p-c7daffb6.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-10310a64.entry.js → p-cede8095.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ad661a38.entry.js → p-d0c75083.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-8fdf6a09.entry.js → p-d82a2424.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-e5028d83.entry.js → p-e1f35866.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-e6605577.entry.js +1 -0
- package/dist/lime-crm-building-blocks/p-e8a7a94c.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-6d8efe87.entry.js → p-edfaf566.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ee7bd504.entry.js → p-eedbf69a.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-fb45e6d5.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-d816fcc8.entry.js → p-fec173db.entry.js} +1 -1
- package/dist/types/components/chat-list/chat-item/chat-item.d.ts +1 -0
- 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.d.ts +348 -4
- package/dist/types/interface.d.ts +1 -0
- package/package.json +3 -3
- package/dist/lime-crm-building-blocks/p-29262c17.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-63e7c191.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-a17d6dac.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-c85ff45b.entry.js +0 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
import { COMBINATOR_PRESENTATION } from "./condition-tree-combinators";
|
|
3
|
+
import { pathKey } from "./condition-tree-nodes";
|
|
4
|
+
import { handleDelete, IssuesView, } from "./condition-tree-view-context";
|
|
5
|
+
import { LeafView } from "./leaf-node-view";
|
|
6
|
+
/**
|
|
7
|
+
* Render one of the consumer's nodes, whichever kind the adapter says it is.
|
|
8
|
+
*
|
|
9
|
+
* It lives beside `GroupView` because a group is what holds nodes of either
|
|
10
|
+
* kind: the recursion is the group's, and keeping the choice here is what lets
|
|
11
|
+
* a group draw a group without two modules importing each other.
|
|
12
|
+
* @param props
|
|
13
|
+
*/
|
|
14
|
+
export const NodeView = (props) => {
|
|
15
|
+
const { description } = props;
|
|
16
|
+
if (description.kind === 'group') {
|
|
17
|
+
return (h(GroupView, { description: description, path: props.path, ctx: props.ctx }));
|
|
18
|
+
}
|
|
19
|
+
return (h(LeafView, { node: props.node, description: description, path: props.path, ctx: props.ctx }));
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* A box holding a combinator, the conditions joined by it, and the two buttons
|
|
23
|
+
* that grow it.
|
|
24
|
+
* @param props
|
|
25
|
+
*/
|
|
26
|
+
export const GroupView = (props) => {
|
|
27
|
+
const { description, path, ctx, placeholder } = props;
|
|
28
|
+
const presentation = COMBINATOR_PRESENTATION[description.combinator];
|
|
29
|
+
const delimiter = ctx.translate(presentation.delimiterKey, presentation.delimiter);
|
|
30
|
+
// The marker between two rows reads as the join itself: "&", "or", and
|
|
31
|
+
// for the negated combinators the same joins prefixed with "not".
|
|
32
|
+
const marker = presentation.negated
|
|
33
|
+
? `${ctx.translate('webclient.delimiter.not', 'not')} ${delimiter}`
|
|
34
|
+
: delimiter;
|
|
35
|
+
return (h("div", { class: "group", key: pathKey(path), "data-combinator": description.combinator, style: { '--group-rail-color': presentation.color } }, h("div", { class: "group-header" }, renderCombinator(description, path, ctx), renderDeleteGroup(path, ctx, placeholder)), h(IssuesView, { issues: description.issues }), h("ul", { class: "rows" }, description.children.map((child, index) => {
|
|
36
|
+
const childDescription = ctx.walker.describe(child);
|
|
37
|
+
return (h("li", { class: {
|
|
38
|
+
row: true,
|
|
39
|
+
'row--group': childDescription.kind === 'group',
|
|
40
|
+
}, "data-marker": marker, key: pathKey([...path, index]) }, h(NodeView, { node: child, description: childDescription, path: [...path, index], ctx: ctx })));
|
|
41
|
+
}), renderAddCondition(path, marker, ctx)), renderAddGroup(path, ctx)));
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* The "+" that turns a noun into an action.
|
|
45
|
+
*
|
|
46
|
+
* The chips and buttons that grow the tree read as "+ Condition" and
|
|
47
|
+
* "+ Group": a sighted reader takes the glyph as the verb, so the label only
|
|
48
|
+
* has to carry the noun. A screen reader cannot — an icon without a `title`
|
|
49
|
+
* is hidden from it entirely, leaving nothing but a bare "Condition". The
|
|
50
|
+
* title supplies the missing verb, and lime-elements composes the two into
|
|
51
|
+
* "Add Condition" for assistive technology and for the tooltip alike.
|
|
52
|
+
*
|
|
53
|
+
* This is why the translated strings behind these are nouns, and must stay
|
|
54
|
+
* nouns: the verb lives here.
|
|
55
|
+
* @param ctx
|
|
56
|
+
* @param color
|
|
57
|
+
*/
|
|
58
|
+
function addIcon(ctx, color) {
|
|
59
|
+
return {
|
|
60
|
+
name: 'plus_math',
|
|
61
|
+
title: ctx.translate('webclient.add', 'Add'),
|
|
62
|
+
color: color,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The combinators to list, which is what the consumer offers — plus the one the
|
|
67
|
+
* group already uses, when that is not among them. A group saved before the
|
|
68
|
+
* consumer narrowed the list has to keep saying what it does, rather than
|
|
69
|
+
* misrepresenting itself as using one of the offered ones.
|
|
70
|
+
* @param ctx
|
|
71
|
+
* @param current
|
|
72
|
+
*/
|
|
73
|
+
function combinatorOptions(ctx, current) {
|
|
74
|
+
const combinators = [...ctx.combinators];
|
|
75
|
+
if (current && !combinators.includes(current)) {
|
|
76
|
+
combinators.push(current);
|
|
77
|
+
}
|
|
78
|
+
return combinators.map((combinator) => {
|
|
79
|
+
const presentation = COMBINATOR_PRESENTATION[combinator];
|
|
80
|
+
return {
|
|
81
|
+
value: combinator,
|
|
82
|
+
text: ctx.translate(presentation.labelKey, presentation.label),
|
|
83
|
+
secondaryText: ctx.translate(presentation.descriptionKey, presentation.description),
|
|
84
|
+
icon: {
|
|
85
|
+
name: presentation.iconName,
|
|
86
|
+
color: presentation.color,
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* The dropdown that says how a group joins what is inside it.
|
|
93
|
+
*
|
|
94
|
+
* A group holding fewer than two things has nothing to join yet, so choosing
|
|
95
|
+
* between "All of the following" and "Any of the following" would change
|
|
96
|
+
* nothing, and the dropdown is left out until there is a second thing for it to
|
|
97
|
+
* act on. A negating combinator is the exception: "None of the following" says
|
|
98
|
+
* something about a lone condition that "All of the following" does not, so
|
|
99
|
+
* leaving it out would leave out the negation with it.
|
|
100
|
+
* @param description
|
|
101
|
+
* @param path
|
|
102
|
+
* @param ctx
|
|
103
|
+
*/
|
|
104
|
+
function renderCombinator(description, path, ctx) {
|
|
105
|
+
const joins = description.children.length > 1;
|
|
106
|
+
if (!joins && !COMBINATOR_PRESENTATION[description.combinator].negated) {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
const options = combinatorOptions(ctx, description.combinator);
|
|
110
|
+
// No label: every option is a full sentence about the group ("All of the
|
|
111
|
+
// following"), so a label above it could only name the same thing twice.
|
|
112
|
+
// The accessible name comes from the selected option for the same reason.
|
|
113
|
+
return (h("limel-select", { class: "combinator", value: options.find((option) => option.value === description.combinator), options: options, disabled: ctx.disabled, readonly: ctx.readonly, onChange: handleCombinator(path, ctx) }));
|
|
114
|
+
}
|
|
115
|
+
function renderDeleteGroup(path, ctx, placeholder) {
|
|
116
|
+
if (ctx.readonly) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
return (h("limel-icon-button", { class: "delete-group", icon: "trash", label: ctx.translate('webclient.delete-group', 'Delete this group'), disabled: ctx.disabled || !!placeholder, onClick: handleDelete(path, ctx) }));
|
|
120
|
+
}
|
|
121
|
+
function renderAddCondition(path, marker, ctx) {
|
|
122
|
+
var _a;
|
|
123
|
+
if (ctx.readonly) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
const offersChoice = !!((_a = ctx.addOptions) === null || _a === void 0 ? void 0 : _a.length);
|
|
127
|
+
const chip = (h("limel-chip", { slot: offersChoice ? 'trigger' : undefined, class: "add-condition", text: ctx.translate('webclient.condition', 'Condition'), disabled: ctx.disabled, icon: addIcon(ctx), onClick: offersChoice ? undefined : handleAddLeaf(path, ctx) }));
|
|
128
|
+
// A row of its own rather than a bare chip, so that the join between it
|
|
129
|
+
// and the condition before it is drawn by the same rule that joins any two
|
|
130
|
+
// rows: the button is where the next condition goes, and it reads as part
|
|
131
|
+
// of the sequence — "Won or 100000 or + Condition".
|
|
132
|
+
return (h("li", { class: "row", "data-marker": marker, key: `${pathKey(path)}.add` }, offersChoice ? (h("limel-menu", { class: "add-condition-menu", items: ctx.addOptions, openDirection: "bottom-start", onSelect: handleAddLeafPick(path, ctx) }, chip)) : (chip)));
|
|
133
|
+
}
|
|
134
|
+
function renderAddGroup(path, ctx) {
|
|
135
|
+
if (ctx.readonly) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
return (h("limel-chip", { class: "add-group", size: "small", text: ctx.translate('webclient.group', 'Group'), disabled: ctx.disabled, icon: addIcon(ctx, 'var(--group-rail-color)'), onClick: handleAddGroup(path, ctx) }));
|
|
139
|
+
}
|
|
140
|
+
const handleCombinator = (path, ctx) => (event) => {
|
|
141
|
+
var _a;
|
|
142
|
+
event.stopPropagation();
|
|
143
|
+
const combinator = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.value;
|
|
144
|
+
if (combinator) {
|
|
145
|
+
ctx.onCombinator(path, combinator);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const handleAddLeaf = (path, ctx) => () => ctx.onAddLeaf(path);
|
|
149
|
+
const handleAddLeafPick = (path, ctx) => (event) => {
|
|
150
|
+
event.stopPropagation();
|
|
151
|
+
ctx.onAddLeaf(path, event.detail);
|
|
152
|
+
};
|
|
153
|
+
const handleAddGroup = (path, ctx) => () => ctx.onAddGroup(path);
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
import { pathKey } from "./condition-tree-nodes";
|
|
3
|
+
import { handleDelete, IssuesView, } from "./condition-tree-view-context";
|
|
4
|
+
/**
|
|
5
|
+
* One condition: a chip that summarizes it, and the editor it opens.
|
|
6
|
+
* @param props
|
|
7
|
+
*/
|
|
8
|
+
export const LeafView = (props) => {
|
|
9
|
+
const { node, description, path, ctx } = props;
|
|
10
|
+
const isOpen = ctx.openNode === node;
|
|
11
|
+
return [
|
|
12
|
+
h("limel-popover", { class: "leaf", key: pathKey(path), open: isOpen, openDirection: "bottom-start", onClose: handleClose(ctx) }, h(ChipView, { node: node, description: description, path: path, ctx: ctx }), h("limebb-condition-tree-editor", { platform: ctx.platform, context: ctx.context, open: isOpen, editor: description.editor, value: node, heading: description.chip.label, negated: ctx.negatable ? description.negated : undefined, readonly: ctx.readonly, disabled: ctx.disabled, onNegateChange: handleNegate(path, ctx), onConditionChange: handleConditionChange(path, ctx) })),
|
|
13
|
+
h(IssuesView, { issues: description.issues }),
|
|
14
|
+
];
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* The chip that summarizes a condition: `limebb-filter-chip` unless the
|
|
18
|
+
* condition named another component, and either way the control the tree
|
|
19
|
+
* drives — it selects, locks and removes it the same way.
|
|
20
|
+
*
|
|
21
|
+
* The built-in chip is written out as itself rather than reached through the
|
|
22
|
+
* same tag name as the rest, so that the build sees it: a tag that only ever
|
|
23
|
+
* appears as a string is not counted as a dependency, and the chip would then
|
|
24
|
+
* never be defined for a consumer importing one component at a time.
|
|
25
|
+
* @param props
|
|
26
|
+
*/
|
|
27
|
+
const ChipView = (props) => {
|
|
28
|
+
const { component } = props.description.chip;
|
|
29
|
+
if (!component) {
|
|
30
|
+
return h("limebb-filter-chip", Object.assign({}, drivenProps(props)));
|
|
31
|
+
}
|
|
32
|
+
const Chip = component.name;
|
|
33
|
+
return h(Chip, Object.assign({}, component.props, drivenProps(props)));
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* What the tree tells a chip, whichever chip it is. Spread after the
|
|
37
|
+
* descriptor's own props, so that a chip cannot opt out of the tree's state.
|
|
38
|
+
* @param props
|
|
39
|
+
*/
|
|
40
|
+
function drivenProps(props) {
|
|
41
|
+
const { node, description, path, ctx } = props;
|
|
42
|
+
const { chip } = description;
|
|
43
|
+
return {
|
|
44
|
+
slot: 'trigger',
|
|
45
|
+
platform: ctx.platform,
|
|
46
|
+
label: chip.label,
|
|
47
|
+
value: chip.value,
|
|
48
|
+
icon: chip.icon,
|
|
49
|
+
invalid: chip.invalid,
|
|
50
|
+
selected: ctx.openNode === node,
|
|
51
|
+
readonly: ctx.readonly,
|
|
52
|
+
disabled: ctx.disabled,
|
|
53
|
+
removable: !ctx.readonly,
|
|
54
|
+
onClick: handleOpen(node, description, ctx),
|
|
55
|
+
onRemove: handleDelete(path, ctx),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const handleOpen = (node, description, ctx) => () => {
|
|
59
|
+
if (description.editor && !ctx.disabled) {
|
|
60
|
+
ctx.onOpen(node);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const handleClose = (ctx) => (event) => {
|
|
64
|
+
event.stopPropagation();
|
|
65
|
+
ctx.onOpen(null);
|
|
66
|
+
};
|
|
67
|
+
const handleNegate = (path, ctx) => (event) => {
|
|
68
|
+
event.stopPropagation();
|
|
69
|
+
ctx.onNegate(path, event.detail);
|
|
70
|
+
};
|
|
71
|
+
const handleConditionChange = (path, ctx) => (event) => {
|
|
72
|
+
event.stopPropagation();
|
|
73
|
+
ctx.onConditionChange(path, event.detail);
|
|
74
|
+
};
|
|
@@ -84,7 +84,7 @@ export class CurrencyPicker {
|
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
86
|
render() {
|
|
87
|
-
return (h("limel-picker", { key: '
|
|
87
|
+
return (h("limel-picker", { key: 'ddb6bfa10b864382a7665b684cf9e17d267ec44e', label: this.label || this.defaultLabel, value: this.createListItem(this.value), helperText: this.helperText, onChange: this.handleChange, badgeIcons: false, disabled: this.disabled, required: this.required, readonly: this.readonly, invalid: this.readonly, searcher: this.search }));
|
|
88
88
|
}
|
|
89
89
|
getCurrencyName(code) {
|
|
90
90
|
var _a;
|
|
@@ -17,7 +17,7 @@ export class DashboardComponent {
|
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
render() {
|
|
20
|
-
return [this.renderHeader(), h("slot", { key: '
|
|
20
|
+
return [this.renderHeader(), h("slot", { key: '4497bb532e24e290fa028aa7cfb4aae3b0291e67', name: "content" })];
|
|
21
21
|
}
|
|
22
22
|
static get is() { return "limebb-dashboard-widget"; }
|
|
23
23
|
static get encapsulation() { return "shadow"; }
|
|
@@ -66,7 +66,7 @@ export class DatePicker {
|
|
|
66
66
|
if (this.value) {
|
|
67
67
|
this.shouldEmitValueAsString = typeof this.value === 'string';
|
|
68
68
|
}
|
|
69
|
-
return (h("limel-date-picker", { key: '
|
|
69
|
+
return (h("limel-date-picker", { key: 'f5ce6d27a29c906bbc64b7c5cfcf519b0f1158e5', disabled: this.disabled, readonly: this.readonly, invalid: this.invalid, label: this.label, placeholder: this.placeholder, helperText: this.helperText, required: this.required, value: this.parseDateValue(), type: this.type, language: this.language, formatter: this.formatter, onChange: this.handleChange }));
|
|
70
70
|
}
|
|
71
71
|
parseDateValue() {
|
|
72
72
|
const value = this.value;
|
|
@@ -33,7 +33,7 @@ export class DateRange {
|
|
|
33
33
|
this.originalEndTime = this.endTime;
|
|
34
34
|
}
|
|
35
35
|
render() {
|
|
36
|
-
return (h("div", { key: '
|
|
36
|
+
return (h("div", { key: '853dfd7dcedfcb12b98fe955ca5bca276588a73b', class: "date-pickers" }, this.renderStartDatePicker(), this.renderEndDatePicker()));
|
|
37
37
|
}
|
|
38
38
|
renderStartDatePicker() {
|
|
39
39
|
if (!this.originalStartTime) {
|
|
@@ -44,7 +44,7 @@ export class DocumentChips {
|
|
|
44
44
|
this.revokeAllBlobUrls();
|
|
45
45
|
}
|
|
46
46
|
render() {
|
|
47
|
-
return (h(Host, { key: '
|
|
47
|
+
return (h(Host, { key: 'fcf23fcc6fcf10a3789b9948c05b19777b355dcd', role: "list", "aria-label": this.accessibleLabel }, this.files.map((file) => this.renderFile(file))));
|
|
48
48
|
}
|
|
49
49
|
renderFile(file) {
|
|
50
50
|
const isReady = !file.uploadState || file.uploadState === 'done';
|
|
@@ -78,10 +78,10 @@ export class DocumentItemComponent {
|
|
|
78
78
|
render() {
|
|
79
79
|
const isUnavailable = this.isUnavailable();
|
|
80
80
|
const image = this.getImage();
|
|
81
|
-
return (h(Host, { key: '
|
|
81
|
+
return (h(Host, { key: 'afd416e95a36e5a8058803ffeb0f8bd407ae554c', id: String(this.item.file.id), class: {
|
|
82
82
|
'has-image': !!image,
|
|
83
83
|
'has-error': !!this.item.hasError,
|
|
84
|
-
}, role: this.type === 'radio' ? 'radio' : 'checkbox', "aria-checked": this.item.selected ? 'true' : 'false', "aria-disabled": isUnavailable ? 'true' : 'false', tabIndex: isUnavailable ? -1 : 0 }, h("limel-card", { key: '
|
|
84
|
+
}, role: this.type === 'radio' ? 'radio' : 'checkbox', "aria-checked": this.item.selected ? 'true' : 'false', "aria-disabled": isUnavailable ? 'true' : 'false', tabIndex: isUnavailable ? -1 : 0 }, h("limel-card", { key: '1b09733a5d914894e4a6738f2559bc49e31a8fe7', image: image, clickable: isUnavailable ? false : true, onClick: this.handleDocumentItemClick, onKeyDown: this.handleKeyDown }, h("div", { key: '08d41d019a71a7f22f983564e01f8bbb1a0f9e8e', slot: "component" }, this.renderFileSize(), this.renderBooleanInput())), this.renderHelp()));
|
|
85
85
|
}
|
|
86
86
|
renderBooleanInput() {
|
|
87
87
|
const id = this.getControlId();
|
|
@@ -76,7 +76,7 @@ export class DocumentPicker {
|
|
|
76
76
|
this.labelId = createRandomString();
|
|
77
77
|
}
|
|
78
78
|
render() {
|
|
79
|
-
return (h(Host, { key: '
|
|
79
|
+
return (h(Host, { key: 'e58dfffa3b749e61c224cfec83683cb36f9379b8' }, h("limel-notched-outline", { key: '3a947d03ae67f61ab4733691580168684c5e1237', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid, hasFloatingLabel: true }, h("limel-masonry-layout", { key: '2d5ae17e9b06a11ace7ed8cf874bf1268e12f25a', slot: "content", role: this.type === 'radio' ? 'radiogroup' : 'group', "aria-labelledby": this.label ? this.labelId : undefined, "aria-describedby": this.helperText ? this.helperTextId : undefined }, this.renderItems())), this.renderHelperLine()));
|
|
80
80
|
}
|
|
81
81
|
renderItems() {
|
|
82
82
|
return this.items.map((item) => (h("limebb-document-item", { platform: this.platform, context: this.context, item: item, key: item.file.id, type: this.type, onInteract: this.handleItemInteract })));
|
|
@@ -217,7 +217,7 @@ export class FeedTimelineItem {
|
|
|
217
217
|
render() {
|
|
218
218
|
var _a, _b;
|
|
219
219
|
const helperTextId = `helper-text-${this.item.id}`;
|
|
220
|
-
return (h(Host, { key: '
|
|
220
|
+
return (h(Host, { key: '159d6710975ec865ecfe453f6a3b1b5039c8a7eb', id: this.item.id, class: {
|
|
221
221
|
'has-unpromoted-actions': !!((_a = this.item.unpromotedActions) === null || _a === void 0 ? void 0 : _a.length),
|
|
222
222
|
'has-author-picture': !!((_b = this.item.author) === null || _b === void 0 ? void 0 : _b.picture),
|
|
223
223
|
'shows-less': !this.showMore,
|
|
@@ -8,7 +8,7 @@ import { h } from "@stencil/core";
|
|
|
8
8
|
*/
|
|
9
9
|
export class FeedItemThumbnailFileInfo {
|
|
10
10
|
render() {
|
|
11
|
-
return h("span", { key: '
|
|
11
|
+
return h("span", { key: '38bbb5b63a9d33bbc842da679927866ee9b3577e' }, this.description);
|
|
12
12
|
}
|
|
13
13
|
static get is() { return "limebb-feed-item-thumbnail-file-info"; }
|
|
14
14
|
static get encapsulation() { return "shadow"; }
|
|
@@ -103,7 +103,7 @@ export class Feed {
|
|
|
103
103
|
this.highlighter.unregisterFeed(this.feedItemElement);
|
|
104
104
|
}
|
|
105
105
|
render() {
|
|
106
|
-
return (h(Host, { key: '
|
|
106
|
+
return (h(Host, { key: '0dff076891048a9906d911a4cdf01569246a2f4f', role: "log", "aria-busy": this.loading ? 'true' : 'false', style: {
|
|
107
107
|
'--limebb-feed-highlight-duration': `${ITEM_HIGHLIGHT_DURATION}ms`,
|
|
108
108
|
} }, this.renderLoadMore(), this.renderEmptyFeedMessage(), this.renderSpinner(), this.renderFeedItems()));
|
|
109
109
|
}
|
|
@@ -102,8 +102,8 @@ export class FilterChip {
|
|
|
102
102
|
const items = this.getDisplayItems();
|
|
103
103
|
const conjunction = this.getConjunctionText();
|
|
104
104
|
const helperLabel = this.getHelperLabel(items, conjunction);
|
|
105
|
-
return (h(Host, { key: '
|
|
106
|
-
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: '
|
|
105
|
+
return (h(Host, { key: '40c32811f9e3d59c87be6b6f2919c145927de940' }, this.renderLabel(), h("button", { key: '09fd4082e3639c3f3728a8826f868d36d306dda5', class: { chip: true }, type: "button", id: chipId, "aria-label": [this.label, helperLabel].filter(Boolean).join(', ') ||
|
|
106
|
+
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: 'd663140a04031caf0bd042c6865a7c3a04ea7d6e', elementId: chipId, label: this.label || this.getFilterLabel(), helperLabel: helperLabel })));
|
|
107
107
|
}
|
|
108
108
|
/**
|
|
109
109
|
* `aria-pressed` only makes sense for an interactive toggle. A readonly
|
|
@@ -43,7 +43,7 @@ export class FilterConditionPicker {
|
|
|
43
43
|
render() {
|
|
44
44
|
const items = this.buildItems();
|
|
45
45
|
const selected = this.selectedOption(items);
|
|
46
|
-
return (h(Host, { key: '
|
|
46
|
+
return (h(Host, { key: 'c629888b9c66c56c57df4fe48e6d32eb256130dd' }, h("limel-select", { key: 'd1fad416311f4e43307a54c10cb121df03535f70', class: "condition", label: this.accessibleLabel, disabled: this.disabled, options: items, value: selected, onChange: this.handleChange })));
|
|
47
47
|
}
|
|
48
48
|
buildItems() {
|
|
49
49
|
var _a;
|
|
@@ -35,7 +35,7 @@ export class IconPicker {
|
|
|
35
35
|
icon: this.value,
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
|
-
return (h("limel-picker", { key: '
|
|
38
|
+
return (h("limel-picker", { key: '13d7e33ced5fe7d00bba385ae9a5fd35146a138a', 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" }));
|
|
39
39
|
}
|
|
40
40
|
static get is() { return "limebb-icon-picker"; }
|
|
41
41
|
static get encapsulation() { return "shadow"; }
|
|
@@ -92,7 +92,7 @@ export class InfoTileAdminConfig {
|
|
|
92
92
|
},
|
|
93
93
|
];
|
|
94
94
|
return [
|
|
95
|
-
h("limel-button-group", { key: '
|
|
95
|
+
h("limel-button-group", { key: 'a1b6fe1abc7d2eabf434d520a535c9cc5b654947', value: buttons.filter(this.isValidButton), onChange: this.handleChangeType }),
|
|
96
96
|
this.renderFormatConfig(),
|
|
97
97
|
];
|
|
98
98
|
}
|
|
@@ -116,7 +116,7 @@ export class InfoTile {
|
|
|
116
116
|
const errorProps = Object.assign(Object.assign({}, baseProps), { icon: 'error', prefix: 'ERROR', loading: true, label: this.getLabel(filter) });
|
|
117
117
|
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() });
|
|
118
118
|
const props = !filter || this.error ? errorProps : normalProps;
|
|
119
|
-
return (h("limel-info-tile", Object.assign({ key: '
|
|
119
|
+
return (h("limel-info-tile", Object.assign({ key: '90fac1e41e9277f860172473ddc9820ef0726bb5', class: { error: !filter || this.error } }, props)));
|
|
120
120
|
}
|
|
121
121
|
/**
|
|
122
122
|
* Effective `reducedPresence` for this render. The boolean prop
|
|
@@ -27,7 +27,7 @@ export class KanbanGroup {
|
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
render() {
|
|
30
|
-
return (h(Host, { key: '
|
|
30
|
+
return (h(Host, { key: 'acab4646021a4518fd57e70ee1e2bcb994f34190' }, this.renderHelp(), this.renderGroupHeading(), this.renderGroupSummary(), this.renderItems()));
|
|
31
31
|
}
|
|
32
32
|
renderGroupSummary() {
|
|
33
33
|
if (!this.summary || !this.totalCount) {
|
|
@@ -55,7 +55,7 @@ export class KanbanItemComponent {
|
|
|
55
55
|
}
|
|
56
56
|
render() {
|
|
57
57
|
var _a, _b;
|
|
58
|
-
return (h(Host, { key: '
|
|
58
|
+
return (h(Host, { key: '1e627d02a5ea18353d1de4461374042b95becf8e', 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: {
|
|
@@ -52,7 +52,7 @@ export class LimeQueryFilterComparisonEditorComponent {
|
|
|
52
52
|
(_a = this.propertySelectorEl) === null || _a === void 0 ? void 0 : _a.focus();
|
|
53
53
|
}
|
|
54
54
|
render() {
|
|
55
|
-
return (h(Host, { key: '
|
|
55
|
+
return (h(Host, { key: 'a27a20dd478b56fbc3e6fb522d2c3425deb5f5fd' }, this.renderPropertySelector(), this.renderConditionPicker(), this.renderValueInput()));
|
|
56
56
|
}
|
|
57
57
|
renderPropertySelector() {
|
|
58
58
|
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 }));
|
package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js
CHANGED
|
@@ -55,11 +55,11 @@ export class LimeQueryFilterComparisonComponent {
|
|
|
55
55
|
const propertyType = hasKey
|
|
56
56
|
? this.getPropertyType(this.expression.key)
|
|
57
57
|
: undefined;
|
|
58
|
-
return (h(Host, { key: '
|
|
58
|
+
return (h(Host, { key: '54b482576ee33c6c518260d6b77713a72f2d48aa' }, this.renderHeader(), h("limel-popover", { key: 'd855e96cea9718ddcb594abfdb494ba6fdde6a7a', open: this.isOpen, openDirection: "bottom-start", onClose: this.handleClose }, h("limebb-filter-chip", { key: 'ed8308562d2744ec4a365692e14b6d5be7583e92', slot: "trigger", platform: this.platform, label: hasKey
|
|
59
59
|
? this.getPropertyLabel(this.expression.key)
|
|
60
60
|
: undefined, condition: hasKey
|
|
61
61
|
? operatorToCondition(this.expression.op)
|
|
62
|
-
: 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: '
|
|
62
|
+
: 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: 'f4a6bec2cf702a9017ca5d68892e23d15b5fafd8', platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression, propertyType: propertyType, onExpressionChange: this.handleEditorChange }))));
|
|
63
63
|
}
|
|
64
64
|
getPropertyLabel(key) {
|
|
65
65
|
return this.resolveProperty(key).labels.join(' › ');
|
package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js
CHANGED
|
@@ -90,9 +90,9 @@ export class LimeQueryFilterGroupComponent {
|
|
|
90
90
|
const combinator = getCombinator(this.expression);
|
|
91
91
|
const inner = getInnerAndOr(this.expression);
|
|
92
92
|
const selected = COMBINATOR_OPTIONS.find((o) => o.value === combinator);
|
|
93
|
-
return (h(Host, { key: '
|
|
93
|
+
return (h(Host, { key: 'b7f3b3eb41704303f507f15f1abe8b8d55dcd3e5', "data-op": combinator, style: {
|
|
94
94
|
'--limebb-query-filter-group-color-code': OP_STYLE[combinator].color,
|
|
95
|
-
} }, h("div", { key: '
|
|
95
|
+
} }, h("div", { key: 'd59371d752ab125116f9a630f3ae2599e9fea544', class: "group" }, h("div", { key: '81783273de40a45e93d6ab286d8cd649af71bfb2', class: "group-header" }, h("limel-select", { key: 'bb59cac3599d64c8414e4055d6c99994ac0ad8d3', class: "combinator", label: "Match", value: selected, options: COMBINATOR_OPTIONS, onChange: this.handleCombinatorChange }), h("limel-icon-button", { key: '42730af9a81f8381f042819ab8b3130b186a5c02', class: "delete-group", icon: "trash", label: "Delete this group", onClick: this.handleDeleteGroup })), h("ul", { key: 'a2ec4a8190cd7cbf7b0903efc7f430785828620c', class: "rows" }, inner.exp.map(this.renderChildExpression), h("limel-chip", { key: 'd5db97c8b9466d70b805e2a4b7f05dcb483bb456', role: "listitem", class: "add-condition", text: "Condition", icon: { name: 'plus_math', title: 'Add' }, onClick: this.handleAddChildExpression })), h("limel-chip", { key: '9efbb513dd412c0c6c3e03a5d672a5851a1f9c44', class: "add-group", size: "small", text: "Group", icon: {
|
|
96
96
|
name: 'plus_math',
|
|
97
97
|
title: 'Add',
|
|
98
98
|
color: 'var(--group-rail-color)',
|
|
@@ -35,7 +35,7 @@ export class LimeQueryFilterNotComponent {
|
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
render() {
|
|
38
|
-
return (h("div", { key: '
|
|
38
|
+
return (h("div", { key: 'd1a30b2a3c64c7cbc84253025f2e4649dcf4153b', class: "expression" }, this.label && h("limel-header", { key: '3df0ccac15c96772c75d8eef228d21c01a63a4f9', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '785ad1ccfe9ff3ca1478284bc182b9e35119d2d1', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
|
|
39
39
|
}
|
|
40
40
|
static get is() { return "limebb-lime-query-filter-not"; }
|
|
41
41
|
static get encapsulation() { return "shadow"; }
|
|
@@ -172,7 +172,7 @@ export class LimeQueryBuilder {
|
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
render() {
|
|
175
|
-
return (h(Host, { key: '
|
|
175
|
+
return (h(Host, { key: 'e54021c7869117146034f25a431324e20597056e' }, this.renderHeader(), this.renderContent()));
|
|
176
176
|
}
|
|
177
177
|
renderContent() {
|
|
178
178
|
const visualModeSupported = this.checkVisualModeSupport();
|
|
@@ -154,7 +154,7 @@ export class LimeQueryResponseFormatBuilder {
|
|
|
154
154
|
}
|
|
155
155
|
render() {
|
|
156
156
|
const visualModeSupported = this.checkVisualModeSupport();
|
|
157
|
-
return (h("div", { key: '
|
|
157
|
+
return (h("div", { key: 'd7d9d356f4114a00ce2da4d264afd42e4e264305', class: "response-format-builder" }, this.label && h("h1", { key: '75e33850df5f60a23e1abf5ad286011579f74a39', class: "builder-label" }, this.label), this.helperText && (h("p", { key: 'bd05cdf895e58a328ec8cd8a7f0c0cf85e5f5cfa', class: "builder-helper-text" }, this.helperText)), this.visualModeEnabled && (h("div", { key: 'a054eb5039b8606b3f0a84f2ceeca09360dfb407', class: "mode-controls" }, this.renderModeSwitch(visualModeSupported))), !this.visualModeEnabled || this.mode === 'code' ? (h("div", { class: "code-mode" }, this.renderCodeEditor(visualModeSupported))) : (h("div", { class: "visual-mode" }, this.renderVisualMode()))));
|
|
158
158
|
}
|
|
159
159
|
renderModeSwitch(support) {
|
|
160
160
|
const visualDisabled = !support.visualModeSupported;
|
|
@@ -78,7 +78,7 @@ export class LimetypeField {
|
|
|
78
78
|
value: '',
|
|
79
79
|
};
|
|
80
80
|
options.unshift(emptyOption);
|
|
81
|
-
return (h("limel-select", { key: '
|
|
81
|
+
return (h("limel-select", { key: '886b6adf250756fd5170f144e6ff055e70554902', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
|
|
82
82
|
}
|
|
83
83
|
componentWillRender() {
|
|
84
84
|
this.updatePropertyFields(this.value || '');
|
|
@@ -69,7 +69,7 @@ export class OrderByEditor {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
render() {
|
|
72
|
-
return (h(Host, { key: '
|
|
72
|
+
return (h(Host, { key: '2b90c0e70b2ec2e55809cecd5141cc52acc400de' }, this.renderEmptyState(), this.renderOrderByEditor()));
|
|
73
73
|
}
|
|
74
74
|
renderEmptyState() {
|
|
75
75
|
if (this.limetype) {
|
|
@@ -38,9 +38,9 @@ export class OrderByItemComponent {
|
|
|
38
38
|
render() {
|
|
39
39
|
const propertyPath = Object.keys(this.item)[0] || '';
|
|
40
40
|
const direction = this.item[propertyPath] || 'ASC';
|
|
41
|
-
return (h(Host, { key: '
|
|
41
|
+
return (h(Host, { key: '4ec4f928349ded79f56f9d42b1e8d53ad9675137' }, h("limebb-property-selector", { key: '362b2433069693fa205c6bb21afa3a24e8b5cce7', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: propertyPath, required: true, onChange: this.handlePathChange }), h("div", { key: '55166696ea90d0b0ab17a975094e29f9d80b023f', class: "control-buttons" }, h("limel-icon-button", { key: 'f765b98654ee3494b5272f0c6d0a7b46c65b1784', icon: direction === 'ASC'
|
|
42
42
|
? 'sort_ascending'
|
|
43
|
-
: 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: '
|
|
43
|
+
: 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: 'dd0d19ac87d87e54726ab3c6eaabb2a139018c2b', icon: "trash", label: "Remove", onClick: this.handleRemove }))));
|
|
44
44
|
}
|
|
45
45
|
static get is() { return "limebb-lime-query-order-by-item"; }
|
|
46
46
|
static get encapsulation() { return "shadow"; }
|
package/dist/collection/components/lime-query-builder/response-format/response-format-item.js
CHANGED
|
@@ -66,7 +66,7 @@ export class ResponseFormatItem {
|
|
|
66
66
|
}
|
|
67
67
|
render() {
|
|
68
68
|
return [
|
|
69
|
-
h("div", { key: '
|
|
69
|
+
h("div", { key: '2d8b5ee0be1363c842ec9736e519c86f7c5a18ad', class: "property-controls" }, h("div", { key: '5e7660c639be3c9cc3fb9f631596725cf82100f4', class: "property-path" }, h("limebb-property-selector", { key: '37e0cdbf668822fc81b5f3757e2f0b6490d93d66', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: this.item.path, required: true, onChange: this.handlePathChange }), h("div", { key: 'd9ecb4c65edb493bcdda29345f7022ea2052f0f2', class: "input-grid" }, this.renderAliasInput()), h("div", { key: '8f28f44f05fb86e253a9300dd24cfee624ce51c2', class: "input-grid" }, this.renderDescriptionInput()), h("div", { key: 'b7a864258edb9b60c6923de28ab5ab14c4560af4', class: "button-group" }, this.renderAliasButton(), this.renderDescriptionButton())), h("limel-icon-button", { key: '252ca2b654a4ac6d0164491b3832f319e0f5b4f1', icon: "trash", label: "Remove property", onClick: this.handleRemove })),
|
|
70
70
|
];
|
|
71
71
|
}
|
|
72
72
|
renderAliasButton() {
|
|
@@ -5,8 +5,8 @@ import { h } from "@stencil/core";
|
|
|
5
5
|
export class LiveDocsInfo {
|
|
6
6
|
render() {
|
|
7
7
|
return [
|
|
8
|
-
h("div", { key: '
|
|
9
|
-
h("p", { key: '
|
|
8
|
+
h("div", { key: 'd2ea1778cadfbc6fd49462c01f8a9270ef56efaf', class: "header" }, h("limel-icon", { key: '01bc415dd69465151055bc4857e3a7599b689410', name: "not_showing_video_frames" }), h("h2", { key: 'c82a9d19536dae0043a3e9e4a776887e9c08db94' }, "Viewing this file type requires ", h("em", { key: '8b96bcd7af47cfe3216def1555e786533058d373' }, "Live Docs"))),
|
|
9
|
+
h("p", { key: '0ae3052d9eca68ebd55ff11dcbe9ee31cacd277e' }, h("em", { key: '0a2139446396da9434df0095c29d9a2cb89eb783' }, "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: 'f2741e5944d54106f77081de5ead60aa98955342', target: "_blank", href: "https://www.lime-technologies.com/en/lime-crm/live-docs/" }, "Learn more")),
|
|
10
10
|
];
|
|
11
11
|
}
|
|
12
12
|
static get is() { return "limebb-live-docs-info"; }
|
|
@@ -53,7 +53,7 @@ export class LocalePicker {
|
|
|
53
53
|
const value = this.value;
|
|
54
54
|
selectedOptions = options.find((option) => option.value === value);
|
|
55
55
|
}
|
|
56
|
-
return (h("limel-select", { key: '
|
|
56
|
+
return (h("limel-select", { key: '49bd99f0f1ce3285f5a841bebbcac0968dcc4e46', 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 }));
|
|
57
57
|
}
|
|
58
58
|
static get is() { return "limebb-locale-picker"; }
|
|
59
59
|
static get encapsulation() { return "shadow"; }
|
|
@@ -56,7 +56,7 @@ export class NotificationListItem {
|
|
|
56
56
|
}
|
|
57
57
|
render() {
|
|
58
58
|
var _a, _b;
|
|
59
|
-
return (h(Host, { key: '
|
|
59
|
+
return (h(Host, { key: 'bbb6c49c020641fc39bb494bc34429ff9e1d9c87', id: this.item.id, class: {
|
|
60
60
|
'is-clickable': this.isItemClickable(),
|
|
61
61
|
'is-read': !!((_a = this.item) === null || _a === void 0 ? void 0 : _a.read),
|
|
62
62
|
'is-selected': !!((_b = this.item) === null || _b === void 0 ? void 0 : _b.selected),
|
|
@@ -108,11 +108,11 @@ export class PercentageVisualizer {
|
|
|
108
108
|
render() {
|
|
109
109
|
const normalizedValue = this.getNormalizedValue();
|
|
110
110
|
const zeroPoint = this.getZeroPointPosition();
|
|
111
|
-
return (h(Host, { key: '
|
|
111
|
+
return (h(Host, { key: '7f00bb913adfb9481e60e6004e4d73a07d46294c', class: this.getContainerClassList(), style: {
|
|
112
112
|
'--limebb-percentage-visualizer-zero-point-position': `${zeroPoint}%`,
|
|
113
113
|
'--limebb-percentage-visualizer-width': `${Math.abs(normalizedValue)}%`,
|
|
114
114
|
'--limebb-percentage-visualizer-rotate': `${normalizedValue >= 0 ? '0deg' : '180deg'}`,
|
|
115
|
-
} }, h("limel-notched-outline", { key: '
|
|
115
|
+
} }, h("limel-notched-outline", { key: 'f36be4b22847a53b81d7916f1434f665a4684a3b', 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: 'f91d23c1cc413cfd2848a3754b76f361881bab90', slot: "content" }, this.renderVisualization())), this.renderHelperLine()));
|
|
116
116
|
}
|
|
117
117
|
renderVisualization() {
|
|
118
118
|
if (this.reducePresence && (this.numValue === 0 || !this.hasValue())) {
|