@limetech/lime-crm-building-blocks 1.96.0 → 1.97.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.
Files changed (179) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/{_MapCache-2e84a981.js → _MapCache-8b125fbb.js} +0 -26
  3. package/dist/cjs/{_Uint8Array-1e99726d.js → _Uint8Array-95263550.js} +1 -12
  4. package/dist/cjs/_baseIsEqual-cb7951b0.js +496 -0
  5. package/dist/cjs/_defineProperty-40a6ad5d.js +15 -0
  6. package/dist/cjs/{get-1acf79ce.js → get-932b213e.js} +5 -4
  7. package/dist/cjs/isEqual-e77cce75.js +37 -0
  8. package/dist/cjs/isSymbol-5b36aeee.js +30 -0
  9. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  10. package/dist/cjs/lime-query.types-bcb63a22.js +61 -0
  11. package/dist/cjs/limebb-component-config.cjs.entry.js +3 -2
  12. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +382 -150
  13. package/dist/cjs/limebb-lime-query-filter-and_5.cjs.entry.js +278 -0
  14. package/dist/cjs/limebb-lime-query-value-input.cjs.entry.js +239 -0
  15. package/dist/cjs/limebb-limetype-field_2.cjs.entry.js +406 -0
  16. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  17. package/dist/cjs/limebb-locale-picker.cjs.entry.js +13 -498
  18. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  19. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
  20. package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
  21. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  22. package/dist/cjs/limebb-property-selector.cjs.entry.js +234 -0
  23. package/dist/cjs/limebb-response-format-item.cjs.entry.js +80 -0
  24. package/dist/cjs/limebb-text-editor.cjs.entry.js +20 -61
  25. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  26. package/dist/cjs/limetype-1fe0207f.js +90 -0
  27. package/dist/cjs/loader.cjs.js +1 -1
  28. package/dist/cjs/property-resolution-fb42a46b.js +66 -0
  29. package/dist/collection/collection-manifest.json +10 -0
  30. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.css +121 -0
  31. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.js +257 -0
  32. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.css +39 -0
  33. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +246 -0
  34. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.css +104 -0
  35. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +220 -0
  36. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.css +107 -0
  37. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +212 -0
  38. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.css +123 -0
  39. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.js +237 -0
  40. package/dist/collection/components/lime-query-builder/expressions/lime-query-value-input.css +48 -0
  41. package/dist/collection/components/lime-query-builder/expressions/lime-query-value-input.js +457 -0
  42. package/dist/collection/components/lime-query-builder/filter-conversion.js +118 -21
  43. package/dist/collection/components/lime-query-builder/lime-query-builder.css +30 -17
  44. package/dist/collection/components/lime-query-builder/lime-query-builder.js +233 -28
  45. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +435 -0
  46. package/dist/collection/components/lime-query-builder/property-selection-format.js +158 -0
  47. package/dist/collection/components/lime-query-builder/property-selector/property-selector.css +8 -0
  48. package/dist/collection/components/lime-query-builder/property-selector/property-selector.js +422 -0
  49. package/dist/collection/components/lime-query-builder/response-format-editor.css +72 -0
  50. package/dist/collection/components/lime-query-builder/response-format-editor.js +249 -0
  51. package/dist/collection/components/lime-query-builder/response-format-item.css +61 -0
  52. package/dist/collection/components/lime-query-builder/response-format-item.js +208 -0
  53. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  54. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  55. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  56. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  57. package/dist/collection/components/summary-popover/summary-popover.js +3 -3
  58. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  59. package/dist/collection/components/text-editor/text-editor.js +1 -1
  60. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  61. package/dist/components/_MapCache.js +2 -27
  62. package/dist/components/_Uint8Array.js +2 -12
  63. package/dist/components/_baseIsEqual.js +494 -0
  64. package/dist/components/_defineProperty.js +13 -0
  65. package/dist/components/get.js +2 -1
  66. package/dist/components/isEqual.js +35 -0
  67. package/dist/components/isSymbol.js +28 -0
  68. package/dist/components/lime-query-filter-and.js +408 -0
  69. package/dist/components/lime-query-filter-comparison.js +152 -0
  70. package/dist/components/lime-query-value-input.js +266 -0
  71. package/dist/components/limebb-lime-query-builder.js +441 -149
  72. package/dist/components/limebb-lime-query-filter-and.d.ts +11 -0
  73. package/dist/components/limebb-lime-query-filter-and.js +6 -0
  74. package/dist/components/limebb-lime-query-filter-comparison.d.ts +11 -0
  75. package/dist/components/limebb-lime-query-filter-comparison.js +6 -0
  76. package/dist/components/limebb-lime-query-filter-expression.d.ts +11 -0
  77. package/dist/components/limebb-lime-query-filter-expression.js +6 -0
  78. package/dist/components/limebb-lime-query-filter-not.d.ts +11 -0
  79. package/dist/components/limebb-lime-query-filter-not.js +6 -0
  80. package/dist/components/limebb-lime-query-filter-or.d.ts +11 -0
  81. package/dist/components/limebb-lime-query-filter-or.js +6 -0
  82. package/dist/components/limebb-lime-query-value-input.d.ts +11 -0
  83. package/dist/components/limebb-lime-query-value-input.js +6 -0
  84. package/dist/components/limebb-limetype-field.d.ts +11 -0
  85. package/dist/components/limebb-limetype-field.js +6 -0
  86. package/dist/components/limebb-locale-picker.js +8 -493
  87. package/dist/components/limebb-mention-group-counter.js +2 -2
  88. package/dist/components/limebb-percentage-visualizer.js +2 -2
  89. package/dist/components/limebb-property-selector.d.ts +11 -0
  90. package/dist/components/limebb-property-selector.js +6 -0
  91. package/dist/components/limebb-response-format-editor.d.ts +11 -0
  92. package/dist/components/limebb-response-format-editor.js +6 -0
  93. package/dist/components/limebb-response-format-item.d.ts +11 -0
  94. package/dist/components/limebb-response-format-item.js +6 -0
  95. package/dist/components/limebb-text-editor.js +7 -48
  96. package/dist/components/limebb-trend-indicator.js +1 -1
  97. package/dist/components/limetype-field.js +184 -0
  98. package/dist/components/limetype.js +85 -0
  99. package/dist/components/live-docs-info.js +2 -2
  100. package/dist/components/notification-item.js +1 -1
  101. package/dist/components/property-selector.js +317 -0
  102. package/dist/components/response-format-editor.js +278 -0
  103. package/dist/components/response-format-item.js +104 -0
  104. package/dist/components/summary-popover.js +3 -3
  105. package/dist/esm/{_MapCache-6484495d.js → _MapCache-af496e9d.js} +2 -27
  106. package/dist/esm/{_Uint8Array-e5cac922.js → _Uint8Array-d6ebd526.js} +3 -13
  107. package/dist/esm/_baseIsEqual-28053b81.js +494 -0
  108. package/dist/esm/_defineProperty-e6a185c3.js +13 -0
  109. package/dist/esm/{get-f9e0b2e1.js → get-3e42932b.js} +2 -1
  110. package/dist/esm/isEqual-57d0c223.js +35 -0
  111. package/dist/esm/isSymbol-1c5f65cc.js +28 -0
  112. package/dist/esm/lime-crm-building-blocks.js +1 -1
  113. package/dist/esm/lime-query.types-f72355e1.js +59 -0
  114. package/dist/esm/limebb-component-config.entry.js +3 -2
  115. package/dist/esm/limebb-lime-query-builder.entry.js +379 -147
  116. package/dist/esm/limebb-lime-query-filter-and_5.entry.js +270 -0
  117. package/dist/esm/limebb-lime-query-value-input.entry.js +235 -0
  118. package/dist/esm/limebb-limetype-field_2.entry.js +401 -0
  119. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  120. package/dist/esm/limebb-locale-picker.entry.js +9 -494
  121. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  122. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  123. package/dist/esm/limebb-notification-item.entry.js +1 -1
  124. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  125. package/dist/esm/limebb-property-selector.entry.js +230 -0
  126. package/dist/esm/limebb-response-format-item.entry.js +76 -0
  127. package/dist/esm/limebb-text-editor.entry.js +7 -48
  128. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  129. package/dist/esm/limetype-6e7552a7.js +85 -0
  130. package/dist/esm/loader.js +1 -1
  131. package/dist/esm/property-resolution-fde2375e.js +63 -0
  132. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  133. package/dist/lime-crm-building-blocks/{p-88c64360.entry.js → p-00da9b24.entry.js} +1 -1
  134. package/dist/lime-crm-building-blocks/p-02c0cc04.entry.js +1 -0
  135. package/dist/lime-crm-building-blocks/p-123190c3.js +1 -0
  136. package/dist/lime-crm-building-blocks/p-244ee55b.entry.js +1 -0
  137. package/dist/lime-crm-building-blocks/p-35897ec3.js +1 -0
  138. package/dist/lime-crm-building-blocks/{p-85b7291c.entry.js → p-3932077b.entry.js} +1 -1
  139. package/dist/lime-crm-building-blocks/p-3b0a15ec.js +1 -0
  140. package/dist/lime-crm-building-blocks/p-5a6d2e7f.js +1 -0
  141. package/dist/lime-crm-building-blocks/p-60971d64.js +1 -0
  142. package/dist/lime-crm-building-blocks/p-6c1146ca.entry.js +1 -0
  143. package/dist/lime-crm-building-blocks/p-70a28b93.entry.js +1 -0
  144. package/dist/lime-crm-building-blocks/p-7e6fb4af.js +1 -0
  145. package/dist/lime-crm-building-blocks/{p-8664381a.entry.js → p-8c4eb49f.entry.js} +1 -1
  146. package/dist/lime-crm-building-blocks/p-96beaabc.entry.js +1 -0
  147. package/dist/lime-crm-building-blocks/p-a659d55a.js +1 -0
  148. package/dist/lime-crm-building-blocks/p-b7c72179.entry.js +1 -0
  149. package/dist/lime-crm-building-blocks/p-baf4e428.entry.js +1 -0
  150. package/dist/lime-crm-building-blocks/p-d298b34e.js +1 -0
  151. package/dist/lime-crm-building-blocks/{p-7c4bdc1b.entry.js → p-d89c44ad.entry.js} +1 -1
  152. package/dist/lime-crm-building-blocks/p-e0ab1554.js +1 -0
  153. package/dist/lime-crm-building-blocks/{p-8064cbfb.entry.js → p-e9d23ef7.entry.js} +1 -1
  154. package/dist/lime-crm-building-blocks/p-ef8a5266.entry.js +1 -0
  155. package/dist/lime-crm-building-blocks/{p-c9126885.entry.js → p-f52125a0.entry.js} +1 -1
  156. package/dist/lime-crm-building-blocks/p-f99c611d.entry.js +1 -0
  157. package/dist/lime-crm-building-blocks/p-fe2b91d9.js +1 -0
  158. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-and.d.ts +56 -0
  159. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +64 -0
  160. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +53 -0
  161. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-not.d.ts +54 -0
  162. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-or.d.ts +55 -0
  163. package/dist/types/components/lime-query-builder/expressions/lime-query-value-input.d.ts +92 -0
  164. package/dist/types/components/lime-query-builder/filter-conversion.d.ts +18 -0
  165. package/dist/types/components/lime-query-builder/lime-query-builder.d.ts +30 -8
  166. package/dist/types/components/lime-query-builder/limetype-field/limetype-field.d.ts +96 -0
  167. package/dist/types/components/lime-query-builder/property-selection-format.d.ts +23 -0
  168. package/dist/types/components/lime-query-builder/property-selector/property-selector.d.ts +71 -0
  169. package/dist/types/components/lime-query-builder/response-format-editor.d.ts +57 -0
  170. package/dist/types/components/lime-query-builder/response-format-item.d.ts +46 -0
  171. package/dist/types/components.d.ts +1558 -117
  172. package/package.json +1 -1
  173. package/dist/lime-crm-building-blocks/p-00e7e0d4.entry.js +0 -1
  174. package/dist/lime-crm-building-blocks/p-11ac105b.entry.js +0 -1
  175. package/dist/lime-crm-building-blocks/p-5abe3fff.entry.js +0 -1
  176. package/dist/lime-crm-building-blocks/p-8044ffbd.js +0 -1
  177. package/dist/lime-crm-building-blocks/p-92ec9205.entry.js +0 -1
  178. package/dist/lime-crm-building-blocks/p-bcc23575.js +0 -1
  179. package/dist/lime-crm-building-blocks/p-c40a3f4b.js +0 -1
@@ -0,0 +1,408 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
+ import { d as defineCustomElement$4 } from './lime-query-filter-comparison.js';
3
+ import { i as isEqual } from './isEqual.js';
4
+ import { d as defineCustomElement$6 } from './lime-query-value-input.js';
5
+ import { d as defineCustomElement$5 } from './property-selector.js';
6
+
7
+ const limeQueryFilterOrCss = "@charset \"UTF-8\";.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:0;background-color:rgb(var(--contrast-200));border:1px solid rgb(var(--contrast-600));border-radius:0.75rem}.expression>ul{margin-top:0;margin-right:1rem;margin-bottom:1rem;margin-left:1rem;padding-left:1rem;list-style:circle}.expression>ul li{margin-top:1rem}.expression>ul li.add-button{list-style:none;margin-top:0;text-align:right}";
8
+ const LimebbLimeQueryFilterOrStyle0 = limeQueryFilterOrCss;
9
+
10
+ const LimeQueryFilterOrComponent = /*@__PURE__*/ proxyCustomElement(class LimeQueryFilterOrComponent extends HTMLElement {
11
+ constructor() {
12
+ super();
13
+ this.__registerHost();
14
+ this.__attachShadow();
15
+ this.expressionChange = createEvent(this, "expressionChange", 7);
16
+ this.renderChildExpression = (expression, childIndex) => {
17
+ const label = this.expression.expressions.length === 1 ? this.label : undefined;
18
+ return (h("li", null, h("limebb-lime-query-filter-expression", { platform: this.platform, context: this.context, label: label, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: expression, onExpressionChange: this.handleExpressionChange(childIndex) })));
19
+ };
20
+ this.handleExpressionChange = (updatedChildIndex) => (event) => {
21
+ event.stopPropagation();
22
+ const updatedExpression = event.detail;
23
+ const expressions = [...this.expression.expressions];
24
+ const missingExpression = {
25
+ filter_type: '',
26
+ };
27
+ if (isEqual(updatedExpression, missingExpression)) {
28
+ expressions.splice(updatedChildIndex, 1);
29
+ }
30
+ else {
31
+ expressions[updatedChildIndex] = updatedExpression;
32
+ }
33
+ if (expressions.length === 0) {
34
+ this.expressionChange.emit(missingExpression);
35
+ return;
36
+ }
37
+ this.expressionChange.emit({
38
+ filter_type: 'OR',
39
+ expressions: expressions,
40
+ });
41
+ };
42
+ this.handleAddChildExpression = () => {
43
+ const updatedExpressionsList = [
44
+ ...this.expression.expressions,
45
+ {
46
+ filter_type: '',
47
+ },
48
+ ];
49
+ this.expressionChange.emit({
50
+ filter_type: 'OR',
51
+ expressions: updatedExpressionsList,
52
+ });
53
+ };
54
+ }
55
+ render() {
56
+ return (h("div", { key: '9a0e6876f32ebcb614ab1ef0ccb122a5a5b8e978', class: "expression" }, this.expression.expressions.length > 1 && (h("limel-header", { key: 'cb1ff04ce7669582f0c4f6afefbce3402876d435', heading: this.label, subheading: "Any of these conditions is true" })), h("ul", { key: '21efcfec20f4ea04105ccbea880dbb9ed551efb9' }, this.expression.expressions.map(this.renderChildExpression), h("li", { key: '541811a52176182be501078c3cf662bbe6a71cda', class: "add-button" }, this.renderAddChildExpression()))));
57
+ }
58
+ renderAddChildExpression() {
59
+ return (h("limel-icon-button", { label: "Add alternative", icon: "plus_math", onClick: this.handleAddChildExpression }));
60
+ }
61
+ static get style() { return LimebbLimeQueryFilterOrStyle0; }
62
+ }, [1, "limebb-lime-query-filter-or", {
63
+ "platform": [16],
64
+ "context": [16],
65
+ "label": [1],
66
+ "limetype": [1],
67
+ "activeLimetype": [1, "active-limetype"],
68
+ "expression": [16]
69
+ }]);
70
+ function defineCustomElement$3() {
71
+ if (typeof customElements === "undefined") {
72
+ return;
73
+ }
74
+ const components = ["limebb-lime-query-filter-or", "limebb-lime-query-filter-and", "limebb-lime-query-filter-comparison", "limebb-lime-query-filter-expression", "limebb-lime-query-filter-not", "limebb-lime-query-filter-or"];
75
+ components.forEach(tagName => { switch (tagName) {
76
+ case "limebb-lime-query-filter-or":
77
+ if (!customElements.get(tagName)) {
78
+ customElements.define(tagName, LimeQueryFilterOrComponent);
79
+ }
80
+ break;
81
+ case "limebb-lime-query-filter-and":
82
+ if (!customElements.get(tagName)) {
83
+ defineCustomElement();
84
+ }
85
+ break;
86
+ case "limebb-lime-query-filter-comparison":
87
+ if (!customElements.get(tagName)) {
88
+ defineCustomElement$4();
89
+ }
90
+ break;
91
+ case "limebb-lime-query-filter-expression":
92
+ if (!customElements.get(tagName)) {
93
+ defineCustomElement$1();
94
+ }
95
+ break;
96
+ case "limebb-lime-query-filter-not":
97
+ if (!customElements.get(tagName)) {
98
+ defineCustomElement$2();
99
+ }
100
+ break;
101
+ case "limebb-lime-query-filter-or":
102
+ if (!customElements.get(tagName)) {
103
+ defineCustomElement$3();
104
+ }
105
+ break;
106
+ } });
107
+ }
108
+
109
+ const limeQueryFilterNotCss = "@charset \"UTF-8\";.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:1rem;padding:1rem;border-left:0.25rem solid rgb(var(--contrast-400));background-color:rgb(var(--contrast-100))}";
110
+ const LimebbLimeQueryFilterNotStyle0 = limeQueryFilterNotCss;
111
+
112
+ const LimeQueryFilterNotComponent = /*@__PURE__*/ proxyCustomElement(class LimeQueryFilterNotComponent extends HTMLElement {
113
+ constructor() {
114
+ super();
115
+ this.__registerHost();
116
+ this.__attachShadow();
117
+ this.expressionChange = createEvent(this, "expressionChange", 7);
118
+ this.handleExpressionChange = (event) => {
119
+ event.stopPropagation();
120
+ const missingExpression = {
121
+ filter_type: '',
122
+ };
123
+ if (isEqual(event.detail, missingExpression)) {
124
+ this.expressionChange.emit(missingExpression);
125
+ return;
126
+ }
127
+ this.expressionChange.emit({
128
+ filter_type: 'NOT',
129
+ expression: event.detail,
130
+ });
131
+ };
132
+ }
133
+ render() {
134
+ return (h("div", { key: '005a133401b16d03bdb5d8683b6a51c2c9691dfb', class: "expression" }, this.label && h("limel-header", { key: '31b44cd46fa6cd6fbe19e77df4eef9075523733d', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '487f857eccec79d6a1da6a71aa31be04204b8862', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.expression, onExpressionChange: this.handleExpressionChange })));
135
+ }
136
+ static get style() { return LimebbLimeQueryFilterNotStyle0; }
137
+ }, [1, "limebb-lime-query-filter-not", {
138
+ "platform": [16],
139
+ "context": [16],
140
+ "label": [1],
141
+ "limetype": [1],
142
+ "activeLimetype": [1, "active-limetype"],
143
+ "expression": [16]
144
+ }]);
145
+ function defineCustomElement$2() {
146
+ if (typeof customElements === "undefined") {
147
+ return;
148
+ }
149
+ const components = ["limebb-lime-query-filter-not", "limebb-lime-query-filter-and", "limebb-lime-query-filter-comparison", "limebb-lime-query-filter-expression", "limebb-lime-query-filter-not", "limebb-lime-query-filter-or"];
150
+ components.forEach(tagName => { switch (tagName) {
151
+ case "limebb-lime-query-filter-not":
152
+ if (!customElements.get(tagName)) {
153
+ customElements.define(tagName, LimeQueryFilterNotComponent);
154
+ }
155
+ break;
156
+ case "limebb-lime-query-filter-and":
157
+ if (!customElements.get(tagName)) {
158
+ defineCustomElement();
159
+ }
160
+ break;
161
+ case "limebb-lime-query-filter-comparison":
162
+ if (!customElements.get(tagName)) {
163
+ defineCustomElement$4();
164
+ }
165
+ break;
166
+ case "limebb-lime-query-filter-expression":
167
+ if (!customElements.get(tagName)) {
168
+ defineCustomElement$1();
169
+ }
170
+ break;
171
+ case "limebb-lime-query-filter-not":
172
+ if (!customElements.get(tagName)) {
173
+ defineCustomElement$2();
174
+ }
175
+ break;
176
+ case "limebb-lime-query-filter-or":
177
+ if (!customElements.get(tagName)) {
178
+ defineCustomElement$3();
179
+ }
180
+ break;
181
+ } });
182
+ }
183
+
184
+ const limeQueryFilterExpressionCss = "@charset \"UTF-8\";.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:1rem}";
185
+ const LimebbLimeQueryFilterExpressionStyle0 = limeQueryFilterExpressionCss;
186
+
187
+ const LimeQueryFilterExpressionComponent = /*@__PURE__*/ proxyCustomElement(class LimeQueryFilterExpressionComponent extends HTMLElement {
188
+ constructor() {
189
+ super();
190
+ this.__registerHost();
191
+ this.__attachShadow();
192
+ this.expressionChange = createEvent(this, "expressionChange", 7);
193
+ }
194
+ render() {
195
+ var _a;
196
+ const props = {
197
+ platform: this.platform,
198
+ context: this.context,
199
+ label: this.label,
200
+ limetype: this.limetype,
201
+ activeLimetype: this.activeLimetype,
202
+ };
203
+ switch ((_a = this.expression) === null || _a === void 0 ? void 0 : _a.filter_type) {
204
+ case 'AND': {
205
+ return (h("limebb-lime-query-filter-and", Object.assign({}, props, { expression: this.expression })));
206
+ }
207
+ case 'OR': {
208
+ return (h("limebb-lime-query-filter-or", Object.assign({}, props, { expression: this.expression })));
209
+ }
210
+ case 'NOT': {
211
+ return (h("limebb-lime-query-filter-not", Object.assign({}, props, { expression: this.expression })));
212
+ }
213
+ case 'comparison': {
214
+ return (h("limebb-lime-query-filter-comparison", Object.assign({}, props, { expression: this.expression })));
215
+ }
216
+ default: {
217
+ // Default to comparison for empty/missing expressions
218
+ // Convert missing expression to empty comparison
219
+ const comparisonExpression = {
220
+ filter_type: 'comparison',
221
+ property: '',
222
+ operator: '=',
223
+ value: '',
224
+ };
225
+ return (h("limebb-lime-query-filter-comparison", Object.assign({}, props, { expression: comparisonExpression })));
226
+ }
227
+ }
228
+ }
229
+ static get style() { return LimebbLimeQueryFilterExpressionStyle0; }
230
+ }, [1, "limebb-lime-query-filter-expression", {
231
+ "platform": [16],
232
+ "context": [16],
233
+ "label": [1],
234
+ "limetype": [1],
235
+ "activeLimetype": [1, "active-limetype"],
236
+ "expression": [16]
237
+ }]);
238
+ function defineCustomElement$1() {
239
+ if (typeof customElements === "undefined") {
240
+ return;
241
+ }
242
+ const components = ["limebb-lime-query-filter-expression", "limebb-lime-query-filter-and", "limebb-lime-query-filter-comparison", "limebb-lime-query-filter-expression", "limebb-lime-query-filter-not", "limebb-lime-query-filter-or", "limebb-lime-query-value-input", "limebb-property-selector"];
243
+ components.forEach(tagName => { switch (tagName) {
244
+ case "limebb-lime-query-filter-expression":
245
+ if (!customElements.get(tagName)) {
246
+ customElements.define(tagName, LimeQueryFilterExpressionComponent);
247
+ }
248
+ break;
249
+ case "limebb-lime-query-filter-and":
250
+ if (!customElements.get(tagName)) {
251
+ defineCustomElement();
252
+ }
253
+ break;
254
+ case "limebb-lime-query-filter-comparison":
255
+ if (!customElements.get(tagName)) {
256
+ defineCustomElement$4();
257
+ }
258
+ break;
259
+ case "limebb-lime-query-filter-expression":
260
+ if (!customElements.get(tagName)) {
261
+ defineCustomElement$1();
262
+ }
263
+ break;
264
+ case "limebb-lime-query-filter-not":
265
+ if (!customElements.get(tagName)) {
266
+ defineCustomElement$2();
267
+ }
268
+ break;
269
+ case "limebb-lime-query-filter-or":
270
+ if (!customElements.get(tagName)) {
271
+ defineCustomElement$3();
272
+ }
273
+ break;
274
+ case "limebb-lime-query-value-input":
275
+ if (!customElements.get(tagName)) {
276
+ defineCustomElement$6();
277
+ }
278
+ break;
279
+ case "limebb-property-selector":
280
+ if (!customElements.get(tagName)) {
281
+ defineCustomElement$5();
282
+ }
283
+ break;
284
+ } });
285
+ }
286
+
287
+ const limeQueryFilterAndCss = "@charset \"UTF-8\";.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:0;background-color:rgb(var(--contrast-100));border:1px solid rgb(var(--contrast-500));border-radius:0.75rem}.expression>ul{margin-top:0;margin-right:1rem;margin-bottom:1rem;margin-left:1rem;padding-left:1rem;list-style:disc}.expression>ul li{margin-top:1rem}.expression>ul li.add-button{list-style:none}";
288
+ const LimebbLimeQueryFilterAndStyle0 = limeQueryFilterAndCss;
289
+
290
+ const LimeQueryFilterAndComponent = /*@__PURE__*/ proxyCustomElement(class LimeQueryFilterAndComponent extends HTMLElement {
291
+ constructor() {
292
+ super();
293
+ this.__registerHost();
294
+ this.__attachShadow();
295
+ this.expressionChange = createEvent(this, "expressionChange", 7);
296
+ /**
297
+ * The AND expression containing child expressions
298
+ */
299
+ this.expression = {
300
+ filter_type: 'AND',
301
+ expressions: [],
302
+ };
303
+ this.renderChildExpression = (expression, childIndex) => (h("li", null, h("limebb-lime-query-filter-expression", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: expression, onExpressionChange: this.handleExpressionChange(childIndex) })));
304
+ this.handleAddChildExpression = () => {
305
+ const updatedExpressionsList = [
306
+ ...this.expression.expressions,
307
+ {
308
+ filter_type: 'OR',
309
+ expressions: [
310
+ {
311
+ filter_type: '',
312
+ },
313
+ ],
314
+ },
315
+ ];
316
+ this.expressionChange.emit({
317
+ filter_type: 'AND',
318
+ expressions: updatedExpressionsList,
319
+ });
320
+ };
321
+ this.handleExpressionChange = (updatedChildIndex) => (event) => {
322
+ event.stopPropagation();
323
+ const updatedExpression = event.detail;
324
+ const expressions = [...this.expression.expressions];
325
+ const missingExpression = {
326
+ filter_type: '',
327
+ };
328
+ if (isEqual(updatedExpression, missingExpression)) {
329
+ expressions.splice(updatedChildIndex, 1);
330
+ }
331
+ else {
332
+ expressions[updatedChildIndex] = updatedExpression;
333
+ }
334
+ if (expressions.length === 0) {
335
+ this.expressionChange.emit(missingExpression);
336
+ return;
337
+ }
338
+ this.expressionChange.emit({
339
+ filter_type: 'AND',
340
+ expressions: expressions,
341
+ });
342
+ };
343
+ }
344
+ render() {
345
+ let subheading = 'All of these conditions are true';
346
+ if (this.expression.expressions.length <= 1) {
347
+ subheading = '';
348
+ }
349
+ return (h("div", { key: 'b58b7c54e8f1ded42a965f430cc103e6a344dfbf', class: "expression" }, (this.label || subheading) && (h("limel-header", { key: 'd5c38eef732ccbfff6baec25f007a9accdabdec0', heading: this.label, subheading: subheading })), h("ul", { key: 'aee3cc6799ae69c1df334a826cd708a9b6cf2be6' }, this.expression.expressions.map(this.renderChildExpression), h("li", { key: 'f120182c92d6b9a0b35b21be2d3308f6e62e36ab', class: "add-button" }, this.renderAddChildExpression()))));
350
+ }
351
+ renderAddChildExpression() {
352
+ return (h("limel-button", { label: this.getAddButtonLabel(), icon: "plus_math", onClick: this.handleAddChildExpression }));
353
+ }
354
+ getAddButtonLabel() {
355
+ if (this.expression.expressions.length === 0) {
356
+ return 'Add a condition';
357
+ }
358
+ return 'Add another condition';
359
+ }
360
+ static get style() { return LimebbLimeQueryFilterAndStyle0; }
361
+ }, [1, "limebb-lime-query-filter-and", {
362
+ "platform": [16],
363
+ "context": [16],
364
+ "label": [1],
365
+ "limetype": [1],
366
+ "activeLimetype": [1, "active-limetype"],
367
+ "expression": [16]
368
+ }]);
369
+ function defineCustomElement() {
370
+ if (typeof customElements === "undefined") {
371
+ return;
372
+ }
373
+ const components = ["limebb-lime-query-filter-and", "limebb-lime-query-filter-and", "limebb-lime-query-filter-comparison", "limebb-lime-query-filter-expression", "limebb-lime-query-filter-not", "limebb-lime-query-filter-or"];
374
+ components.forEach(tagName => { switch (tagName) {
375
+ case "limebb-lime-query-filter-and":
376
+ if (!customElements.get(tagName)) {
377
+ customElements.define(tagName, LimeQueryFilterAndComponent);
378
+ }
379
+ break;
380
+ case "limebb-lime-query-filter-and":
381
+ if (!customElements.get(tagName)) {
382
+ defineCustomElement();
383
+ }
384
+ break;
385
+ case "limebb-lime-query-filter-comparison":
386
+ if (!customElements.get(tagName)) {
387
+ defineCustomElement$4();
388
+ }
389
+ break;
390
+ case "limebb-lime-query-filter-expression":
391
+ if (!customElements.get(tagName)) {
392
+ defineCustomElement$1();
393
+ }
394
+ break;
395
+ case "limebb-lime-query-filter-not":
396
+ if (!customElements.get(tagName)) {
397
+ defineCustomElement$2();
398
+ }
399
+ break;
400
+ case "limebb-lime-query-filter-or":
401
+ if (!customElements.get(tagName)) {
402
+ defineCustomElement$3();
403
+ }
404
+ break;
405
+ } });
406
+ }
407
+
408
+ export { LimeQueryFilterAndComponent as L, defineCustomElement$2 as a, defineCustomElement$1 as b, defineCustomElement as c, defineCustomElement$3 as d, LimeQueryFilterExpressionComponent as e, LimeQueryFilterNotComponent as f, LimeQueryFilterOrComponent as g };
@@ -0,0 +1,152 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
+ import { d as defineCustomElement$2 } from './lime-query-value-input.js';
3
+ import { d as defineCustomElement$1 } from './property-selector.js';
4
+
5
+ /**
6
+ * TypeScript type definitions for Lime Query DSL
7
+ *
8
+ * These types represent the structure of Lime Query as defined in:
9
+ * - lime-core/lime_query/schema.py
10
+ * - lime-core/lime_filter/schema.py
11
+ */
12
+ /**
13
+ * Available operators with display metadata
14
+ */
15
+ const LIME_QUERY_OPERATORS = [
16
+ { value: '=', label: 'Equals', icon: 'equals' },
17
+ { value: '!=', label: 'Not Equals', icon: 'not-equal' },
18
+ {
19
+ value: '>',
20
+ label: 'Greater Than',
21
+ icon: 'greater-than',
22
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
23
+ },
24
+ {
25
+ value: '>=',
26
+ label: 'Greater or Equal',
27
+ icon: 'greater-or-equal',
28
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
29
+ },
30
+ {
31
+ value: '<',
32
+ label: 'Less Than',
33
+ icon: 'less-than',
34
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
35
+ },
36
+ {
37
+ value: '<=',
38
+ label: 'Less or Equal',
39
+ icon: 'less-or-equal',
40
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
41
+ },
42
+ { value: 'IN', label: 'In List', icon: 'list' },
43
+ {
44
+ value: '?',
45
+ label: 'Contains',
46
+ icon: '-lime-filter-contain',
47
+ applicableTypes: ['string', 'text'],
48
+ },
49
+ {
50
+ value: '=?',
51
+ label: 'Begins With',
52
+ icon: '-lime-filter-begin',
53
+ applicableTypes: ['string', 'text'],
54
+ },
55
+ {
56
+ value: '=$',
57
+ label: 'Ends With',
58
+ icon: '-lime-filter-end',
59
+ applicableTypes: ['string', 'text'],
60
+ },
61
+ ];
62
+
63
+ const limeQueryFilterComparisonCss = ".expression-container{display:flex;flex-direction:row;align-items:flex-start;gap:1rem;flex-wrap:wrap}.expression-container>*{flex-grow:2;width:30%;max-width:calc(100% - 3.25rem)}.expression-container>.operator{flex-grow:1;width:calc(30% + 1rem);min-width:4rem}.expression-container>.remove{flex-grow:0;width:auto;margin-left:auto}@media (max-width: 768px){.expression-container{flex-direction:column}.expression-container>*{width:100%;max-width:100%}.expression-container>.operator{width:100%}.expression-container>.remove{margin-left:0;align-self:flex-end}}";
64
+ const LimebbLimeQueryFilterComparisonStyle0 = limeQueryFilterComparisonCss;
65
+
66
+ const LimeQueryFilterComparisonComponent = /*@__PURE__*/ proxyCustomElement(class LimeQueryFilterComparisonComponent extends HTMLElement {
67
+ constructor() {
68
+ super();
69
+ this.__registerHost();
70
+ this.__attachShadow();
71
+ this.expressionChange = createEvent(this, "expressionChange", 7);
72
+ /**
73
+ * The comparison expression to render
74
+ */
75
+ this.expression = {
76
+ filter_type: 'comparison',
77
+ property: '',
78
+ operator: '=',
79
+ value: '',
80
+ };
81
+ this.handlePropertyChange = (event) => {
82
+ event.stopPropagation();
83
+ this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { property: event.detail }));
84
+ };
85
+ this.handleOperatorChange = (event) => {
86
+ event.stopPropagation();
87
+ this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { operator: event.detail.value }));
88
+ };
89
+ this.handleValueChange = (event) => {
90
+ event.stopPropagation();
91
+ this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { value: event.detail }));
92
+ };
93
+ this.removeExpression = () => {
94
+ this.expressionChange.emit({ filter_type: '' });
95
+ };
96
+ }
97
+ render() {
98
+ return (h("div", { key: '618150e84e87cdc234b5eab7cd0ef6443bcb261c', class: "expression" }, this.label && h("limel-header", { key: '7b9a35794777df5556b591ea54d1e63b64833808', heading: this.label }), h("div", { key: '4367741a9383fc268fcfe6dbcc14bea49f20871b', class: "expression-container" }, this.renderPropertySelector(), this.renderOperator(), this.renderValueInput(), h("limel-icon-button", { key: '3ad667258da994636f484c0f7a5649b1e13b063b', class: "remove", icon: "trash", label: "Remove condition", onClick: this.removeExpression }))));
99
+ }
100
+ renderPropertySelector() {
101
+ return (h("limebb-property-selector", { platform: this.platform, context: this.context, label: "Property", limetype: this.limetype, value: this.expression.property, required: true, onChange: this.handlePropertyChange }));
102
+ }
103
+ renderOperator() {
104
+ const operatorHasBeenSet = !!this.expression.operator;
105
+ const options = LIME_QUERY_OPERATORS.map((op) => ({
106
+ text: op.label,
107
+ value: op.value,
108
+ icon: op.icon ? { name: op.icon } : undefined,
109
+ }));
110
+ const selectedOption = options.find((o) => o.value === this.expression.operator);
111
+ return (h("limel-select", { class: "operator", label: "Operator", value: selectedOption, options: options, disabled: !operatorHasBeenSet && !this.expression.property, onChange: this.handleOperatorChange }));
112
+ }
113
+ renderValueInput() {
114
+ if (!this.expression.operator) {
115
+ return null;
116
+ }
117
+ return (h("limebb-lime-query-value-input", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, propertyPath: this.expression.property, operator: this.expression.operator, value: this.expression.value, onChange: this.handleValueChange }));
118
+ }
119
+ static get style() { return LimebbLimeQueryFilterComparisonStyle0; }
120
+ }, [1, "limebb-lime-query-filter-comparison", {
121
+ "platform": [16],
122
+ "context": [16],
123
+ "label": [1],
124
+ "limetype": [1],
125
+ "activeLimetype": [1, "active-limetype"],
126
+ "expression": [16]
127
+ }]);
128
+ function defineCustomElement() {
129
+ if (typeof customElements === "undefined") {
130
+ return;
131
+ }
132
+ const components = ["limebb-lime-query-filter-comparison", "limebb-lime-query-value-input", "limebb-property-selector"];
133
+ components.forEach(tagName => { switch (tagName) {
134
+ case "limebb-lime-query-filter-comparison":
135
+ if (!customElements.get(tagName)) {
136
+ customElements.define(tagName, LimeQueryFilterComparisonComponent);
137
+ }
138
+ break;
139
+ case "limebb-lime-query-value-input":
140
+ if (!customElements.get(tagName)) {
141
+ defineCustomElement$2();
142
+ }
143
+ break;
144
+ case "limebb-property-selector":
145
+ if (!customElements.get(tagName)) {
146
+ defineCustomElement$1();
147
+ }
148
+ break;
149
+ } });
150
+ }
151
+
152
+ export { LIME_QUERY_OPERATORS as L, LimeQueryFilterComparisonComponent as a, defineCustomElement as d };