@limetech/lime-crm-building-blocks 2.3.1 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/cjs/{condition-tree-translate-B_qIQz9s.js → condition-tree-translate-BQwKtiNZ.js} +1 -1
- package/dist/cjs/{filter-group-logic-Bt5tIbfP.js → filter-group-logic-CeGmYgsu.js} +1 -1
- package/dist/cjs/{filter-operators-CzIq9qKC.js → filter-operators-C3T2czC_.js} +1 -1
- package/dist/cjs/{index-mDIvByXc.js → index-Du4GyM0Y.js} +13 -8
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/{index.esm-D1EzGa8X.js → index.esm-C2zw0QJK.js} +2 -2
- package/dist/cjs/lime-crm-building-blocks.cjs.js +3 -3
- package/dist/cjs/{lime-query-validation-Df4GZRGm.js → lime-query-validation-CzYkphmi.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 +2 -2
- 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 +3 -3
- package/dist/cjs/limebb-component-picker.cjs.entry.js +2 -2
- package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +2 -2
- package/dist/cjs/limebb-condition-tree-editor.cjs.entry.js +24 -9
- package/dist/cjs/limebb-condition-tree.cjs.entry.js +121 -34
- 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 +2 -2
- 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 +1 -1
- package/dist/cjs/limebb-document-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-empty-state.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-filter-chip_6.cjs.entry.js +4 -4
- package/dist/cjs/limebb-icon-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-currency-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-date-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-decimal-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-relative-date-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-unit-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile.cjs.entry.js +3 -3
- package/dist/cjs/limebb-inline-image.cjs.entry.js +2 -2
- 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-kanban.cjs.entry.js +1 -1
- package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +3 -3
- package/dist/cjs/limebb-lime-query-filter-builder.cjs.entry.js +3 -3
- 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 +3 -3
- package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +1 -1
- 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 +2 -2
- package/dist/cjs/limebb-live-docs-info.cjs.entry.js +1 -1
- package/dist/cjs/limebb-loader.cjs.entry.js +2 -2
- package/dist/cjs/limebb-locale-picker.cjs.entry.js +2 -2
- package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +1 -1
- package/dist/cjs/limebb-mention.cjs.entry.js +2 -2
- package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +1 -1
- package/dist/cjs/limebb-notification-item.cjs.entry.js +2 -2
- package/dist/cjs/limebb-notification-list.cjs.entry.js +2 -2
- package/dist/cjs/limebb-object-chip.cjs.entry.js +3 -3
- package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
- package/dist/cjs/limebb-property-selector.cjs.entry.js +3 -3
- package/dist/cjs/limebb-rule-arg-filter-editor.cjs.entry.js +2 -2
- package/dist/cjs/limebb-rule-condition-chip.cjs.entry.js +71 -0
- package/dist/cjs/limebb-rule-condition-editor-CHWTMOmi.js +285 -0
- package/dist/cjs/limebb-rule-condition-editor.cjs.entry.js +9 -0
- package/dist/cjs/limebb-rule-editor.cjs.entry.js +217 -573
- package/dist/cjs/limebb-rule-gate.cjs.entry.js +3 -3
- package/dist/cjs/limebb-text-editor-picker.cjs.entry.js +1 -1
- 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 +3 -3
- package/dist/cjs/{limetype-BPuuRLtH.js → limetype-BzVDjAKS.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{web-component-template-DRMW9wHN.js → web-component-template-C-AkY5as.js} +1 -1
- package/dist/collection/collection-manifest.json +3 -2
- package/dist/collection/components/condition-tree/condition-tree-editor/condition-tree-editor.js +46 -5
- package/dist/collection/components/condition-tree/condition-tree-nodes.js +13 -6
- package/dist/collection/components/condition-tree/condition-tree.js +69 -18
- package/dist/collection/components/condition-tree/group-node-view.js +41 -5
- package/dist/collection/components/condition-tree/leaf-node-view.js +19 -2
- package/dist/collection/components/rule-editor/condition-tree-adapter.js +229 -0
- package/dist/collection/components/rule-editor/rule-condition-chip/rule-condition-chip.css +4 -0
- package/dist/collection/components/rule-editor/rule-condition-chip/rule-condition-chip.js +322 -0
- package/dist/collection/components/rule-editor/rule-condition-editor/rule-condition-editor.css +5 -0
- package/dist/collection/components/rule-editor/rule-condition-editor/rule-condition-editor.js +259 -0
- package/dist/collection/components/rule-editor/rule-editor.css +1 -73
- package/dist/collection/components/rule-editor/rule-editor.js +143 -153
- package/dist/collection/components/rule-editor/rule-issues.js +89 -0
- package/dist/collection/components/rule-editor/view-helpers.js +19 -41
- package/dist/collection/components/rule-gate/rule-gate.css +3 -3
- package/dist/components/condition-tree-adapter.js +1 -0
- package/dist/components/condition-tree-editor.js +1 -1
- package/dist/components/condition-tree.js +1 -0
- package/dist/components/limebb-condition-tree.js +1 -1
- package/dist/components/limebb-rule-condition-chip.d.ts +11 -0
- package/dist/components/limebb-rule-condition-chip.js +1 -0
- package/dist/components/limebb-rule-condition-editor.d.ts +11 -0
- package/dist/components/limebb-rule-condition-editor.js +1 -0
- package/dist/components/limebb-rule-editor.js +1 -1
- package/dist/components/limebb-rule-gate.js +1 -1
- package/dist/esm/{condition-tree-translate-CBeXbZ_z.js → condition-tree-translate-ZQptbaXF.js} +1 -1
- package/dist/esm/{filter-group-logic-CzThKf85.js → filter-group-logic-nqCMmV0e.js} +1 -1
- package/dist/esm/{filter-operators-u3T1PKhm.js → filter-operators-QbKK26m2.js} +1 -1
- package/dist/esm/{index-COtSgrC5.js → index-BK566_jX.js} +13 -8
- package/dist/esm/{index.esm-B9D_MXA6.js → index.esm-C__n3hug.js} +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/lime-crm-building-blocks.js +4 -4
- package/dist/esm/{lime-query-validation-dGoN_93p.js → lime-query-validation-BvB2v-yP.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 +2 -2
- 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 +3 -3
- package/dist/esm/limebb-component-picker.entry.js +2 -2
- package/dist/esm/limebb-composer-toolbar.entry.js +2 -2
- package/dist/esm/limebb-condition-tree-editor.entry.js +24 -9
- package/dist/esm/limebb-condition-tree.entry.js +121 -34
- 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 +2 -2
- 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 +1 -1
- package/dist/esm/limebb-document-picker.entry.js +1 -1
- package/dist/esm/limebb-empty-state.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-filter-chip_6.entry.js +4 -4
- package/dist/esm/limebb-icon-picker.entry.js +1 -1
- package/dist/esm/limebb-info-tile-currency-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile-date-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile-decimal-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile-relative-date-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile-unit-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile.entry.js +3 -3
- package/dist/esm/limebb-inline-image.entry.js +2 -2
- package/dist/esm/limebb-kanban-group.entry.js +2 -2
- package/dist/esm/limebb-kanban-item.entry.js +2 -2
- package/dist/esm/limebb-kanban.entry.js +1 -1
- package/dist/esm/limebb-lime-query-builder.entry.js +3 -3
- package/dist/esm/limebb-lime-query-filter-builder.entry.js +3 -3
- 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 +3 -3
- package/dist/esm/limebb-lime-query-order-by-item.entry.js +1 -1
- 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 +2 -2
- package/dist/esm/limebb-live-docs-info.entry.js +1 -1
- package/dist/esm/limebb-loader.entry.js +2 -2
- package/dist/esm/limebb-locale-picker.entry.js +2 -2
- package/dist/esm/limebb-mention-group-counter.entry.js +1 -1
- package/dist/esm/limebb-mention.entry.js +2 -2
- package/dist/esm/limebb-navigation-button_2.entry.js +1 -1
- package/dist/esm/limebb-notification-item.entry.js +2 -2
- package/dist/esm/limebb-notification-list.entry.js +2 -2
- package/dist/esm/limebb-object-chip.entry.js +3 -3
- package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
- package/dist/esm/limebb-property-selector.entry.js +3 -3
- package/dist/esm/limebb-rule-arg-filter-editor.entry.js +2 -2
- package/dist/esm/limebb-rule-condition-chip.entry.js +69 -0
- package/dist/esm/limebb-rule-condition-editor-DeY758N-.js +281 -0
- package/dist/esm/limebb-rule-condition-editor.entry.js +3 -0
- package/dist/esm/limebb-rule-editor.entry.js +217 -573
- package/dist/esm/limebb-rule-gate.entry.js +3 -3
- package/dist/esm/limebb-text-editor-picker.entry.js +1 -1
- 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 +3 -3
- package/dist/esm/{limetype-BcELY1NF.js → limetype-Muf9VutX.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{web-component-template-DxbwHsvw.js → web-component-template-D1JpeNy_.js} +1 -1
- 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-0621e884.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-ab0f8170.entry.js → p-087d5651.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ce2755a0.entry.js → p-1917956c.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-07a9c8f2.entry.js → p-1ae4962d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-021e452a.entry.js → p-23d2632b.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ffca266e.entry.js → p-251784bf.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-635a45ad.entry.js → p-27240bb0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-2adeac66.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-6a8422d2.entry.js → p-32339f09.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-1990e369.entry.js → p-3446290c.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-d495cc19.entry.js → p-35d9b3ad.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-eed0b2c2.entry.js → p-3865eec4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-dacf9e77.entry.js → p-394b521a.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-8c36b847.entry.js → p-39a36450.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-97e75dee.entry.js → p-3b672249.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ad5dcefd.entry.js → p-47b56a75.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-402a9c97.entry.js → p-4af3ea2c.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-0cc47cad.entry.js → p-4bdaf436.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-cf66256a.entry.js → p-4f60b7bc.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-90f0c96b.entry.js → p-4fd9d615.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-28550961.entry.js → p-53b44865.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-7ae27308.entry.js → p-550606f6.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-573f9e95.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-a5f3913d.entry.js → p-5c541d0c.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ce723c21.entry.js → p-612c6b28.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-6f923112.entry.js → p-621ab65a.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-5f682c06.entry.js → p-627b0c79.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-49d042aa.entry.js → p-6303201b.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-8e9fcf3c.entry.js → p-6bd61290.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-dcb49a62.entry.js → p-6d2dba20.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-0193ed83.entry.js → p-6e2553b4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-Cz5s8qGk.js → p-7DQ7qvMa.js} +1 -1
- package/dist/lime-crm-building-blocks/p-7c3d3e06.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-dd02821e.entry.js → p-7d53756b.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-79d743bb.entry.js → p-895c8966.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-da35bcc7.entry.js → p-8c0455e4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-a201df35.entry.js → p-8f80d024.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-32a81271.entry.js → p-949ed056.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-cf03a756.entry.js → p-985ae787.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-9959019d.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-DLec4QaM.js → p-B7whyaAL.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-COtSgrC5.js → p-BK566_jX.js} +1 -1
- package/dist/lime-crm-building-blocks/p-ClYOFrOo.js +1 -0
- package/dist/lime-crm-building-blocks/{p-DVypQWZ4.js → p-Cve-3L4y.js} +1 -1
- package/dist/lime-crm-building-blocks/p-DOULPRTn.js +1 -0
- package/dist/lime-crm-building-blocks/{p-Cj_3f9vm.js → p-DhGRAeCH.js} +1 -1
- package/dist/lime-crm-building-blocks/p-DjoMDjMo.js +1 -0
- package/dist/lime-crm-building-blocks/p-DuWEcQ7n.js +1 -0
- package/dist/lime-crm-building-blocks/{p-dfaef740.entry.js → p-a1052482.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-3babfbe0.entry.js → p-a14bed52.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-cc53a8ca.entry.js → p-a2e291b4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-8a17a7ea.entry.js → p-a2ebd5a4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-0cbe2180.entry.js → p-a4556649.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-f5c1ed0c.entry.js → p-a598f92f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-b44b9dbc.entry.js → p-a938384f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-f3539042.entry.js → p-ab0210b2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c0d49532.entry.js → p-b272730c.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-0370200d.entry.js → p-b4571d32.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-551a36f6.entry.js → p-b72c748b.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-0ed9a7cc.entry.js → p-bac9d3a9.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-bd6c12bc.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-81783bd4.entry.js → p-bf693702.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-e6cc320a.entry.js → p-c58067ec.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-08797129.entry.js → p-c7bfa2e4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-a953d48e.entry.js → p-d4635a39.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-d3c58bc1.entry.js → p-d6099dc7.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-bf05d9de.entry.js → p-d6c7cf0f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-1ebe45b8.entry.js → p-da79c5fc.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-e18a2cef.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-f9991c35.entry.js → p-e19f4b3b.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-46aec244.entry.js → p-eb95767a.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ddc4ede8.entry.js → p-ec9b5e30.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-95ba7a84.entry.js → p-f49250f3.entry.js} +1 -1
- package/dist/types/components/condition-tree/condition-tree-editor/condition-tree-editor.d.ts +20 -3
- package/dist/types/components/condition-tree/condition-tree-nodes.d.ts +11 -4
- package/dist/types/components/condition-tree/condition-tree-view-context.d.ts +3 -2
- package/dist/types/components/condition-tree/condition-tree.d.ts +41 -8
- package/dist/types/components/condition-tree/condition-tree.types.d.ts +21 -2
- package/dist/types/components/rule-editor/condition-tree-adapter.d.ts +67 -0
- package/dist/types/components/rule-editor/rule-condition-chip/rule-condition-chip.d.ts +82 -0
- package/dist/types/components/rule-editor/rule-condition-editor/rule-condition-editor.d.ts +61 -0
- package/dist/types/components/rule-editor/rule-editor.d.ts +105 -47
- package/dist/types/components/rule-editor/rule-issues.d.ts +12 -0
- package/dist/types/components/rule-editor/view-helpers.d.ts +16 -35
- package/dist/types/components.d.ts +304 -79
- package/dist/types/stencil-public-runtime.d.ts +61 -55
- package/package.json +4 -4
- package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +0 -82
- package/dist/collection/components/rule-editor/chip-picker-view.js +0 -148
- package/dist/collection/components/rule-editor/group-node-view.js +0 -79
- package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.css +0 -36
- package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +0 -344
- package/dist/collection/components/rule-editor/rule-editor-views.js +0 -43
- package/dist/collection/components/rule-editor/rule-operations.js +0 -145
- package/dist/components/limebb-rule-chip-popover.d.ts +0 -11
- package/dist/components/limebb-rule-chip-popover.js +0 -1
- package/dist/components/rule-chip-popover.js +0 -1
- package/dist/esm/limebb-rule-chip-popover.entry.js +0 -80
- package/dist/lime-crm-building-blocks/p-1578c8f0.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-229d018c.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-6331f9c5.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-705c53c0.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-84ad9159.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-BxCq236x.js +0 -1
- package/dist/lime-crm-building-blocks/p-Css8537O.js +0 -1
- package/dist/lime-crm-building-blocks/p-a58c9e1e.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-hsyotUav.js +0 -1
- package/dist/types/components/rule-editor/chip-picker-view.d.ts +0 -35
- package/dist/types/components/rule-editor/group-node-view.d.ts +0 -11
- package/dist/types/components/rule-editor/rule-chip-popover/rule-chip-popover.d.ts +0 -43
- package/dist/types/components/rule-editor/rule-editor-views.d.ts +0 -58
- package/dist/types/components/rule-editor/rule-operations.d.ts +0 -70
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
|
|
8
8
|
import { AlertType } from "./components/alert-dialog/alert-dialog.types";
|
|
9
|
-
import { AggregateOperator, ComponentDescriptor, ContextMap, ContextScope, Expression,
|
|
9
|
+
import { AggregateOperator, ComponentDescriptor, ContextMap, ContextScope, Expression, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator, PropertyType, Rule } from "@limetech/lime-web-components";
|
|
10
10
|
import { BrowserItem } from "./components/browser/browser-item.types";
|
|
11
|
-
import { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FileInfo, FormInfo, Icon, IconName, Image, Languages, ListItem, ListSeparator, MenuItem, OpenDirection } from "@limetech/lime-elements";
|
|
11
|
+
import { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FileInfo, FormInfo, Icon, IconName, Image, Languages, ListItem, ListSeparator, MenuItem, MenuSearcher, OpenDirection } from "@limetech/lime-elements";
|
|
12
12
|
import { ChatIconList } from "./components/chat-list/chat-icon-list/chat-icon-list.types";
|
|
13
13
|
import { ChatItem } from "./components/chat-list/chat-item/chat-item.types";
|
|
14
14
|
import { ChatListItem } from "./components/chat-list/chat-list.types";
|
|
@@ -38,9 +38,9 @@ import { RuleEditorMode } from "./components/rule-editor/rule-editor.types";
|
|
|
38
38
|
import { TriggerMap } from "./components/text-editor/text-editor.types";
|
|
39
39
|
import { ValueComparisonEditorValue } from "./components/rule-editor/value-comparison-editor/value-comparison-editor";
|
|
40
40
|
export { AlertType } from "./components/alert-dialog/alert-dialog.types";
|
|
41
|
-
export { AggregateOperator, ComponentDescriptor, ContextMap, ContextScope, Expression,
|
|
41
|
+
export { AggregateOperator, ComponentDescriptor, ContextMap, ContextScope, Expression, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator, PropertyType, Rule } from "@limetech/lime-web-components";
|
|
42
42
|
export { BrowserItem } from "./components/browser/browser-item.types";
|
|
43
|
-
export { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FileInfo, FormInfo, Icon, IconName, Image, Languages, ListItem, ListSeparator, MenuItem, OpenDirection } from "@limetech/lime-elements";
|
|
43
|
+
export { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FileInfo, FormInfo, Icon, IconName, Image, Languages, ListItem, ListSeparator, MenuItem, MenuSearcher, OpenDirection } from "@limetech/lime-elements";
|
|
44
44
|
export { ChatIconList } from "./components/chat-list/chat-icon-list/chat-icon-list.types";
|
|
45
45
|
export { ChatItem } from "./components/chat-list/chat-item/chat-item.types";
|
|
46
46
|
export { ChatListItem } from "./components/chat-list/chat-list.types";
|
|
@@ -537,6 +537,10 @@ export namespace Components {
|
|
|
537
537
|
* The kinds of condition a user can add, offered as a menu when the add button is pressed. The chosen item is passed to `adapter.createLeaf`. Leave it unset when every condition in the tree is of the same kind: a blank one can simply be inserted, and its editor settles the rest, so pressing the button is the whole interaction. Set it when conditions come in kinds that have nothing in common — "the deal is worth more than 100 000", "the user belongs to a group", "it is the first day of the month" — where nothing can be inserted until the user says which. The menu has to be rendered here rather than by the consumer, because the button it hangs from lives inside this component.
|
|
538
538
|
*/
|
|
539
539
|
"addOptions"?: Array<MenuItem | ListSeparator>;
|
|
540
|
+
/**
|
|
541
|
+
* How to narrow `addOptions` as the user types, which is what puts a search field at the top of the add menu. Worth setting as soon as the kinds on offer stop fitting on a screen — and a consumer whose kinds are contributed by add-ons cannot know that they still do. `addOptions` is still what the menu opens on, so an unsearched menu reads exactly as it did before.
|
|
542
|
+
*/
|
|
543
|
+
"addSearcher"?: MenuSearcher;
|
|
540
544
|
/**
|
|
541
545
|
* Which combinators to offer in the group dropdowns, in the order given. All four are offered by default. "Not all of the following" and "None of the following" are harder to reason about than the two they negate, so a consumer whose users would be better served without them passes `['all', 'any']`. A group that already uses a combinator left off this list still shows it, rather than misrepresenting itself as using one of the offered ones.
|
|
542
546
|
* @default [ ...CONDITION_TREE_COMBINATORS, ]
|
|
@@ -591,6 +595,10 @@ export namespace Components {
|
|
|
591
595
|
* Title of the condition, shown above the editor when there is a header to show at all.
|
|
592
596
|
*/
|
|
593
597
|
"heading"?: string;
|
|
598
|
+
/**
|
|
599
|
+
* The condition's glyph, shown beside the heading. The same one the chip carries, so that the popover reads as the chip opened up rather than as somewhere else.
|
|
600
|
+
*/
|
|
601
|
+
"icon"?: IconName;
|
|
594
602
|
/**
|
|
595
603
|
* Whether the condition is negated. `undefined` means the condition expresses its own polarity and no switch is offered.
|
|
596
604
|
*/
|
|
@@ -2527,47 +2535,116 @@ export namespace Components {
|
|
|
2527
2535
|
"value": RuleArgFilterEditorValue;
|
|
2528
2536
|
}
|
|
2529
2537
|
/**
|
|
2530
|
-
*
|
|
2531
|
-
*
|
|
2532
|
-
*
|
|
2538
|
+
* A rule condition as a chip, in place of the `limebb-filter-chip` the tree
|
|
2539
|
+
* draws by default.
|
|
2540
|
+
* A filter condition is a sentence and that chip lays it out as one, with the
|
|
2541
|
+
* property captioned above the value. A rule condition is a name with no value
|
|
2542
|
+
* under it, so the name is the whole chip. Implements `ConditionChip`.
|
|
2533
2543
|
* @private
|
|
2534
2544
|
*/
|
|
2535
|
-
interface
|
|
2545
|
+
interface LimebbRuleConditionChip {
|
|
2536
2546
|
/**
|
|
2537
|
-
*
|
|
2547
|
+
* @inheritdoc
|
|
2548
|
+
* @default false
|
|
2538
2549
|
*/
|
|
2539
|
-
"
|
|
2550
|
+
"disabled": boolean;
|
|
2540
2551
|
/**
|
|
2552
|
+
* The condition's glyph.
|
|
2553
|
+
*/
|
|
2554
|
+
"icon"?: IconName;
|
|
2555
|
+
/**
|
|
2556
|
+
* The glyph's colour, which travels beside the name because `ConditionTreeChip.icon` has no room for it.
|
|
2557
|
+
*/
|
|
2558
|
+
"iconColor"?: string;
|
|
2559
|
+
/**
|
|
2560
|
+
* @inheritdoc
|
|
2541
2561
|
* @default false
|
|
2542
2562
|
*/
|
|
2543
|
-
"
|
|
2563
|
+
"invalid": boolean;
|
|
2564
|
+
/**
|
|
2565
|
+
* The name of the condition.
|
|
2566
|
+
*/
|
|
2567
|
+
"label": string;
|
|
2544
2568
|
/**
|
|
2545
|
-
*
|
|
2569
|
+
* Whether the condition is negated. The chip has to say so: the switch that sets it is out of sight inside the editor.
|
|
2546
2570
|
* @default false
|
|
2547
2571
|
*/
|
|
2548
|
-
"
|
|
2572
|
+
"negated": boolean;
|
|
2573
|
+
/**
|
|
2574
|
+
* Platform service provider. Unread, but declared so that the tree setting it does not leave it in the DOM as an attribute.
|
|
2575
|
+
*/
|
|
2576
|
+
"platform": LimeWebComponentPlatform;
|
|
2549
2577
|
/**
|
|
2578
|
+
* Deliberately not passed on to `limel-chip`, which would render it as a disabled button. A condition's arguments live behind this chip and nowhere else, so a chip that cannot be opened is a rule that cannot be read. It takes the delete control away instead — see `removable`.
|
|
2579
|
+
* @inheritdoc
|
|
2580
|
+
* @default false
|
|
2581
|
+
*/
|
|
2582
|
+
"readonly": boolean;
|
|
2583
|
+
/**
|
|
2584
|
+
* Whether the chip offers a control that deletes the condition. `readonly` overrules it here rather than in the caller, since withholding `readonly` from `limel-chip` also withholds the lock it puts on the cross.
|
|
2550
2585
|
* @default true
|
|
2551
2586
|
*/
|
|
2552
|
-
"
|
|
2587
|
+
"removable": boolean;
|
|
2553
2588
|
/**
|
|
2589
|
+
* Whether this condition's editor is the one currently open.
|
|
2554
2590
|
* @default false
|
|
2555
2591
|
*/
|
|
2556
|
-
"
|
|
2557
|
-
|
|
2592
|
+
"selected": boolean;
|
|
2593
|
+
}
|
|
2594
|
+
/**
|
|
2595
|
+
* The editor `limebb-condition-tree` opens for one rule condition: whatever
|
|
2596
|
+
* component the primitive named as its `configComponent`.
|
|
2597
|
+
* The two sides speak about different things. The tree passes a whole condition
|
|
2598
|
+
* and listens for `conditionChange`; a config component edits the reference's
|
|
2599
|
+
* `args` and reports a plain `change`. Config components are registered by
|
|
2600
|
+
* add-ons this repo does not own, so this side is the one that translates.
|
|
2601
|
+
* @alpha
|
|
2602
|
+
* @private
|
|
2603
|
+
*/
|
|
2604
|
+
interface LimebbRuleConditionEditor {
|
|
2605
|
+
/**
|
|
2606
|
+
* The component the primitive declared for editing its args.
|
|
2607
|
+
*/
|
|
2608
|
+
"configComponent": ComponentDescriptor;
|
|
2609
|
+
/**
|
|
2610
|
+
* Component context
|
|
2611
|
+
*/
|
|
2612
|
+
"context": LimeWebComponentContext;
|
|
2613
|
+
/**
|
|
2614
|
+
* @inheritdoc
|
|
2615
|
+
* @default false
|
|
2616
|
+
*/
|
|
2617
|
+
"disabled": boolean;
|
|
2618
|
+
/**
|
|
2619
|
+
* Forwarded so that component can take focus as it appears. Set only for a condition the author has just added.
|
|
2620
|
+
* @default false
|
|
2621
|
+
*/
|
|
2622
|
+
"focusOnOpen": boolean;
|
|
2623
|
+
/**
|
|
2624
|
+
* Platform service provider
|
|
2625
|
+
*/
|
|
2558
2626
|
"platform": LimeWebComponentPlatform;
|
|
2559
2627
|
/**
|
|
2628
|
+
* @inheritdoc
|
|
2560
2629
|
* @default false
|
|
2561
2630
|
*/
|
|
2562
2631
|
"readonly": boolean;
|
|
2563
|
-
|
|
2632
|
+
/**
|
|
2633
|
+
* The condition being edited: a reference to a primitive, or the `not` around one.
|
|
2634
|
+
*/
|
|
2635
|
+
"value": Rule;
|
|
2564
2636
|
}
|
|
2565
2637
|
/**
|
|
2566
2638
|
* Tree editor for {@link Rule}.
|
|
2567
|
-
* Renders a `Rule` value as a tree
|
|
2568
|
-
* primitive refs
|
|
2569
|
-
*
|
|
2570
|
-
* primitive's
|
|
2639
|
+
* Renders a `Rule` value as a `limebb-condition-tree`. Lets an author
|
|
2640
|
+
* add primitive refs to `all` / `any` groups and to the negations of
|
|
2641
|
+
* those two, nest groups, negate a single ref, delete nodes, and edit
|
|
2642
|
+
* per-primitive args via the editor declared on each primitive's
|
|
2643
|
+
* metadata.
|
|
2644
|
+
* The tree owns every structural edit, and knows nothing about rules. A
|
|
2645
|
+
* `Rule` reaches it through an adapter — see `condition-tree-adapter.ts`
|
|
2646
|
+
* — which is also where the group negation the rule model writes as a
|
|
2647
|
+
* `not` wrapper is folded into the combinator the tree shows.
|
|
2571
2648
|
* The component is value-in / value-out. Pass `value` and listen for
|
|
2572
2649
|
* `change`; persistence is the caller's concern.
|
|
2573
2650
|
* Pass `availableContexts` to forward the list of context keys the
|
|
@@ -2609,7 +2686,7 @@ export namespace Components {
|
|
|
2609
2686
|
*/
|
|
2610
2687
|
"context": LimeWebComponentContext;
|
|
2611
2688
|
/**
|
|
2612
|
-
* Whether or not the current property is disabled
|
|
2689
|
+
* Whether or not the current property is disabled Every control stays where it is, dimmed and inert, when set. The args editor is rendered with `disabled` forwarded to it.
|
|
2613
2690
|
* @inheritdoc
|
|
2614
2691
|
*/
|
|
2615
2692
|
"disabled": boolean;
|
|
@@ -2640,7 +2717,7 @@ export namespace Components {
|
|
|
2640
2717
|
*/
|
|
2641
2718
|
"platform": LimeWebComponentPlatform;
|
|
2642
2719
|
/**
|
|
2643
|
-
* Whether or not the current property is readonly The
|
|
2720
|
+
* Whether or not the current property is readonly The controls that add, delete and negate are not rendered when set, leaving the rule to be read. The args editor for each ref is still rendered, with `readonly` forwarded to it.
|
|
2644
2721
|
* @inheritdoc
|
|
2645
2722
|
*/
|
|
2646
2723
|
"readonly": boolean;
|
|
@@ -2650,7 +2727,7 @@ export namespace Components {
|
|
|
2650
2727
|
*/
|
|
2651
2728
|
"required": boolean;
|
|
2652
2729
|
/**
|
|
2653
|
-
* The value of the current property
|
|
2730
|
+
* The value of the current property The rule under edit. Hand back what `change` emitted, not a copy: which condition is open, which have been visited and what validation said about each are all tracked by object identity, so a deep-cloned rule reads as a different one that happens to look the same.
|
|
2654
2731
|
* @inheritdoc
|
|
2655
2732
|
*/
|
|
2656
2733
|
"value": Rule | undefined;
|
|
@@ -3206,9 +3283,13 @@ export interface LimebbRuleArgFilterEditorCustomEvent<T> extends CustomEvent<T>
|
|
|
3206
3283
|
detail: T;
|
|
3207
3284
|
target: HTMLLimebbRuleArgFilterEditorElement;
|
|
3208
3285
|
}
|
|
3209
|
-
export interface
|
|
3286
|
+
export interface LimebbRuleConditionChipCustomEvent<T> extends CustomEvent<T> {
|
|
3210
3287
|
detail: T;
|
|
3211
|
-
target:
|
|
3288
|
+
target: HTMLLimebbRuleConditionChipElement;
|
|
3289
|
+
}
|
|
3290
|
+
export interface LimebbRuleConditionEditorCustomEvent<T> extends CustomEvent<T> {
|
|
3291
|
+
detail: T;
|
|
3292
|
+
target: HTMLLimebbRuleConditionEditorElement;
|
|
3212
3293
|
}
|
|
3213
3294
|
export interface LimebbRuleEditorCustomEvent<T> extends CustomEvent<T> {
|
|
3214
3295
|
detail: T;
|
|
@@ -4914,40 +4995,72 @@ declare global {
|
|
|
4914
4995
|
prototype: HTMLLimebbRuleArgFilterEditorElement;
|
|
4915
4996
|
new (): HTMLLimebbRuleArgFilterEditorElement;
|
|
4916
4997
|
};
|
|
4917
|
-
interface
|
|
4918
|
-
"
|
|
4919
|
-
|
|
4920
|
-
|
|
4998
|
+
interface HTMLLimebbRuleConditionChipElementEventMap {
|
|
4999
|
+
"remove": void;
|
|
5000
|
+
}
|
|
5001
|
+
/**
|
|
5002
|
+
* A rule condition as a chip, in place of the `limebb-filter-chip` the tree
|
|
5003
|
+
* draws by default.
|
|
5004
|
+
* A filter condition is a sentence and that chip lays it out as one, with the
|
|
5005
|
+
* property captioned above the value. A rule condition is a name with no value
|
|
5006
|
+
* under it, so the name is the whole chip. Implements `ConditionChip`.
|
|
5007
|
+
* @private
|
|
5008
|
+
*/
|
|
5009
|
+
interface HTMLLimebbRuleConditionChipElement extends Components.LimebbRuleConditionChip, HTMLStencilElement {
|
|
5010
|
+
addEventListener<K extends keyof HTMLLimebbRuleConditionChipElementEventMap>(type: K, listener: (this: HTMLLimebbRuleConditionChipElement, ev: LimebbRuleConditionChipCustomEvent<HTMLLimebbRuleConditionChipElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5011
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5012
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5013
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
5014
|
+
removeEventListener<K extends keyof HTMLLimebbRuleConditionChipElementEventMap>(type: K, listener: (this: HTMLLimebbRuleConditionChipElement, ev: LimebbRuleConditionChipCustomEvent<HTMLLimebbRuleConditionChipElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
5015
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5016
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5017
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
5018
|
+
}
|
|
5019
|
+
var HTMLLimebbRuleConditionChipElement: {
|
|
5020
|
+
prototype: HTMLLimebbRuleConditionChipElement;
|
|
5021
|
+
new (): HTMLLimebbRuleConditionChipElement;
|
|
5022
|
+
};
|
|
5023
|
+
interface HTMLLimebbRuleConditionEditorElementEventMap {
|
|
5024
|
+
"conditionChange": Rule;
|
|
4921
5025
|
}
|
|
4922
5026
|
/**
|
|
4923
|
-
*
|
|
4924
|
-
*
|
|
4925
|
-
*
|
|
5027
|
+
* The editor `limebb-condition-tree` opens for one rule condition: whatever
|
|
5028
|
+
* component the primitive named as its `configComponent`.
|
|
5029
|
+
* The two sides speak about different things. The tree passes a whole condition
|
|
5030
|
+
* and listens for `conditionChange`; a config component edits the reference's
|
|
5031
|
+
* `args` and reports a plain `change`. Config components are registered by
|
|
5032
|
+
* add-ons this repo does not own, so this side is the one that translates.
|
|
5033
|
+
* @alpha
|
|
4926
5034
|
* @private
|
|
4927
5035
|
*/
|
|
4928
|
-
interface
|
|
4929
|
-
addEventListener<K extends keyof
|
|
5036
|
+
interface HTMLLimebbRuleConditionEditorElement extends Components.LimebbRuleConditionEditor, HTMLStencilElement {
|
|
5037
|
+
addEventListener<K extends keyof HTMLLimebbRuleConditionEditorElementEventMap>(type: K, listener: (this: HTMLLimebbRuleConditionEditorElement, ev: LimebbRuleConditionEditorCustomEvent<HTMLLimebbRuleConditionEditorElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4930
5038
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4931
5039
|
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4932
5040
|
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
4933
|
-
removeEventListener<K extends keyof
|
|
5041
|
+
removeEventListener<K extends keyof HTMLLimebbRuleConditionEditorElementEventMap>(type: K, listener: (this: HTMLLimebbRuleConditionEditorElement, ev: LimebbRuleConditionEditorCustomEvent<HTMLLimebbRuleConditionEditorElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
4934
5042
|
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4935
5043
|
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4936
5044
|
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
4937
5045
|
}
|
|
4938
|
-
var
|
|
4939
|
-
prototype:
|
|
4940
|
-
new ():
|
|
5046
|
+
var HTMLLimebbRuleConditionEditorElement: {
|
|
5047
|
+
prototype: HTMLLimebbRuleConditionEditorElement;
|
|
5048
|
+
new (): HTMLLimebbRuleConditionEditorElement;
|
|
4941
5049
|
};
|
|
4942
5050
|
interface HTMLLimebbRuleEditorElementEventMap {
|
|
4943
5051
|
"change": Rule | undefined;
|
|
4944
5052
|
}
|
|
4945
5053
|
/**
|
|
4946
5054
|
* Tree editor for {@link Rule}.
|
|
4947
|
-
* Renders a `Rule` value as a tree
|
|
4948
|
-
* primitive refs
|
|
4949
|
-
*
|
|
4950
|
-
* primitive's
|
|
5055
|
+
* Renders a `Rule` value as a `limebb-condition-tree`. Lets an author
|
|
5056
|
+
* add primitive refs to `all` / `any` groups and to the negations of
|
|
5057
|
+
* those two, nest groups, negate a single ref, delete nodes, and edit
|
|
5058
|
+
* per-primitive args via the editor declared on each primitive's
|
|
5059
|
+
* metadata.
|
|
5060
|
+
* The tree owns every structural edit, and knows nothing about rules. A
|
|
5061
|
+
* `Rule` reaches it through an adapter — see `condition-tree-adapter.ts`
|
|
5062
|
+
* — which is also where the group negation the rule model writes as a
|
|
5063
|
+
* `not` wrapper is folded into the combinator the tree shows.
|
|
4951
5064
|
* The component is value-in / value-out. Pass `value` and listen for
|
|
4952
5065
|
* `change`; persistence is the caller's concern.
|
|
4953
5066
|
* Pass `availableContexts` to forward the list of context keys the
|
|
@@ -5272,7 +5385,8 @@ declare global {
|
|
|
5272
5385
|
"limebb-percentage-visualizer": HTMLLimebbPercentageVisualizerElement;
|
|
5273
5386
|
"limebb-property-selector": HTMLLimebbPropertySelectorElement;
|
|
5274
5387
|
"limebb-rule-arg-filter-editor": HTMLLimebbRuleArgFilterEditorElement;
|
|
5275
|
-
"limebb-rule-chip
|
|
5388
|
+
"limebb-rule-condition-chip": HTMLLimebbRuleConditionChipElement;
|
|
5389
|
+
"limebb-rule-condition-editor": HTMLLimebbRuleConditionEditorElement;
|
|
5276
5390
|
"limebb-rule-editor": HTMLLimebbRuleEditorElement;
|
|
5277
5391
|
"limebb-rule-gate": HTMLLimebbRuleGateElement;
|
|
5278
5392
|
"limebb-summary-popover": HTMLLimebbSummaryPopoverElement;
|
|
@@ -5785,6 +5899,10 @@ declare namespace LocalJSX {
|
|
|
5785
5899
|
* The kinds of condition a user can add, offered as a menu when the add button is pressed. The chosen item is passed to `adapter.createLeaf`. Leave it unset when every condition in the tree is of the same kind: a blank one can simply be inserted, and its editor settles the rest, so pressing the button is the whole interaction. Set it when conditions come in kinds that have nothing in common — "the deal is worth more than 100 000", "the user belongs to a group", "it is the first day of the month" — where nothing can be inserted until the user says which. The menu has to be rendered here rather than by the consumer, because the button it hangs from lives inside this component.
|
|
5786
5900
|
*/
|
|
5787
5901
|
"addOptions"?: Array<MenuItem | ListSeparator>;
|
|
5902
|
+
/**
|
|
5903
|
+
* How to narrow `addOptions` as the user types, which is what puts a search field at the top of the add menu. Worth setting as soon as the kinds on offer stop fitting on a screen — and a consumer whose kinds are contributed by add-ons cannot know that they still do. `addOptions` is still what the menu opens on, so an unsearched menu reads exactly as it did before.
|
|
5904
|
+
*/
|
|
5905
|
+
"addSearcher"?: MenuSearcher;
|
|
5788
5906
|
/**
|
|
5789
5907
|
* Which combinators to offer in the group dropdowns, in the order given. All four are offered by default. "Not all of the following" and "None of the following" are harder to reason about than the two they negate, so a consumer whose users would be better served without them passes `['all', 'any']`. A group that already uses a combinator left off this list still shows it, rather than misrepresenting itself as using one of the offered ones.
|
|
5790
5908
|
* @default [ ...CONDITION_TREE_COMBINATORS, ]
|
|
@@ -5843,6 +5961,10 @@ declare namespace LocalJSX {
|
|
|
5843
5961
|
* Title of the condition, shown above the editor when there is a header to show at all.
|
|
5844
5962
|
*/
|
|
5845
5963
|
"heading"?: string;
|
|
5964
|
+
/**
|
|
5965
|
+
* The condition's glyph, shown beside the heading. The same one the chip carries, so that the popover reads as the chip opened up rather than as somewhere else.
|
|
5966
|
+
*/
|
|
5967
|
+
"icon"?: IconName;
|
|
5846
5968
|
/**
|
|
5847
5969
|
* Whether the condition is negated. `undefined` means the condition expresses its own polarity and no switch is offered.
|
|
5848
5970
|
*/
|
|
@@ -7955,50 +8077,124 @@ declare namespace LocalJSX {
|
|
|
7955
8077
|
"value"?: RuleArgFilterEditorValue;
|
|
7956
8078
|
}
|
|
7957
8079
|
/**
|
|
7958
|
-
*
|
|
7959
|
-
*
|
|
7960
|
-
*
|
|
8080
|
+
* A rule condition as a chip, in place of the `limebb-filter-chip` the tree
|
|
8081
|
+
* draws by default.
|
|
8082
|
+
* A filter condition is a sentence and that chip lays it out as one, with the
|
|
8083
|
+
* property captioned above the value. A rule condition is a name with no value
|
|
8084
|
+
* under it, so the name is the whole chip. Implements `ConditionChip`.
|
|
8085
|
+
* @private
|
|
8086
|
+
*/
|
|
8087
|
+
interface LimebbRuleConditionChip {
|
|
8088
|
+
/**
|
|
8089
|
+
* @inheritdoc
|
|
8090
|
+
* @default false
|
|
8091
|
+
*/
|
|
8092
|
+
"disabled"?: boolean;
|
|
8093
|
+
/**
|
|
8094
|
+
* The condition's glyph.
|
|
8095
|
+
*/
|
|
8096
|
+
"icon"?: IconName;
|
|
8097
|
+
/**
|
|
8098
|
+
* The glyph's colour, which travels beside the name because `ConditionTreeChip.icon` has no room for it.
|
|
8099
|
+
*/
|
|
8100
|
+
"iconColor"?: string;
|
|
8101
|
+
/**
|
|
8102
|
+
* @inheritdoc
|
|
8103
|
+
* @default false
|
|
8104
|
+
*/
|
|
8105
|
+
"invalid"?: boolean;
|
|
8106
|
+
/**
|
|
8107
|
+
* The name of the condition.
|
|
8108
|
+
*/
|
|
8109
|
+
"label"?: string;
|
|
8110
|
+
/**
|
|
8111
|
+
* Whether the condition is negated. The chip has to say so: the switch that sets it is out of sight inside the editor.
|
|
8112
|
+
* @default false
|
|
8113
|
+
*/
|
|
8114
|
+
"negated"?: boolean;
|
|
8115
|
+
/**
|
|
8116
|
+
* Emitted when the author asks for the condition to be deleted.
|
|
8117
|
+
*/
|
|
8118
|
+
"onRemove"?: (event: LimebbRuleConditionChipCustomEvent<void>) => void;
|
|
8119
|
+
/**
|
|
8120
|
+
* Platform service provider. Unread, but declared so that the tree setting it does not leave it in the DOM as an attribute.
|
|
8121
|
+
*/
|
|
8122
|
+
"platform"?: LimeWebComponentPlatform;
|
|
8123
|
+
/**
|
|
8124
|
+
* Deliberately not passed on to `limel-chip`, which would render it as a disabled button. A condition's arguments live behind this chip and nowhere else, so a chip that cannot be opened is a rule that cannot be read. It takes the delete control away instead — see `removable`.
|
|
8125
|
+
* @inheritdoc
|
|
8126
|
+
* @default false
|
|
8127
|
+
*/
|
|
8128
|
+
"readonly"?: boolean;
|
|
8129
|
+
/**
|
|
8130
|
+
* Whether the chip offers a control that deletes the condition. `readonly` overrules it here rather than in the caller, since withholding `readonly` from `limel-chip` also withholds the lock it puts on the cross.
|
|
8131
|
+
* @default true
|
|
8132
|
+
*/
|
|
8133
|
+
"removable"?: boolean;
|
|
8134
|
+
/**
|
|
8135
|
+
* Whether this condition's editor is the one currently open.
|
|
8136
|
+
* @default false
|
|
8137
|
+
*/
|
|
8138
|
+
"selected"?: boolean;
|
|
8139
|
+
}
|
|
8140
|
+
/**
|
|
8141
|
+
* The editor `limebb-condition-tree` opens for one rule condition: whatever
|
|
8142
|
+
* component the primitive named as its `configComponent`.
|
|
8143
|
+
* The two sides speak about different things. The tree passes a whole condition
|
|
8144
|
+
* and listens for `conditionChange`; a config component edits the reference's
|
|
8145
|
+
* `args` and reports a plain `change`. Config components are registered by
|
|
8146
|
+
* add-ons this repo does not own, so this side is the one that translates.
|
|
8147
|
+
* @alpha
|
|
7961
8148
|
* @private
|
|
7962
8149
|
*/
|
|
7963
|
-
interface
|
|
8150
|
+
interface LimebbRuleConditionEditor {
|
|
7964
8151
|
/**
|
|
7965
|
-
*
|
|
8152
|
+
* The component the primitive declared for editing its args.
|
|
8153
|
+
*/
|
|
8154
|
+
"configComponent"?: ComponentDescriptor;
|
|
8155
|
+
/**
|
|
8156
|
+
* Component context
|
|
7966
8157
|
*/
|
|
7967
8158
|
"context"?: LimeWebComponentContext;
|
|
7968
8159
|
/**
|
|
8160
|
+
* @inheritdoc
|
|
7969
8161
|
* @default false
|
|
7970
8162
|
*/
|
|
7971
8163
|
"disabled"?: boolean;
|
|
7972
8164
|
/**
|
|
7973
|
-
* Forwarded
|
|
8165
|
+
* Forwarded so that component can take focus as it appears. Set only for a condition the author has just added.
|
|
7974
8166
|
* @default false
|
|
7975
8167
|
*/
|
|
7976
8168
|
"focusOnOpen"?: boolean;
|
|
7977
8169
|
/**
|
|
7978
|
-
*
|
|
8170
|
+
* Emitted with the whole condition, args and negation together, whenever the config component reports new args.
|
|
7979
8171
|
*/
|
|
7980
|
-
"
|
|
8172
|
+
"onConditionChange"?: (event: LimebbRuleConditionEditorCustomEvent<Rule>) => void;
|
|
7981
8173
|
/**
|
|
7982
|
-
*
|
|
8174
|
+
* Platform service provider
|
|
7983
8175
|
*/
|
|
7984
|
-
"isNegated"?: boolean;
|
|
7985
|
-
"metadata"?: PrimitiveMetadata;
|
|
7986
|
-
"onDeleteChip"?: (event: LimebbRuleChipPopoverCustomEvent<void>) => void;
|
|
7987
|
-
"onNegate"?: (event: LimebbRuleChipPopoverCustomEvent<boolean>) => void;
|
|
7988
|
-
"onUpdateArgs"?: (event: LimebbRuleChipPopoverCustomEvent<JsonValue>) => void;
|
|
7989
8176
|
"platform"?: LimeWebComponentPlatform;
|
|
7990
8177
|
/**
|
|
8178
|
+
* @inheritdoc
|
|
7991
8179
|
* @default false
|
|
7992
8180
|
*/
|
|
7993
8181
|
"readonly"?: boolean;
|
|
7994
|
-
|
|
8182
|
+
/**
|
|
8183
|
+
* The condition being edited: a reference to a primitive, or the `not` around one.
|
|
8184
|
+
*/
|
|
8185
|
+
"value"?: Rule;
|
|
7995
8186
|
}
|
|
7996
8187
|
/**
|
|
7997
8188
|
* Tree editor for {@link Rule}.
|
|
7998
|
-
* Renders a `Rule` value as a tree
|
|
7999
|
-
* primitive refs
|
|
8000
|
-
*
|
|
8001
|
-
* primitive's
|
|
8189
|
+
* Renders a `Rule` value as a `limebb-condition-tree`. Lets an author
|
|
8190
|
+
* add primitive refs to `all` / `any` groups and to the negations of
|
|
8191
|
+
* those two, nest groups, negate a single ref, delete nodes, and edit
|
|
8192
|
+
* per-primitive args via the editor declared on each primitive's
|
|
8193
|
+
* metadata.
|
|
8194
|
+
* The tree owns every structural edit, and knows nothing about rules. A
|
|
8195
|
+
* `Rule` reaches it through an adapter — see `condition-tree-adapter.ts`
|
|
8196
|
+
* — which is also where the group negation the rule model writes as a
|
|
8197
|
+
* `not` wrapper is folded into the combinator the tree shows.
|
|
8002
8198
|
* The component is value-in / value-out. Pass `value` and listen for
|
|
8003
8199
|
* `change`; persistence is the caller's concern.
|
|
8004
8200
|
* Pass `availableContexts` to forward the list of context keys the
|
|
@@ -8040,7 +8236,7 @@ declare namespace LocalJSX {
|
|
|
8040
8236
|
*/
|
|
8041
8237
|
"context"?: LimeWebComponentContext;
|
|
8042
8238
|
/**
|
|
8043
|
-
* Whether or not the current property is disabled
|
|
8239
|
+
* Whether or not the current property is disabled Every control stays where it is, dimmed and inert, when set. The args editor is rendered with `disabled` forwarded to it.
|
|
8044
8240
|
* @inheritdoc
|
|
8045
8241
|
*/
|
|
8046
8242
|
"disabled"?: boolean;
|
|
@@ -8067,7 +8263,7 @@ declare namespace LocalJSX {
|
|
|
8067
8263
|
*/
|
|
8068
8264
|
"modes"?: RuleEditorMode[];
|
|
8069
8265
|
/**
|
|
8070
|
-
*
|
|
8266
|
+
* The edited rule, or nothing when the author has cleared it. What comes out is what should go back in as `value` — see the note there on why the objects themselves matter.
|
|
8071
8267
|
*/
|
|
8072
8268
|
"onChange"?: (event: LimebbRuleEditorCustomEvent<Rule | undefined>) => void;
|
|
8073
8269
|
/**
|
|
@@ -8075,7 +8271,7 @@ declare namespace LocalJSX {
|
|
|
8075
8271
|
*/
|
|
8076
8272
|
"platform"?: LimeWebComponentPlatform;
|
|
8077
8273
|
/**
|
|
8078
|
-
* Whether or not the current property is readonly The
|
|
8274
|
+
* Whether or not the current property is readonly The controls that add, delete and negate are not rendered when set, leaving the rule to be read. The args editor for each ref is still rendered, with `readonly` forwarded to it.
|
|
8079
8275
|
* @inheritdoc
|
|
8080
8276
|
*/
|
|
8081
8277
|
"readonly"?: boolean;
|
|
@@ -8085,7 +8281,7 @@ declare namespace LocalJSX {
|
|
|
8085
8281
|
*/
|
|
8086
8282
|
"required"?: boolean;
|
|
8087
8283
|
/**
|
|
8088
|
-
* The value of the current property
|
|
8284
|
+
* The value of the current property The rule under edit. Hand back what `change` emitted, not a copy: which condition is open, which have been visited and what validation said about each are all tracked by object identity, so a deep-cloned rule reads as a different one that happens to look the same.
|
|
8089
8285
|
* @inheritdoc
|
|
8090
8286
|
*/
|
|
8091
8287
|
"value"?: Rule | undefined;
|
|
@@ -8539,6 +8735,7 @@ declare namespace LocalJSX {
|
|
|
8539
8735
|
"open": boolean;
|
|
8540
8736
|
"value": string;
|
|
8541
8737
|
"heading": string;
|
|
8738
|
+
"icon": IconName;
|
|
8542
8739
|
"negated": boolean;
|
|
8543
8740
|
"readonly": boolean;
|
|
8544
8741
|
"disabled": boolean;
|
|
@@ -8797,12 +8994,21 @@ declare namespace LocalJSX {
|
|
|
8797
8994
|
"required": boolean;
|
|
8798
8995
|
"helperText": string;
|
|
8799
8996
|
}
|
|
8800
|
-
interface
|
|
8801
|
-
"
|
|
8997
|
+
interface LimebbRuleConditionChipAttributes {
|
|
8998
|
+
"label": string;
|
|
8999
|
+
"icon": IconName;
|
|
9000
|
+
"iconColor": string;
|
|
9001
|
+
"negated": boolean;
|
|
9002
|
+
"invalid": boolean;
|
|
9003
|
+
"selected": boolean;
|
|
8802
9004
|
"readonly": boolean;
|
|
8803
9005
|
"disabled": boolean;
|
|
8804
|
-
"
|
|
9006
|
+
"removable": boolean;
|
|
9007
|
+
}
|
|
9008
|
+
interface LimebbRuleConditionEditorAttributes {
|
|
8805
9009
|
"focusOnOpen": boolean;
|
|
9010
|
+
"readonly": boolean;
|
|
9011
|
+
"disabled": boolean;
|
|
8806
9012
|
}
|
|
8807
9013
|
interface LimebbRuleEditorAttributes {
|
|
8808
9014
|
"required": boolean;
|
|
@@ -8922,7 +9128,8 @@ declare namespace LocalJSX {
|
|
|
8922
9128
|
"limebb-percentage-visualizer": Omit<LimebbPercentageVisualizer, keyof LimebbPercentageVisualizerAttributes> & { [K in keyof LimebbPercentageVisualizer & keyof LimebbPercentageVisualizerAttributes]?: LimebbPercentageVisualizer[K] } & { [K in keyof LimebbPercentageVisualizer & keyof LimebbPercentageVisualizerAttributes as `attr:${K}`]?: LimebbPercentageVisualizerAttributes[K] } & { [K in keyof LimebbPercentageVisualizer & keyof LimebbPercentageVisualizerAttributes as `prop:${K}`]?: LimebbPercentageVisualizer[K] };
|
|
8923
9129
|
"limebb-property-selector": Omit<LimebbPropertySelector, keyof LimebbPropertySelectorAttributes> & { [K in keyof LimebbPropertySelector & keyof LimebbPropertySelectorAttributes]?: LimebbPropertySelector[K] } & { [K in keyof LimebbPropertySelector & keyof LimebbPropertySelectorAttributes as `attr:${K}`]?: LimebbPropertySelectorAttributes[K] } & { [K in keyof LimebbPropertySelector & keyof LimebbPropertySelectorAttributes as `prop:${K}`]?: LimebbPropertySelector[K] };
|
|
8924
9130
|
"limebb-rule-arg-filter-editor": LimebbRuleArgFilterEditor;
|
|
8925
|
-
"limebb-rule-chip
|
|
9131
|
+
"limebb-rule-condition-chip": Omit<LimebbRuleConditionChip, keyof LimebbRuleConditionChipAttributes> & { [K in keyof LimebbRuleConditionChip & keyof LimebbRuleConditionChipAttributes]?: LimebbRuleConditionChip[K] } & { [K in keyof LimebbRuleConditionChip & keyof LimebbRuleConditionChipAttributes as `attr:${K}`]?: LimebbRuleConditionChipAttributes[K] } & { [K in keyof LimebbRuleConditionChip & keyof LimebbRuleConditionChipAttributes as `prop:${K}`]?: LimebbRuleConditionChip[K] };
|
|
9132
|
+
"limebb-rule-condition-editor": Omit<LimebbRuleConditionEditor, keyof LimebbRuleConditionEditorAttributes> & { [K in keyof LimebbRuleConditionEditor & keyof LimebbRuleConditionEditorAttributes]?: LimebbRuleConditionEditor[K] } & { [K in keyof LimebbRuleConditionEditor & keyof LimebbRuleConditionEditorAttributes as `attr:${K}`]?: LimebbRuleConditionEditorAttributes[K] } & { [K in keyof LimebbRuleConditionEditor & keyof LimebbRuleConditionEditorAttributes as `prop:${K}`]?: LimebbRuleConditionEditor[K] };
|
|
8926
9133
|
"limebb-rule-editor": Omit<LimebbRuleEditor, keyof LimebbRuleEditorAttributes> & { [K in keyof LimebbRuleEditor & keyof LimebbRuleEditorAttributes]?: LimebbRuleEditor[K] } & { [K in keyof LimebbRuleEditor & keyof LimebbRuleEditorAttributes as `attr:${K}`]?: LimebbRuleEditorAttributes[K] } & { [K in keyof LimebbRuleEditor & keyof LimebbRuleEditorAttributes as `prop:${K}`]?: LimebbRuleEditor[K] };
|
|
8927
9134
|
"limebb-rule-gate": LimebbRuleGate;
|
|
8928
9135
|
"limebb-summary-popover": Omit<LimebbSummaryPopover, keyof LimebbSummaryPopoverAttributes> & { [K in keyof LimebbSummaryPopover & keyof LimebbSummaryPopoverAttributes]?: LimebbSummaryPopover[K] } & { [K in keyof LimebbSummaryPopover & keyof LimebbSummaryPopoverAttributes as `attr:${K}`]?: LimebbSummaryPopoverAttributes[K] } & { [K in keyof LimebbSummaryPopover & keyof LimebbSummaryPopoverAttributes as `prop:${K}`]?: LimebbSummaryPopover[K] };
|
|
@@ -9773,18 +9980,36 @@ declare module "@stencil/core" {
|
|
|
9773
9980
|
*/
|
|
9774
9981
|
"limebb-rule-arg-filter-editor": LocalJSX.IntrinsicElements["limebb-rule-arg-filter-editor"] & JSXBase.HTMLAttributes<HTMLLimebbRuleArgFilterEditorElement>;
|
|
9775
9982
|
/**
|
|
9776
|
-
*
|
|
9777
|
-
*
|
|
9778
|
-
*
|
|
9983
|
+
* A rule condition as a chip, in place of the `limebb-filter-chip` the tree
|
|
9984
|
+
* draws by default.
|
|
9985
|
+
* A filter condition is a sentence and that chip lays it out as one, with the
|
|
9986
|
+
* property captioned above the value. A rule condition is a name with no value
|
|
9987
|
+
* under it, so the name is the whole chip. Implements `ConditionChip`.
|
|
9988
|
+
* @private
|
|
9989
|
+
*/
|
|
9990
|
+
"limebb-rule-condition-chip": LocalJSX.IntrinsicElements["limebb-rule-condition-chip"] & JSXBase.HTMLAttributes<HTMLLimebbRuleConditionChipElement>;
|
|
9991
|
+
/**
|
|
9992
|
+
* The editor `limebb-condition-tree` opens for one rule condition: whatever
|
|
9993
|
+
* component the primitive named as its `configComponent`.
|
|
9994
|
+
* The two sides speak about different things. The tree passes a whole condition
|
|
9995
|
+
* and listens for `conditionChange`; a config component edits the reference's
|
|
9996
|
+
* `args` and reports a plain `change`. Config components are registered by
|
|
9997
|
+
* add-ons this repo does not own, so this side is the one that translates.
|
|
9998
|
+
* @alpha
|
|
9779
9999
|
* @private
|
|
9780
10000
|
*/
|
|
9781
|
-
"limebb-rule-
|
|
10001
|
+
"limebb-rule-condition-editor": LocalJSX.IntrinsicElements["limebb-rule-condition-editor"] & JSXBase.HTMLAttributes<HTMLLimebbRuleConditionEditorElement>;
|
|
9782
10002
|
/**
|
|
9783
10003
|
* Tree editor for {@link Rule}.
|
|
9784
|
-
* Renders a `Rule` value as a tree
|
|
9785
|
-
* primitive refs
|
|
9786
|
-
*
|
|
9787
|
-
* primitive's
|
|
10004
|
+
* Renders a `Rule` value as a `limebb-condition-tree`. Lets an author
|
|
10005
|
+
* add primitive refs to `all` / `any` groups and to the negations of
|
|
10006
|
+
* those two, nest groups, negate a single ref, delete nodes, and edit
|
|
10007
|
+
* per-primitive args via the editor declared on each primitive's
|
|
10008
|
+
* metadata.
|
|
10009
|
+
* The tree owns every structural edit, and knows nothing about rules. A
|
|
10010
|
+
* `Rule` reaches it through an adapter — see `condition-tree-adapter.ts`
|
|
10011
|
+
* — which is also where the group negation the rule model writes as a
|
|
10012
|
+
* `not` wrapper is folded into the combinator the tree shows.
|
|
9788
10013
|
* The component is value-in / value-out. Pass `value` and listen for
|
|
9789
10014
|
* `change`; persistence is the caller's concern.
|
|
9790
10015
|
* Pass `availableContexts` to forward the list of context keys the
|