@limetech/lime-crm-building-blocks 1.124.0 → 1.126.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/cjs/color-palettes-BWuwMtwv.js +334 -0
- package/dist/cjs/index.cjs.js +5 -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 +85 -0
- package/dist/cjs/limebb-color-palette-swatches.cjs.entry.js +21 -0
- package/dist/cjs/limebb-component-config.cjs.entry.js +2 -14
- package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +3 -3
- 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-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-builder_3.cjs.entry.js +2 -2
- package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +1 -1
- package/dist/cjs/limebb-lime-query-filter-group_3.cjs.entry.js +3 -3
- 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 +59 -0
- package/dist/cjs/limebb-rule-editor.cjs.entry.js +646 -0
- package/dist/cjs/limebb-rule-gate.cjs.entry.js +5 -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/loader.cjs.js +1 -1
- package/dist/cjs/web-component-template-BWCutZB6.js +18 -0
- package/dist/collection/collection-manifest.json +4 -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.css +5 -0
- package/dist/collection/components/color-palette-picker/color-palette-picker.js +295 -0
- package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.css +28 -0
- package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.js +61 -0
- package/dist/collection/components/composer-toolbar/composer-toolbar.js +3 -3
- package/dist/collection/components/currency-picker/currency-picker.js +1 -1
- package/dist/collection/components/dashboard-widget/dashboard-widget.js +1 -1
- package/dist/collection/components/date-picker/date-picker.js +1 -1
- package/dist/collection/components/date-range/date-range.js +1 -1
- package/dist/collection/components/document-chips/document-chips.js +1 -1
- package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
- package/dist/collection/components/document-picker/document-picker.js +1 -1
- package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
- package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
- package/dist/collection/components/feed/feed.js +1 -1
- package/dist/collection/components/icon-picker/icon-picker.js +1 -1
- package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
- package/dist/collection/components/info-tile/info-tile.js +1 -1
- package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
- package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +1 -1
- 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/chip-picker-view.js +141 -0
- package/dist/collection/components/rule-editor/group-node-view.js +79 -0
- package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.css +36 -0
- package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +301 -0
- package/dist/collection/components/rule-editor/rule-editor-views.js +43 -0
- package/dist/collection/components/rule-editor/rule-editor.css +96 -0
- package/dist/collection/components/rule-editor/rule-editor.js +457 -0
- package/dist/collection/components/rule-editor/rule-operations.js +132 -0
- package/dist/collection/components/rule-editor/view-helpers.js +70 -0
- package/dist/collection/components/rule-gate/rule-gate.js +9 -4
- package/dist/collection/components/summary-popover/summary-popover.js +2 -2
- package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
- package/dist/collection/components/text-editor/text-editor.js +1 -1
- package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
- package/dist/collection/index.js +1 -0
- package/dist/collection/util/color-palettes.js +329 -0
- package/dist/components/chat-icon-list.js +1 -1
- package/dist/components/chat-item.js +1 -1
- package/dist/components/color-palettes.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/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.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.d.ts +11 -0
- package/dist/components/limebb-color-palette-picker.js +1 -0
- package/dist/components/limebb-color-palette-swatches.d.ts +11 -0
- package/dist/components/limebb-color-palette-swatches.js +1 -0
- package/dist/components/limebb-component-config.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-chip-popover.d.ts +11 -0
- package/dist/components/limebb-rule-chip-popover.js +1 -0
- package/dist/components/limebb-rule-editor.d.ts +11 -0
- package/dist/components/limebb-rule-editor.js +1 -0
- package/dist/components/limebb-rule-gate.js +1 -1
- package/dist/components/limebb-text-editor.js +1 -1
- package/dist/components/limebb-trend-indicator.js +1 -1
- package/dist/components/limetype-field.js +1 -1
- package/dist/components/live-docs-info.js +1 -1
- package/dist/components/notification-item.js +1 -1
- package/dist/components/order-by-editor.js +1 -1
- package/dist/components/order-by-item.js +1 -1
- package/dist/components/percentage-visualizer.js +1 -1
- package/dist/components/response-format-item.js +1 -1
- package/dist/components/rule-chip-popover.js +1 -0
- package/dist/components/summary-popover.js +1 -1
- package/dist/components/typing-indicator.js +1 -1
- package/dist/components/web-component-template.js +1 -0
- package/dist/esm/color-palettes-1N3bZuHj.js +331 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/lime-crm-building-blocks.js +1 -1
- package/dist/esm/limebb-alert-dialog.entry.js +1 -1
- package/dist/esm/limebb-browser.entry.js +2 -2
- package/dist/esm/limebb-chat-icon-list_3.entry.js +4 -4
- package/dist/esm/limebb-chat-list.entry.js +1 -1
- package/dist/esm/limebb-color-palette-picker.entry.js +83 -0
- package/dist/esm/limebb-color-palette-swatches.entry.js +19 -0
- package/dist/esm/limebb-component-config.entry.js +2 -14
- package/dist/esm/limebb-composer-toolbar.entry.js +3 -3
- 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-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-builder_3.entry.js +2 -2
- package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +1 -1
- package/dist/esm/limebb-lime-query-filter-group_3.entry.js +3 -3
- 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 +57 -0
- package/dist/esm/limebb-rule-editor.entry.js +644 -0
- package/dist/esm/limebb-rule-gate.entry.js +5 -1
- package/dist/esm/limebb-text-editor.entry.js +1 -1
- package/dist/esm/limebb-trend-indicator.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/web-component-template-6zRYia86.js +16 -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-e8425a2c.entry.js → p-057e1638.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-0f2d1ea7.entry.js → p-0c572fe9.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-f0a5076c.entry.js → p-11494f30.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-1747221f.entry.js +1 -0
- package/dist/lime-crm-building-blocks/p-1831e571.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-8f8108c1.entry.js → p-184ae23d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-1N3bZuHj.js +1 -0
- package/dist/lime-crm-building-blocks/{p-4f042496.entry.js → p-20206710.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-529dbe46.entry.js → p-24fc049c.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-e3e2852a.entry.js → p-277b6ad4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-e4ff2906.entry.js → p-2cb31064.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-2caf01c8.entry.js → p-3313e357.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ad27bd5d.entry.js → p-3781a766.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-85caaf36.entry.js → p-43a7facd.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-5f97c392.entry.js → p-6cceabf1.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-67326d92.entry.js → p-6d3a9ed3.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-09c63bce.entry.js → p-71a6f624.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-25c4e389.entry.js → p-731820f0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-74455a30.entry.js +1 -0
- package/dist/lime-crm-building-blocks/p-7922726c.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-9214b92e.entry.js → p-7a125570.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-dd07a1ac.entry.js → p-7d51a34c.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-287780c1.entry.js → p-7fee7ef3.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-27798ace.entry.js → p-8084e825.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-861ac606.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-fcedbc77.entry.js → p-8d3fa274.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-b0567904.entry.js → p-9f7992b0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-C_tMNOSt.js +1 -0
- package/dist/lime-crm-building-blocks/{p-bb5d40b1.entry.js → p-abcb1e49.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-f7114acb.entry.js → p-b1a8d1a0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-b8d9ff68.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-52bddb06.entry.js → p-bec4231f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-5fa5e7f4.entry.js → p-c139ab98.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-774cd93c.entry.js → p-c4f41ec4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-4b275818.entry.js → p-c609b5ec.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-6a05192a.entry.js → p-c6a913af.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-dd38e0ba.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-6cb2d9dd.entry.js → p-de6f4670.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-0cbe7498.entry.js → p-e6ed33ff.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-e717bdff.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-9d56503d.entry.js → p-ef62c7d8.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-9a42ae42.entry.js → p-f0a567f3.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-b07b3ae3.entry.js → p-fd6dcfe3.entry.js} +1 -1
- package/dist/types/components/color-palette-picker/color-palette-picker.d.ts +89 -0
- package/dist/types/components/color-palette-picker/color-palette-swatches/color-palette-swatches.d.ts +23 -0
- package/dist/types/components/rule-editor/chip-picker-view.d.ts +27 -0
- package/dist/types/components/rule-editor/group-node-view.d.ts +11 -0
- package/dist/types/components/rule-editor/rule-chip-popover/rule-chip-popover.d.ts +31 -0
- package/dist/types/components/rule-editor/rule-editor-views.d.ts +51 -0
- package/dist/types/components/rule-editor/rule-editor.d.ts +118 -0
- package/dist/types/components/rule-editor/rule-operations.d.ts +62 -0
- package/dist/types/components/rule-editor/view-helpers.d.ts +40 -0
- package/dist/types/components/rule-gate/rule-gate.d.ts +5 -2
- package/dist/types/components.d.ts +588 -6
- package/dist/types/index.d.ts +1 -0
- package/dist/types/util/color-palettes.d.ts +67 -0
- package/package.json +4 -4
- package/dist/lime-crm-building-blocks/p-51ab9d60.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-628ce56b.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-6318fd46.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-c6caa3f9.entry.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,c as t,h as i,H as r}from"./p-BIwHMk6j.js";import{X as s,j as l}from"./p-BeLcuSg8.js";import{g as o}from"./p-CQUZjrU4.js";function n(){return{key:"",op:s.EQUALS,exp:""}}function a(e,t){return{op:e.op,exp:[...e.exp,t]}}const h=class{constructor(r){e(this,r),this.expressionChange=t(this,"expressionChange"),this.options=[{text:"All",secondaryText:"AND operator",value:"and"},{text:"Any",secondaryText:"OR operator",value:"or"}],this.renderChildExpression=(e,t)=>i("limebb-lime-query-filter-expression",{role:"listitem",platform:this.platform,context:this.context,limetype:this.limetype,activeLimetype:this.activeLimetype,expression:e,onExpressionChange:this.handleExpressionChange(t)}),this.handleDeleteGroup=()=>{this.expressionChange.emit()},this.handleToggleOperator=e=>{const t=Array.isArray(e.detail)?e.detail[0]:e.detail;if(this.value=t,("and"===t.value?s.AND:s.OR)!==this.expression.op){const e={op:(i=this.expression).op===s.AND?s.OR:s.AND,exp:[...i.exp]};this.expressionChange.emit(e)}var i},this.handleAddChildExpression=()=>{const e=n(),t=a(this.expression,e);this.expressionChange.emit(t)},this.handleAddChildGroup=()=>{const e={op:this.expression.op===s.AND?s.OR:s.AND,exp:[n()]},t=a(this.expression,e);this.expressionChange.emit(t)},this.handleExpressionChange=e=>t=>{t.stopPropagation();const i=function(e,t,i){const r=[...e.exp];return i?(r[t]=i,{type:"updated",expression:{op:e.op,exp:r}}):(r.splice(t,1),0===r.length?{type:"removed",expression:void 0}:1===r.length?{type:"unwrapped",expression:r[0]}:{type:"updated",expression:{op:e.op,exp:r}})}(this.expression,e,t.detail);this.expressionChange.emit(i.expression)}}componentWillLoad(){this.value=this.options.find((e=>e.value===(this.expression.op===s.AND?"and":"or")))||this.options[0]}render(){return i(r,{key:"b6fa2e2e21d68867587e42b9247df54495c64a86",style:{"--limebb-lime-query-filter-group-operator":`"${this.expression.op===s.AND?"AND":"OR"}"`}},i("div",{key:"2d02f59f34a6bcd52f24dc942eb55ca8405ae744",class:"expression"},this.renderHeader(),i("ul",{key:"8fba5156c7e8573aaee21932640112d04d7890cf"},this.expression.exp.map(this.renderChildExpression),this.renderAddButton()),this.renderAddGroupButton()))}renderHeader(){const e=this.getSubheading();return e?i("limel-header",{subheading:e},this.renderOperators(),this.renderDeleteGroupButton()):null}renderOperators(){return i("limel-select",{class:"operator-select",slot:"actions",value:this.value,options:this.options,onChange:this.handleToggleOperator})}renderDeleteGroupButton(){return i("limel-icon-button",{class:"delete-group",slot:"actions",icon:"trash",label:"Delete This Group",onClick:this.handleDeleteGroup})}getSubheading(){return this.expression.exp.length<=1?"":this.expression.op===s.AND?"All of these conditions are met":"Any of these conditions are met"}renderAddButton(){return i("limel-button",{role:"listitem",label:"Condition",icon:{name:"plus_math",title:"Add"},onClick:this.handleAddChildExpression})}renderAddGroupButton(){return i("limel-button",{class:"add-group",label:"Group",icon:{name:"plus_math",title:"Add"},onClick:this.handleAddChildGroup})}};h.style='@charset "UTF-8";*,*::before,*::after{box-sizing:border-box}limebb-lime-query-filter-expression{position:relative;isolation:isolate}limebb-lime-query-filter-expression:not(:first-of-type):after{content:"";position:absolute;top:-0.5rem;left:0.75rem;display:block;border-radius:1rem;height:2rem;width:0.125rem;background-color:var(--limebb-lime-query-builder-group-color)}limebb-lime-query-filter-expression:not(:first-of-type):before{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;height:1rem;content:var(--limebb-lime-query-filter-group-operator);display:inline-block;margin:0 auto 0.5rem auto;transform:translateY(-50%);font-size:0.625rem;padding:0 0.5rem;color:rgb(var(--color-blue-dark));background-color:var(--limebb-lime-query-builder-group-color);border-radius:2rem}.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:0;background-color:rgb(var(--contrast-100));border-radius:0.75rem;border:1px solid var(--limebb-lime-query-builder-group-color)}.expression ul{list-style:none;margin:0;padding:0.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.expression ul [role=listitem]{list-style:none;width:100%}limel-button.add-group{width:fit-content;margin:0.5rem}limel-icon-button.delete-group{margin-left:0.5rem}limel-select.operator-select{min-width:8rem}';const c=class{constructor(i){e(this,i),this.expressionChange=t(this,"expressionChange"),this.handleExpressionChange=e=>{var t;e.stopPropagation();const i=null!==(t=e.detail)&&void 0!==t?t:void 0;this.expressionChange.emit(void 0!==i?{op:s.NOT,exp:i}:void 0)}}render(){return i("div",{key:"540260cd3203c932bb630f7a714447d574c371c6",class:"expression"},this.label&&i("limel-header",{key:"32eb4b638008d7409c017627c556944d85d5db33",heading:this.label}),i("limebb-lime-query-filter-expression",{key:"e547fef08281f285baa1868a7942f3c7db1cf87f",platform:this.platform,context:this.context,label:"Not",limetype:this.limetype,activeLimetype:this.activeLimetype,expression:this.expression.exp,onExpressionChange:this.handleExpressionChange}))}};c.style='@charset "UTF-8";.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:1rem;padding:1rem;border-left:0.25rem solid rgb(var(--contrast-400));background-color:rgb(var(--contrast-100))}';const d={timestamp:"time",createdtime:"time",updatedtime:"time",id:"integer",createduser:"integer",updateduser:"integer",descriptive:"string"},u={date:"date",time:"datetime",timeofday:"time",month:"month",quarter:"quarter",year:"year"};const p=class{constructor(i){e(this,i),this.change=t(this,"change"),this.label="Value",this.inputMode="value",this.handleTextChange=e=>{e.stopPropagation();const t=e.detail,i=Number(t);Number.isNaN(i)||""===t?this.change.emit(t):this.change.emit(i)},this.handleSelectChange=e=>{e.stopPropagation();const t=e.detail;Array.isArray(t)?this.change.emit(t.map((e=>e.value))):this.change.emit(null==t?void 0:t.value)},this.handleBooleanChange=e=>{e.stopPropagation();const t=e.detail;Array.isArray(t)||this.change.emit("true"===(null==t?void 0:t.value))},this.handleDateChange=e=>{e.stopPropagation();const t=e.detail;this.change.emit(t?t.toISOString():null)},this.handleMultiValueChange=e=>{e.stopPropagation();const t=e.detail.split(",").map((e=>e.trim())).filter((e=>e.length>0));this.change.emit(t)},this.handleModeToggle=()=>{"value"===this.inputMode?(this.inputMode="placeholder",this.change.emit("%activeObject%")):(this.inputMode="value",this.change.emit(""))},this.handlePlaceholderPropertyChange=e=>{e.stopPropagation();const t=this.buildPlaceholderValue(e.detail);this.change.emit(t)}}componentWillLoad(){this.isPlaceholder(this.value)&&(this.inputMode="placeholder")}componentWillUpdate(){this.isPlaceholder(this.value)&&"placeholder"!==this.inputMode?this.inputMode="placeholder":this.isPlaceholder(this.value)||"placeholder"!==this.inputMode||(this.inputMode="value")}isPlaceholder(e){return"string"==typeof e&&e.startsWith("%activeObject%")}parsePlaceholderPath(e){return this.isPlaceholder(e)?e.replace(/^%activeObject%\.?/,""):""}buildPlaceholderValue(e){return e?`%activeObject%.${e}`:"%activeObject%"}render(){return this.operator?i(r,null,this.renderModeToggle(),this.renderInputByMode()):null}renderInputByMode(){return"placeholder"===this.inputMode?this.renderPlaceholderInput():this.renderValueInputByType()}renderModeToggle(){if(!this.activeLimetype)return null;const e="placeholder"===this.inputMode;return i("limel-icon-button",{class:"mode-toggle",icon:e?"text":"link",label:e?"Use Value":"Use Placeholder",onClick:this.handleModeToggle})}renderPlaceholderInput(){const e=this.parsePlaceholderPath(this.value);return i("div",{class:"placeholder-input"},i("limebb-property-selector",{platform:this.platform,context:this.context,limetype:this.activeLimetype,label:"Active Object Property",value:e,required:!1,helperText:"Select property from the active object",onChange:this.handlePlaceholderPropertyChange}),this.renderPlaceholderPreview())}renderPlaceholderPreview(){if(this.isPlaceholder(this.value))return i("div",{class:"placeholder-preview"},i("limel-icon",{name:"info",size:"small"}),i("span",null,"Placeholder: ",this.value))}renderValueInputByType(){if(this.operator===s.IN)return this.renderMultiValueInput();const e=this.getProperty();if(!e)return this.renderTextInput();const t=function(e){return"system"===e.type?function(e){const t=e.replace(/^_/,"");return d[t]||"string"}(e.name):e.type}(e);switch(t){case"integer":case"decimal":return this.renderNumberInput(t);case"yesno":return this.renderBooleanInput();case"option":return this.renderOptionInput(e);case"date":case"time":case"timeofday":case"year":case"month":case"quarter":return this.renderDateTimeInput(t);default:return this.renderTextInput()}}renderTextInput(){var e;return i("limel-input-field",{label:this.label,value:(null===(e=this.value)||void 0===e?void 0:e.toString())||"",placeholder:"Enter value",onChange:this.handleTextChange})}renderNumberInput(e){var t;const r="integer"===e?1:.01;return i("limel-input-field",{label:this.label,type:"number",value:(null===(t=this.value)||void 0===t?void 0:t.toString())||"",step:r,onChange:this.handleTextChange})}renderBooleanInput(){const e=[{text:"True",value:"true"},{text:"False",value:"false"}],t=!0===this.value||"true"===this.value?"true":"false",r=e.find((e=>e.value===t));return i("limel-select",{label:this.label,options:e,value:r,onChange:this.handleBooleanChange})}renderOptionInput(e){if(!e.options||0===e.options.length)return this.renderTextInput();const t=e.options.map((e=>({text:e.text||e.key,value:e.key}))),r=t.find((e=>e.value===this.value));return i("limel-select",{label:this.label,options:t,value:r,onChange:this.handleSelectChange})}renderDateTimeInput(e){const t="string"==typeof this.value?new Date(this.value):this.value;return i("limel-date-picker",{label:this.label,value:t,type:u[e]||"date",onChange:this.handleDateChange})}renderMultiValueInput(){const e=Array.isArray(this.value)?this.value.join(", "):this.value||"";return i("limel-input-field",{label:this.label+" (comma-separated)",value:e,placeholder:"e.g., won, lost, tender",onChange:this.handleMultiValueChange})}getProperty(){if(this.limetypes&&this.limetype&&this.propertyPath)return o(this.limetypes,this.limetype,this.propertyPath)}};(function(e,t,i,r){var s,l=arguments.length,o=l<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var n=e.length-1;n>=0;n--)(s=e[n])&&(o=(l<3?s(o):l>3?s(t,i,o):s(t,i))||o);l>3&&o&&Object.defineProperty(t,i,o)})([l()],p.prototype,"limetypes",void 0),p.style=":host{display:flex;gap:0.5rem}:host>*{flex-grow:1}*{box-sizing:border-box}.value-input-container{display:flex;flex-direction:row;align-items:flex-start;gap:0.5rem;width:100%}.mode-toggle{flex-shrink:0;flex-grow:0}.placeholder-input{flex-grow:1;display:flex;flex-direction:column;gap:0.5rem}.placeholder-preview{display:flex;align-items:center;gap:0.5rem;padding:0.5rem;background-color:rgba(var(--color-blue-light), 0.1);border-radius:var(--border-radius-small);font-size:0.875rem;color:rgb(var(--color-blue-default));border-left:3px solid rgb(var(--color-blue-default))}.placeholder-preview limel-icon{flex-shrink:0;color:rgb(var(--color-blue-default))}.placeholder-preview span{font-family:var(--font-monospace);word-break:break-all}";export{h as limebb_lime_query_filter_group,c as limebb_lime_query_filter_not,p as limebb_lime_query_value_input}
|
|
1
|
+
import{r as e,c as t,h as i,H as r}from"./p-BIwHMk6j.js";import{X as s,j as l}from"./p-BeLcuSg8.js";import{g as o}from"./p-CQUZjrU4.js";function n(){return{key:"",op:s.EQUALS,exp:""}}function a(e,t){return{op:e.op,exp:[...e.exp,t]}}const h=class{constructor(r){e(this,r),this.expressionChange=t(this,"expressionChange"),this.options=[{text:"All",secondaryText:"AND operator",value:"and"},{text:"Any",secondaryText:"OR operator",value:"or"}],this.renderChildExpression=(e,t)=>i("limebb-lime-query-filter-expression",{role:"listitem",platform:this.platform,context:this.context,limetype:this.limetype,activeLimetype:this.activeLimetype,expression:e,onExpressionChange:this.handleExpressionChange(t)}),this.handleDeleteGroup=()=>{this.expressionChange.emit()},this.handleToggleOperator=e=>{const t=Array.isArray(e.detail)?e.detail[0]:e.detail;if(this.value=t,("and"===t.value?s.AND:s.OR)!==this.expression.op){const e={op:(i=this.expression).op===s.AND?s.OR:s.AND,exp:[...i.exp]};this.expressionChange.emit(e)}var i},this.handleAddChildExpression=()=>{const e=n(),t=a(this.expression,e);this.expressionChange.emit(t)},this.handleAddChildGroup=()=>{const e={op:this.expression.op===s.AND?s.OR:s.AND,exp:[n()]},t=a(this.expression,e);this.expressionChange.emit(t)},this.handleExpressionChange=e=>t=>{t.stopPropagation();const i=function(e,t,i){const r=[...e.exp];return i?(r[t]=i,{type:"updated",expression:{op:e.op,exp:r}}):(r.splice(t,1),0===r.length?{type:"removed",expression:void 0}:1===r.length?{type:"unwrapped",expression:r[0]}:{type:"updated",expression:{op:e.op,exp:r}})}(this.expression,e,t.detail);this.expressionChange.emit(i.expression)}}componentWillLoad(){this.value=this.options.find((e=>e.value===(this.expression.op===s.AND?"and":"or")))||this.options[0]}render(){return i(r,{key:"4b1647c741b78253b4ce4ed1bd347800da394563",style:{"--limebb-lime-query-filter-group-operator":`"${this.expression.op===s.AND?"AND":"OR"}"`}},i("div",{key:"47fd3000275e17ef70d86af5e6abcb492806ffba",class:"expression"},this.renderHeader(),i("ul",{key:"224249a4b305eb2b20c1aedad98d2c3191d47e83"},this.expression.exp.map(this.renderChildExpression),this.renderAddButton()),this.renderAddGroupButton()))}renderHeader(){const e=this.getSubheading();return e?i("limel-header",{subheading:e},this.renderOperators(),this.renderDeleteGroupButton()):null}renderOperators(){return i("limel-select",{class:"operator-select",slot:"actions",value:this.value,options:this.options,onChange:this.handleToggleOperator})}renderDeleteGroupButton(){return i("limel-icon-button",{class:"delete-group",slot:"actions",icon:"trash",label:"Delete This Group",onClick:this.handleDeleteGroup})}getSubheading(){return this.expression.exp.length<=1?"":this.expression.op===s.AND?"All of these conditions are met":"Any of these conditions are met"}renderAddButton(){return i("limel-button",{role:"listitem",label:"Condition",icon:{name:"plus_math",title:"Add"},onClick:this.handleAddChildExpression})}renderAddGroupButton(){return i("limel-button",{class:"add-group",label:"Group",icon:{name:"plus_math",title:"Add"},onClick:this.handleAddChildGroup})}};h.style='@charset "UTF-8";*,*::before,*::after{box-sizing:border-box}limebb-lime-query-filter-expression{position:relative;isolation:isolate}limebb-lime-query-filter-expression:not(:first-of-type):after{content:"";position:absolute;top:-0.5rem;left:0.75rem;display:block;border-radius:1rem;height:2rem;width:0.125rem;background-color:var(--limebb-lime-query-builder-group-color)}limebb-lime-query-filter-expression:not(:first-of-type):before{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;height:1rem;content:var(--limebb-lime-query-filter-group-operator);display:inline-block;margin:0 auto 0.5rem auto;transform:translateY(-50%);font-size:0.625rem;padding:0 0.5rem;color:rgb(var(--color-blue-dark));background-color:var(--limebb-lime-query-builder-group-color);border-radius:2rem}.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:0;background-color:rgb(var(--contrast-100));border-radius:0.75rem;border:1px solid var(--limebb-lime-query-builder-group-color)}.expression ul{list-style:none;margin:0;padding:0.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.expression ul [role=listitem]{list-style:none;width:100%}limel-button.add-group{width:fit-content;margin:0.5rem}limel-icon-button.delete-group{margin-left:0.5rem}limel-select.operator-select{min-width:8rem}';const c=class{constructor(i){e(this,i),this.expressionChange=t(this,"expressionChange"),this.handleExpressionChange=e=>{var t;e.stopPropagation();const i=null!==(t=e.detail)&&void 0!==t?t:void 0;this.expressionChange.emit(void 0!==i?{op:s.NOT,exp:i}:void 0)}}render(){return i("div",{key:"16246e10be820ad18713cb097146040d30e242bf",class:"expression"},this.label&&i("limel-header",{key:"539d60a4567727282463dec2a90e06a3630501aa",heading:this.label}),i("limebb-lime-query-filter-expression",{key:"67f892704ea3e5a061acdcb8f3ffe22271971569",platform:this.platform,context:this.context,label:"Not",limetype:this.limetype,activeLimetype:this.activeLimetype,expression:this.expression.exp,onExpressionChange:this.handleExpressionChange}))}};c.style='@charset "UTF-8";.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:1rem;padding:1rem;border-left:0.25rem solid rgb(var(--contrast-400));background-color:rgb(var(--contrast-100))}';const d={timestamp:"time",createdtime:"time",updatedtime:"time",id:"integer",createduser:"integer",updateduser:"integer",descriptive:"string"},u={date:"date",time:"datetime",timeofday:"time",month:"month",quarter:"quarter",year:"year"};const p=class{constructor(i){e(this,i),this.change=t(this,"change"),this.label="Value",this.inputMode="value",this.handleTextChange=e=>{e.stopPropagation();const t=e.detail,i=Number(t);Number.isNaN(i)||""===t?this.change.emit(t):this.change.emit(i)},this.handleSelectChange=e=>{e.stopPropagation();const t=e.detail;Array.isArray(t)?this.change.emit(t.map((e=>e.value))):this.change.emit(null==t?void 0:t.value)},this.handleBooleanChange=e=>{e.stopPropagation();const t=e.detail;Array.isArray(t)||this.change.emit("true"===(null==t?void 0:t.value))},this.handleDateChange=e=>{e.stopPropagation();const t=e.detail;this.change.emit(t?t.toISOString():null)},this.handleMultiValueChange=e=>{e.stopPropagation();const t=e.detail.split(",").map((e=>e.trim())).filter((e=>e.length>0));this.change.emit(t)},this.handleModeToggle=()=>{"value"===this.inputMode?(this.inputMode="placeholder",this.change.emit("%activeObject%")):(this.inputMode="value",this.change.emit(""))},this.handlePlaceholderPropertyChange=e=>{e.stopPropagation();const t=this.buildPlaceholderValue(e.detail);this.change.emit(t)}}componentWillLoad(){this.isPlaceholder(this.value)&&(this.inputMode="placeholder")}componentWillUpdate(){this.isPlaceholder(this.value)&&"placeholder"!==this.inputMode?this.inputMode="placeholder":this.isPlaceholder(this.value)||"placeholder"!==this.inputMode||(this.inputMode="value")}isPlaceholder(e){return"string"==typeof e&&e.startsWith("%activeObject%")}parsePlaceholderPath(e){return this.isPlaceholder(e)?e.replace(/^%activeObject%\.?/,""):""}buildPlaceholderValue(e){return e?`%activeObject%.${e}`:"%activeObject%"}render(){return this.operator?i(r,null,this.renderModeToggle(),this.renderInputByMode()):null}renderInputByMode(){return"placeholder"===this.inputMode?this.renderPlaceholderInput():this.renderValueInputByType()}renderModeToggle(){if(!this.activeLimetype)return null;const e="placeholder"===this.inputMode;return i("limel-icon-button",{class:"mode-toggle",icon:e?"text":"link",label:e?"Use Value":"Use Placeholder",onClick:this.handleModeToggle})}renderPlaceholderInput(){const e=this.parsePlaceholderPath(this.value);return i("div",{class:"placeholder-input"},i("limebb-property-selector",{platform:this.platform,context:this.context,limetype:this.activeLimetype,label:"Active Object Property",value:e,required:!1,helperText:"Select property from the active object",onChange:this.handlePlaceholderPropertyChange}),this.renderPlaceholderPreview())}renderPlaceholderPreview(){if(this.isPlaceholder(this.value))return i("div",{class:"placeholder-preview"},i("limel-icon",{name:"info",size:"small"}),i("span",null,"Placeholder: ",this.value))}renderValueInputByType(){if(this.operator===s.IN)return this.renderMultiValueInput();const e=this.getProperty();if(!e)return this.renderTextInput();const t=function(e){return"system"===e.type?function(e){const t=e.replace(/^_/,"");return d[t]||"string"}(e.name):e.type}(e);switch(t){case"integer":case"decimal":return this.renderNumberInput(t);case"yesno":return this.renderBooleanInput();case"option":return this.renderOptionInput(e);case"date":case"time":case"timeofday":case"year":case"month":case"quarter":return this.renderDateTimeInput(t);default:return this.renderTextInput()}}renderTextInput(){var e;return i("limel-input-field",{label:this.label,value:(null===(e=this.value)||void 0===e?void 0:e.toString())||"",placeholder:"Enter value",onChange:this.handleTextChange})}renderNumberInput(e){var t;const r="integer"===e?1:.01;return i("limel-input-field",{label:this.label,type:"number",value:(null===(t=this.value)||void 0===t?void 0:t.toString())||"",step:r,onChange:this.handleTextChange})}renderBooleanInput(){const e=[{text:"True",value:"true"},{text:"False",value:"false"}],t=!0===this.value||"true"===this.value?"true":"false",r=e.find((e=>e.value===t));return i("limel-select",{label:this.label,options:e,value:r,onChange:this.handleBooleanChange})}renderOptionInput(e){if(!e.options||0===e.options.length)return this.renderTextInput();const t=e.options.map((e=>({text:e.text||e.key,value:e.key}))),r=t.find((e=>e.value===this.value));return i("limel-select",{label:this.label,options:t,value:r,onChange:this.handleSelectChange})}renderDateTimeInput(e){const t="string"==typeof this.value?new Date(this.value):this.value;return i("limel-date-picker",{label:this.label,value:t,type:u[e]||"date",onChange:this.handleDateChange})}renderMultiValueInput(){const e=Array.isArray(this.value)?this.value.join(", "):this.value||"";return i("limel-input-field",{label:this.label+" (comma-separated)",value:e,placeholder:"e.g., won, lost, tender",onChange:this.handleMultiValueChange})}getProperty(){if(this.limetypes&&this.limetype&&this.propertyPath)return o(this.limetypes,this.limetype,this.propertyPath)}};(function(e,t,i,r){var s,l=arguments.length,o=l<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var n=e.length-1;n>=0;n--)(s=e[n])&&(o=(l<3?s(o):l>3?s(t,i,o):s(t,i))||o);l>3&&o&&Object.defineProperty(t,i,o)})([l()],p.prototype,"limetypes",void 0),p.style=":host{display:flex;gap:0.5rem}:host>*{flex-grow:1}*{box-sizing:border-box}.value-input-container{display:flex;flex-direction:row;align-items:flex-start;gap:0.5rem;width:100%}.mode-toggle{flex-shrink:0;flex-grow:0}.placeholder-input{flex-grow:1;display:flex;flex-direction:column;gap:0.5rem}.placeholder-preview{display:flex;align-items:center;gap:0.5rem;padding:0.5rem;background-color:rgba(var(--color-blue-light), 0.1);border-radius:var(--border-radius-small);font-size:0.875rem;color:rgb(var(--color-blue-default));border-left:3px solid rgb(var(--color-blue-default))}.placeholder-preview limel-icon{flex-shrink:0;color:rgb(var(--color-blue-default))}.placeholder-preview span{font-family:var(--font-monospace);word-break:break-all}";export{h as limebb_lime_query_filter_group,c as limebb_lime_query_filter_not,p as limebb_lime_query_value_input}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i,c as e,h as t,H as r}from"./p-BIwHMk6j.js";import{j as s}from"./p-BeLcuSg8.js";import{i as o}from"./p-C25FPZQh.js";import"./p-CQUZjrU4.js";const l=class{constructor(t){i(this,t),this.change=e(this,"change"),this.mode="visual",this.codeValue="",this.limetype="",this.handleLimetypeChange=i=>{i.stopPropagation(),this.limetype=i.detail,this.filter=void 0,this.internalResponseFormat={object:{}},this.emitChange()},this.handleFilterChange=i=>{var e;i.stopPropagation(),this.filter=null!==(e=i.detail)&&void 0!==e?e:void 0,this.emitChange()},this.handleResponseFormatChange=i=>{i.stopPropagation(),this.internalResponseFormat=i.detail,this.emitChange()},this.handleLimitChange=i=>{i.stopPropagation();const e=i.detail;this.limit=e?Number.parseInt(e,10):void 0,this.emitChange()},this.handleOrderByChange=i=>{i.stopPropagation(),this.orderBy=i.detail,this.emitChange()},this.handleDescriptionChange=i=>{i.stopPropagation(),this.description=i.detail||void 0,this.emitChange()},this.handleDescriptionBlur=()=>{if(this.description){const i=this.description.trim();i!==this.description&&(this.description=i||void 0,this.emitChange())}},this.handleChange=i=>{i.stopPropagation();const e=i.detail.id;if("visual"===e)try{const i=JSON.parse(this.codeValue);if(!this.checkVisualModeSupport().visualModeSupported)return;this.limetype=i.limetype||"",this.filter=i.filter,this.internalResponseFormat=i.responseFormat,this.limit=i.limit,this.orderBy=i.orderBy,this.description=i["#description"],this.mode="visual",this.change.emit(i)}catch(i){}else"code"===e&&(this.updateCodeValue(),this.mode="code")},this.handleCodeChange=i=>{i.stopPropagation(),this.codeValue=i.detail;try{const i=JSON.parse(this.codeValue);this.change.emit(i)}catch(i){}}}getButtons(){return[{id:"visual",title:"Visual"},{id:"code",title:"Code"}]}get visualModeEnabled(){var i,e,t;return null!==(t=null===(e=null===(i=this.platform)||void 0===i?void 0:i.isFeatureEnabled)||void 0===e?void 0:e.call(i,"useLimeQueryBuilderGuiMode"))&&void 0!==t&&t}componentWillLoad(){if(!this.visualModeEnabled)return this.mode="code",void this.updateCodeValue();this.value&&(this.limetype=this.value.limetype||"",this.filter=this.value.filter,this.internalResponseFormat=this.value.responseFormat,this.limit=this.value.limit,this.orderBy=this.value.orderBy,this.description=this.value["#description"]),this.updateCodeValue(),this.checkVisualModeSupport().visualModeSupported||(this.mode="code")}render(){return t(r,{key:"
|
|
1
|
+
import{r as i,c as e,h as t,H as r}from"./p-BIwHMk6j.js";import{j as s}from"./p-BeLcuSg8.js";import{i as o}from"./p-C25FPZQh.js";import"./p-CQUZjrU4.js";const l=class{constructor(t){i(this,t),this.change=e(this,"change"),this.mode="visual",this.codeValue="",this.limetype="",this.handleLimetypeChange=i=>{i.stopPropagation(),this.limetype=i.detail,this.filter=void 0,this.internalResponseFormat={object:{}},this.emitChange()},this.handleFilterChange=i=>{var e;i.stopPropagation(),this.filter=null!==(e=i.detail)&&void 0!==e?e:void 0,this.emitChange()},this.handleResponseFormatChange=i=>{i.stopPropagation(),this.internalResponseFormat=i.detail,this.emitChange()},this.handleLimitChange=i=>{i.stopPropagation();const e=i.detail;this.limit=e?Number.parseInt(e,10):void 0,this.emitChange()},this.handleOrderByChange=i=>{i.stopPropagation(),this.orderBy=i.detail,this.emitChange()},this.handleDescriptionChange=i=>{i.stopPropagation(),this.description=i.detail||void 0,this.emitChange()},this.handleDescriptionBlur=()=>{if(this.description){const i=this.description.trim();i!==this.description&&(this.description=i||void 0,this.emitChange())}},this.handleChange=i=>{i.stopPropagation();const e=i.detail.id;if("visual"===e)try{const i=JSON.parse(this.codeValue);if(!this.checkVisualModeSupport().visualModeSupported)return;this.limetype=i.limetype||"",this.filter=i.filter,this.internalResponseFormat=i.responseFormat,this.limit=i.limit,this.orderBy=i.orderBy,this.description=i["#description"],this.mode="visual",this.change.emit(i)}catch(i){}else"code"===e&&(this.updateCodeValue(),this.mode="code")},this.handleCodeChange=i=>{i.stopPropagation(),this.codeValue=i.detail;try{const i=JSON.parse(this.codeValue);this.change.emit(i)}catch(i){}}}getButtons(){return[{id:"visual",title:"Visual"},{id:"code",title:"Code"}]}get visualModeEnabled(){var i,e,t;return null!==(t=null===(e=null===(i=this.platform)||void 0===i?void 0:i.isFeatureEnabled)||void 0===e?void 0:e.call(i,"useLimeQueryBuilderGuiMode"))&&void 0!==t&&t}componentWillLoad(){if(!this.visualModeEnabled)return this.mode="code",void this.updateCodeValue();this.value&&(this.limetype=this.value.limetype||"",this.filter=this.value.filter,this.internalResponseFormat=this.value.responseFormat,this.limit=this.value.limit,this.orderBy=this.value.orderBy,this.description=this.value["#description"]),this.updateCodeValue(),this.checkVisualModeSupport().visualModeSupported||(this.mode="code")}render(){return t(r,{key:"9a121529165f1691e32b2b156b128977c5b5ba3a"},this.renderHeader(),this.renderContent())}renderContent(){const i=this.checkVisualModeSupport();return this.visualModeEnabled&&"code"!==this.mode?this.renderVisualMode():this.renderCodeMode(i)}emitChange(){"code"!==this.mode&&this.limetype&&this.change.emit(this.buildLimeQuery())}updateCodeValue(){this.codeValue=this.limetype?JSON.stringify(this.buildLimeQuery(),null,2):JSON.stringify(this.value||{},null,2)}buildLimeQuery(){const i={limetype:this.limetype,responseFormat:this.internalResponseFormat||{object:{_id:null}},filter:this.filter};return this.description&&(i["#description"]=this.description),void 0!==this.limit&&this.limit>0&&(i.limit=this.limit),this.orderBy&&this.orderBy.length>0&&(i.orderBy=this.orderBy),i}checkVisualModeSupport(){if(!this.limetypes)return{valid:!0,visualModeSupported:!0,validationErrors:[],visualModeLimitations:[]};let i;if("code"===this.mode&&this.codeValue)try{i=JSON.parse(this.codeValue)}catch(i){return{valid:!1,visualModeSupported:!1,validationErrors:["Invalid JSON"],visualModeLimitations:[]}}else{if(!this.limetype)return{valid:!0,visualModeSupported:!0,validationErrors:[],visualModeLimitations:[]};i={limetype:this.limetype,responseFormat:this.internalResponseFormat||{object:{_id:null}},filter:this.filter},void 0!==this.limit&&this.limit>0&&(i.limit=this.limit)}return o(i,this.limetypes,this.activeLimetype,this.visualModeEnabled)}renderModeSwitch(i){const e=!i.visualModeSupported,r=this.getButtons().map((i=>Object.assign(Object.assign({},i),{selected:i.id===this.mode})));return t("limel-button-group",{slot:"actions",onChange:this.handleChange,value:r,disabled:e})}renderCodeEditor(i){return[t("limel-code-editor",{value:this.codeValue,language:"json",lineNumbers:!0,fold:!0,lint:!0,onChange:this.handleCodeChange}),!i.valid&&i.validationErrors.length>0&&t("div",{class:"validation-errors"},t("strong",null,"Invalid Lime Query:"),t("ul",null,i.validationErrors.map((i=>t("li",null,i))))),this.visualModeEnabled&&i.valid&&!i.visualModeSupported&&i.visualModeLimitations.length>0&&t("div",{class:"visual-mode-limitations"},t("strong",null,"Cannot switch to visual mode:"),t("ul",null,i.visualModeLimitations.map((i=>t("li",null,i)))))]}renderLimetypeSection(){return t("limebb-limetype-field",{platform:this.platform,context:this.context,label:"Limetype",value:this.limetype,required:!0,fieldName:"limetype",onChange:this.handleLimetypeChange})}renderDescriptionSection(){if(this.limetype)return t("section",{class:"description"},t("limel-input-field",{label:"Description",type:"textarea",value:this.description||"",placeholder:"Describe what data this query retrieves...",helperText:"Optional: Help AI agents and humans understand the query purpose",onChange:this.handleDescriptionChange,onBlur:this.handleDescriptionBlur}))}renderResponseFormatSection(){if(this.limetype)return t("section",{class:"response-format"},t("limebb-lime-query-response-format-editor",{platform:this.platform,context:this.context,limetype:this.limetype,value:this.internalResponseFormat,onChange:this.handleResponseFormatChange}))}renderFilterSection(){if(this.limetype)return t("section",{class:"filter"},t("limel-header",{class:"is-narrow",heading:"Filter Conditions",icon:"-lime-filter"}),t("limebb-lime-query-filter-builder",{platform:this.platform,context:this.context,limetype:this.limetype,activeLimetype:this.activeLimetype,expression:this.filter,onExpressionChange:this.handleFilterChange}))}renderQueryOptionsSection(){var i;if(this.limetype)return t("section",{class:"query-options"},t("limel-header",{class:"is-narrow",heading:"Query Options",icon:"ask_question"}),t("div",{class:"query-options-controls"},t("limel-input-field",{label:"Limit",type:"number",value:(null===(i=this.limit)||void 0===i?void 0:i.toString())||"",placeholder:"No limit",helperText:"Maximum number of results",onChange:this.handleLimitChange}),t("limebb-lime-query-order-by-editor",{platform:this.platform,context:this.context,limetype:this.limetype,value:this.orderBy,onChange:this.handleOrderByChange})))}renderVisualMode(){return t("div",{class:"visual-mode"},this.renderLimetypeSection(),this.renderDescriptionSection(),this.renderResponseFormatSection(),this.renderFilterSection(),this.renderQueryOptionsSection())}renderHeader(){const i=this.checkVisualModeSupport();return t("limel-header",{heading:this.label},this.renderModeControls(i))}renderModeControls(i){if(this.visualModeEnabled)return this.renderModeSwitch(i)}renderCodeMode(i){return t("div",{class:"code-mode"},this.renderCodeEditor(i))}};(function(i,e,t,r){var s,o=arguments.length,l=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,t):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(i,e,t,r);else for(var d=i.length-1;d>=0;d--)(s=i[d])&&(l=(o<3?s(l):o>3?s(e,t,l):s(e,t))||l);o>3&&l&&Object.defineProperty(e,t,l)})([s()],l.prototype,"limetypes",void 0),l.style="*,*:before,*:after{box-sizing:border-box}:host(limebb-lime-query-builder){--header-background-color:rgb(var(--contrast-500));--limebb-lime-query-builder-background-color:rgb(var(--contrast-100));--limebb-lime-query-builder-border-radius:0.75rem;--limebb-lime-query-builder-visual-mode-padding:1rem;--limebb-lime-query-builder-group-color:rgb(var(--color-sky-lighter));box-sizing:border-box;width:calc(100% - 1.5rem);margin:0.75rem auto;display:flex;flex-direction:column;border-radius:var(--limebb-lime-query-builder-border-radius);background-color:var(--limebb-lime-query-builder-background-color);box-shadow:var(--shadow-inflated-16)}.visual-mode{display:flex;flex-direction:column;gap:1rem;padding:var(--limebb-lime-query-builder-visual-mode-padding);border:1px solid var(--header-background-color);border-radius:0 0 var(--limebb-lime-query-builder-border-radius) var(--limebb-lime-query-builder-border-radius)}.code-mode{--code-editor-max-height:70vh;display:flex;flex-direction:column;gap:1rem}.code-mode .validation-errors{padding:0.75rem 1rem;color:rgb(var(--color-red-default));background-color:rgb(var(--color-red-lighter));border-left:0.25rem solid rgb(var(--color-red-default));border-radius:0.25rem;font-size:0.875rem}.code-mode .validation-errors strong{display:block;margin-bottom:0.5rem;font-weight:600}.code-mode .validation-errors ul{margin:0;padding-left:1.5rem}.code-mode .validation-errors li{margin:0.25rem 0}.code-mode .visual-mode-limitations{padding:0.75rem 1rem;color:rgb(var(--color-blue-dark));background-color:rgb(var(--color-blue-lighter));border-left:0.25rem solid rgb(var(--color-blue-default));border-radius:0.25rem;font-size:0.875rem}.code-mode .visual-mode-limitations strong{display:block;margin-bottom:0.5rem;font-weight:600}.code-mode .visual-mode-limitations ul{margin:0;padding-left:1.5rem}.code-mode .visual-mode-limitations li{margin:0.25rem 0}section.description,section.filter,section.query-options{display:flex;flex-direction:column;gap:1rem}section h4{margin:0;font-size:1.125rem;font-weight:600;color:rgb(var(--contrast-1000))}limel-header.is-narrow{--header-top-right-left-border-radius:0;width:calc(100% + var(--limebb-lime-query-builder-visual-mode-padding) * 2);margin-left:calc(var(--limebb-lime-query-builder-visual-mode-padding) * -1)}.query-options-controls{display:flex;flex-direction:column;gap:1rem}";export{l as limebb_lime_query_builder}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { FormComponent } from '@limetech/lime-elements';
|
|
2
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
3
|
+
/**
|
|
4
|
+
* Picks a color palette from the built-in color-palettes registry,
|
|
5
|
+
* and shows the palette's swatches alongside its title — both in
|
|
6
|
+
* the dropdown row and in the selected trigger area.
|
|
7
|
+
*
|
|
8
|
+
* ### When to use this picker
|
|
9
|
+
*
|
|
10
|
+
* Use it when a Lime CRM widget needs the admin to choose a set of
|
|
11
|
+
* colors purely for **visual differentiation** between items in a
|
|
12
|
+
* list. The picker's contract is "give every item a distinct, nicely
|
|
13
|
+
* harmonized color"; it does **not** assume any item-to-color
|
|
14
|
+
* mapping is meaningful. Concrete examples:
|
|
15
|
+
*
|
|
16
|
+
* - bars / slices in a chart widget
|
|
17
|
+
* - swimlanes in a kanban view
|
|
18
|
+
* - event categories in a calendar
|
|
19
|
+
* - tag chips on a list view
|
|
20
|
+
*
|
|
21
|
+
* ### When **not** to use it
|
|
22
|
+
*
|
|
23
|
+
* Don't use this picker when colors carry semantic meaning that
|
|
24
|
+
* end users must learn and rely on — e.g. _red = high priority_,
|
|
25
|
+
* _green = healthy_, _yellow = pending_. The palette's color order
|
|
26
|
+
* and contents may evolve over time (designers tweaking shades,
|
|
27
|
+
* appending new colors, retiring duplicates), so item-to-color
|
|
28
|
+
* mappings are intentionally **not** stable across releases. For
|
|
29
|
+
* status / priority / severity surfaces, encode meaning at the
|
|
30
|
+
* value level (icons, badges, labels) rather than color alone.
|
|
31
|
+
*
|
|
32
|
+
* @exampleComponent limebb-example-color-palette-picker
|
|
33
|
+
* @beta
|
|
34
|
+
*/
|
|
35
|
+
export declare class ColorPalettePicker implements FormComponent<string> {
|
|
36
|
+
/**
|
|
37
|
+
* @inheritdoc
|
|
38
|
+
*/
|
|
39
|
+
value: string;
|
|
40
|
+
/**
|
|
41
|
+
* @inheritdoc
|
|
42
|
+
*/
|
|
43
|
+
required: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* @inheritdoc
|
|
46
|
+
*/
|
|
47
|
+
readonly: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* @inheritdoc
|
|
50
|
+
*/
|
|
51
|
+
invalid: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* @inheritdoc
|
|
54
|
+
*/
|
|
55
|
+
disabled: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* @inheritdoc
|
|
58
|
+
*/
|
|
59
|
+
label: string;
|
|
60
|
+
/**
|
|
61
|
+
* @inheritdoc
|
|
62
|
+
*/
|
|
63
|
+
helperText: string;
|
|
64
|
+
/**
|
|
65
|
+
* Emitted when the user picks a different palette. The detail is
|
|
66
|
+
* the chosen palette's `id`.
|
|
67
|
+
*/
|
|
68
|
+
change: EventEmitter<string>;
|
|
69
|
+
private options;
|
|
70
|
+
private optionsById;
|
|
71
|
+
/**
|
|
72
|
+
* Tracks the last `value` we warned about so we don't log on
|
|
73
|
+
* every render when the same unknown id persists.
|
|
74
|
+
*/
|
|
75
|
+
private lastWarnedValue?;
|
|
76
|
+
componentWillLoad(): void;
|
|
77
|
+
render(): any;
|
|
78
|
+
/**
|
|
79
|
+
* Resolve `this.value` against the cached options map. Returns
|
|
80
|
+
* `undefined` when no value is set (so the trigger renders
|
|
81
|
+
* unselected), or falls back to the (none) option when the value
|
|
82
|
+
* is set but unrecognized — with a one-time warning so a
|
|
83
|
+
* developer integrating the picker sees the stale id during
|
|
84
|
+
* debugging.
|
|
85
|
+
*/
|
|
86
|
+
private getSelectedOption;
|
|
87
|
+
private handleChange;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=color-palette-picker.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders a small grid of color swatches for a palette. Used as the
|
|
3
|
+
* inline preview inside [limebb-color-palette-picker](..) — both in
|
|
4
|
+
* the trigger (the currently chosen palette) and in each row of its
|
|
5
|
+
* dropdown list (so users can see the colors before picking). Pass
|
|
6
|
+
* any CSS color strings (`rgb(var(--…))`, hex, etc.).
|
|
7
|
+
*
|
|
8
|
+
* The swatches are purely decorative — they carry no semantic
|
|
9
|
+
* information beyond what the surrounding context (e.g. the picker
|
|
10
|
+
* option's text and secondary text) already provides. The component
|
|
11
|
+
* marks itself `aria-hidden` so assistive tech skips it cleanly.
|
|
12
|
+
*
|
|
13
|
+
* @exampleComponent limebb-example-color-palette-swatches
|
|
14
|
+
* @private
|
|
15
|
+
*/
|
|
16
|
+
export declare class ColorPaletteSwatches {
|
|
17
|
+
/**
|
|
18
|
+
* Ordered list of CSS color values to render as swatches.
|
|
19
|
+
*/
|
|
20
|
+
colors: string[];
|
|
21
|
+
render(): any;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=color-palette-swatches.d.ts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { FunctionalComponent } from '../../stencil-public-runtime';
|
|
2
|
+
import { Rule, RuleAll, RuleAny, RuleRef } from '@limetech/lime-web-components';
|
|
3
|
+
import { RulePath } from './rule-operations';
|
|
4
|
+
import { RuleNodeRenderContext } from './rule-editor-views';
|
|
5
|
+
export interface ChipChild {
|
|
6
|
+
ref: RuleRef;
|
|
7
|
+
isNegated: boolean;
|
|
8
|
+
index: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* If `node` is a `ref` or a `not(ref)`, return the underlying ref
|
|
12
|
+
* together with its negation flag. Used to decide whether a child of a
|
|
13
|
+
* group renders as a chip (this returns non-null) or as a nested box
|
|
14
|
+
* (this returns null).
|
|
15
|
+
* @param node
|
|
16
|
+
*/
|
|
17
|
+
export declare function extractRef(node: Rule): {
|
|
18
|
+
ref: RuleRef;
|
|
19
|
+
isNegated: boolean;
|
|
20
|
+
} | null;
|
|
21
|
+
export declare const GroupChipsView: FunctionalComponent<{
|
|
22
|
+
groupNode: RuleAll | RuleAny;
|
|
23
|
+
groupPath: RulePath;
|
|
24
|
+
chipChildren: ChipChild[];
|
|
25
|
+
ctx: RuleNodeRenderContext;
|
|
26
|
+
}>;
|
|
27
|
+
//# sourceMappingURL=chip-picker-view.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FunctionalComponent } from '../../stencil-public-runtime';
|
|
2
|
+
import { RuleAll, RuleAny } from '@limetech/lime-web-components';
|
|
3
|
+
import { RulePath } from './rule-operations';
|
|
4
|
+
import { RuleNodeRenderContext } from './rule-editor-views';
|
|
5
|
+
export declare const GroupNodeView: FunctionalComponent<{
|
|
6
|
+
node: RuleAll | RuleAny;
|
|
7
|
+
path: RulePath;
|
|
8
|
+
isNegated: boolean;
|
|
9
|
+
ctx: RuleNodeRenderContext;
|
|
10
|
+
}>;
|
|
11
|
+
//# sourceMappingURL=group-node-view.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { JsonValue, LimeWebComponentContext, LimeWebComponentPlatform, PrimitiveMetadata, RuleRef } from '@limetech/lime-web-components';
|
|
2
|
+
import { EventEmitter } from '../../../stencil-public-runtime';
|
|
3
|
+
/**
|
|
4
|
+
* Popover content for a rule-editor chip. Carries its own styles so
|
|
5
|
+
* they travel with the element when `limel-popover` portals it out of
|
|
6
|
+
* the rule-editor's shadow DOM.
|
|
7
|
+
*
|
|
8
|
+
* @private
|
|
9
|
+
*/
|
|
10
|
+
export declare class RuleChipPopover {
|
|
11
|
+
platform: LimeWebComponentPlatform;
|
|
12
|
+
context: LimeWebComponentContext;
|
|
13
|
+
refNode: RuleRef;
|
|
14
|
+
isNegated: boolean;
|
|
15
|
+
metadata?: PrimitiveMetadata;
|
|
16
|
+
readonly: boolean;
|
|
17
|
+
disabled: boolean;
|
|
18
|
+
isMutable: boolean;
|
|
19
|
+
negate: EventEmitter<boolean>;
|
|
20
|
+
updateArgs: EventEmitter<JsonValue>;
|
|
21
|
+
deleteChip: EventEmitter<void>;
|
|
22
|
+
render(): any;
|
|
23
|
+
private renderHeader;
|
|
24
|
+
private renderHeaderActions;
|
|
25
|
+
private get translator();
|
|
26
|
+
private renderBody;
|
|
27
|
+
private handleNegateChange;
|
|
28
|
+
private handleArgsChange;
|
|
29
|
+
private handleDelete;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=rule-chip-popover.d.ts.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ListItem } from '@limetech/lime-elements';
|
|
2
|
+
import { FunctionalComponent } from '../../stencil-public-runtime';
|
|
3
|
+
import { JsonValue, LimeWebComponentContext, LimeWebComponentPlatform, PrimitiveMetadata, Rule, RuleAll, RuleAny, RuleValidationIssue, Translator } from '@limetech/lime-web-components';
|
|
4
|
+
import { RulePath } from './rule-operations';
|
|
5
|
+
/**
|
|
6
|
+
* State and callbacks the rule-editor passes down through the
|
|
7
|
+
* recursive render tree. Built once per render in the editor's
|
|
8
|
+
* `render()` and forwarded by every view.
|
|
9
|
+
*/
|
|
10
|
+
export interface RuleNodeRenderContext {
|
|
11
|
+
issues: RuleValidationIssue[];
|
|
12
|
+
metadataById: Map<string, PrimitiveMetadata>;
|
|
13
|
+
primitiveOptions: Array<ListItem<string>>;
|
|
14
|
+
isMutable: boolean;
|
|
15
|
+
readonly: boolean;
|
|
16
|
+
disabled: boolean;
|
|
17
|
+
platform: LimeWebComponentPlatform;
|
|
18
|
+
context: LimeWebComponentContext;
|
|
19
|
+
translator: Translator;
|
|
20
|
+
openChipPath: RulePath | null;
|
|
21
|
+
onDelete: (path: RulePath) => void;
|
|
22
|
+
onUpdateArgs: (path: RulePath, args: JsonValue) => void;
|
|
23
|
+
onReplaceNode: (path: RulePath, replacement: Rule) => void;
|
|
24
|
+
onChipInteract: (path: RulePath) => void;
|
|
25
|
+
onPopoverClose: () => void;
|
|
26
|
+
}
|
|
27
|
+
interface NodeProps {
|
|
28
|
+
node: Rule;
|
|
29
|
+
path: RulePath;
|
|
30
|
+
ctx: RuleNodeRenderContext;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Render a `Rule` node and recurse into its children.
|
|
34
|
+
* @param props
|
|
35
|
+
*/
|
|
36
|
+
export declare const RuleNodeView: FunctionalComponent<NodeProps>;
|
|
37
|
+
/**
|
|
38
|
+
* If `node` is a group (`all`/`any`) or a negated group, return the
|
|
39
|
+
* inner group together with its negation flag. Otherwise `null`.
|
|
40
|
+
* Used by the dispatcher and by the editor's input normalization.
|
|
41
|
+
* @param node
|
|
42
|
+
*/
|
|
43
|
+
export declare function extractGroup(node: Rule): {
|
|
44
|
+
node: RuleAll | RuleAny;
|
|
45
|
+
isNegated: boolean;
|
|
46
|
+
} | null;
|
|
47
|
+
export declare const IssuesView: FunctionalComponent<{
|
|
48
|
+
issues: RuleValidationIssue[];
|
|
49
|
+
}>;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=rule-editor-views.d.ts.map
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
import { FormComponent } from '@limetech/lime-elements';
|
|
3
|
+
import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform, Rule, SubjectRegistry } from '@limetech/lime-web-components';
|
|
4
|
+
/**
|
|
5
|
+
* Tree editor for {@link Rule}.
|
|
6
|
+
*
|
|
7
|
+
* Renders a `Rule` value as a tree of nodes. Lets an author pick
|
|
8
|
+
* primitive refs in `all` / `any` groups, toggle negation, delete
|
|
9
|
+
* nodes, and edit per-primitive args via the editor declared on each
|
|
10
|
+
* primitive's metadata.
|
|
11
|
+
*
|
|
12
|
+
* The component is value-in / value-out. Pass `value` and listen for
|
|
13
|
+
* `change`; persistence is the caller's concern.
|
|
14
|
+
*
|
|
15
|
+
* Pass `availableSubjects` to forward the list of subject slots the
|
|
16
|
+
* caller knows will be available where the rule runs. The component
|
|
17
|
+
* forwards it to `RuleRegistry.validate` so `missing-slot` diagnostics
|
|
18
|
+
* surface inline on the offending nodes.
|
|
19
|
+
*
|
|
20
|
+
* @exampleComponent limebb-example-rule-editor
|
|
21
|
+
*
|
|
22
|
+
* @alpha
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
export declare class RuleEditor implements LimeWebComponent, FormComponent<Rule | undefined> {
|
|
26
|
+
platform: LimeWebComponentPlatform;
|
|
27
|
+
context: LimeWebComponentContext;
|
|
28
|
+
/**
|
|
29
|
+
* @inheritdoc
|
|
30
|
+
*/
|
|
31
|
+
value: Rule | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Subject slots the caller knows will be available where the rule
|
|
34
|
+
* runs. Forwarded to the rule registry's `validate` method so
|
|
35
|
+
* `missing-slot` issues surface inline. Leave unset when the
|
|
36
|
+
* evaluation context is not known (typical for editors that target
|
|
37
|
+
* the saved-rule library).
|
|
38
|
+
*/
|
|
39
|
+
availableSubjects?: (keyof SubjectRegistry)[];
|
|
40
|
+
/**
|
|
41
|
+
* @inheritdoc
|
|
42
|
+
*/
|
|
43
|
+
required: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* The mutation UI (delete and negate toggles, add-group button) is
|
|
46
|
+
* hidden when set. The args editor for each ref is still rendered,
|
|
47
|
+
* with `readonly` forwarded to it.
|
|
48
|
+
*
|
|
49
|
+
* @inheritdoc
|
|
50
|
+
*/
|
|
51
|
+
readonly: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* The mutation UI is hidden when set. The args editor is rendered
|
|
54
|
+
* with `disabled` forwarded to it.
|
|
55
|
+
*
|
|
56
|
+
* @inheritdoc
|
|
57
|
+
*/
|
|
58
|
+
disabled: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* @inheritdoc
|
|
61
|
+
*/
|
|
62
|
+
label: string;
|
|
63
|
+
/**
|
|
64
|
+
* @inheritdoc
|
|
65
|
+
*/
|
|
66
|
+
helperText: string;
|
|
67
|
+
/**
|
|
68
|
+
* Emitted when the rule tree is mutated. Detail is the new rule, or
|
|
69
|
+
* `undefined` when the user has cleared the editor to an empty root
|
|
70
|
+
* group — callers can persist `undefined` as "no rule" without
|
|
71
|
+
* having to inspect the rule shape themselves.
|
|
72
|
+
*/
|
|
73
|
+
change: EventEmitter<Rule | undefined>;
|
|
74
|
+
private issues;
|
|
75
|
+
private openChipPath;
|
|
76
|
+
private metadataById;
|
|
77
|
+
private primitiveOptions;
|
|
78
|
+
private normalizedCache;
|
|
79
|
+
componentWillLoad(): void;
|
|
80
|
+
componentDidLoad(): void;
|
|
81
|
+
protected onValueChange(): void;
|
|
82
|
+
protected onAvailableSubjectsChange(): void;
|
|
83
|
+
render(): any;
|
|
84
|
+
private renderLabel;
|
|
85
|
+
private renderHelperText;
|
|
86
|
+
private createRenderContext;
|
|
87
|
+
private handleDelete;
|
|
88
|
+
private handleUpdateArgs;
|
|
89
|
+
private handleReplaceNode;
|
|
90
|
+
private handleChipInteract;
|
|
91
|
+
private handlePopoverClose;
|
|
92
|
+
private indexMetadata;
|
|
93
|
+
private runValidation;
|
|
94
|
+
private emitIfChanged;
|
|
95
|
+
/**
|
|
96
|
+
* Wrap any non-group `value` in a top-level `all` so the editor
|
|
97
|
+
* always has a group to render against. When `value` is unset,
|
|
98
|
+
* returns a fresh empty `all`-group as a render-only placeholder —
|
|
99
|
+
* `emitNormalization` will *not* push that placeholder back to the
|
|
100
|
+
* caller, so an unset value stays unset until the user edits.
|
|
101
|
+
*
|
|
102
|
+
* Memoized so callers that read this several times in one handler
|
|
103
|
+
* see the same reference — the identity check in `emitIfChanged`
|
|
104
|
+
* depends on it.
|
|
105
|
+
*/
|
|
106
|
+
private get normalizedValue();
|
|
107
|
+
/**
|
|
108
|
+
* If `value` wasn't already a group, emit the normalized form so
|
|
109
|
+
* the caller's stored state catches up. Skipped when `value` is
|
|
110
|
+
* unset — we render a placeholder group locally but don't push it
|
|
111
|
+
* back to the caller, so callers can't tell "no rule yet" apart
|
|
112
|
+
* from "user cleared a rule" by inspecting the emitted shape.
|
|
113
|
+
* Returns `true` when an emit happened so callers can short-circuit.
|
|
114
|
+
*/
|
|
115
|
+
private emitNormalization;
|
|
116
|
+
private get ruleRegistry();
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=rule-editor.d.ts.map
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { JsonValue, Rule, RuleAll, RuleAny, RuleValidationIssue } from '@limetech/lime-web-components';
|
|
2
|
+
/**
|
|
3
|
+
* Address of a node in a {@link Rule} tree. Numeric keys index into a
|
|
4
|
+
* combinator's `rules`; the string `'rules'` or `'rule'` steps from a
|
|
5
|
+
* combinator into its children container.
|
|
6
|
+
*/
|
|
7
|
+
export type RulePath = (string | number)[];
|
|
8
|
+
/**
|
|
9
|
+
* Remove the node at `path`.
|
|
10
|
+
*
|
|
11
|
+
* Removing the root yields an empty `all`-group so the tree always has
|
|
12
|
+
* something to render. Returns `rule` unchanged when `path` does not
|
|
13
|
+
* address a removable node.
|
|
14
|
+
* @param rule
|
|
15
|
+
* @param path
|
|
16
|
+
*/
|
|
17
|
+
export declare function deleteNode(rule: Rule, path: RulePath): Rule;
|
|
18
|
+
/**
|
|
19
|
+
* Replace the `args` of a `ref` node. Returns `rule` unchanged when
|
|
20
|
+
* `path` does not resolve to a `ref`.
|
|
21
|
+
* @param rule
|
|
22
|
+
* @param path
|
|
23
|
+
* @param args
|
|
24
|
+
*/
|
|
25
|
+
export declare function updateArgs(rule: Rule, path: RulePath, args: JsonValue): Rule;
|
|
26
|
+
/**
|
|
27
|
+
* Replace the node at `path` with `replacement`, returning a new rule
|
|
28
|
+
* tree. Used by callers that need to apply a non-atomic change as a
|
|
29
|
+
* single emit (e.g. updating a group's whole `rules` array at once).
|
|
30
|
+
* @param rule
|
|
31
|
+
* @param path
|
|
32
|
+
* @param replacement
|
|
33
|
+
*/
|
|
34
|
+
export declare function replaceNode(rule: Rule, path: RulePath, replacement: Rule): Rule;
|
|
35
|
+
/**
|
|
36
|
+
* Wrap `group` in a `not` when `isNegated`, otherwise return it
|
|
37
|
+
* unchanged. Used when re-emitting a group whose negation flag should
|
|
38
|
+
* be preserved.
|
|
39
|
+
* @param group
|
|
40
|
+
* @param isNegated
|
|
41
|
+
*/
|
|
42
|
+
export declare function wrapNegated(group: RuleAll | RuleAny, isNegated: boolean): Rule;
|
|
43
|
+
/**
|
|
44
|
+
* Append `child` to a group's `rules`, returning a new group. The
|
|
45
|
+
* input is not mutated.
|
|
46
|
+
* @param group
|
|
47
|
+
* @param child
|
|
48
|
+
*/
|
|
49
|
+
export declare function appendChild(group: RuleAll | RuleAny, child: Rule): RuleAll | RuleAny;
|
|
50
|
+
/**
|
|
51
|
+
* Structural equality on two paths.
|
|
52
|
+
* @param a
|
|
53
|
+
* @param b
|
|
54
|
+
*/
|
|
55
|
+
export declare function pathsEqual(a: RulePath, b: RulePath): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Filter validation issues to those whose `path` matches `path`.
|
|
58
|
+
* @param issues
|
|
59
|
+
* @param path
|
|
60
|
+
*/
|
|
61
|
+
export declare function issuesAt(issues: RuleValidationIssue[], path: RulePath): RuleValidationIssue[];
|
|
62
|
+
//# sourceMappingURL=rule-operations.d.ts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { LimelPickerCustomEvent, ListItem } from '@limetech/lime-elements';
|
|
2
|
+
import { PrimitiveMetadata, RuleValidationIssue } from '@limetech/lime-web-components';
|
|
3
|
+
/**
|
|
4
|
+
* Event emitted by `limel-picker` when its value changes. Single-select
|
|
5
|
+
* pickers receive a single item, multi-select pickers receive an array.
|
|
6
|
+
*/
|
|
7
|
+
export type PickerChangeEvent = LimelPickerCustomEvent<ListItem<string> | Array<ListItem<string>>>;
|
|
8
|
+
/**
|
|
9
|
+
* Event emitted by `limel-picker` when the user interacts with an
|
|
10
|
+
* existing chip (e.g. clicks it).
|
|
11
|
+
*/
|
|
12
|
+
export type PickerInteractEvent = LimelPickerCustomEvent<ListItem<string>>;
|
|
13
|
+
/**
|
|
14
|
+
* Class map for a rule-node container. Adds the type modifier and an
|
|
15
|
+
* `invalid` flag when validation issues attach to this node.
|
|
16
|
+
* @param type
|
|
17
|
+
* @param issues
|
|
18
|
+
*/
|
|
19
|
+
export declare function nodeClasses(type: 'all' | 'any', issues: RuleValidationIssue[]): Record<string, boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Build the searchable list shown by the primitive pickers. Cached on
|
|
22
|
+
* the render context so it isn't recomputed per node.
|
|
23
|
+
* @param metadataById
|
|
24
|
+
*/
|
|
25
|
+
export declare function createPrimitiveOptions(metadataById: Map<string, PrimitiveMetadata>): Array<ListItem<string>>;
|
|
26
|
+
/**
|
|
27
|
+
* Find the picker item for `id`, falling back to a placeholder marked
|
|
28
|
+
* with the unknown-primitive icon when the id isn't in the registry.
|
|
29
|
+
* @param allItems
|
|
30
|
+
* @param id
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolveItem(allItems: Array<ListItem<string>>, id: string): ListItem<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Build a picker `searcher` bound to a fixed item list. Both the ref
|
|
35
|
+
* picker and the chip picker want exactly this — wrapping
|
|
36
|
+
* {@link searchItems} in a promise — and deserve to share it.
|
|
37
|
+
* @param items
|
|
38
|
+
*/
|
|
39
|
+
export declare function createSearcher(items: Array<ListItem<string>>): (query: string) => Promise<Array<ListItem<string>>>;
|
|
40
|
+
//# sourceMappingURL=view-helpers.d.ts.map
|
|
@@ -9,14 +9,17 @@ import { LimeWebComponentPlatform, Rule, RuleScope } from '@limetech/lime-web-co
|
|
|
9
9
|
* @exampleComponent limebb-example-rule-gate
|
|
10
10
|
*
|
|
11
11
|
* @alpha
|
|
12
|
+
* @private
|
|
12
13
|
*/
|
|
13
14
|
export declare class RuleGate {
|
|
14
15
|
host: HTMLElement;
|
|
15
16
|
platform: LimeWebComponentPlatform;
|
|
16
17
|
/**
|
|
17
|
-
* The rule to evaluate.
|
|
18
|
+
* The rule to evaluate. When unset, the gate renders its slot
|
|
19
|
+
* unconditionally — "no rule" means "no gating", which mirrors
|
|
20
|
+
* the editor's `Rule | undefined` emit contract.
|
|
18
21
|
*/
|
|
19
|
-
rule: Rule;
|
|
22
|
+
rule: Rule | undefined;
|
|
20
23
|
/**
|
|
21
24
|
* Optional scope override. By default the gate resolves subject
|
|
22
25
|
* values by walking up the DOM to ancestors that registered providers
|