@limetech/lime-crm-building-blocks 1.133.0 → 1.135.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 +20 -0
- package/dist/cjs/{filter-group-logic-Bwk6B784.js → filter-group-logic-Dp9o1iOJ.js} +1 -1
- package/dist/cjs/{index.esm-DcWSoSRE.js → index.esm-Dgkx-Syd.js} +2 -2
- package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
- package/dist/cjs/{lime-query-operators-Ci-RNshi.js → lime-query-operators-B6PujuTH.js} +1 -1
- package/dist/cjs/{lime-query-validation-nql4N6Z8.js → lime-query-validation-BszGOirf.js} +1 -1
- package/dist/cjs/limebb-alert-dialog.cjs.entry.js +1 -1
- package/dist/cjs/limebb-browser.cjs.entry.js +3 -3
- package/dist/cjs/limebb-chat-icon-list_3.cjs.entry.js +5 -5
- package/dist/cjs/limebb-chat-list.cjs.entry.js +2 -2
- 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-component-config.cjs.entry.js +1 -1
- package/dist/cjs/limebb-component-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +3 -3
- package/dist/cjs/limebb-currency-picker.cjs.entry.js +2 -2
- package/dist/cjs/limebb-dashboard-widget.cjs.entry.js +1 -1
- package/dist/cjs/limebb-data-cells.cjs.entry.js +1 -1
- package/dist/cjs/limebb-date-picker.cjs.entry.js +2 -2
- 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 +2 -2
- package/dist/cjs/limebb-feed.cjs.entry.js +2 -2
- 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 +44 -9
- package/dist/cjs/limebb-kanban-group.cjs.entry.js +2 -2
- package/dist/cjs/limebb-kanban-item.cjs.entry.js +2 -2
- package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +3 -3
- package/dist/cjs/limebb-lime-query-filter-builder.cjs.entry.js +2 -2
- package/dist/cjs/limebb-lime-query-filter-comparison-editor_4.cjs.entry.js +7 -7
- package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +4 -4
- package/dist/cjs/limebb-lime-query-order-by-editor_2.cjs.entry.js +4 -4
- 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 +3 -3
- package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +1 -1
- package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +1 -1
- package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
- package/dist/cjs/limebb-loader.cjs.entry.js +28 -1
- package/dist/cjs/limebb-locale-picker.cjs.entry.js +2 -2
- package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
- package/dist/cjs/limebb-mention.cjs.entry.js +1 -1
- package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +2 -2
- package/dist/cjs/limebb-notification-item.cjs.entry.js +2 -2
- package/dist/cjs/limebb-notification-list.cjs.entry.js +1 -1
- package/dist/cjs/limebb-object-chip.cjs.entry.js +2 -2
- package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +3 -3
- package/dist/cjs/limebb-property-selector.cjs.entry.js +2 -2
- package/dist/cjs/limebb-rule-arg-filter-editor.cjs.entry.js +1 -1
- package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +11 -3
- package/dist/cjs/limebb-rule-editor.cjs.entry.js +74 -4
- package/dist/cjs/limebb-rule-gate.cjs.entry.js +2 -2
- package/dist/cjs/limebb-text-editor.cjs.entry.js +3 -3
- package/dist/cjs/limebb-trend-indicator.cjs.entry.js +2 -2
- package/dist/cjs/limebb-value-comparison-editor.cjs.entry.js +75 -0
- package/dist/cjs/{limetype-CNjUGemK.js → limetype-BayDf-QY.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/alert-dialog/alert-dialog.js +1 -1
- package/dist/collection/components/browser/browser.js +2 -2
- package/dist/collection/components/chat-list/chat-icon-list/chat-icon-list.js +1 -1
- package/dist/collection/components/chat-list/chat-item/chat-item.js +2 -2
- package/dist/collection/components/chat-list/chat-list.js +1 -1
- package/dist/collection/components/chat-list/typing-indicator/typing-indicator.js +1 -1
- package/dist/collection/components/color-palette-picker/color-palette-picker.js +1 -1
- package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.js +1 -1
- package/dist/collection/components/composer-toolbar/composer-toolbar.js +2 -2
- package/dist/collection/components/currency-picker/currency-picker.js +1 -1
- package/dist/collection/components/dashboard-widget/dashboard-widget.js +1 -1
- package/dist/collection/components/date-picker/date-picker.js +1 -1
- package/dist/collection/components/date-range/date-range.js +1 -1
- package/dist/collection/components/document-chips/document-chips.js +1 -1
- package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
- package/dist/collection/components/document-picker/document-picker.js +1 -1
- package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
- package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
- package/dist/collection/components/feed/feed.js +1 -1
- package/dist/collection/components/icon-picker/icon-picker.js +1 -1
- package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
- package/dist/collection/components/info-tile/info-tile.js +86 -7
- 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 +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/loader/loader.js +2 -0
- 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 +9 -2
- package/dist/collection/components/rule-editor/rule-arg-filter-editor/rule-arg-filter-editor-metadata.js +10 -0
- package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +30 -2
- package/dist/collection/components/rule-editor/rule-editor.js +53 -2
- package/dist/collection/components/rule-editor/rule-operations.js +15 -2
- package/dist/collection/components/rule-editor/value-comparison-editor/value-comparison-editor-metadata.js +15 -0
- package/dist/collection/components/rule-editor/value-comparison-editor/value-comparison-editor.css +9 -0
- package/dist/collection/components/rule-editor/value-comparison-editor/value-comparison-editor.js +149 -0
- package/dist/collection/components/rule-gate/rule-gate.js +1 -1
- package/dist/collection/components/summary-popover/summary-popover.js +2 -2
- package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
- package/dist/collection/components/text-editor/text-editor.js +1 -1
- package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
- package/dist/components/chat-icon-list.js +1 -1
- package/dist/components/chat-item.js +1 -1
- package/dist/components/currency-picker.js +1 -1
- package/dist/components/date-picker.js +1 -1
- package/dist/components/document-item.js +1 -1
- package/dist/components/feed-item-thumbnail-file-info.js +1 -1
- package/dist/components/feed-timeline-item.js +1 -1
- package/dist/components/kanban-group.js +1 -1
- package/dist/components/kanban-item.js +1 -1
- package/dist/components/lime-query-filter-comparison-editor.js +1 -1
- package/dist/components/lime-query-filter-comparison.js +1 -1
- package/dist/components/lime-query-filter-expression.js +1 -1
- package/dist/components/limebb-alert-dialog.js +1 -1
- package/dist/components/limebb-browser.js +1 -1
- package/dist/components/limebb-chat-list.js +1 -1
- package/dist/components/limebb-color-palette-picker.js +1 -1
- package/dist/components/limebb-color-palette-swatches.js +1 -1
- package/dist/components/limebb-composer-toolbar.js +1 -1
- package/dist/components/limebb-dashboard-widget.js +1 -1
- package/dist/components/limebb-date-range.js +1 -1
- package/dist/components/limebb-document-chips.js +1 -1
- package/dist/components/limebb-document-picker.js +1 -1
- package/dist/components/limebb-feed.js +1 -1
- package/dist/components/limebb-icon-picker.js +1 -1
- package/dist/components/limebb-info-tile-format.js +1 -1
- package/dist/components/limebb-info-tile.js +1 -1
- package/dist/components/limebb-lime-query-builder.js +1 -1
- package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
- package/dist/components/limebb-loader.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.d.ts +11 -0
- package/dist/components/limebb-value-comparison-editor.js +1 -0
- 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/{filter-group-logic-RXn-GGk1.js → filter-group-logic-1aucZQgy.js} +1 -1
- package/dist/esm/{index.esm-DAe4_MLR.js → index.esm-B1KM7sH7.js} +1 -1
- package/dist/esm/lime-crm-building-blocks.js +1 -1
- package/dist/esm/{lime-query-operators-DYlN1dAt.js → lime-query-operators-DvI2OyJI.js} +1 -1
- package/dist/esm/{lime-query-validation-DXxPZ2CH.js → lime-query-validation-CiIEITCJ.js} +1 -1
- package/dist/esm/limebb-alert-dialog.entry.js +1 -1
- package/dist/esm/limebb-browser.entry.js +3 -3
- package/dist/esm/limebb-chat-icon-list_3.entry.js +5 -5
- package/dist/esm/limebb-chat-list.entry.js +2 -2
- 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-component-config.entry.js +1 -1
- package/dist/esm/limebb-component-picker.entry.js +1 -1
- package/dist/esm/limebb-composer-toolbar.entry.js +3 -3
- package/dist/esm/limebb-currency-picker.entry.js +2 -2
- package/dist/esm/limebb-dashboard-widget.entry.js +1 -1
- package/dist/esm/limebb-data-cells.entry.js +1 -1
- package/dist/esm/limebb-date-picker.entry.js +2 -2
- 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 +2 -2
- package/dist/esm/limebb-feed.entry.js +2 -2
- 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 +44 -9
- package/dist/esm/limebb-kanban-group.entry.js +2 -2
- package/dist/esm/limebb-kanban-item.entry.js +2 -2
- package/dist/esm/limebb-lime-query-builder.entry.js +3 -3
- package/dist/esm/limebb-lime-query-filter-builder.entry.js +2 -2
- package/dist/esm/limebb-lime-query-filter-comparison-editor_4.entry.js +7 -7
- package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +4 -4
- package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +4 -4
- package/dist/esm/limebb-lime-query-order-by-item.entry.js +2 -2
- package/dist/esm/limebb-lime-query-response-format-builder.entry.js +3 -3
- package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +1 -1
- package/dist/esm/limebb-limeobject-file-viewer.entry.js +1 -1
- package/dist/esm/limebb-live-docs-info.entry.js +2 -2
- package/dist/esm/limebb-loader.entry.js +28 -1
- package/dist/esm/limebb-locale-picker.entry.js +2 -2
- package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
- package/dist/esm/limebb-mention.entry.js +1 -1
- package/dist/esm/limebb-navigation-button_2.entry.js +2 -2
- package/dist/esm/limebb-notification-item.entry.js +2 -2
- package/dist/esm/limebb-notification-list.entry.js +1 -1
- package/dist/esm/limebb-object-chip.entry.js +2 -2
- package/dist/esm/limebb-percentage-visualizer.entry.js +3 -3
- package/dist/esm/limebb-property-selector.entry.js +2 -2
- package/dist/esm/limebb-rule-arg-filter-editor.entry.js +1 -1
- package/dist/esm/limebb-rule-chip-popover.entry.js +11 -3
- package/dist/esm/limebb-rule-editor.entry.js +74 -4
- package/dist/esm/limebb-rule-gate.entry.js +2 -2
- package/dist/esm/limebb-text-editor.entry.js +3 -3
- package/dist/esm/limebb-trend-indicator.entry.js +2 -2
- package/dist/esm/limebb-value-comparison-editor.entry.js +73 -0
- package/dist/esm/{limetype-C1wEJnPI.js → limetype-CIkoDD1B.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-692084d2.entry.js → p-041f1094.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-3c437049.entry.js → p-096ea04d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-7f5c97fe.entry.js → p-0d6d8b72.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-dc1d543d.entry.js → p-16fad0a8.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-56bb13b2.entry.js → p-191e4dcd.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-8ed7b025.entry.js → p-1a076d37.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-efab4f7e.entry.js → p-1b5f48c2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-81655182.entry.js → p-201498a9.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c7c5991f.entry.js → p-26e25dbd.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-24337de2.entry.js → p-29dd2424.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-563d69ff.entry.js → p-30f6d7ea.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-99464fa7.entry.js → p-340250da.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-18ce3ce5.entry.js → p-3f2f1826.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-4c10bea0.entry.js → p-46225433.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-68a951f5.entry.js → p-4cd99453.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-464b02c2.entry.js → p-52d8f7c2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-555da984.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-efb70fbb.entry.js → p-6299c46b.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-b16bbda2.entry.js → p-69cf07ba.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-47a7b3fd.entry.js → p-6c4521a0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-8d5311e4.entry.js → p-6f0a5401.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-7d969bbe.entry.js → p-71e1c5f0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-759d0fc2.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-5eef1781.entry.js → p-7aaf805d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-8d14a58a.entry.js → p-8c3970ed.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-a5850f04.entry.js → p-9909b0bf.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-991783f8.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-DzXJyKRS.js → p-B5QzrGTX.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-D3UYWGdn.js → p-BneXZK-Q.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-BbFGcMnU.js → p-DK4A47Sj.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-y_s8hZmV.js → p-DjwVpKf5.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-5a718d20.entry.js → p-a21d6f7e.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-43af24b5.entry.js → p-a2c8e1af.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-a8684418.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-0ba1294a.entry.js → p-b264b37d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ecd0280d.entry.js → p-b431df3c.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-22296e19.entry.js → p-b4b103c1.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-0fac2307.entry.js → p-b7d917ed.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-c0d39ae4.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-8238723b.entry.js → p-c4c3f054.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-072756ea.entry.js → p-c6cc1438.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-bd264cfa.entry.js → p-c72d3231.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-a6103d04.entry.js → p-c7dbd961.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-b01f2045.entry.js → p-c8cf6e4d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-1dfdf045.entry.js → p-cea4fe16.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-d6ac6cd3.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-7a4704dc.entry.js → p-d8835b8c.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-603ab702.entry.js → p-e1223704.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-e174dccd.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-725e6748.entry.js → p-ec22438d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-dc3a86f3.entry.js → p-efd62913.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-9639c6ee.entry.js → p-f22e2539.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-3996a598.entry.js → p-f58d25e5.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-16fa6f3e.entry.js → p-fac7ff61.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-5006c5ea.entry.js → p-fb23df8e.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-7b9359cc.entry.js → p-ff686a4e.entry.js} +1 -1
- package/dist/types/components/info-tile/info-tile.d.ts +50 -1
- package/dist/types/components/rule-editor/chip-picker-view.d.ts +8 -0
- package/dist/types/components/rule-editor/rule-arg-filter-editor/rule-arg-filter-editor-metadata.d.ts +4 -0
- package/dist/types/components/rule-editor/rule-chip-popover/rule-chip-popover.d.ts +8 -0
- package/dist/types/components/rule-editor/rule-editor-views.d.ts +6 -0
- package/dist/types/components/rule-editor/rule-editor.d.ts +14 -0
- package/dist/types/components/rule-editor/rule-operations.d.ts +8 -0
- package/dist/types/components/rule-editor/value-comparison-editor/value-comparison-editor-metadata.d.ts +12 -0
- package/dist/types/components/rule-editor/value-comparison-editor/value-comparison-editor.d.ts +45 -0
- package/dist/types/components.d.ts +127 -0
- package/package.json +4 -4
- package/dist/lime-crm-building-blocks/p-07ef2fd0.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-4e0d077b.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-55692241.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-898b097e.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-95a3cf87.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-ec335be5.entry.js +0 -1
- /package/dist/lime-crm-building-blocks/{p-CqRNpSRV.js → p-BVxuJgRM.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as t,h as e,g as i}from"./p-DYpn0EkA.js";import{b as r,n as s,l as o,d as n,L as a,r as l}from"./p-
|
|
1
|
+
import{r as t,h as e,g as i}from"./p-DYpn0EkA.js";import{b as r,n as s,l as o,d as n,L as a,r as l}from"./p-BVxuJgRM.js";import{a as h}from"./p-DK4A47Sj.js";class u{constructor(t){this.getState=t,this.contextType="info-tile"}getContext(){const{limetype:t,filterId:e,filterName:i,aggregateOperator:r,propertyName:s,value:o,label:n}=this.getState();if(!t||!e)return console.debug("InfoTileContextProvider: No limetype or filterId available"),null;const a={widgetType:"info-tile",limetype:t,filterId:e};return i&&(a.filterName=i),a.aggregateOperator=r,s&&(a.propertyName=s),void 0!==o&&(a.value=o),n&&(a.label=n),{data:a,purpose:"Shows an aggregated value from a filter. Clicking navigates to the explorer with that filter applied."}}}class c{constructor(t,e=[]){this.platform=t,this.filters=e}async load(t,e){let i;return i=this.isObjectIdentifier(e)?await this.loadLimeObjectInfoTile(t,e):await this.loadBasicInfoTile(t),i}async loadBasicInfoTile(t){const e=this.getFilter(t.filter);if(!e)throw new Error(`Filter "${t.filter}" not found`);return(await this.query.execute({limetype:e.limetype,responseFormat:{aggregates:{infotiles:{value:{op:t.operator,key:t.name}}}},filter:e.filter})).aggregates.infotiles[0].value}async loadLimeObjectInfoTile(t,e){await this.objectRepository.loadObject(e.limetype,e.id,{properties:[t]});const i=this.objectRepository.getObject(e.limetype,e.id);return null==i?void 0:i.getValue([t.name,t.key].join("."))}isObjectIdentifier(t){return Boolean((null==t?void 0:t.limetype)&&(null==t?void 0:t.id))}getFilter(t){return this.filters.find((e=>e.id===t))}get query(){return this.platform.get(r.Query)}get objectRepository(){return this.platform.get(r.LimeObjectRepository)}}function f(t,e){return t&&(t[e]||t.en||t.en_us)||""}function d(t,e=[]){const{path:i,query:r}=function(t,e=[]){if(!t)return{path:"#"};const i=["explorer",t.limetype,t.id].join("/"),r=function(t,e){const i=[...e,t].filter((t=>void 0!==t));if(0!==i.length)return 1===i.length?i[0]:{op:s.AND,exp:i}}(t.filter,e);return r?{path:i,query:{filter:r}}:{path:i}}(t,e);return r?`${i}?${Object.entries(r).map((([t,e])=>`${t}=${encodeURIComponent(JSON.stringify(e))}`)).join("&")}`:i}class p{constructor(t){this.locale=t}format(t){let e=String(t);return"number"==typeof t?e=new Intl.NumberFormat(this.locale).format(t):new Date(t).getTime()&&(e=new Intl.DateTimeFormat(this.locale).format(new Date(t))),{value:e}}}class v{constructor(t){this.locale=t}format(t,e){const i=new Date(t);return{prefix:this.formatAffix("prefix",i,e),value:this.formatValue(i,e),suffix:this.formatAffix("suffix",i,e)}}formatValue(t,e){const i=Object.assign({},e.options);if(e.prefix)for(const t of e.prefix)delete i[t];if(e.suffix)for(const t of e.suffix)delete i[t];return new Intl.DateTimeFormat(this.locale,i).format(t)}formatAffix(t,e,i){const r=Object.assign({},i.options);for(const e of Object.keys(r))"hour12"!==e&&((i[t]||[]).includes(e)||delete r[e]);if(0!==Object.values(r).filter(Boolean).length)return new Intl.DateTimeFormat(this.locale,r).format(e)}}class g{constructor(t){this.locale=t}format(t,e){var i,r;const s=new Intl.NumberFormat(this.locale,e.options),o=s.formatToParts(t);let n="",a="",l="";for(const t of o)(null===(i=e.prefix)||void 0===i?void 0:i.includes(t.type))?n+=t.value:(null===(r=e.suffix)||void 0===r?void 0:r.includes(t.type))?l+=t.value:a+=t.value;return a||(a=s.format(t),n="",l=""),{prefix:n,value:a,suffix:l}}}class m{constructor(t){this.locale=t}format(t,e){const i=new Intl.RelativeTimeFormat(this.locale,e.options),{value:r,unit:s}=this.getRelativeTime(t),o=i.formatToParts(r,s);let n="",a="",l="";for(const t of o)"literal"!==t.type||a?"literal"===t.type&&a?l+=t.value:a+=t.value:n+=t.value;return a||(a=n||l,n="",l=""),{prefix:n,value:a,suffix:l}}getRelativeTime(t){const e=new Date(t),i=new Date,r=e.getTime()-i.getTime(),s=[{unit:"year",value:31536e6},{unit:"month",value:2592e6},{unit:"week",value:6048e5},{unit:"day",value:864e5},{unit:"hour",value:36e5},{unit:"minute",value:6e4},{unit:"second",value:1e3}];for(const t of s){const e=r/t.value;if(Math.abs(e)>=1)return{value:Math.round(e),unit:t.unit}}return{value:0,unit:"second"}}}class b{constructor(t){this.locale=t}createFormatter(t,e){return"number"===(null==t?void 0:t.type)&&"number"==typeof e?new g(this.locale):"date"===(null==t?void 0:t.type)&&"string"==typeof e?new v(this.locale):"relative-date"===(null==t?void 0:t.type)&&"string"==typeof e?new m(this.locale):new p(this.locale)}}var y=function(t,e,i,r){var s,o=arguments.length,n=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,i,r);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(n=(o<3?s(n):o>3?s(e,i,n):s(e,i))||n);return o>3&&n&&Object.defineProperty(e,i,n),n};const w=class{constructor(e){t(this,e),this.aggregateOperator=l.Count,this.loading=!1,this.error=!1}get hostElement(){return this.host}connectedCallback(){this.registerContextProvider()}disconnectedCallback(){var t;null===(t=this.unregisterContextProvider)||void 0===t||t.call(this)}componentWillLoad(){this.loadInfoTileValue()}watchFilterId(){this.loadInfoTileValue()}watchPropertyName(){this.loadInfoTileValue()}watchAggregateOperator(){this.loadInfoTileValue()}async loadInfoTileValue(){if(this.loading=!0,this.error=!1,this.getFilter()){try{const t={key:this.getKey(),name:this.propertyName,operator:this.aggregateOperator,filter:this.filterId};this.value=await this.loader.load(t,this.context)}catch(t){console.error(t),this.error=!0}this.loading=!1}else this.error=!0}getKey(){return Math.random().toString(36).slice(2)}render(){var t,i;const r=this.getFilter(),s=this.getFormattedValue(),o={disabled:this.disabled,icon:this.icon,prefix:(null===(t=null==s?void 0:s.prefix)||void 0===t?void 0:t.trim())||this.prefix,suffix:(null===(i=null==s?void 0:s.suffix)||void 0===i?void 0:i.trim())||this.suffix,reducedPresence:this.shouldReducePresence()},n=Object.assign(Object.assign({},o),{icon:"error",prefix:"ERROR",loading:!0,label:this.getLabel(r)}),a=Object.assign(Object.assign({},o),{label:this.getLabel(r),link:this.getLink(r),loading:this.loading,value:null==s?void 0:s.value.trim()});return e("limel-info-tile",Object.assign({key:"f5680e93f15afe32e8abdcd05b89f12708b8edf5",class:{error:!r||this.error}},!r||this.error?n:a))}shouldReducePresence(){if(this.reducedPresence)return!0;if(!this.reducedPresenceRule||this.loading)return!1;try{return this.ruleRegistry.compile(this.reducedPresenceRule)(this.ruleRegistry.scope({host:this.hostElement,with:{scalarValue:this.value}}))}catch(t){return!1}}getFormattedValue(){if(!this.value&&0!==this.value)return{value:""};try{return this.getFormatter(this.value).format(this.value,this.format)}catch(t){return new p(this.language).format(this.value)}}getLabel(t){return t?"string"==typeof this.label?this.translator.get(this.label):f(this.label&&"object"==typeof this.label?this.label:t.name,this.language):"No filter set is selected"}getLink(t){const e=h({targetLimetype:t?this.limetypes[t.limetype]:void 0,currentLimetype:this.context.limetype?this.limetypes[this.context.limetype]:void 0,contextLimetypeName:this.context.limetype,contextId:this.context.id,propertyName:this.propertyName});return{href:d(t,e&&this.context.id?[{key:e,op:s.EQUALS,exp:this.context.id}]:[])}}getFilter(){return function(t,e){if(t&&e)return t.find((t=>t.id===e))}(this.filters,this.filterId)}getFormatter(t){return new b(this.language).createFormatter(this.format,t)}get translator(){return this.platform.get(r.Translate)}get ruleRegistry(){return this.platform.get(r.RuleRegistry)}get language(){return this.platform.get(r.Application).getLanguage()}get loader(){return new c(this.platform,this.filters)}registerContextProvider(){const t=this.platform.get(r.AIContextRegistry);if(!(null==t?void 0:t.register))return;const e=new u((()=>{const t=this.getFilter();return{limetype:null==t?void 0:t.limetype,filterId:this.filterId,filterName:t?f(t.name,this.language):void 0,aggregateOperator:this.aggregateOperator,propertyName:this.propertyName,value:this.value,label:this.getLabel(t)}}));this.unregisterContextProvider=t.register(e,this.hostElement)}get host(){return i(this)}static get watchers(){return{filterId:[{watchFilterId:0}],propertyName:[{watchPropertyName:0}],aggregateOperator:[{watchAggregateOperator:0}]}}};y([o({})],w.prototype,"config",void 0),y([n()],w.prototype,"filters",void 0),y([a()],w.prototype,"limetypes",void 0),w.style=":host(limebb-info-tile){display:block;overflow:visible !important;background-color:transparent !important}limel-info-tile.error{--info-tile-icon-color:rgb(var(--color-red-dark));border:1px dashed rgb(var(--contrast-500));border-radius:var(--info-tile-border-radius, 1rem)}";export{w as limebb_info_tile}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform, AggregateOperator } from '@limetech/lime-web-components';
|
|
1
|
+
import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform, AggregateOperator, Rule } from '@limetech/lime-web-components';
|
|
2
2
|
import { IconName } from '@limetech/lime-elements';
|
|
3
3
|
import { DateTimeFormat, NumberFormat, RelativeDateTimeFormat } from './format';
|
|
4
4
|
/**
|
|
@@ -14,12 +14,22 @@ import { DateTimeFormat, NumberFormat, RelativeDateTimeFormat } from './format';
|
|
|
14
14
|
* @exampleComponent limebb-example-info-tile-unit-format
|
|
15
15
|
* @exampleComponent limebb-example-info-tile-date-format
|
|
16
16
|
* @exampleComponent limebb-example-info-tile-relative-date-format
|
|
17
|
+
* @exampleComponent limebb-example-info-tile-reduce-presence
|
|
17
18
|
* @beta
|
|
18
19
|
*/
|
|
19
20
|
export declare class InfoTile implements LimeWebComponent {
|
|
20
21
|
platform: LimeWebComponentPlatform;
|
|
21
22
|
context: LimeWebComponentContext;
|
|
22
23
|
private host;
|
|
24
|
+
/**
|
|
25
|
+
* The host cast to a plain `HTMLElement` (intersected with
|
|
26
|
+
* `LimeWebComponent` for the context registry). The cast is needed
|
|
27
|
+
* because this component declares a `prefix` prop, which collides with
|
|
28
|
+
* the native `HTMLElement.prefix` attribute (`string | undefined` vs
|
|
29
|
+
* `string | null`), leaving `HTMLLimebbInfoTileElement` and `HTMLElement`
|
|
30
|
+
* mutually unassignable.
|
|
31
|
+
*/
|
|
32
|
+
private get hostElement();
|
|
23
33
|
/**
|
|
24
34
|
* ID of the filter set to use
|
|
25
35
|
*/
|
|
@@ -53,6 +63,35 @@ export declare class InfoTile implements LimeWebComponent {
|
|
|
53
63
|
*/
|
|
54
64
|
aggregateOperator: AggregateOperator;
|
|
55
65
|
format?: NumberFormat | DateTimeFormat | RelativeDateTimeFormat;
|
|
66
|
+
/**
|
|
67
|
+
* When `true`, the info tile is rendered with a reduced visual
|
|
68
|
+
* presence (lower saturation and opacity) so it draws less
|
|
69
|
+
* attention. Use this for tiles whose values are not currently
|
|
70
|
+
* noteworthy — for example, a counter that is zero or a metric that
|
|
71
|
+
* sits within an expected range — so the user is not overwhelmed by
|
|
72
|
+
* a dashboard full of equally-loud tiles.
|
|
73
|
+
*
|
|
74
|
+
* The actual styling lives on `limel-info-tile`; this component
|
|
75
|
+
* just forwards the boolean. Set this directly when the consumer
|
|
76
|
+
* already knows the answer. When the answer depends on the tile's
|
|
77
|
+
* value, set {@link reducedPresenceRule} instead and the tile
|
|
78
|
+
* will compute the boolean itself.
|
|
79
|
+
*/
|
|
80
|
+
reducedPresence?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Rule that drives `reducedPresence` from the tile's loaded value.
|
|
83
|
+
* When set, the tile evaluates it against its `value` after each load
|
|
84
|
+
* and dims itself when the rule is `true`. The {@link reducedPresence}
|
|
85
|
+
* prop still takes effect on top — if either says "dim", the tile dims.
|
|
86
|
+
*
|
|
87
|
+
* Any rule the `RuleRegistry` can compile works. The tile evaluates
|
|
88
|
+
* it against a scope anchored on its host, with the tile's loaded
|
|
89
|
+
* value supplied as `scalarValue`. So primitives reading
|
|
90
|
+
* `scalarValue` — such as `limetech.value-comparison` — see the
|
|
91
|
+
* figure on screen, while any other context the primitive reads
|
|
92
|
+
* resolves from the DOM.
|
|
93
|
+
*/
|
|
94
|
+
reducedPresenceRule?: Rule;
|
|
56
95
|
/**
|
|
57
96
|
* Only used to trigger a re-render when a config is saved in Lime Admin
|
|
58
97
|
*/
|
|
@@ -72,12 +111,22 @@ export declare class InfoTile implements LimeWebComponent {
|
|
|
72
111
|
private loadInfoTileValue;
|
|
73
112
|
private getKey;
|
|
74
113
|
render(): any;
|
|
114
|
+
/**
|
|
115
|
+
* Effective `reducedPresence` for this render. The boolean prop
|
|
116
|
+
* wins if it's set; otherwise the rule is evaluated against the
|
|
117
|
+
* current value. The rule is skipped while loading so the tile
|
|
118
|
+
* doesn't flicker between dimmed and full-presence on its first
|
|
119
|
+
* paint — the load completes within a frame or two and the next
|
|
120
|
+
* render picks up the real value.
|
|
121
|
+
*/
|
|
122
|
+
private shouldReducePresence;
|
|
75
123
|
private getFormattedValue;
|
|
76
124
|
private getLabel;
|
|
77
125
|
private getLink;
|
|
78
126
|
private getFilter;
|
|
79
127
|
private getFormatter;
|
|
80
128
|
private get translator();
|
|
129
|
+
private get ruleRegistry();
|
|
81
130
|
private get language();
|
|
82
131
|
private get loader();
|
|
83
132
|
private registerContextProvider;
|
|
@@ -7,6 +7,14 @@ export interface ChipChild {
|
|
|
7
7
|
isNegated: boolean;
|
|
8
8
|
index: number;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Address of the chip at `index` inside a group: the group's path plus
|
|
12
|
+
* the `['rules', index]` suffix. Built here so the picker and popover
|
|
13
|
+
* address chips the same way.
|
|
14
|
+
* @param groupPath
|
|
15
|
+
* @param index
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildChipPath(groupPath: RulePath, index: number): RulePath;
|
|
10
18
|
/**
|
|
11
19
|
* If `node` is a `ref` or a `not(ref)`, return the underlying ref
|
|
12
20
|
* together with its negation flag. Used to decide whether a child of a
|
|
@@ -4,6 +4,10 @@ import { RuleRegistry } from '@limetech/lime-web-components';
|
|
|
4
4
|
* `limeobject-matches-filter` primitive, so the rule editor renders the
|
|
5
5
|
* filter builder instead of a raw JSON field.
|
|
6
6
|
*
|
|
7
|
+
* No-op when the primitive is not registered. `attachMetadata` throws
|
|
8
|
+
* for an unknown id, and this runs at loader time on every surface, so
|
|
9
|
+
* a missing primitive would otherwise block the whole app from loading.
|
|
10
|
+
*
|
|
7
11
|
* @param registry - the platform's rule registry.
|
|
8
12
|
*/
|
|
9
13
|
export declare const attachRuleArgFilterEditorMetadata: (registry: RuleRegistry) => void;
|
|
@@ -20,6 +20,14 @@ export declare class RuleChipPopover {
|
|
|
20
20
|
readonly: boolean;
|
|
21
21
|
disabled: boolean;
|
|
22
22
|
isMutable: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Forwarded to the embedded config component so it can pull focus
|
|
25
|
+
* when this popover opens. The rule editor sets it only when the chip
|
|
26
|
+
* was just added via the picker, so clicking an existing chip does
|
|
27
|
+
* not steal focus. The component decides when it is ready to receive
|
|
28
|
+
* focus (e.g. after loading its own data).
|
|
29
|
+
*/
|
|
30
|
+
focusOnOpen: boolean;
|
|
23
31
|
negate: EventEmitter<boolean>;
|
|
24
32
|
updateArgs: EventEmitter<JsonValue>;
|
|
25
33
|
deleteChip: EventEmitter<void>;
|
|
@@ -19,6 +19,12 @@ export interface RuleNodeRenderContext {
|
|
|
19
19
|
context: LimeWebComponentContext;
|
|
20
20
|
translator: Translator;
|
|
21
21
|
openChipPath: RulePath | null;
|
|
22
|
+
/**
|
|
23
|
+
* True when the open chip's popover should pull focus into its
|
|
24
|
+
* config component — set only when the chip was just added via the
|
|
25
|
+
* picker (auto-open), not when an existing chip is clicked.
|
|
26
|
+
*/
|
|
27
|
+
focusOnOpen: boolean;
|
|
22
28
|
onDelete: (path: RulePath) => void;
|
|
23
29
|
onUpdateArgs: (path: RulePath, args: JsonValue) => void;
|
|
24
30
|
onReplaceNode: (path: RulePath, replacement: Rule) => void;
|
|
@@ -94,6 +94,7 @@ export declare class RuleEditor implements LimeWebComponent, FormComponent<Rule
|
|
|
94
94
|
private resolvedContext?;
|
|
95
95
|
private issues;
|
|
96
96
|
private openChipPath;
|
|
97
|
+
private focusOnOpen;
|
|
97
98
|
private metadataById;
|
|
98
99
|
private allPrimitiveOptions;
|
|
99
100
|
private availablePrimitiveOptions;
|
|
@@ -119,6 +120,19 @@ export declare class RuleEditor implements LimeWebComponent, FormComponent<Rule
|
|
|
119
120
|
private handleDelete;
|
|
120
121
|
private handleUpdateArgs;
|
|
121
122
|
private handleReplaceNode;
|
|
123
|
+
/**
|
|
124
|
+
* Path of a newly added chip whose primitive declares a config
|
|
125
|
+
* component, so its args editor opens immediately on add. The new
|
|
126
|
+
* ref is found by object identity — the picker reuses existing ref
|
|
127
|
+
* objects and only the added chip is a fresh node — so adding a
|
|
128
|
+
* second instance of a primitive already in the group is still
|
|
129
|
+
* detected. Returns `null` unless exactly one ref was added and it
|
|
130
|
+
* has an editor, leaving the open chip untouched for removals,
|
|
131
|
+
* multi-adds, and negation.
|
|
132
|
+
* @param path
|
|
133
|
+
* @param replacement
|
|
134
|
+
*/
|
|
135
|
+
private autoOpenPathFor;
|
|
122
136
|
private handleChipInteract;
|
|
123
137
|
private handlePopoverClose;
|
|
124
138
|
private indexMetadata;
|
|
@@ -59,4 +59,12 @@ export declare function pathsEqual(a: RulePath, b: RulePath): boolean;
|
|
|
59
59
|
* @param path
|
|
60
60
|
*/
|
|
61
61
|
export declare function issuesAt(issues: RuleValidationIssue[], path: RulePath): RuleValidationIssue[];
|
|
62
|
+
/**
|
|
63
|
+
* Resolve the node at `path` by walking each segment from the root.
|
|
64
|
+
* Returns `undefined` when a segment indexes past the end of a
|
|
65
|
+
* combinator's `rules`, so callers must guard the result.
|
|
66
|
+
* @param rule
|
|
67
|
+
* @param path
|
|
68
|
+
*/
|
|
69
|
+
export declare function getNode(rule: Rule, path: RulePath): Rule | undefined;
|
|
62
70
|
//# sourceMappingURL=rule-operations.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RuleRegistry } from '@limetech/lime-web-components';
|
|
2
|
+
/**
|
|
3
|
+
* Attach `limebb-value-comparison-editor` as the args editor for the
|
|
4
|
+
* `limetech.value-comparison` primitive, so the rule editor renders an
|
|
5
|
+
* operator and operand instead of a raw JSON field. The primitive itself
|
|
6
|
+
* is defined in limeclient.js; this only fills in the `configComponent`
|
|
7
|
+
* that a non-component library cannot reference.
|
|
8
|
+
*
|
|
9
|
+
* @param registry - the platform's rule registry.
|
|
10
|
+
*/
|
|
11
|
+
export declare const attachValueComparisonEditorMetadata: (registry: RuleRegistry) => void;
|
|
12
|
+
//# sourceMappingURL=value-comparison-editor-metadata.d.ts.map
|
package/dist/types/components/rule-editor/value-comparison-editor/value-comparison-editor.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { EventEmitter } from '../../../stencil-public-runtime';
|
|
2
|
+
import { Operator } from '@limetech/lime-web-components';
|
|
3
|
+
import { FormComponent } from '@limetech/lime-elements';
|
|
4
|
+
/**
|
|
5
|
+
* The scalar types the editor emits. A wider set is accepted by the
|
|
6
|
+
* `limetech.value-comparison` primitive, but the editor only needs to
|
|
7
|
+
* distinguish numeric ordering from the case-insensitive string ordering
|
|
8
|
+
* that also sorts ISO date strings correctly.
|
|
9
|
+
*/
|
|
10
|
+
export type ValueComparisonValueType = 'number' | 'string';
|
|
11
|
+
export interface ValueComparisonEditorValue {
|
|
12
|
+
operator?: Operator;
|
|
13
|
+
operand?: string | number;
|
|
14
|
+
valueType?: ValueComparisonValueType;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Args editor for the `limetech.value-comparison` rule primitive: an
|
|
18
|
+
* operator from the match-filter {@link Operator} vocabulary plus the value
|
|
19
|
+
* to compare against. The operand is emitted as a number when it parses as
|
|
20
|
+
* one and as a string otherwise; the `valueType` follows from it so the
|
|
21
|
+
* primitive orders numerically for numbers and lexically for strings (ISO
|
|
22
|
+
* date strings sort correctly that way).
|
|
23
|
+
*
|
|
24
|
+
* Emptiness is a separate concern handled by the `limetech.value-is-empty`
|
|
25
|
+
* primitive, so this editor offers comparison operators only.
|
|
26
|
+
*
|
|
27
|
+
* @alpha
|
|
28
|
+
* @private
|
|
29
|
+
*/
|
|
30
|
+
export declare class ValueComparisonEditor implements FormComponent<ValueComparisonEditorValue> {
|
|
31
|
+
/**
|
|
32
|
+
* @inheritdoc
|
|
33
|
+
*/
|
|
34
|
+
value: ValueComparisonEditorValue;
|
|
35
|
+
/**
|
|
36
|
+
* @inheritdoc
|
|
37
|
+
*/
|
|
38
|
+
change: EventEmitter<ValueComparisonEditorValue>;
|
|
39
|
+
render(): any;
|
|
40
|
+
private renderOperandInput;
|
|
41
|
+
private handleOperatorChange;
|
|
42
|
+
private handleOperandChange;
|
|
43
|
+
private withOperand;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=value-comparison-editor.d.ts.map
|
|
@@ -33,6 +33,7 @@ import { NotificationItem } from "./components/notification-list/notification-it
|
|
|
33
33
|
import { RuleArgFilterEditorValue } from "./components/rule-editor/rule-arg-filter-editor/rule-arg-filter-editor";
|
|
34
34
|
import { TriggerMap } from "./components/text-editor/text-editor.types";
|
|
35
35
|
import { EnhancedEditorMetadata } from "./components/text-editor/uploader/building-blocks-upload-handler";
|
|
36
|
+
import { ValueComparisonEditorValue } from "./components/rule-editor/value-comparison-editor/value-comparison-editor";
|
|
36
37
|
export { AlertType } from "./components/alert-dialog/alert-dialog.types";
|
|
37
38
|
export { AggregateOperator, ContextMap, ContextScope, Expression, JsonValue, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator, PrimitiveMetadata, Rule, RuleRef } from "@limetech/lime-web-components";
|
|
38
39
|
export { BrowserItem } from "./components/browser/browser-item.types";
|
|
@@ -61,6 +62,7 @@ export { NotificationItem } from "./components/notification-list/notification-it
|
|
|
61
62
|
export { RuleArgFilterEditorValue } from "./components/rule-editor/rule-arg-filter-editor/rule-arg-filter-editor";
|
|
62
63
|
export { TriggerMap } from "./components/text-editor/text-editor.types";
|
|
63
64
|
export { EnhancedEditorMetadata } from "./components/text-editor/uploader/building-blocks-upload-handler";
|
|
65
|
+
export { ValueComparisonEditorValue } from "./components/rule-editor/value-comparison-editor/value-comparison-editor";
|
|
64
66
|
export namespace Components {
|
|
65
67
|
/**
|
|
66
68
|
* An alert dialog interrupts the user flow. It can be used when an explicit
|
|
@@ -1069,6 +1071,7 @@ export namespace Components {
|
|
|
1069
1071
|
* @exampleComponent limebb-example-info-tile-unit-format
|
|
1070
1072
|
* @exampleComponent limebb-example-info-tile-date-format
|
|
1071
1073
|
* @exampleComponent limebb-example-info-tile-relative-date-format
|
|
1074
|
+
* @exampleComponent limebb-example-info-tile-reduce-presence
|
|
1072
1075
|
* @beta
|
|
1073
1076
|
*/
|
|
1074
1077
|
interface LimebbInfoTile {
|
|
@@ -1110,6 +1113,14 @@ export namespace Components {
|
|
|
1110
1113
|
* Name of the property to use when aggregating
|
|
1111
1114
|
*/
|
|
1112
1115
|
"propertyName": string;
|
|
1116
|
+
/**
|
|
1117
|
+
* When `true`, the info tile is rendered with a reduced visual presence (lower saturation and opacity) so it draws less attention. Use this for tiles whose values are not currently noteworthy — for example, a counter that is zero or a metric that sits within an expected range — so the user is not overwhelmed by a dashboard full of equally-loud tiles. The actual styling lives on `limel-info-tile`; this component just forwards the boolean. Set this directly when the consumer already knows the answer. When the answer depends on the tile's value, set {@link reducedPresenceRule} instead and the tile will compute the boolean itself.
|
|
1118
|
+
*/
|
|
1119
|
+
"reducedPresence"?: boolean;
|
|
1120
|
+
/**
|
|
1121
|
+
* Rule that drives `reducedPresence` from the tile's loaded value. When set, the tile evaluates it against its `value` after each load and dims itself when the rule is `true`. The {@link reducedPresence} prop still takes effect on top — if either says "dim", the tile dims. Any rule the `RuleRegistry` can compile works. The tile evaluates it against a scope anchored on its host, with the tile's loaded value supplied as `scalarValue`. So primitives reading `scalarValue` — such as `limetech.value-comparison` — see the figure on screen, while any other context the primitive reads resolves from the DOM.
|
|
1122
|
+
*/
|
|
1123
|
+
"reducedPresenceRule"?: Rule;
|
|
1113
1124
|
/**
|
|
1114
1125
|
* A string of text that is visually placed after the value.
|
|
1115
1126
|
*/
|
|
@@ -2258,6 +2269,11 @@ export namespace Components {
|
|
|
2258
2269
|
* @default false
|
|
2259
2270
|
*/
|
|
2260
2271
|
"disabled": boolean;
|
|
2272
|
+
/**
|
|
2273
|
+
* Forwarded to the embedded config component so it can pull focus when this popover opens. The rule editor sets it only when the chip was just added via the picker, so clicking an existing chip does not steal focus. The component decides when it is ready to receive focus (e.g. after loading its own data).
|
|
2274
|
+
* @default false
|
|
2275
|
+
*/
|
|
2276
|
+
"focusOnOpen": boolean;
|
|
2261
2277
|
/**
|
|
2262
2278
|
* @default true
|
|
2263
2279
|
*/
|
|
@@ -2684,6 +2700,26 @@ export namespace Components {
|
|
|
2684
2700
|
*/
|
|
2685
2701
|
interface LimebbTypingIndicator {
|
|
2686
2702
|
}
|
|
2703
|
+
/**
|
|
2704
|
+
* Args editor for the `limetech.value-comparison` rule primitive: an
|
|
2705
|
+
* operator from the match-filter {@link Operator} vocabulary plus the value
|
|
2706
|
+
* to compare against. The operand is emitted as a number when it parses as
|
|
2707
|
+
* one and as a string otherwise; the `valueType` follows from it so the
|
|
2708
|
+
* primitive orders numerically for numbers and lexically for strings (ISO
|
|
2709
|
+
* date strings sort correctly that way).
|
|
2710
|
+
* Emptiness is a separate concern handled by the `limetech.value-is-empty`
|
|
2711
|
+
* primitive, so this editor offers comparison operators only.
|
|
2712
|
+
* @alpha
|
|
2713
|
+
* @private
|
|
2714
|
+
*/
|
|
2715
|
+
interface LimebbValueComparisonEditor {
|
|
2716
|
+
/**
|
|
2717
|
+
* The value of the current property
|
|
2718
|
+
* @inheritdoc
|
|
2719
|
+
* @default {}
|
|
2720
|
+
*/
|
|
2721
|
+
"value": ValueComparisonEditorValue;
|
|
2722
|
+
}
|
|
2687
2723
|
}
|
|
2688
2724
|
export interface LimebbAlertDialogCustomEvent<T> extends CustomEvent<T> {
|
|
2689
2725
|
detail: T;
|
|
@@ -2877,6 +2913,10 @@ export interface LimebbTextEditorPickerCustomEvent<T> extends CustomEvent<T> {
|
|
|
2877
2913
|
detail: T;
|
|
2878
2914
|
target: HTMLLimebbTextEditorPickerElement;
|
|
2879
2915
|
}
|
|
2916
|
+
export interface LimebbValueComparisonEditorCustomEvent<T> extends CustomEvent<T> {
|
|
2917
|
+
detail: T;
|
|
2918
|
+
target: HTMLLimebbValueComparisonEditorElement;
|
|
2919
|
+
}
|
|
2880
2920
|
declare global {
|
|
2881
2921
|
interface HTMLLimebbAlertDialogElementEventMap {
|
|
2882
2922
|
"dismiss": void;
|
|
@@ -3499,6 +3539,7 @@ declare global {
|
|
|
3499
3539
|
* @exampleComponent limebb-example-info-tile-unit-format
|
|
3500
3540
|
* @exampleComponent limebb-example-info-tile-date-format
|
|
3501
3541
|
* @exampleComponent limebb-example-info-tile-relative-date-format
|
|
3542
|
+
* @exampleComponent limebb-example-info-tile-reduce-presence
|
|
3502
3543
|
* @beta
|
|
3503
3544
|
*/
|
|
3504
3545
|
interface HTMLLimebbInfoTileElement extends Components.LimebbInfoTile, HTMLStencilElement {
|
|
@@ -4665,6 +4706,35 @@ declare global {
|
|
|
4665
4706
|
prototype: HTMLLimebbTypingIndicatorElement;
|
|
4666
4707
|
new (): HTMLLimebbTypingIndicatorElement;
|
|
4667
4708
|
};
|
|
4709
|
+
interface HTMLLimebbValueComparisonEditorElementEventMap {
|
|
4710
|
+
"change": ValueComparisonEditorValue;
|
|
4711
|
+
}
|
|
4712
|
+
/**
|
|
4713
|
+
* Args editor for the `limetech.value-comparison` rule primitive: an
|
|
4714
|
+
* operator from the match-filter {@link Operator} vocabulary plus the value
|
|
4715
|
+
* to compare against. The operand is emitted as a number when it parses as
|
|
4716
|
+
* one and as a string otherwise; the `valueType` follows from it so the
|
|
4717
|
+
* primitive orders numerically for numbers and lexically for strings (ISO
|
|
4718
|
+
* date strings sort correctly that way).
|
|
4719
|
+
* Emptiness is a separate concern handled by the `limetech.value-is-empty`
|
|
4720
|
+
* primitive, so this editor offers comparison operators only.
|
|
4721
|
+
* @alpha
|
|
4722
|
+
* @private
|
|
4723
|
+
*/
|
|
4724
|
+
interface HTMLLimebbValueComparisonEditorElement extends Components.LimebbValueComparisonEditor, HTMLStencilElement {
|
|
4725
|
+
addEventListener<K extends keyof HTMLLimebbValueComparisonEditorElementEventMap>(type: K, listener: (this: HTMLLimebbValueComparisonEditorElement, ev: LimebbValueComparisonEditorCustomEvent<HTMLLimebbValueComparisonEditorElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4726
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4727
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4728
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
4729
|
+
removeEventListener<K extends keyof HTMLLimebbValueComparisonEditorElementEventMap>(type: K, listener: (this: HTMLLimebbValueComparisonEditorElement, ev: LimebbValueComparisonEditorCustomEvent<HTMLLimebbValueComparisonEditorElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
4730
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4731
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4732
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
4733
|
+
}
|
|
4734
|
+
var HTMLLimebbValueComparisonEditorElement: {
|
|
4735
|
+
prototype: HTMLLimebbValueComparisonEditorElement;
|
|
4736
|
+
new (): HTMLLimebbValueComparisonEditorElement;
|
|
4737
|
+
};
|
|
4668
4738
|
interface HTMLElementTagNameMap {
|
|
4669
4739
|
"limebb-alert-dialog": HTMLLimebbAlertDialogElement;
|
|
4670
4740
|
"limebb-browser": HTMLLimebbBrowserElement;
|
|
@@ -4734,6 +4804,7 @@ declare global {
|
|
|
4734
4804
|
"limebb-text-editor-picker": HTMLLimebbTextEditorPickerElement;
|
|
4735
4805
|
"limebb-trend-indicator": HTMLLimebbTrendIndicatorElement;
|
|
4736
4806
|
"limebb-typing-indicator": HTMLLimebbTypingIndicatorElement;
|
|
4807
|
+
"limebb-value-comparison-editor": HTMLLimebbValueComparisonEditorElement;
|
|
4737
4808
|
}
|
|
4738
4809
|
}
|
|
4739
4810
|
declare namespace LocalJSX {
|
|
@@ -5818,6 +5889,7 @@ declare namespace LocalJSX {
|
|
|
5818
5889
|
* @exampleComponent limebb-example-info-tile-unit-format
|
|
5819
5890
|
* @exampleComponent limebb-example-info-tile-date-format
|
|
5820
5891
|
* @exampleComponent limebb-example-info-tile-relative-date-format
|
|
5892
|
+
* @exampleComponent limebb-example-info-tile-reduce-presence
|
|
5821
5893
|
* @beta
|
|
5822
5894
|
*/
|
|
5823
5895
|
interface LimebbInfoTile {
|
|
@@ -5859,6 +5931,14 @@ declare namespace LocalJSX {
|
|
|
5859
5931
|
* Name of the property to use when aggregating
|
|
5860
5932
|
*/
|
|
5861
5933
|
"propertyName"?: string;
|
|
5934
|
+
/**
|
|
5935
|
+
* When `true`, the info tile is rendered with a reduced visual presence (lower saturation and opacity) so it draws less attention. Use this for tiles whose values are not currently noteworthy — for example, a counter that is zero or a metric that sits within an expected range — so the user is not overwhelmed by a dashboard full of equally-loud tiles. The actual styling lives on `limel-info-tile`; this component just forwards the boolean. Set this directly when the consumer already knows the answer. When the answer depends on the tile's value, set {@link reducedPresenceRule} instead and the tile will compute the boolean itself.
|
|
5936
|
+
*/
|
|
5937
|
+
"reducedPresence"?: boolean;
|
|
5938
|
+
/**
|
|
5939
|
+
* Rule that drives `reducedPresence` from the tile's loaded value. When set, the tile evaluates it against its `value` after each load and dims itself when the rule is `true`. The {@link reducedPresence} prop still takes effect on top — if either says "dim", the tile dims. Any rule the `RuleRegistry` can compile works. The tile evaluates it against a scope anchored on its host, with the tile's loaded value supplied as `scalarValue`. So primitives reading `scalarValue` — such as `limetech.value-comparison` — see the figure on screen, while any other context the primitive reads resolves from the DOM.
|
|
5940
|
+
*/
|
|
5941
|
+
"reducedPresenceRule"?: Rule;
|
|
5862
5942
|
/**
|
|
5863
5943
|
* A string of text that is visually placed after the value.
|
|
5864
5944
|
*/
|
|
@@ -7127,6 +7207,11 @@ declare namespace LocalJSX {
|
|
|
7127
7207
|
* @default false
|
|
7128
7208
|
*/
|
|
7129
7209
|
"disabled"?: boolean;
|
|
7210
|
+
/**
|
|
7211
|
+
* Forwarded to the embedded config component so it can pull focus when this popover opens. The rule editor sets it only when the chip was just added via the picker, so clicking an existing chip does not steal focus. The component decides when it is ready to receive focus (e.g. after loading its own data).
|
|
7212
|
+
* @default false
|
|
7213
|
+
*/
|
|
7214
|
+
"focusOnOpen"?: boolean;
|
|
7130
7215
|
/**
|
|
7131
7216
|
* @default true
|
|
7132
7217
|
*/
|
|
@@ -7577,6 +7662,31 @@ declare namespace LocalJSX {
|
|
|
7577
7662
|
*/
|
|
7578
7663
|
interface LimebbTypingIndicator {
|
|
7579
7664
|
}
|
|
7665
|
+
/**
|
|
7666
|
+
* Args editor for the `limetech.value-comparison` rule primitive: an
|
|
7667
|
+
* operator from the match-filter {@link Operator} vocabulary plus the value
|
|
7668
|
+
* to compare against. The operand is emitted as a number when it parses as
|
|
7669
|
+
* one and as a string otherwise; the `valueType` follows from it so the
|
|
7670
|
+
* primitive orders numerically for numbers and lexically for strings (ISO
|
|
7671
|
+
* date strings sort correctly that way).
|
|
7672
|
+
* Emptiness is a separate concern handled by the `limetech.value-is-empty`
|
|
7673
|
+
* primitive, so this editor offers comparison operators only.
|
|
7674
|
+
* @alpha
|
|
7675
|
+
* @private
|
|
7676
|
+
*/
|
|
7677
|
+
interface LimebbValueComparisonEditor {
|
|
7678
|
+
/**
|
|
7679
|
+
* The event to emit when the value of the current property has changed
|
|
7680
|
+
* @inheritdoc
|
|
7681
|
+
*/
|
|
7682
|
+
"onChange"?: (event: LimebbValueComparisonEditorCustomEvent<ValueComparisonEditorValue>) => void;
|
|
7683
|
+
/**
|
|
7684
|
+
* The value of the current property
|
|
7685
|
+
* @inheritdoc
|
|
7686
|
+
* @default {}
|
|
7687
|
+
*/
|
|
7688
|
+
"value"?: ValueComparisonEditorValue;
|
|
7689
|
+
}
|
|
7580
7690
|
|
|
7581
7691
|
interface LimebbAlertDialogAttributes {
|
|
7582
7692
|
"type": AlertType;
|
|
@@ -7724,6 +7834,7 @@ declare namespace LocalJSX {
|
|
|
7724
7834
|
"suffix": string;
|
|
7725
7835
|
"propertyName": string;
|
|
7726
7836
|
"aggregateOperator": AggregateOperator;
|
|
7837
|
+
"reducedPresence": boolean;
|
|
7727
7838
|
}
|
|
7728
7839
|
interface LimebbInfoTileFormatAttributes {
|
|
7729
7840
|
"type": 'number' | 'date' | 'none';
|
|
@@ -7863,6 +7974,7 @@ declare namespace LocalJSX {
|
|
|
7863
7974
|
"readonly": boolean;
|
|
7864
7975
|
"disabled": boolean;
|
|
7865
7976
|
"isMutable": boolean;
|
|
7977
|
+
"focusOnOpen": boolean;
|
|
7866
7978
|
}
|
|
7867
7979
|
interface LimebbRuleEditorAttributes {
|
|
7868
7980
|
"required": boolean;
|
|
@@ -7983,6 +8095,7 @@ declare namespace LocalJSX {
|
|
|
7983
8095
|
"limebb-text-editor-picker": Omit<LimebbTextEditorPicker, keyof LimebbTextEditorPickerAttributes> & { [K in keyof LimebbTextEditorPicker & keyof LimebbTextEditorPickerAttributes]?: LimebbTextEditorPicker[K] } & { [K in keyof LimebbTextEditorPicker & keyof LimebbTextEditorPickerAttributes as `attr:${K}`]?: LimebbTextEditorPickerAttributes[K] } & { [K in keyof LimebbTextEditorPicker & keyof LimebbTextEditorPickerAttributes as `prop:${K}`]?: LimebbTextEditorPicker[K] };
|
|
7984
8096
|
"limebb-trend-indicator": Omit<LimebbTrendIndicator, keyof LimebbTrendIndicatorAttributes> & { [K in keyof LimebbTrendIndicator & keyof LimebbTrendIndicatorAttributes]?: LimebbTrendIndicator[K] } & { [K in keyof LimebbTrendIndicator & keyof LimebbTrendIndicatorAttributes as `attr:${K}`]?: LimebbTrendIndicatorAttributes[K] } & { [K in keyof LimebbTrendIndicator & keyof LimebbTrendIndicatorAttributes as `prop:${K}`]?: LimebbTrendIndicator[K] };
|
|
7985
8097
|
"limebb-typing-indicator": LimebbTypingIndicator;
|
|
8098
|
+
"limebb-value-comparison-editor": LimebbValueComparisonEditor;
|
|
7986
8099
|
}
|
|
7987
8100
|
}
|
|
7988
8101
|
export { LocalJSX as JSX };
|
|
@@ -8337,6 +8450,7 @@ declare module "@stencil/core" {
|
|
|
8337
8450
|
* @exampleComponent limebb-example-info-tile-unit-format
|
|
8338
8451
|
* @exampleComponent limebb-example-info-tile-date-format
|
|
8339
8452
|
* @exampleComponent limebb-example-info-tile-relative-date-format
|
|
8453
|
+
* @exampleComponent limebb-example-info-tile-reduce-presence
|
|
8340
8454
|
* @beta
|
|
8341
8455
|
*/
|
|
8342
8456
|
"limebb-info-tile": LocalJSX.IntrinsicElements["limebb-info-tile"] & JSXBase.HTMLAttributes<HTMLLimebbInfoTileElement>;
|
|
@@ -8899,6 +9013,19 @@ declare module "@stencil/core" {
|
|
|
8899
9013
|
* @private
|
|
8900
9014
|
*/
|
|
8901
9015
|
"limebb-typing-indicator": LocalJSX.IntrinsicElements["limebb-typing-indicator"] & JSXBase.HTMLAttributes<HTMLLimebbTypingIndicatorElement>;
|
|
9016
|
+
/**
|
|
9017
|
+
* Args editor for the `limetech.value-comparison` rule primitive: an
|
|
9018
|
+
* operator from the match-filter {@link Operator} vocabulary plus the value
|
|
9019
|
+
* to compare against. The operand is emitted as a number when it parses as
|
|
9020
|
+
* one and as a string otherwise; the `valueType` follows from it so the
|
|
9021
|
+
* primitive orders numerically for numbers and lexically for strings (ISO
|
|
9022
|
+
* date strings sort correctly that way).
|
|
9023
|
+
* Emptiness is a separate concern handled by the `limetech.value-is-empty`
|
|
9024
|
+
* primitive, so this editor offers comparison operators only.
|
|
9025
|
+
* @alpha
|
|
9026
|
+
* @private
|
|
9027
|
+
*/
|
|
9028
|
+
"limebb-value-comparison-editor": LocalJSX.IntrinsicElements["limebb-value-comparison-editor"] & JSXBase.HTMLAttributes<HTMLLimebbValueComparisonEditorElement>;
|
|
8902
9029
|
}
|
|
8903
9030
|
}
|
|
8904
9031
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@limetech/lime-crm-building-blocks",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.135.0",
|
|
4
4
|
"description": "A home for shared components meant for use with Lime CRM",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@limetech/eslint-config": "^4.0.1",
|
|
38
|
-
"@limetech/lime-elements": "^39.
|
|
39
|
-
"@limetech/lime-web-components": "^6.
|
|
38
|
+
"@limetech/lime-elements": "^39.33.1",
|
|
39
|
+
"@limetech/lime-web-components": "^6.25.0",
|
|
40
40
|
"@lundalogik/lime-icons8": "^2.41.0",
|
|
41
|
-
"@lundalogik/limeclient.js": "^1.
|
|
41
|
+
"@lundalogik/limeclient.js": "^1.107.0",
|
|
42
42
|
"@stencil/core": "^4.43.4",
|
|
43
43
|
"@stencil/sass": "^3.1.9",
|
|
44
44
|
"@types/jest": "^29.5.14",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,c as i,h as e}from"./p-DYpn0EkA.js";import{b as s}from"./p-CqRNpSRV.js";const h=class{constructor(e){t(this,e),this.change=i(this,"change"),this.disabled=!1,this.readonly=!1,this.invalid=!1,this.required=!1,this.type="datetime",this.shouldEmitValueAsString=!0,this.handleChange=t=>{if(!t.detail)return;t.stopPropagation();const i=(e=t.detail,"datetime"===(s=this.type)||"time"===s?e:new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())));var e,s;this.change.emit(this.shouldEmitValueAsString?i.toISOString():i)},this.formatter=t=>this.dateTimeFormatter.format(t,r[this.type]||this.type)}render(){return this.language||(this.language=this.getAppLanguage()),this.value&&(this.shouldEmitValueAsString="string"==typeof this.value),e("limel-date-picker",{key:"03fcd4817bc780ed9869e07351b2fc20008af09d",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})}parseDateValue(){const t=this.value;if(t)return this.dateTimeFormatter.parse(t,r[this.type]||this.type)}get dateTimeFormatter(){return this.platform.get(s.DateTimeFormatter)}getAppLanguage(){const t=this.platform.get(s.Translate),i=this.platform.get(s.Application);let e;var h;return e="function"==typeof(null==(h=t)?void 0:h.getLanguage)?t.getLanguage():i.getLanguage(),n(e)?e:"en"}},r={datetime:"time",time:"timeofday"},a=new Set(["da","de","en","fi","fr","nb","no","nl","sv"]),n=t=>a.has(t);export{h as limebb_date_picker}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,c as t,h as o}from"./p-DYpn0EkA.js";import{T as r,b as i}from"./p-CqRNpSRV.js";import{L as s}from"./p-BKtEmDNs.js";const a=class{constructor(o){e(this,o),this.negate=t(this,"negate"),this.updateArgs=t(this,"updateArgs"),this.deleteChip=t(this,"deleteChip"),this.isNegated=!1,this.readonly=!1,this.disabled=!1,this.isMutable=!0,this.handleNegateChange=e=>{e.stopPropagation(),this.negate.emit(e.detail)},this.handleArgsChange=e=>{e.stopPropagation(),this.updateArgs.emit(e.detail)},this.handleDelete=()=>{this.deleteChip.emit()}}render(){return o("div",{key:"ca7901be2a99590faddea0c678d149b13b5d564f",class:"popover"},this.renderHeader(),this.renderBody())}renderHeader(){var e,t,r,i;const s=(null===(e=this.metadata)||void 0===e?void 0:e.title)?this.translator.get(this.metadata.title):null!==(r=null===(t=this.refNode)||void 0===t?void 0:t.id)&&void 0!==r?r:"";return o("limel-header",{class:"popover__header is-narrow",heading:s,icon:null===(i=this.metadata)||void 0===i?void 0:i.icon},this.renderHeaderActions())}renderHeaderActions(){return this.isMutable?o("div",{slot:"actions",class:"popover__header-actions"},o("limel-switch",{class:"popover__negate-switch",label:this.translator.get("webclient.rule-editor.negate"),value:this.isNegated,onChange:this.handleNegateChange}),o("limel-icon-button",{class:"popover__delete-button",icon:"trash",label:this.translator.get("webclient.rule-editor.delete"),onClick:this.handleDelete})):null}get translator(){return this.platform.get(i.Translate)}renderBody(){var e,t;const r=null===(e=this.metadata)||void 0===e?void 0:e.configComponent;return r?o("div",{class:"popover__body"},o(s,{platform:this.platform,context:this.context,name:r.name,props:Object.assign(Object.assign({},r.props),{value:null===(t=this.refNode)||void 0===t?void 0:t.args,readonly:this.readonly,disabled:this.disabled,onChange:this.handleArgsChange})})):null}};(function(e,t,o,r){var i,s=arguments.length,a=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,o,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(a=(s<3?i(a):s>3?i(t,o,a):i(t,o))||a);s>3&&a&&Object.defineProperty(t,o,a)})([r("context")],a.prototype,"context",void 0),a.style=":host{display:block}.popover{display:flex;flex-direction:column;min-width:24rem;background-color:rgb(var(--contrast-100));border:1px solid rgb(var(--contrast-700));border-radius:0.5rem;box-shadow:0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);overflow:hidden}.popover__header{--header-background-color:rgba(var(--contrast-300));padding-right:0.5rem;gap:1rem}.popover__header-actions{display:grid;grid-auto-flow:column;grid-gap:0.75rem;padding:0.25rem;align-items:center}.popover__delete-button{color:rgb(var(--contrast-1100))}.popover__body{padding:1rem}";export{a as limebb_rule_chip_popover}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,c as e}from"./p-DYpn0EkA.js";import{H as o,b as c}from"./p-CqRNpSRV.js";import{H as i}from"./p-BWMpG2bS.js";let s=class{constructor(t){this.itemId=t}};s=function(t,e,o,c){var i,s=arguments.length,l=s<3?e:null===c?c=Object.getOwnPropertyDescriptor(e,o):c;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(t,e,o,c);else for(var n=t.length-1;n>=0;n--)(i=t[n])&&(l=(s<3?i(l):s>3?i(e,o,l):i(e,o))||l);return s>3&&l&&Object.defineProperty(e,o,l),l}([o({id:"limebb-feed.highlight-item"})],s);const l=class{constructor(o){t(this,o),this.loaded=e(this,"loaded")}connectedCallback(){}async componentWillLoad(){const t=new i;this.platform.register(i.SERVICE_NAME,t),this.commandBus.register(s,t),this.platform.get(c.RuleRegistry).attachMetadata("limetech.limeobject-matches-filter",{configComponent:{name:"limebb-rule-arg-filter-editor"}}),this.loaded.emit()}componentWillUpdate(){}disconnectedCallback(){}get commandBus(){return this.platform.get(c.CommandBus)}};export{l as limebb_loader}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,h as e,H as s,g as i}from"./p-DYpn0EkA.js";import{b as o}from"./p-CqRNpSRV.js";const h=class{constructor(e){t(this,e),this.shouldRender=!1}componentWillLoad(){this.compileAndEvaluate()}onRuleChange(){this.compileAndEvaluate()}onScopeChange(){this.compileAndEvaluate()}render(){return e(s,{key:"8fe8b9fad90211b80b4672563f6d599ce1cb11c3",hidden:!this.shouldRender},e("slot",{key:"f434d25308b85fd084d369ccf2b0e22bd3513210"}))}get ruleRegistry(){return this.platform.get(o.RuleRegistry)}compileAndEvaluate(){var t;if(this.rule)try{const e=this.ruleRegistry.compile(this.rule),s=null!==(t=this.scope)&&void 0!==t?t:this.ruleRegistry.scope({host:this.host});this.shouldRender=e(s)}catch(t){console.warn("rule-gate failed to compile rule; hiding slot",{rule:this.rule,error:t}),this.shouldRender=!1}else this.shouldRender=!0}get host(){return i(this)}static get watchers(){return{rule:[{onRuleChange:0}],scope:[{onScopeChange:0}]}}};h.style=":host{display:block}:host([hidden]){display:none}";export{h as limebb_rule_gate}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as e,r as t,c as n,g as r}from"./p-DYpn0EkA.js";import{O as i,b as o}from"./p-CqRNpSRV.js";function l(e,t){return t?{type:"not",rule:e}:e}function s(e,t){return e.length===t.length&&e.every(((e,n)=>e===t[n]))}function a(e,t){return e.filter((e=>s(e.path,t)))}function u(e,t){let n=e;for(const e of t)n=d(n,e);return n}function c(e,t,n){if(0===t.length)return n;const[r,...i]=t;if("not"===e.type&&"rule"===r)return Object.assign(Object.assign({},e),{rule:c(e.rule,i,n)});if(("all"===e.type||"any"===e.type)&&"rules"===r){if(0===i.length)return n;const[t,...r]=i;if("number"!=typeof t)return e;const o=[...e.rules];return o[t]=c(o[t],r,n),Object.assign(Object.assign({},e),{rules:o})}return e}function d(e,t){return"not"===e.type&&"rule"===t?e.rule:"all"!==e.type&&"any"!==e.type||"rules"!==t?"all"!==e.type&&"any"!==e.type||"number"!=typeof t?e:e.rules[t]:e}const h={name:"question",color:"rgb(var(--color-glaucous-light))"};function p(e,t){return[...e.values()].map((e=>({value:e.id,text:e.title?t.get(e.title):e.id,secondaryText:e.description?t.get(e.description):"",icon:e.icon}))).sort(((e,t)=>e.text.localeCompare(t.text)))}function f(e,t){return e.reads.every((e=>t.has(e)))}function b(e){return`__chip__:${e}`}function v(e){return"ref"===e.type?{ref:e,isNegated:!1}:"not"===e.type&&"ref"===e.rule.type?{ref:e.rule,isNegated:!0}:null}const m=({groupNode:t,groupPath:n,chipChildren:r,ctx:i})=>{const o=new Map,l=r.map((e=>{const t=b(e.index);o.set(t,e);const n=(r=e.ref.id,null!==(l=i.allPrimitiveOptions.find((e=>e.value===r)))&&void 0!==l?l:{value:r,text:r,icon:h});var r,l;return Object.assign(Object.assign({},n),{text:e.isNegated?`¬ ${n.text}`:n.text,value:t})})),s=(a=i.availablePrimitiveOptions,e=>Promise.resolve(function(e,t){if(!t)return e;const n=t.toLocaleLowerCase().split(/\s+/);return e.filter((e=>n.every((t=>{var n,r;return e.text.toLocaleLowerCase().includes(t)||(null===(n=e.secondaryText)||void 0===n?void 0:n.toLocaleLowerCase().includes(t))||(null===(r=e.value)||void 0===r?void 0:r.toLocaleLowerCase().includes(t))}))))}(a,e)));var a;const u=function(e,t,n){var r;const i=C(t,n);return null===i?null:null!==(r=e.find((e=>e.index===i)))&&void 0!==r?r:null}(r,n,i.openChipPath),c="all"===t.type?"&":"|";return e("limel-popover",{class:"rule-node__chips-popover",open:null!==u,openDirection:"bottom-start",onClose:i.onPopoverClose},e("div",{slot:"trigger",class:"rule-node__chips"},e("limel-picker",{multiple:!0,label:i.translator.get("webclient.rule-editor.rules-label"),value:l,searcher:s,delimiter:c,readonly:i.readonly,disabled:i.disabled,onChange:g(t,n,o,i),onInteract:_(n,o,i)})),e("div",null,function(t,n,r){if(!t)return null;const i=function(e,t){return[...e,"rules",t]}(n,t.index);return e("limebb-rule-chip-popover",{platform:r.platform,context:r.context,refNode:t.ref,isNegated:t.isNegated,metadata:r.metadataById.get(t.ref.id),readonly:r.readonly,disabled:r.disabled,isMutable:r.isMutable,onNegate:y(t,i,r),onUpdateArgs:x(t,i,r),onDeleteChip:j(i,r)})}(u,n,i)))},g=(e,t,n,r)=>i=>{i.stopPropagation();const o=Array.isArray(i.detail)?i.detail:[],l=C(t,r.openChipPath);if(null!==l){const e=b(l);o.every((t=>t.value!==e))&&r.onPopoverClose()}const s=o.flatMap((e=>{if("string"!=typeof e.value)return[];const t=n.get(e.value);return t?[t.isNegated?{type:"not",rule:t.ref}:t.ref]:[{type:"ref",id:e.value}]})),a=e.rules.filter((e=>null===v(e)));r.onReplaceNode(t,Object.assign(Object.assign({},e),{rules:[...s,...a]}))},_=(e,t,n)=>r=>{r.stopPropagation();const i=function(e){if("string"==typeof e)return e;if(e&&"object"==typeof e&&"value"in e){const t=e.value;return"string"==typeof t?t:void 0}}(r.detail),o=i?t.get(i):void 0;o&&n.onChipInteract([...e,"rules",o.index])},y=(e,t,n)=>r=>{r.stopPropagation(),n.onReplaceNode(t,r.detail?{type:"not",rule:e.ref}:e.ref)},x=(e,t,n)=>r=>{r.stopPropagation();const i=e.isNegated?[...t,"rule"]:t;n.onUpdateArgs(i,r.detail)},j=(e,t)=>()=>{t.onDelete(e)};function C(e,t){if(!t||t.length<2)return null;if(!s((n=t,n.slice(0,-2)),e))return null;var n;const r=t.at(-1);return"number"==typeof r?r:null}const O=({node:t,path:n,isNegated:r,ctx:i})=>{const o=r?[...n,"rule"]:n,l=r?[...a(i.issues,n),...a(i.issues,o)]:a(i.issues,n),s=[],u=[];for(const[e,n]of t.rules.entries()){const t=v(n);t?s.push(Object.assign(Object.assign({},t),{index:e})):u.push({child:n,index:e})}const c=function(e){return[{value:"all",text:e.translator.get("webclient.rule-editor.combinator.all")},{value:"any",text:e.translator.get("webclient.rule-editor.combinator.any")}]}(i),d=c.find((e=>e.value===t.type));return e("div",{class:(h=t.type,p=l,{"rule-node":!0,[`rule-node--${h}`]:!0,"rule-node--invalid":p.length>0}),key:w(n)},e("div",{class:"rule-node__header"},e("limel-select",{class:"rule-node__combinator-select",value:d,options:c,disabled:!i.isMutable,onChange:k(t,n,r,i)}),function(t,n,r,i){return i.isMutable?e("div",{class:"rule-node__header-actions"},e("limel-switch",{class:"rule-node__negate-switch",label:i.translator.get("webclient.rule-editor.negate"),value:r,onChange:M(t,n,i)}),e("limel-icon-button",{icon:"trash",label:i.translator.get("webclient.rule-editor.delete"),onClick:()=>i.onDelete(n)})):null}(t,n,r,i)),e("div",{class:"rule-node__body"},e(D,{issues:l}),e(m,{groupNode:t,groupPath:o,chipChildren:s,ctx:i}),function(t,n,r){return 0===t.length?null:e("div",{class:"rule-node__children"},t.map((t=>e(P,{node:t.child,path:[...n,"rules",t.index],ctx:r}))))}(u,o,i),function(t,n,r,i){return i.isMutable?e("div",{class:"rule-node__footer"},e("limel-button",{icon:"add",label:i.translator.get("webclient.rule-editor.add-nested-group"),onClick:R(t,n,r,i)})):null}(t,n,r,i)));var h,p};function w(e){return 0===e.length?"root":e.join("/")}function N(e,t,n,r){r.onReplaceNode(t,l(e,n))}const k=(e,t,n,r)=>i=>{i.stopPropagation();const o=i.detail.value;o!==e.type&&N(Object.assign(Object.assign({},e),{type:o}),t,n,r)},R=(e,t,n,r)=>()=>{var i,o;N((i=e,o={type:"all",rules:[]},Object.assign(Object.assign({},i),{rules:[...i.rules,o]})),t,n,r)},M=(e,t,n)=>r=>{r.stopPropagation(),n.onReplaceNode(t,l(e,r.detail))},P=t=>{const{node:n,path:r,ctx:i}=t,o=z(n);return o?e(O,{node:o.node,path:r,isNegated:o.isNegated,ctx:i}):null},A=e=>"not"===e.type&&("all"===e.rule.type||"any"===e.rule.type);function z(e){if("all"===e.type||"any"===e.type)return{node:e,isNegated:!1};if(A(e))return{node:e.rule,isNegated:!0};if("not"===e.type){const t=z(e.rule);if(t)return{node:t.node,isNegated:!t.isNegated}}return null}const D=({issues:t})=>0===t.length?null:t.map((t=>e("div",{class:"rule-node__issue"},t.message)));const V=class{constructor(e){t(this,e),this.change=n(this,"change"),this.issues=[],this.openChipPath=null,this.metadataById=new Map,this.allPrimitiveOptions=[],this.availablePrimitiveOptions=[],this.reachableSlots=new Set,this.normalizedCache=null,this.hasLoaded=!1,this.handleDelete=e=>{this.openChipPath=null,this.emitIfChanged(function(e,t){if(0===t.length)return{type:"all",rules:[]};const n=t.slice(0,-1),r=t.at(-1),i=u(e,n);if(("all"===i.type||"any"===i.type)&&"number"==typeof r){const t=[...i.rules];return t.splice(r,1),c(e,n,Object.assign(Object.assign({},i),{rules:t}))}return"not"===i.type&&"rule"===r?c(e,n,{type:"all",rules:[]}):e}(this.normalizedValue,e))},this.handleUpdateArgs=(e,t)=>{this.emitIfChanged(function(e,t,n){const r=u(e,t);return"ref"!==r.type?e:c(e,t,Object.assign(Object.assign({},r),{args:n}))}(this.normalizedValue,e,t))},this.handleReplaceNode=(e,t)=>{this.emitIfChanged(function(e,t,n){return c(e,t,n)}(this.normalizedValue,e,t))},this.handleChipInteract=e=>{this.openChipPath=e},this.handlePopoverClose=()=>{this.openChipPath=null}}componentWillLoad(){this.rebuildFromRegistries()}rebuildFromRegistries(){this.computeReachableSlots(),this.indexMetadata(),this.rebuildAvailableOptions(),this.runValidation()}connectedCallback(){this.hasLoaded&&(this.computeReachableSlots(),this.rebuildAvailableOptions(),this.runValidation())}componentDidLoad(){this.hasLoaded=!0,this.emitNormalization()}onValueChange(){this.emitNormalization()||this.runValidation()}onAvailableContextsChange(){this.rebuildFromRegistries()}render(){return e("div",{key:"f84022580c3dcbc397a2551b282464d6579368a1",class:{"rule-editor":!0,"rule-editor--disabled":this.disabled}},this.renderLabel(),e(P,{key:"660cb7221c151f0a348e00c834338ce03511a7e9",node:this.normalizedValue,path:[],ctx:this.createRenderContext()}),this.renderHelperText())}renderLabel(){return this.label?e("div",{class:"rule-editor__label"},this.label):null}renderHelperText(){return this.helperText?e("div",{class:"rule-editor__helper-text"},this.helperText):null}createRenderContext(){return{issues:this.issues,metadataById:this.metadataById,allPrimitiveOptions:this.allPrimitiveOptions,availablePrimitiveOptions:this.availablePrimitiveOptions,isMutable:!this.readonly&&!this.disabled,readonly:this.readonly,disabled:this.disabled,platform:this.platform,context:this.effectiveContext,translator:this.translator,openChipPath:this.openChipPath,onDelete:this.handleDelete,onUpdateArgs:this.handleUpdateArgs,onReplaceNode:this.handleReplaceNode,onChipInteract:this.handleChipInteract,onPopoverClose:this.handlePopoverClose}}indexMetadata(){var e,t,n;const r=null!==(n=null===(t=(e=this.ruleRegistry).listMetadata)||void 0===t?void 0:t.call(e))&&void 0!==n?n:[];this.metadataById=new Map(r.map((e=>[e.id,e]))),this.allPrimitiveOptions=p(this.metadataById,this.translator)}rebuildAvailableOptions(){this.availablePrimitiveOptions=p(this.availablePrimitiveMetadata(),this.translator)}availablePrimitiveMetadata(){const e=new Map;for(const[t,n]of this.metadataById)f(n,this.reachableSlots)&&e.set(t,n);return e}computeReachableSlots(){var e;const t=this.contextRegistry,n=t.list().map((e=>e.id)).filter((e=>void 0!==t.get(e,this.host)));this.reachableSlots=new Set([...n,...null!==(e=this.availableContexts)&&void 0!==e?e:[]])}runValidation(){if(!this.value)return void(this.issues=[]);const e=this.ruleRegistry.validate(this.normalizedValue,[...this.reachableSlots]);this.issues=e.ok?[]:e.issues}emitIfChanged(e){var t;e!==this.normalizedValue&&this.change.emit("all"!==(t=e).type&&"any"!==t.type?t:0===t.rules.length?void 0:t)}get normalizedValue(){if(null!==this.normalizedCache&&this.normalizedCache.source===this.value)return this.normalizedCache.normalized;const e=(t=this.value)?z(t)?t:{type:"all",rules:[t]}:{type:"all",rules:[]};var t;return this.normalizedCache={source:this.value,normalized:e},e}emitNormalization(){if(!this.value)return!1;const e=this.normalizedValue;return e!==this.value&&(this.change.emit(e),!0)}get ruleRegistry(){return this.platform.get(o.RuleRegistry)}get translator(){return this.platform.get(o.Translate)}get contextRegistry(){return this.platform.get(o.ContextRegistry)}get effectiveContext(){var e,t;return(null===(e=this.context)||void 0===e?void 0:e.limetype)?this.context:(null===(t=this.resolvedContext)||void 0===t?void 0:t.limetype)?this.resolvedContext:I}get host(){return r(this)}static get watchers(){return{value:[{onValueChange:0}],availableContexts:[{onAvailableContextsChange:0}]}}};!function(e,t,n,r){var i,o=arguments.length,l=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(l=(o<3?i(l):o>3?i(t,n,l):i(t,n))||l);o>3&&l&&Object.defineProperty(t,n,l)}([i("context")],V.prototype,"resolvedContext",void 0);const I=Object.freeze({limetype:null,id:null});V.style=":host{display:block}.rule-editor--disabled{opacity:0.6;pointer-events:none}.rule-editor__label{font-size:0.75rem;font-weight:600;color:rgb(var(--contrast-1500));margin-bottom:0.25rem}.rule-editor__helper-text{font-size:0.75rem;color:rgb(var(--contrast-1300));margin-top:0.25rem}.rule-node{border:1px solid rgb(var(--contrast-500));border-radius:0.5rem;margin:0.25rem 0;overflow:hidden;background-color:rgb(var(--contrast-100))}.rule-node--invalid{border-color:rgb(var(--color-red-default))}.rule-node--all>.rule-node__header,.rule-node--any>.rule-node__header{background-color:rgb(var(--contrast-300));padding:0.375rem 0.75rem;border-bottom:1px solid rgb(var(--contrast-500))}.rule-node__header{display:flex;align-items:center;gap:0.5rem}.rule-node__header-actions{margin-left:auto;display:grid;grid-auto-flow:column;grid-gap:0.5rem;padding:0.125rem;align-items:center}.rule-node__combinator-select{min-width:6rem}.rule-node__body{padding:0.75rem;display:flex;flex-direction:column;gap:0.75rem}limel-popover.rule-node__chips-popover{display:contents;--popover-surface-width:min(calc(100vw - 4rem), 50rem)}.rule-node__chips{display:block;width:100%}.rule-node__chips limel-picker{display:block;width:100%}.rule-node__children{display:flex;flex-direction:column;gap:0.5rem}.rule-node__footer{display:flex;justify-content:center}.rule-node__issue{color:rgb(var(--color-red-default));font-size:0.875rem}";export{V as limebb_rule_editor}
|