@limetech/lime-crm-building-blocks 1.97.0 → 1.99.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 (170) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/{index.esm-a894ac76.js → index.esm-d785eb6e.js} +2 -0
  3. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  4. package/dist/cjs/limebb-browser.cjs.entry.js +1 -1
  5. package/dist/cjs/limebb-chat-item_2.cjs.entry.js +1 -1
  6. package/dist/cjs/limebb-chat-list.cjs.entry.js +1 -1
  7. package/dist/cjs/limebb-component-config.cjs.entry.js +1 -1
  8. package/dist/cjs/limebb-component-picker.cjs.entry.js +1 -1
  9. package/dist/cjs/limebb-currency-picker.cjs.entry.js +1 -1
  10. package/dist/cjs/limebb-date-picker.cjs.entry.js +1 -1
  11. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +1 -1
  12. package/dist/cjs/limebb-feed.cjs.entry.js +1 -1
  13. package/dist/cjs/limebb-info-tile.cjs.entry.js +1 -1
  14. package/dist/cjs/limebb-kanban-group.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
  16. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +90 -174
  17. package/dist/cjs/limebb-lime-query-filter-and.cjs.entry.js +80 -0
  18. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +147 -0
  19. package/dist/cjs/limebb-lime-query-filter-group_4.cjs.entry.js +603 -0
  20. package/dist/cjs/limebb-lime-query-filter-or.cjs.entry.js +68 -0
  21. package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +1 -1
  22. package/dist/cjs/limebb-limetype-field_2.cjs.entry.js +37 -6
  23. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  24. package/dist/cjs/limebb-loader.cjs.entry.js +1 -1
  25. package/dist/cjs/limebb-locale-picker.cjs.entry.js +2 -2
  26. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  27. package/dist/cjs/limebb-mention.cjs.entry.js +1 -1
  28. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
  29. package/dist/cjs/limebb-notification-item.cjs.entry.js +2 -2
  30. package/dist/cjs/limebb-notification-list.cjs.entry.js +1 -1
  31. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  32. package/dist/cjs/limebb-text-editor.cjs.entry.js +3 -3
  33. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  34. package/dist/cjs/{limetype-1fe0207f.js → limetype-f2e4376e.js} +1 -1
  35. package/dist/cjs/loader.cjs.js +1 -1
  36. package/dist/collection/collection-manifest.json +1 -0
  37. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.js +41 -49
  38. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +77 -41
  39. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +35 -46
  40. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.css +130 -0
  41. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +269 -0
  42. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +19 -25
  43. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.js +34 -34
  44. package/dist/collection/components/lime-query-builder/lime-query-builder.js +60 -24
  45. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  46. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  47. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  48. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  49. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  50. package/dist/collection/components/summary-popover/summary-popover.js +3 -3
  51. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  52. package/dist/collection/components/text-editor/text-editor.js +1 -1
  53. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  54. package/dist/components/index.esm.js +2 -1
  55. package/dist/components/lime-query-filter-comparison.js +32 -45
  56. package/dist/components/lime-query-filter-expression.js +315 -0
  57. package/dist/components/limebb-lime-query-builder.js +96 -184
  58. package/dist/components/limebb-lime-query-filter-and.js +130 -1
  59. package/dist/components/limebb-lime-query-filter-comparison.js +1 -1
  60. package/dist/components/limebb-lime-query-filter-expression.js +1 -1
  61. package/dist/components/limebb-lime-query-filter-group.d.ts +11 -0
  62. package/dist/components/limebb-lime-query-filter-group.js +6 -0
  63. package/dist/components/limebb-lime-query-filter-not.js +1 -1
  64. package/dist/components/limebb-lime-query-filter-or.js +118 -1
  65. package/dist/components/limebb-locale-picker.js +1 -1
  66. package/dist/components/limebb-mention-group-counter.js +2 -2
  67. package/dist/components/limebb-percentage-visualizer.js +2 -2
  68. package/dist/components/limebb-text-editor.js +1 -1
  69. package/dist/components/limebb-trend-indicator.js +1 -1
  70. package/dist/components/limetype-field.js +34 -2
  71. package/dist/components/live-docs-info.js +2 -2
  72. package/dist/components/notification-item.js +1 -1
  73. package/dist/components/summary-popover.js +3 -3
  74. package/dist/esm/{index.esm-d8fdeb18.js → index.esm-bb569663.js} +2 -1
  75. package/dist/esm/lime-crm-building-blocks.js +1 -1
  76. package/dist/esm/limebb-browser.entry.js +1 -1
  77. package/dist/esm/limebb-chat-item_2.entry.js +1 -1
  78. package/dist/esm/limebb-chat-list.entry.js +1 -1
  79. package/dist/esm/limebb-component-config.entry.js +1 -1
  80. package/dist/esm/limebb-component-picker.entry.js +1 -1
  81. package/dist/esm/limebb-currency-picker.entry.js +1 -1
  82. package/dist/esm/limebb-date-picker.entry.js +1 -1
  83. package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
  84. package/dist/esm/limebb-feed.entry.js +1 -1
  85. package/dist/esm/limebb-info-tile.entry.js +1 -1
  86. package/dist/esm/limebb-kanban-group.entry.js +1 -1
  87. package/dist/esm/limebb-kanban-item.entry.js +1 -1
  88. package/dist/esm/limebb-lime-query-builder.entry.js +89 -173
  89. package/dist/esm/limebb-lime-query-filter-and.entry.js +76 -0
  90. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +142 -0
  91. package/dist/esm/limebb-lime-query-filter-group_4.entry.js +596 -0
  92. package/dist/esm/limebb-lime-query-filter-or.entry.js +64 -0
  93. package/dist/esm/limebb-limeobject-file-viewer.entry.js +1 -1
  94. package/dist/esm/limebb-limetype-field_2.entry.js +36 -5
  95. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  96. package/dist/esm/limebb-loader.entry.js +1 -1
  97. package/dist/esm/limebb-locale-picker.entry.js +2 -2
  98. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  99. package/dist/esm/limebb-mention.entry.js +1 -1
  100. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  101. package/dist/esm/limebb-notification-item.entry.js +2 -2
  102. package/dist/esm/limebb-notification-list.entry.js +1 -1
  103. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  104. package/dist/esm/limebb-text-editor.entry.js +3 -3
  105. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  106. package/dist/esm/{limetype-6e7552a7.js → limetype-c0e041f7.js} +1 -1
  107. package/dist/esm/loader.js +1 -1
  108. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  109. package/dist/lime-crm-building-blocks/p-03accd53.entry.js +1 -0
  110. package/dist/lime-crm-building-blocks/{p-a1818969.entry.js → p-03af0e66.entry.js} +1 -1
  111. package/dist/lime-crm-building-blocks/{p-f402184f.entry.js → p-098ee6c1.entry.js} +1 -1
  112. package/dist/lime-crm-building-blocks/{p-42e52b50.entry.js → p-1be0eec7.entry.js} +1 -1
  113. package/dist/lime-crm-building-blocks/{p-2aa18c2b.entry.js → p-206575e4.entry.js} +1 -1
  114. package/dist/lime-crm-building-blocks/p-20bfca36.js +1 -0
  115. package/dist/lime-crm-building-blocks/{p-82d33d43.entry.js → p-2faaacbc.entry.js} +1 -1
  116. package/dist/lime-crm-building-blocks/{p-d4016891.entry.js → p-2fdcb868.entry.js} +1 -1
  117. package/dist/lime-crm-building-blocks/{p-f52125a0.entry.js → p-3122ea05.entry.js} +1 -1
  118. package/dist/lime-crm-building-blocks/{p-baf4e428.entry.js → p-3175883d.entry.js} +1 -1
  119. package/dist/lime-crm-building-blocks/{p-8c8b7115.entry.js → p-32534eb7.entry.js} +1 -1
  120. package/dist/lime-crm-building-blocks/{p-6c1146ca.entry.js → p-36ea13c0.entry.js} +1 -1
  121. package/dist/lime-crm-building-blocks/p-4715210d.entry.js +1 -0
  122. package/dist/lime-crm-building-blocks/{p-1fba0ade.js → p-4838284a.js} +1 -1
  123. package/dist/lime-crm-building-blocks/{p-5e4ba110.entry.js → p-5464f0de.entry.js} +1 -1
  124. package/dist/lime-crm-building-blocks/{p-e9d23ef7.entry.js → p-569c86b5.entry.js} +1 -1
  125. package/dist/lime-crm-building-blocks/{p-90e1716a.entry.js → p-5dc574a3.entry.js} +1 -1
  126. package/dist/lime-crm-building-blocks/p-5f7644b5.entry.js +1 -0
  127. package/dist/lime-crm-building-blocks/{p-00da9b24.entry.js → p-631ca5a5.entry.js} +1 -1
  128. package/dist/lime-crm-building-blocks/p-67dbaa4c.entry.js +1 -0
  129. package/dist/lime-crm-building-blocks/{p-beb0d164.entry.js → p-7271f47a.entry.js} +1 -1
  130. package/dist/lime-crm-building-blocks/{p-34357744.entry.js → p-9031f136.entry.js} +1 -1
  131. package/dist/lime-crm-building-blocks/p-91732502.entry.js +1 -0
  132. package/dist/lime-crm-building-blocks/{p-8c4eb49f.entry.js → p-93cadc1e.entry.js} +1 -1
  133. package/dist/lime-crm-building-blocks/{p-3932077b.entry.js → p-9cac4de2.entry.js} +1 -1
  134. package/dist/lime-crm-building-blocks/{p-79d4668a.entry.js → p-a200954f.entry.js} +1 -1
  135. package/dist/lime-crm-building-blocks/p-aa646df7.entry.js +1 -0
  136. package/dist/lime-crm-building-blocks/{p-d89c44ad.entry.js → p-b9b954d9.entry.js} +1 -1
  137. package/dist/lime-crm-building-blocks/{p-3a620226.entry.js → p-cfa1a4ad.entry.js} +1 -1
  138. package/dist/lime-crm-building-blocks/{p-ef8a5266.entry.js → p-e8946134.entry.js} +1 -1
  139. package/dist/lime-crm-building-blocks/{p-9d9f25da.entry.js → p-eb81bceb.entry.js} +1 -1
  140. package/dist/lime-crm-building-blocks/{p-50d3d61a.entry.js → p-ee1b00b9.entry.js} +1 -1
  141. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-and.d.ts +5 -4
  142. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +6 -4
  143. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +10 -14
  144. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-group.d.ts +60 -0
  145. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-not.d.ts +4 -4
  146. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-or.d.ts +5 -4
  147. package/dist/types/components/lime-query-builder/lime-query-builder.d.ts +19 -2
  148. package/dist/types/components/lime-query-builder/lime-query.types.d.ts +2 -1
  149. package/dist/types/components.d.ts +209 -65
  150. package/package.json +1 -1
  151. package/dist/cjs/isEqual-e77cce75.js +0 -37
  152. package/dist/cjs/lime-query.types-bcb63a22.js +0 -61
  153. package/dist/cjs/limebb-lime-query-filter-and_5.cjs.entry.js +0 -278
  154. package/dist/cjs/limebb-lime-query-value-input.cjs.entry.js +0 -239
  155. package/dist/cjs/limebb-property-selector.cjs.entry.js +0 -234
  156. package/dist/components/isEqual.js +0 -35
  157. package/dist/components/lime-query-filter-and.js +0 -408
  158. package/dist/esm/isEqual-57d0c223.js +0 -35
  159. package/dist/esm/lime-query.types-f72355e1.js +0 -59
  160. package/dist/esm/limebb-lime-query-filter-and_5.entry.js +0 -270
  161. package/dist/esm/limebb-lime-query-value-input.entry.js +0 -235
  162. package/dist/esm/limebb-property-selector.entry.js +0 -230
  163. package/dist/lime-crm-building-blocks/p-02c0cc04.entry.js +0 -1
  164. package/dist/lime-crm-building-blocks/p-3b0a15ec.js +0 -1
  165. package/dist/lime-crm-building-blocks/p-5a6d2e7f.js +0 -1
  166. package/dist/lime-crm-building-blocks/p-60971d64.js +0 -1
  167. package/dist/lime-crm-building-blocks/p-70a28b93.entry.js +0 -1
  168. package/dist/lime-crm-building-blocks/p-96beaabc.entry.js +0 -1
  169. package/dist/lime-crm-building-blocks/p-b7c72179.entry.js +0 -1
  170. package/dist/lime-crm-building-blocks/p-f99c611d.entry.js +0 -1
@@ -1,234 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-ff255a0d.js');
6
- const index_esm = require('./index.esm-a894ac76.js');
7
- const propertyResolution = require('./property-resolution-fb42a46b.js');
8
-
9
- const propertySelectorCss = ":host(limebb-property-selector){display:block}limel-menu{display:block;width:100%}";
10
- const LimebbPropertySelectorStyle0 = propertySelectorCss;
11
-
12
- var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
13
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
15
- r = Reflect.decorate(decorators, target, key, desc);
16
- else
17
- for (var i = decorators.length - 1; i >= 0; i--)
18
- if (d = decorators[i])
19
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20
- return c > 3 && r && Object.defineProperty(target, key, r), r;
21
- };
22
- const PropertySelector = class {
23
- constructor(hostRef) {
24
- index.registerInstance(this, hostRef);
25
- this.change = index.createEvent(this, "change", 7);
26
- /**
27
- * Label for the input
28
- */
29
- this.label = 'Property';
30
- /**
31
- * Whether the field is required
32
- */
33
- this.required = false;
34
- this.isOpen = false;
35
- this.navigationPath = '';
36
- this.menuItems = [];
37
- this.handleChipSetWrapperClick = (event) => {
38
- // Stop all clicks on the chip-set from bubbling
39
- // This prevents the menu from opening when clicking chip remove buttons
40
- event.stopPropagation();
41
- };
42
- this.handleChipSetFocus = () => {
43
- // Open menu when the chip-set input receives focus
44
- // This happens when user clicks to type/edit
45
- if (!this.isOpen) {
46
- this.navigationPath = this.value || '';
47
- this.loadMenuItems();
48
- this.isOpen = true;
49
- }
50
- };
51
- this.handleSelect = (event) => {
52
- event.stopPropagation();
53
- const selectedPath = event.detail.value;
54
- if (!selectedPath) {
55
- return;
56
- }
57
- // Check if this is a complete path (leaf property, not a relation)
58
- const property = propertyResolution.getPropertyFromPath(this.limetypes, this.limetype, selectedPath);
59
- if (property === null || property === void 0 ? void 0 : property.relation) {
60
- // This is a relation - update navigation but don't emit
61
- this.navigationPath = selectedPath;
62
- }
63
- else {
64
- // This is a leaf property - emit and close
65
- this.change.emit(selectedPath);
66
- this.isOpen = false;
67
- this.navigationPath = '';
68
- }
69
- };
70
- this.handleNavigateMenu = (event) => {
71
- var _a;
72
- event.stopPropagation();
73
- if ((_a = event.detail) === null || _a === void 0 ? void 0 : _a.value) {
74
- // Update navigation path when drilling down
75
- this.navigationPath = event.detail.value;
76
- }
77
- };
78
- this.handleCancel = () => {
79
- this.isOpen = false;
80
- this.navigationPath = '';
81
- };
82
- this.handleChipSetChange = (event) => {
83
- event.stopPropagation();
84
- const detail = event.detail;
85
- // Handle both single chip and array of chips
86
- if (!detail) {
87
- // Clear all was clicked
88
- this.change.emit('');
89
- this.navigationPath = '';
90
- return;
91
- }
92
- // Convert to array if it's a single chip
93
- const chips = Array.isArray(detail) ? detail : [detail];
94
- if (chips.length === 0) {
95
- // All chips removed
96
- this.change.emit('');
97
- this.navigationPath = '';
98
- }
99
- else {
100
- // A chip was removed - emit the last remaining chip's value
101
- const lastChip = chips.at(-1);
102
- if (lastChip) {
103
- this.change.emit(lastChip.value);
104
- }
105
- this.navigationPath = '';
106
- }
107
- };
108
- }
109
- render() {
110
- if (!this.limetype || !this.limetypes) {
111
- return null;
112
- }
113
- const chips = this.getChipsForPath(this.navigationPath || this.value || '');
114
- return (index.h("limel-menu", { items: this.menuItems, open: this.isOpen, emptyResultMessage: "No available properties", surfaceWidth: "inherit-from-trigger", openDirection: "bottom-end", onSelect: this.handleSelect, onNavigateMenu: this.handleNavigateMenu, onCancel: this.handleCancel }, index.h("div", { slot: "trigger" }, index.h("div", { onClick: this.handleChipSetWrapperClick }, index.h("limel-chip-set", { type: "input", label: this.label, value: chips, required: this.required, helperText: this.helperText, delimiter: "\u203A", maxItems: 1, onChange: this.handleChipSetChange, onFocus: this.handleChipSetFocus })))));
115
- }
116
- loadMenuItems() {
117
- // Get the limetype we're currently navigating in
118
- const currentLimetype = this.getCurrentLimetype();
119
- if (!currentLimetype) {
120
- this.menuItems = [];
121
- return;
122
- }
123
- this.menuItems = this.createMenuItems(currentLimetype, '');
124
- }
125
- getCurrentLimetype() {
126
- if (!this.navigationPath) {
127
- return this.limetypes[this.limetype];
128
- }
129
- // Get the limetype at the current navigation path
130
- const property = propertyResolution.getPropertyFromPath(this.limetypes, this.limetype, this.navigationPath);
131
- if (property === null || property === void 0 ? void 0 : property.relation) {
132
- return property.relation.getLimetype();
133
- }
134
- return this.limetypes[this.limetype];
135
- }
136
- createMenuItems(limetype, pathPrefix) {
137
- const results = [];
138
- if (!limetype) {
139
- return results;
140
- }
141
- const normalizedProperties = propertyResolution.getNormalizedProperties(limetype);
142
- for (const [propName, property] of Object.entries(normalizedProperties)) {
143
- // Skip hasMany and hasAndBelongsToMany relations
144
- if (property.type === 'hasmany' ||
145
- property.type === 'hasandbelongstomany') {
146
- continue;
147
- }
148
- const fullPath = pathPrefix
149
- ? `${pathPrefix}.${propName}`
150
- : propName;
151
- const isRelation = !!property.relation;
152
- let items;
153
- if (isRelation && property.relation) {
154
- // Create submenu for relation (only belongsto at this point)
155
- const relatedLimetype = property.relation.getLimetype();
156
- if (relatedLimetype) {
157
- items = async () => this.createMenuItems(relatedLimetype, fullPath);
158
- }
159
- }
160
- results.push({
161
- text: property.localname || propName,
162
- secondaryText: this.getSecondaryText(property),
163
- icon: this.getIconForProperty(property),
164
- value: fullPath,
165
- items: items,
166
- });
167
- }
168
- if (results.length === 0) {
169
- return [
170
- {
171
- text: 'No available properties',
172
- value: '',
173
- disabled: true,
174
- },
175
- ];
176
- }
177
- return results;
178
- }
179
- getSecondaryText(property) {
180
- var _a;
181
- if (property.relation) {
182
- const relatedLimetype = property.relation.getLimetype();
183
- return ((_a = relatedLimetype === null || relatedLimetype === void 0 ? void 0 : relatedLimetype.localname) === null || _a === void 0 ? void 0 : _a.singular) || 'Object';
184
- }
185
- // Return the property type as the secondary text
186
- return property.type.charAt(0).toUpperCase() + property.type.slice(1);
187
- }
188
- getIconForProperty(property) {
189
- if (property.relation) {
190
- return {
191
- name: 'link',
192
- color: 'rgb(var(--color-sky-default))',
193
- };
194
- }
195
- // Use generic property icon
196
- return {
197
- name: 'decision',
198
- color: 'rgb(var(--color-gray-default))',
199
- };
200
- }
201
- getChipsForPath(path) {
202
- if (!path) {
203
- return [];
204
- }
205
- const parts = path.split('.');
206
- const chips = [];
207
- let currentLimetype = this.limetypes[this.limetype];
208
- let currentPath = '';
209
- for (const part of parts) {
210
- currentPath = currentPath ? `${currentPath}.${part}` : part;
211
- // Use getNormalizedProperties to include _id and _timestamp
212
- const normalizedProperties = propertyResolution.getNormalizedProperties(currentLimetype);
213
- const property = normalizedProperties[part];
214
- if (property) {
215
- chips.push({
216
- id: currentPath,
217
- text: property.localname || part,
218
- icon: this.getIconForProperty(property),
219
- value: currentPath,
220
- });
221
- if (property.relation) {
222
- currentLimetype = property.relation.getLimetype();
223
- }
224
- }
225
- }
226
- return chips;
227
- }
228
- };
229
- __decorate([
230
- index_esm.Te()
231
- ], PropertySelector.prototype, "limetypes", void 0);
232
- PropertySelector.style = LimebbPropertySelectorStyle0;
233
-
234
- exports.limebb_property_selector = PropertySelector;
@@ -1,35 +0,0 @@
1
- import { b as baseIsEqual } from './_baseIsEqual.js';
2
-
3
- /**
4
- * Performs a deep comparison between two values to determine if they are
5
- * equivalent.
6
- *
7
- * **Note:** This method supports comparing arrays, array buffers, booleans,
8
- * date objects, error objects, maps, numbers, `Object` objects, regexes,
9
- * sets, strings, symbols, and typed arrays. `Object` objects are compared
10
- * by their own, not inherited, enumerable properties. Functions and DOM
11
- * nodes are compared by strict equality, i.e. `===`.
12
- *
13
- * @static
14
- * @memberOf _
15
- * @since 0.1.0
16
- * @category Lang
17
- * @param {*} value The value to compare.
18
- * @param {*} other The other value to compare.
19
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
20
- * @example
21
- *
22
- * var object = { 'a': 1 };
23
- * var other = { 'a': 1 };
24
- *
25
- * _.isEqual(object, other);
26
- * // => true
27
- *
28
- * object === other;
29
- * // => false
30
- */
31
- function isEqual(value, other) {
32
- return baseIsEqual(value, other);
33
- }
34
-
35
- export { isEqual as i };
@@ -1,408 +0,0 @@
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 };