@limetech/lime-crm-building-blocks 1.103.4 → 1.103.6
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 +14 -0
- package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
- package/dist/cjs/limebb-lime-query-filter-builder_3.cjs.entry.js +2 -2
- package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +1 -1
- package/dist/cjs/limebb-lime-query-filter-group_3.cjs.entry.js +126 -15
- package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +2 -2
- package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +6 -2
- package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +3 -3
- package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
- package/dist/cjs/limebb-locale-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
- package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
- package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
- package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
- package/dist/cjs/limebb-text-editor.cjs.entry.js +1 -1
- package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +1 -1
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +2 -2
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
- package/dist/collection/components/lime-query-builder/expressions/lime-query-value-input.js +15 -12
- package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.css +12 -3
- package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +25 -1
- package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
- package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
- package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
- package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +3 -3
- package/dist/collection/components/lime-query-builder/type-resolution.js +108 -0
- package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
- package/dist/collection/components/locale-picker/locale-picker.js +1 -1
- package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
- package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
- package/dist/collection/components/summary-popover/summary-popover.js +3 -3
- package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
- package/dist/collection/components/text-editor/text-editor.js +1 -1
- package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
- package/dist/components/lime-query-filter-comparison.js +1 -1
- package/dist/components/lime-query-filter-expression.js +3 -3
- package/dist/components/lime-query-value-input.js +123 -12
- package/dist/components/limebb-lime-query-response-format-builder.js +7 -2
- package/dist/components/limebb-locale-picker.js +1 -1
- package/dist/components/limebb-mention-group-counter.js +2 -2
- package/dist/components/limebb-percentage-visualizer.js +2 -2
- package/dist/components/limebb-text-editor.js +1 -1
- package/dist/components/limebb-trend-indicator.js +1 -1
- package/dist/components/limetype-field.js +1 -1
- package/dist/components/live-docs-info.js +2 -2
- package/dist/components/notification-item.js +1 -1
- package/dist/components/order-by-editor.js +1 -1
- package/dist/components/order-by-item.js +2 -2
- package/dist/components/response-format-item.js +3 -3
- package/dist/components/summary-popover.js +3 -3
- package/dist/esm/lime-crm-building-blocks.js +1 -1
- package/dist/esm/limebb-lime-query-filter-builder_3.entry.js +2 -2
- package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +1 -1
- package/dist/esm/limebb-lime-query-filter-group_3.entry.js +126 -15
- package/dist/esm/limebb-lime-query-order-by-item.entry.js +2 -2
- package/dist/esm/limebb-lime-query-response-format-builder.entry.js +6 -2
- package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +3 -3
- package/dist/esm/limebb-live-docs-info.entry.js +2 -2
- package/dist/esm/limebb-locale-picker.entry.js +1 -1
- package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
- package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
- package/dist/esm/limebb-notification-item.entry.js +1 -1
- package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
- package/dist/esm/limebb-text-editor.entry.js +1 -1
- package/dist/esm/limebb-trend-indicator.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
- package/dist/lime-crm-building-blocks/{p-5c262387.entry.js → p-3122ea05.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-af27a8e5.entry.js → p-36ea13c0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-bb299b18.entry.js → p-569c86b5.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-a1f689f4.entry.js → p-631ca5a5.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-4ec8bdfe.entry.js → p-6c7af6bb.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-6007457c.entry.js → p-761c7c7c.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-908dd7d5.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-3a21c270.entry.js → p-93cadc1e.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-96fee7ee.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-1c144b84.entry.js → p-9cac4de2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-9e44b983.entry.js → p-b9b954d9.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-7d0e8a55.entry.js → p-d635e6fc.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-230bdc45.entry.js → p-e8946134.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-1dca2c7c.entry.js → p-fdd5600b.entry.js} +1 -1
- package/dist/types/components/lime-query-builder/expressions/lime-query-value-input.d.ts +1 -2
- package/dist/types/components/lime-query-builder/lime-query-response-format-builder.d.ts +4 -0
- package/dist/types/components/lime-query-builder/type-resolution.d.ts +73 -0
- package/dist/types/components.d.ts +8 -0
- package/package.json +1 -1
- package/dist/lime-crm-building-blocks/p-a135fb26.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-f92ca0b8.entry.js +0 -1
package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js
CHANGED
|
@@ -122,7 +122,7 @@ export class LimeQueryFilterComparisonComponent {
|
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
124
|
render() {
|
|
125
|
-
return (h(Host, { key: '
|
|
125
|
+
return (h(Host, { key: '6cb567108d3744ca5ab5973c41d679efa024841a' }, this.renderHeader(), h("div", { key: '16f318ec2ede96a39da5d0aef7206beee43d9176', class: "expression-container" }, this.renderPropertySelector(), this.renderOperator(), this.renderValueInput(), h("limel-icon-button", { key: '4de069d1509b3e3a378c882714dccd0d8c9c6dfb', class: "remove", icon: "trash", label: "Remove condition", onClick: this.removeExpression }))));
|
|
126
126
|
}
|
|
127
127
|
renderHeader() {
|
|
128
128
|
if (!this.label) {
|
package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js
CHANGED
|
@@ -72,9 +72,9 @@ export class LimeQueryFilterGroupComponent {
|
|
|
72
72
|
(this.expression.op === Operator.AND ? 'and' : 'or')) || this.options[0];
|
|
73
73
|
}
|
|
74
74
|
render() {
|
|
75
|
-
return (h(Host, { key: '
|
|
75
|
+
return (h(Host, { key: '324805229eab509d12b6d41a99a54c1a4d8560a1', style: {
|
|
76
76
|
'--limebb-lime-query-filter-group-operator': `"${this.expression.op === Operator.AND ? 'AND' : 'OR'}"`,
|
|
77
|
-
} }, h("div", { key: '
|
|
77
|
+
} }, h("div", { key: '948dda71aac51cbfd8b93bc657a79c00a6bd6f68', class: "expression" }, this.renderHeader(), h("ul", { key: 'b1dbce8f4f20f72e00567d431eed0fe5900f4fbf' }, this.expression.exp.map(this.renderChildExpression), this.renderAddButton()), this.renderAddGroupButton())));
|
|
78
78
|
}
|
|
79
79
|
renderHeader() {
|
|
80
80
|
const subheading = this.getSubheading();
|
|
@@ -35,7 +35,7 @@ export class LimeQueryFilterNotComponent {
|
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
render() {
|
|
38
|
-
return (h("div", { key: '
|
|
38
|
+
return (h("div", { key: '8f234a17a56f899640f503dcc58e6ef7d8e6a998', class: "expression" }, this.label && h("limel-header", { key: '1e71be2c56690aa3c603c88028860093b54a2a84', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '1fde4344ca12d9ced489ee8e4f1b9de806da1dc4', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
|
|
39
39
|
}
|
|
40
40
|
static get is() { return "limebb-lime-query-filter-not"; }
|
|
41
41
|
static get encapsulation() { return "shadow"; }
|
|
@@ -11,6 +11,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
11
11
|
import { h, Host, } from "@stencil/core";
|
|
12
12
|
import { Operator, SelectLimeTypes as Limetypes, } from "@limetech/lime-web-components";
|
|
13
13
|
import { getPropertyFromPath } from "../property-resolution";
|
|
14
|
+
import { getActualPropertyType, mapPropertyTypeToPickerType, } from "../type-resolution";
|
|
14
15
|
/**
|
|
15
16
|
* Query Value Input Component
|
|
16
17
|
*
|
|
@@ -182,10 +183,12 @@ export class LimeQueryValueInput {
|
|
|
182
183
|
if (!property) {
|
|
183
184
|
return this.renderTextInput();
|
|
184
185
|
}
|
|
185
|
-
|
|
186
|
+
// Resolve 'system' type to actual type
|
|
187
|
+
const actualType = getActualPropertyType(property);
|
|
188
|
+
switch (actualType) {
|
|
186
189
|
case 'integer':
|
|
187
190
|
case 'decimal': {
|
|
188
|
-
return this.renderNumberInput(
|
|
191
|
+
return this.renderNumberInput(actualType);
|
|
189
192
|
}
|
|
190
193
|
case 'yesno': {
|
|
191
194
|
return this.renderBooleanInput();
|
|
@@ -193,11 +196,13 @@ export class LimeQueryValueInput {
|
|
|
193
196
|
case 'option': {
|
|
194
197
|
return this.renderOptionInput(property);
|
|
195
198
|
}
|
|
196
|
-
case 'date':
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
case '
|
|
200
|
-
|
|
199
|
+
case 'date':
|
|
200
|
+
case 'time':
|
|
201
|
+
case 'timeofday':
|
|
202
|
+
case 'year':
|
|
203
|
+
case 'month':
|
|
204
|
+
case 'quarter': {
|
|
205
|
+
return this.renderDateTimeInput(actualType);
|
|
201
206
|
}
|
|
202
207
|
default: {
|
|
203
208
|
return this.renderTextInput();
|
|
@@ -233,13 +238,11 @@ export class LimeQueryValueInput {
|
|
|
233
238
|
const selectedOption = options.find((o) => o.value === this.value);
|
|
234
239
|
return (h("limel-select", { label: this.label, options: options, value: selectedOption, onChange: this.handleSelectChange }));
|
|
235
240
|
}
|
|
236
|
-
|
|
241
|
+
renderDateTimeInput(type) {
|
|
237
242
|
// Convert string to Date if needed
|
|
238
243
|
const dateValue = typeof this.value === 'string' ? new Date(this.value) : this.value;
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
renderTimeInput() {
|
|
242
|
-
return (h("limel-input-field", { label: this.label, type: "time", value: this.value || '', onChange: this.handleTextChange }));
|
|
244
|
+
const pickerType = mapPropertyTypeToPickerType(type);
|
|
245
|
+
return (h("limel-date-picker", { label: this.label, value: dateValue, type: pickerType, onChange: this.handleDateChange }));
|
|
243
246
|
}
|
|
244
247
|
renderMultiValueInput() {
|
|
245
248
|
// For IN operator, allow comma-separated values
|
package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.css
CHANGED
|
@@ -9,9 +9,18 @@
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
.builder-label {
|
|
12
|
-
|
|
13
|
-
font-size: 1.
|
|
14
|
-
|
|
12
|
+
color: rgb(var(--contrast-1100));
|
|
13
|
+
font-size: 1.625rem;
|
|
14
|
+
line-height: 1.25rem;
|
|
15
|
+
font-weight: 300;
|
|
16
|
+
margin-top: 1rem;
|
|
17
|
+
margin-bottom: 0.25rem;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.builder-helper-text {
|
|
21
|
+
margin-top: 0px;
|
|
22
|
+
margin-bottom: 0.5rem;
|
|
23
|
+
font-size: var(--limel-theme-default-font-size);
|
|
15
24
|
color: rgb(var(--contrast-1100));
|
|
16
25
|
}
|
|
17
26
|
|
|
@@ -49,6 +49,10 @@ export class LimeQueryResponseFormatBuilder {
|
|
|
49
49
|
* Optional label for the builder
|
|
50
50
|
*/
|
|
51
51
|
this.label = 'Response Format';
|
|
52
|
+
/**
|
|
53
|
+
* Optional helper text for the builder
|
|
54
|
+
*/
|
|
55
|
+
this.helperText = '';
|
|
52
56
|
this.mode = 'gui';
|
|
53
57
|
this.codeValue = '';
|
|
54
58
|
this.handleModeChange = (event) => {
|
|
@@ -150,7 +154,7 @@ export class LimeQueryResponseFormatBuilder {
|
|
|
150
154
|
}
|
|
151
155
|
render() {
|
|
152
156
|
const guiSupported = this.checkGuiSupport();
|
|
153
|
-
return (h("div", { key: '
|
|
157
|
+
return (h("div", { key: '6bc723110dcd545534e93db64a0d6a14963b6bda', class: "response-format-builder" }, this.label && h("h1", { key: '405d373ccb5056af3c0e6201ef5ebf819a3b8154', class: "builder-label" }, this.label), this.helperText && (h("p", { key: '5fb07f0fcd9e57b7c358957afc13485156bd041f', class: "builder-helper-text" }, this.helperText)), this.guiModeEnabled && (h("div", { key: 'd2241f702cfe9e75077542d4d21acb038be0a348', class: "mode-controls" }, this.renderModeSwitch(guiSupported))), !this.guiModeEnabled || this.mode === 'code' ? (h("div", { class: "code-mode" }, this.renderCodeEditor(guiSupported))) : (h("div", { class: "gui-mode" }, this.renderGuiMode()))));
|
|
154
158
|
}
|
|
155
159
|
renderModeSwitch(support) {
|
|
156
160
|
const guiDisabled = !support.guiSupported;
|
|
@@ -334,6 +338,26 @@ export class LimeQueryResponseFormatBuilder {
|
|
|
334
338
|
"attribute": "label",
|
|
335
339
|
"reflect": false,
|
|
336
340
|
"defaultValue": "'Response Format'"
|
|
341
|
+
},
|
|
342
|
+
"helperText": {
|
|
343
|
+
"type": "string",
|
|
344
|
+
"mutable": false,
|
|
345
|
+
"complexType": {
|
|
346
|
+
"original": "string",
|
|
347
|
+
"resolved": "string",
|
|
348
|
+
"references": {}
|
|
349
|
+
},
|
|
350
|
+
"required": false,
|
|
351
|
+
"optional": false,
|
|
352
|
+
"docs": {
|
|
353
|
+
"tags": [],
|
|
354
|
+
"text": "Optional helper text for the builder"
|
|
355
|
+
},
|
|
356
|
+
"getter": false,
|
|
357
|
+
"setter": false,
|
|
358
|
+
"attribute": "helper-text",
|
|
359
|
+
"reflect": false,
|
|
360
|
+
"defaultValue": "''"
|
|
337
361
|
}
|
|
338
362
|
};
|
|
339
363
|
}
|
|
@@ -78,7 +78,7 @@ export class LimetypeField {
|
|
|
78
78
|
value: '',
|
|
79
79
|
};
|
|
80
80
|
options.unshift(emptyOption);
|
|
81
|
-
return (h("limel-select", { key: '
|
|
81
|
+
return (h("limel-select", { key: 'a6df4090bd93b2fb9d3745b69fcd32a51ff3755b', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
|
|
82
82
|
}
|
|
83
83
|
componentWillRender() {
|
|
84
84
|
this.updatePropertyFields(this.value || '');
|
|
@@ -69,7 +69,7 @@ export class OrderByEditor {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
render() {
|
|
72
|
-
return (h(Host, { key: '
|
|
72
|
+
return (h(Host, { key: '601436a1a47be391bf4768d25ef7f8da911fc80d' }, this.renderEmptyState(), this.renderOrderByEditor()));
|
|
73
73
|
}
|
|
74
74
|
renderEmptyState() {
|
|
75
75
|
if (this.limetype) {
|
|
@@ -38,9 +38,9 @@ export class OrderByItemComponent {
|
|
|
38
38
|
render() {
|
|
39
39
|
const propertyPath = Object.keys(this.item)[0] || '';
|
|
40
40
|
const direction = this.item[propertyPath] || 'ASC';
|
|
41
|
-
return (h(Host, { key: '
|
|
41
|
+
return (h(Host, { key: 'f247db1628dee076eb9c6e0a9ee1ca4db955dac9' }, h("limebb-property-selector", { key: 'cd34b69db11df021eea18b9b2832ef8cd65b8e59', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: propertyPath, required: true, onChange: this.handlePathChange }), h("div", { key: '95bfc38b5dd7836737e8b854829a8be7f5a5b878', class: "control-buttons" }, h("limel-icon-button", { key: 'ec9d11534a296546fc57c97188f7c8f95c456d02', icon: direction === 'ASC'
|
|
42
42
|
? 'sort_ascending'
|
|
43
|
-
: 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: '
|
|
43
|
+
: 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: 'd649b9545e51b86b4877354a7d5fa2521f82a645', icon: "trash", label: "Remove", onClick: this.handleRemove }))));
|
|
44
44
|
}
|
|
45
45
|
static get is() { return "limebb-lime-query-order-by-item"; }
|
|
46
46
|
static get encapsulation() { return "shadow"; }
|
package/dist/collection/components/lime-query-builder/response-format/response-format-item.js
CHANGED
|
@@ -66,9 +66,9 @@ export class ResponseFormatItem {
|
|
|
66
66
|
}
|
|
67
67
|
render() {
|
|
68
68
|
return [
|
|
69
|
-
h("div", { key: '
|
|
70
|
-
this.showAliasInput && (h("div", { key: '
|
|
71
|
-
this.showDescriptionInput && (h("div", { key: '
|
|
69
|
+
h("div", { key: 'f80b67734802324c50613070fd91fde35b1caaaa', class: "property-controls" }, h("div", { key: 'b481a96617ff29690329bff363ee408c42b746d7', class: "property-path" }, h("limebb-property-selector", { key: 'a936e9586348b27250e3b0404eefb0ee5f5a675e', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: this.item.path, required: true, onChange: this.handlePathChange })), h("div", { key: '058b8ade00d076764327fbd85e968fbc9b96cb23', class: "control-buttons" }, h("limel-icon-button", { key: '85614c39df85b3957aac7a31c2fcbb181cf1c351', icon: this.getAliasIcon(), label: "Add alias", class: this.item.alias ? 'has-value' : '', onClick: this.toggleAliasInput }), h("limel-icon-button", { key: 'e09875fdef378d3a4141ba1b428d6239c691dc9f', icon: this.getDescriptionIcon(), label: "Add description", class: this.item.description ? 'has-value' : '', onClick: this.toggleDescriptionInput }), h("limel-icon-button", { key: '5bced548d2cf53d5097d3b6e84a2440d1bb84b11', icon: "trash", label: "Remove property", onClick: this.handleRemove }))),
|
|
70
|
+
this.showAliasInput && (h("div", { key: '052d6e7f01089914a1b9e79e06cb04b1510c79c2', class: "alias" }, h("limel-input-field", { key: '381874f03fdabcedbe07eaf23dd1c31541c42cf4', label: "Alias", value: this.item.alias || '', placeholder: "Custom property name...", onChange: this.handleAliasChange, onBlur: this.handleAliasBlur }))),
|
|
71
|
+
this.showDescriptionInput && (h("div", { key: '083508a61dadb201526b197f60b691bbea7b50df', class: "description" }, h("limel-input-field", { key: 'bd718e98091d4776394365aa7175d61d11856a9f', label: "Description", value: this.item.description || '', placeholder: "Describe this property for AI...", onChange: this.handleDescriptionChange, onBlur: this.handleDescriptionBlur }))),
|
|
72
72
|
];
|
|
73
73
|
}
|
|
74
74
|
getAliasIcon() {
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System property name to actual type mapping.
|
|
3
|
+
*
|
|
4
|
+
* Maps system property names (with or without underscore prefix) to their actual data types.
|
|
5
|
+
* This mapping is necessary because system properties have `type='system'` in the metadata
|
|
6
|
+
* (for historical reasons - database schema fieldtype 255), but we need to know their
|
|
7
|
+
* actual data types to render appropriate inputs.
|
|
8
|
+
*/
|
|
9
|
+
const SYSTEM_TYPE_MAP = {
|
|
10
|
+
timestamp: 'time',
|
|
11
|
+
createdtime: 'time',
|
|
12
|
+
updatedtime: 'time',
|
|
13
|
+
id: 'integer',
|
|
14
|
+
createduser: 'integer',
|
|
15
|
+
updateduser: 'integer',
|
|
16
|
+
descriptive: 'string',
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Lime CRM date/time property type to Lime Elements date picker type mapping.
|
|
20
|
+
*
|
|
21
|
+
* Maps Lime CRM property types to the corresponding Lime Elements date picker types,
|
|
22
|
+
* as they use different naming conventions.
|
|
23
|
+
*/
|
|
24
|
+
const DATE_TIME_TYPE_MAP = {
|
|
25
|
+
date: 'date',
|
|
26
|
+
time: 'datetime',
|
|
27
|
+
timeofday: 'time',
|
|
28
|
+
month: 'month',
|
|
29
|
+
quarter: 'quarter',
|
|
30
|
+
year: 'year',
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Get the actual type of a property, resolving 'system' type to the underlying type.
|
|
34
|
+
*
|
|
35
|
+
* System properties in Lime CRM have `type: 'system'` in the metadata (a categorical marker
|
|
36
|
+
* from the database schema fieldtype 255), but we need to know their actual data types
|
|
37
|
+
* to render appropriate input controls.
|
|
38
|
+
*
|
|
39
|
+
* @param property - The property to get the type for
|
|
40
|
+
* @param property.type
|
|
41
|
+
* @param property.name
|
|
42
|
+
* @returns The actual property type (resolves 'system' to the underlying type)
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const property = { name: '_timestamp', type: 'system' };
|
|
47
|
+
* getActualPropertyType(property); // Returns 'time'
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export function getActualPropertyType(property) {
|
|
51
|
+
if (property.type === 'system') {
|
|
52
|
+
return resolveSystemPropertyType(property.name);
|
|
53
|
+
}
|
|
54
|
+
return property.type;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Map system property names to their actual data types.
|
|
58
|
+
*
|
|
59
|
+
* This mapping is necessary because system properties have `type='system'` in the metadata
|
|
60
|
+
* (for historical reasons - database schema fieldtype 255), but we need to know their
|
|
61
|
+
* actual data types to render appropriate inputs.
|
|
62
|
+
*
|
|
63
|
+
* The mapping is based on the Lime CRM database schema:
|
|
64
|
+
* - System datetime fields: `timestamp`, `createdtime`, `updatedtime`
|
|
65
|
+
* - System integer fields: `id`, `createduser`, `updateduser`
|
|
66
|
+
* - System string fields: `descriptive`
|
|
67
|
+
*
|
|
68
|
+
* @param propertyName - The system property name (with or without underscore prefix)
|
|
69
|
+
* @returns The actual property type
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* resolveSystemPropertyType('_timestamp'); // Returns 'time'
|
|
74
|
+
* resolveSystemPropertyType('timestamp'); // Returns 'time'
|
|
75
|
+
* resolveSystemPropertyType('_id'); // Returns 'integer'
|
|
76
|
+
* resolveSystemPropertyType('unknown'); // Returns 'string' (default)
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export function resolveSystemPropertyType(propertyName) {
|
|
80
|
+
const name = propertyName.replace(/^_/, '');
|
|
81
|
+
return SYSTEM_TYPE_MAP[name] || 'string';
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Map Lime CRM property types to Lime Elements date picker types.
|
|
85
|
+
*
|
|
86
|
+
* Lime CRM and Lime Elements use different naming conventions for date/time types,
|
|
87
|
+
* so we need to translate between them:
|
|
88
|
+
*
|
|
89
|
+
* - `'date'` → `'date'` - Date only
|
|
90
|
+
* - `'time'` → `'datetime'` - Full datetime (date + time) in Lime CRM
|
|
91
|
+
* - `'timeofday'` → `'time'` - Time only (hh:mm)
|
|
92
|
+
* - `'month'` → `'month'` - Month picker (YYYY-MM)
|
|
93
|
+
* - `'quarter'` → `'quarter'` - Quarter picker
|
|
94
|
+
* - `'year'` → `'year'` - Year picker
|
|
95
|
+
*
|
|
96
|
+
* @param propertyType - The Lime CRM date/time property type
|
|
97
|
+
* @returns The corresponding Lime Elements date picker type
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* mapPropertyTypeToPickerType('time'); // Returns 'datetime'
|
|
102
|
+
* mapPropertyTypeToPickerType('timeofday'); // Returns 'time'
|
|
103
|
+
* mapPropertyTypeToPickerType('date'); // Returns 'date'
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export function mapPropertyTypeToPickerType(propertyType) {
|
|
107
|
+
return DATE_TIME_TYPE_MAP[propertyType] || 'date';
|
|
108
|
+
}
|
|
@@ -5,8 +5,8 @@ import { h } from "@stencil/core";
|
|
|
5
5
|
export class LiveDocsInfo {
|
|
6
6
|
render() {
|
|
7
7
|
return [
|
|
8
|
-
h("div", { key: '
|
|
9
|
-
h("p", { key: '
|
|
8
|
+
h("div", { key: '849694495956b6afbdfeac8aa7de680e1ab03450', class: "header" }, h("limel-icon", { key: '84117fdfff949d6b41b9ec3f2b3ec73f21e5be7b', name: "not_showing_video_frames" }), h("h2", { key: '90f1738815699808c6353707b4f366d8a2c661ac' }, "Viewing this file type requires ", h("em", { key: 'ef09921e893851f06b756e1e2777847a7e4bd563' }, "Live Docs"))),
|
|
9
|
+
h("p", { key: 'a835a0e1cabd84d7509167b3331878807b083130' }, h("em", { key: '3f9ce9e473f33b89adfeb3b143e46cabb6feb1d4' }, "Live Docs"), " not only enables you to view many file formats such as Microsoft Office documents, but it also empowers you to edit them right in the CRM. No need to download anything on your device!", h("a", { key: 'f3e683b041ddd66e6f23514d9bb5f3faf80f4c3a', target: "_blank", href: "https://www.lime-technologies.com/en/lime-crm/live-docs/" }, "Learn more")),
|
|
10
10
|
];
|
|
11
11
|
}
|
|
12
12
|
static get is() { return "limebb-live-docs-info"; }
|
|
@@ -53,7 +53,7 @@ export class LocalePicker {
|
|
|
53
53
|
const value = this.value;
|
|
54
54
|
selectedOptions = options.find((option) => option.value === value);
|
|
55
55
|
}
|
|
56
|
-
return (h("limel-select", { key: '
|
|
56
|
+
return (h("limel-select", { key: '5b3491e9dd6725186c4a2795e7893de43457e147', value: selectedOptions, options: sortBy(options, 'text'), helperText: this.helperText, label: this.label, required: this.required, disabled: this.disabled, readonly: this.readonly, onChange: this.handleChange, multiple: this.multipleChoice }));
|
|
57
57
|
}
|
|
58
58
|
static get is() { return "limebb-locale-picker"; }
|
|
59
59
|
static get encapsulation() { return "shadow"; }
|
|
@@ -56,7 +56,7 @@ export class NotificationListItem {
|
|
|
56
56
|
}
|
|
57
57
|
render() {
|
|
58
58
|
var _a, _b;
|
|
59
|
-
return (h(Host, { key: '
|
|
59
|
+
return (h(Host, { key: '39801fd8e10f1dc228741df48561cad3c59d81d7', id: this.item.id, class: {
|
|
60
60
|
'is-clickable': this.isItemClickable(),
|
|
61
61
|
'is-read': !!((_a = this.item) === null || _a === void 0 ? void 0 : _a.read),
|
|
62
62
|
'is-selected': !!((_b = this.item) === null || _b === void 0 ? void 0 : _b.selected),
|
|
@@ -91,11 +91,11 @@ export class PercentageVisualizer {
|
|
|
91
91
|
render() {
|
|
92
92
|
const normalizedValue = this.getNormalizedValue();
|
|
93
93
|
const zeroPoint = this.getZeroPointPosition();
|
|
94
|
-
return (h(Host, { key: '
|
|
94
|
+
return (h(Host, { key: '069ab0188df35e32bca3fe7c000d2c5c874012a5', class: this.getContainerClassList(), style: {
|
|
95
95
|
'--limebb-percentage-visualizer-zero-point-position': `${zeroPoint}%`,
|
|
96
96
|
'--limebb-percentage-visualizer-width': `${Math.abs(normalizedValue)}%`,
|
|
97
97
|
'--limebb-percentage-visualizer-rotate': `${normalizedValue >= 0 ? '0deg' : '180deg'}`,
|
|
98
|
-
} }, h("limel-notched-outline", { key: '
|
|
98
|
+
} }, h("limel-notched-outline", { key: 'f6e544a1859f3166ee540435c687415bbfd5de1d', tabIndex: 0, role: "meter", "aria-valuemin": this.rangeMin, "aria-valuemax": this.rangeMax, "aria-valuenow": this.numValue, "aria-labelledby": this.labelId, "aria-describedby": this.helperTextId, label: this.label, labelId: this.labelId, invalid: this.invalid, required: this.required, hasValue: true, hasFloatingLabel: true, "aria-controls": this.helperTextId }, h("div", { key: '348f345b2212b3da15c0e081385a5fee76317ebe', slot: "content" }, this.renderVisualization())), this.renderHelperLine()));
|
|
99
99
|
}
|
|
100
100
|
renderVisualization() {
|
|
101
101
|
if (this.reducePresence && (this.numValue === 0 || !this.hasValue())) {
|
|
@@ -118,14 +118,14 @@ export class SummaryPopover {
|
|
|
118
118
|
top: '0.125rem',
|
|
119
119
|
right: '0.125rem',
|
|
120
120
|
};
|
|
121
|
-
return (h("limel-popover", { key: '
|
|
121
|
+
return (h("limel-popover", { key: '1681bf3578fb29886f68070e3e07397d1e312dc1', style: {
|
|
122
122
|
'--limebb-summary-popover-timeout': `${this.triggerDelay}ms`,
|
|
123
|
-
}, open: this.isPopoverOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("div", { key: '
|
|
123
|
+
}, open: this.isPopoverOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("div", { key: '1e2daa75c518f4949a7ca6fdd0ff29bc1a6d529e', slot: "trigger", tabIndex: 0, onMouseEnter: this.openPopoverWithDelay, onMouseLeave: this.resetTimeout, onFocus: this.openPopoverWithDelay }, h("slot", { key: '9d1a9b69db8ac1c4cfddd62fb9949c98700e61b7', name: "trigger" }), h("div", { key: '95fcc70f46106c426ae191b6a8d66c7d7a025ca9', class: "opening-countdown-indicator" })), h("limel-card", { key: '9294ae443aa9f279c3c01f0af48ca6a2d0d1409f', style: {
|
|
124
124
|
'max-width': this.popoverMaxWidth,
|
|
125
125
|
'max-height': this.popoverMaxHeight,
|
|
126
126
|
'min-width': '7rem',
|
|
127
127
|
'min-height': '3rem',
|
|
128
|
-
}, orientation: "landscape", heading: this.heading, subheading: this.subheading, icon: this.icon, value: this.value, image: this.image, actions: this.actions, onActionSelected: this.handleSelected }, h("limebb-navigation-button", { key: '
|
|
128
|
+
}, orientation: "landscape", heading: this.heading, subheading: this.subheading, icon: this.icon, value: this.value, image: this.image, actions: this.actions, onActionSelected: this.handleSelected }, h("limebb-navigation-button", { key: 'b26fecf7c748fcd82fea453ece55189bcd1302ef', slot: "component", type: "close", style: closeButtonStyle, tooltipLabel: "Close", tooltipHelperLabel: "Esc", onClick: this.handleCloseClick }))));
|
|
129
129
|
}
|
|
130
130
|
static get is() { return "limebb-summary-popover"; }
|
|
131
131
|
static get encapsulation() { return "shadow"; }
|
|
@@ -13,8 +13,8 @@ export class MentionGroupCounter {
|
|
|
13
13
|
render() {
|
|
14
14
|
const label = this.getLabel();
|
|
15
15
|
return [
|
|
16
|
-
h("span", { key: '
|
|
17
|
-
h("limel-tooltip", { key: '
|
|
16
|
+
h("span", { key: 'dcd5792c82409e75e149e263fc7b4864e195a387', id: this.tooltipId }, label),
|
|
17
|
+
h("limel-tooltip", { key: '2c17e50ac616348df3a98da324b6538891cff75c', elementId: this.tooltipId, label: label, helperLabel: this.helperLabel }),
|
|
18
18
|
];
|
|
19
19
|
}
|
|
20
20
|
getLabel() {
|
|
@@ -389,7 +389,7 @@ export class LimeBBTextEditor {
|
|
|
389
389
|
}
|
|
390
390
|
render() {
|
|
391
391
|
return [
|
|
392
|
-
h("limel-text-editor", { key: '
|
|
392
|
+
h("limel-text-editor", { key: '277ec61f05d5edff319ed8bb37df9bc385cb3941', ref: (el) => (this.textEditor = el), tabindex: this.disabled ? -1 : 0, value: this.value, contentType: this.contentType, customElements: this.registeredCustomElements, "aria-disabled": this.disabled, language: this.language, triggers: this.registeredTriggers, onTriggerStart: this.handleTriggerStart, onTriggerStop: this.handleTriggerStop, onTriggerChange: this.handleTriggerChange, onImagePasted: this.handleImagePasted, onMetadataChange: this.handleMetadataChange, ui: this.ui, allowResize: this.allowResize, required: this.required, disabled: this.disabled, readonly: this.readonly, helperText: this.helperText, placeholder: this.placeholder, label: this.label, invalid: this.invalid }),
|
|
393
393
|
this.renderPicker(),
|
|
394
394
|
];
|
|
395
395
|
}
|
|
@@ -52,7 +52,7 @@ export class TrendIndicator {
|
|
|
52
52
|
this.numValue = this.parseValue(this.value);
|
|
53
53
|
}
|
|
54
54
|
render() {
|
|
55
|
-
return (h(Host, { key: '
|
|
55
|
+
return (h(Host, { key: '8c503e1a099f65fe29e2ef1903f78ddf62f815d9', class: this.getContainerClassList() }, h("limel-notched-outline", { key: '76d8b456dec89cea949ae427091256dffc1e71ab', id: this.tooltipId, label: this.label, labelId: this.labelId, invalid: this.invalid, required: this.required, hasValue: true, hasFloatingLabel: true, "aria-labelledby": this.labelId, "aria-describedby": this.helperTextId, "aria-controls": this.helperTextId }, h("div", { key: 'e295b50dcc7a3d4cb017f7d1ca5dd187bf52299c', slot: "content", tabIndex: 0 }, this.renderVisualization())), this.renderHelperLine(), this.renderTooltip()));
|
|
56
56
|
}
|
|
57
57
|
renderVisualization() {
|
|
58
58
|
if (this.reducePresence && (this.numValue === 0 || !this.hasValue())) {
|
|
@@ -110,7 +110,7 @@ const LimeQueryFilterComparisonComponent = /*@__PURE__*/ proxyCustomElement(clas
|
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
112
|
render() {
|
|
113
|
-
return (h(Host, { key: '
|
|
113
|
+
return (h(Host, { key: '6cb567108d3744ca5ab5973c41d679efa024841a' }, this.renderHeader(), h("div", { key: '16f318ec2ede96a39da5d0aef7206beee43d9176', class: "expression-container" }, this.renderPropertySelector(), this.renderOperator(), this.renderValueInput(), h("limel-icon-button", { key: '4de069d1509b3e3a378c882714dccd0d8c9c6dfb', class: "remove", icon: "trash", label: "Remove condition", onClick: this.removeExpression }))));
|
|
114
114
|
}
|
|
115
115
|
renderHeader() {
|
|
116
116
|
if (!this.label) {
|
|
@@ -148,7 +148,7 @@ const LimeQueryFilterNotComponent = /*@__PURE__*/ proxyCustomElement(class LimeQ
|
|
|
148
148
|
};
|
|
149
149
|
}
|
|
150
150
|
render() {
|
|
151
|
-
return (h("div", { key: '
|
|
151
|
+
return (h("div", { key: '8f234a17a56f899640f503dcc58e6ef7d8e6a998', class: "expression" }, this.label && h("limel-header", { key: '1e71be2c56690aa3c603c88028860093b54a2a84', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '1fde4344ca12d9ced489ee8e4f1b9de806da1dc4', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
|
|
152
152
|
}
|
|
153
153
|
static get style() { return LimebbLimeQueryFilterNotStyle0; }
|
|
154
154
|
}, [1, "limebb-lime-query-filter-not", {
|
|
@@ -253,9 +253,9 @@ const LimeQueryFilterGroupComponent = /*@__PURE__*/ proxyCustomElement(class Lim
|
|
|
253
253
|
(this.expression.op === Zt.AND ? 'and' : 'or')) || this.options[0];
|
|
254
254
|
}
|
|
255
255
|
render() {
|
|
256
|
-
return (h(Host, { key: '
|
|
256
|
+
return (h(Host, { key: '324805229eab509d12b6d41a99a54c1a4d8560a1', style: {
|
|
257
257
|
'--limebb-lime-query-filter-group-operator': `"${this.expression.op === Zt.AND ? 'AND' : 'OR'}"`,
|
|
258
|
-
} }, h("div", { key: '
|
|
258
|
+
} }, h("div", { key: '948dda71aac51cbfd8b93bc657a79c00a6bd6f68', class: "expression" }, this.renderHeader(), h("ul", { key: 'b1dbce8f4f20f72e00567d431eed0fe5900f4fbf' }, this.expression.exp.map(this.renderChildExpression), this.renderAddButton()), this.renderAddGroupButton())));
|
|
259
259
|
}
|
|
260
260
|
renderHeader() {
|
|
261
261
|
const subheading = this.getSubheading();
|