@icure/form 2.1.2 → 2.1.4
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/.yarn/cache/{libphonenumber-js-npm-1.12.34-cd35ce8e26-e4bb10ba42.zip → libphonenumber-js-npm-1.12.38-a5180a8a02-2a2eeb122d.zip} +0 -0
- package/.yarn/cache/{lodash-npm-4.17.21-6382451519-eb835a2e51.zip → lodash-npm-4.17.23-50bdb1c01a-7daad39758.zip} +0 -0
- package/.yarn/cache/{markdown-it-npm-14.1.0-e337d75bfe-07296b45eb.zip → markdown-it-npm-14.1.1-45c173274d-d6d55865c6.zip} +0 -0
- package/.yarn/cache/prosemirror-markdown-npm-1.13.4-1a47b172bd-3306b4eca0.zip +0 -0
- package/.yarn/cache/prosemirror-transform-npm-1.11.0-fa260ad6f3-71989931b8.zip +0 -0
- package/.yarn/cache/{prosemirror-view-npm-1.41.5-39b37df338-ee47e9091a.zip → prosemirror-view-npm-1.41.6-a9d2feed27-68f6a8bd66.zip} +0 -0
- package/.yarn/install-state.gz +0 -0
- package/components/common/field.d.ts +14 -2
- package/components/common/field.js +95 -2
- package/components/common/field.js.map +1 -1
- package/components/common/utils.js +11 -1
- package/components/common/utils.js.map +1 -1
- package/components/icure-button-group/index.js +1 -1
- package/components/icure-button-group/index.js.map +1 -1
- package/components/icure-form/fields/button-group/checkbox.js +3 -4
- package/components/icure-form/fields/button-group/checkbox.js.map +1 -1
- package/components/icure-form/fields/button-group/radio-button.js +3 -4
- package/components/icure-form/fields/button-group/radio-button.js.map +1 -1
- package/components/icure-form/fields/date-picker/date-picker.js +3 -4
- package/components/icure-form/fields/date-picker/date-picker.js.map +1 -1
- package/components/icure-form/fields/date-picker/date-time-picker.js +3 -4
- package/components/icure-form/fields/date-picker/date-time-picker.js.map +1 -1
- package/components/icure-form/fields/date-picker/time-picker.js +3 -4
- package/components/icure-form/fields/date-picker/time-picker.js.map +1 -1
- package/components/icure-form/fields/dropdown/dropdown-field.js +3 -4
- package/components/icure-form/fields/dropdown/dropdown-field.js.map +1 -1
- package/components/icure-form/fields/measure-field/measure-field.js +3 -4
- package/components/icure-form/fields/measure-field/measure-field.js.map +1 -1
- package/components/icure-form/fields/number-field/number-field.js +3 -4
- package/components/icure-form/fields/number-field/number-field.js.map +1 -1
- package/components/icure-form/fields/text-field/text-field.js +3 -4
- package/components/icure-form/fields/text-field/text-field.js.map +1 -1
- package/components/icure-form/fields/utils/index.d.ts +0 -5
- package/components/icure-form/fields/utils/index.js +1 -12
- package/components/icure-form/fields/utils/index.js.map +1 -1
- package/components/icure-form/index.js +14 -10
- package/components/icure-form/index.js.map +1 -1
- package/components/icure-form/renderer/form/form.js +10 -8
- package/components/icure-form/renderer/form/form.js.map +1 -1
- package/components/icure-text-field/index.js +0 -2
- package/components/icure-text-field/index.js.map +1 -1
- package/components/icure-text-field/schema/measure-schema.js +0 -1
- package/components/icure-text-field/schema/measure-schema.js.map +1 -1
- package/components/model/index.d.ts +17 -17
- package/components/model/index.js +34 -30
- package/components/model/index.js.map +1 -1
- package/generic/model.d.ts +11 -6
- package/generic/model.js.map +1 -1
- package/icure/form-values-container.d.ts +33 -21
- package/icure/form-values-container.js +325 -154
- package/icure/form-values-container.js.map +1 -1
- package/icure/icure-utils.js +48 -18
- package/icure/icure-utils.js.map +1 -1
- package/package.json +1 -1
- package/utils/code-utils.js +2 -2
- package/utils/code-utils.js.map +1 -1
- package/utils/fields-values-provider.d.ts +1 -1
- package/utils/fields-values-provider.js +6 -4
- package/utils/fields-values-provider.js.map +1 -1
- package/.yarn/cache/prosemirror-markdown-npm-1.13.2-6e2f179fd8-ce9fcb3b13.zip +0 -0
- package/.yarn/cache/prosemirror-transform-npm-1.10.5-5b3b4f5f61-6f5921e53a.zip +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
|
@@ -2,6 +2,7 @@ import { LitElement, TemplateResult } from 'lit';
|
|
|
2
2
|
import { FieldMetadata, FieldValue, Labels } from '../model';
|
|
3
3
|
import { Suggestion, VersionedData } from '../../generic';
|
|
4
4
|
import { Task } from '@lit/task';
|
|
5
|
+
import { PropertyValues } from '@lit/reactive-element';
|
|
5
6
|
/**
|
|
6
7
|
* Base class for all fields.
|
|
7
8
|
*/
|
|
@@ -41,7 +42,7 @@ export declare abstract class Field extends LitElement {
|
|
|
41
42
|
*/
|
|
42
43
|
defaultValueProvider?: () => FieldValue;
|
|
43
44
|
valueProvider?: () => VersionedData<FieldValue>;
|
|
44
|
-
validationErrorsProvider?: () => Promise<[FieldMetadata, string][]
|
|
45
|
+
validationErrorsProvider?: () => Promise<[FieldMetadata, string] | null>[];
|
|
45
46
|
ownersProvider: (terms: string[], ids?: string[], specialties?: string[]) => Promise<Suggestion[]>;
|
|
46
47
|
metadataProvider?: (id: string, revisions: (string | null)[]) => VersionedData<FieldMetadata>;
|
|
47
48
|
handleValueChanged?: (label: string, language: string, value?: FieldValue, id?: string) => string | undefined;
|
|
@@ -51,8 +52,19 @@ export declare abstract class Field extends LitElement {
|
|
|
51
52
|
displayMetadata: boolean;
|
|
52
53
|
selectedLanguage?: string;
|
|
53
54
|
selectedRevision?: string;
|
|
54
|
-
|
|
55
|
+
private latestValues?;
|
|
56
|
+
private latestMetadata?;
|
|
57
|
+
_asyncTask: Task<readonly [], readonly [] | [FieldMetadata, string][]>;
|
|
55
58
|
language(): string;
|
|
59
|
+
shouldUpdate(changedProperties: PropertyValues): boolean;
|
|
60
|
+
private versionedValuesEqual;
|
|
61
|
+
private fieldValueEqual;
|
|
62
|
+
private versionedMetadataEqual;
|
|
63
|
+
private fieldMetadataEqual;
|
|
64
|
+
private collectMetadata;
|
|
65
|
+
protected handleSingleValueChanged: (id?: string) => ((label: string, language: string, value: FieldValue) => string | undefined) | undefined;
|
|
66
|
+
protected handleSingleMetadataChanged: (id?: string) => ((metadata: FieldMetadata) => string | undefined) | undefined;
|
|
67
|
+
protected singleValueProvider: (id?: string) => () => {};
|
|
56
68
|
render(): TemplateResult | TemplateResult[] | undefined;
|
|
57
69
|
abstract renderSync({}: {
|
|
58
70
|
validationErrors: [FieldMetadata, string][];
|
|
@@ -21,6 +21,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
21
21
|
exports.Field = void 0;
|
|
22
22
|
const decorators_js_1 = require("lit/decorators.js");
|
|
23
23
|
const lit_1 = require("lit");
|
|
24
|
+
const model_1 = require("../model");
|
|
24
25
|
const task_1 = require("@lit/task");
|
|
25
26
|
/**
|
|
26
27
|
* Base class for all fields.
|
|
@@ -62,17 +63,109 @@ class Field extends lit_1.LitElement {
|
|
|
62
63
|
this.selectedLanguage = undefined;
|
|
63
64
|
this._asyncTask = new task_1.Task(this, {
|
|
64
65
|
task: () => __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
|
|
66
|
+
if (!this.validationErrorsProvider)
|
|
67
|
+
return [];
|
|
68
|
+
const results = yield Promise.all(this.validationErrorsProvider());
|
|
69
|
+
return results.filter((r) => r != null);
|
|
66
70
|
}),
|
|
67
71
|
args: () => [],
|
|
68
72
|
});
|
|
73
|
+
this.handleSingleValueChanged = (id) => this.handleValueChanged && ((label, language, value) => { var _a; return (_a = this.handleValueChanged) === null || _a === void 0 ? void 0 : _a.call(this, label, language, value, id); });
|
|
74
|
+
this.handleSingleMetadataChanged = (id) => this.handleMetadataChanged && ((metadata) => { var _a; return (_a = this.handleMetadataChanged) === null || _a === void 0 ? void 0 : _a.call(this, metadata, id); });
|
|
75
|
+
this.singleValueProvider = (id) => (this.valueProvider && id ? () => { var _a, _b; return ({ [id]: (_b = (_a = this.valueProvider) === null || _a === void 0 ? void 0 : _a.call(this)) === null || _b === void 0 ? void 0 : _b[id] }); } : () => ({}));
|
|
69
76
|
}
|
|
70
77
|
language() {
|
|
71
78
|
var _a, _b;
|
|
72
79
|
return (_b = (this.translate ? (_a = this.selectedLanguage) !== null && _a !== void 0 ? _a : this.defaultLanguage : this.defaultLanguage)) !== null && _b !== void 0 ? _b : 'en';
|
|
73
80
|
}
|
|
81
|
+
shouldUpdate(changedProperties) {
|
|
82
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
83
|
+
changedProperties.delete('handleValueChanged');
|
|
84
|
+
changedProperties.delete('handleMetadataChanged');
|
|
85
|
+
changedProperties.delete('validationErrorsProvider');
|
|
86
|
+
if (changedProperties.has('valueProvider')) {
|
|
87
|
+
const newValues = (_b = (_a = this.valueProvider) === null || _a === void 0 ? void 0 : _a.call(this)) !== null && _b !== void 0 ? _b : {};
|
|
88
|
+
if (this.versionedValuesEqual((_c = this.latestValues) !== null && _c !== void 0 ? _c : {}, newValues)) {
|
|
89
|
+
changedProperties.delete('valueProvider');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (changedProperties.has('metadataProvider')) {
|
|
93
|
+
const values = (_f = (_d = this.latestValues) !== null && _d !== void 0 ? _d : (_e = this.valueProvider) === null || _e === void 0 ? void 0 : _e.call(this)) !== null && _f !== void 0 ? _f : {};
|
|
94
|
+
const newMetadata = this.metadataProvider ? this.collectMetadata(values, this.metadataProvider) : {};
|
|
95
|
+
if (this.versionedMetadataEqual((_g = this.latestMetadata) !== null && _g !== void 0 ? _g : {}, newMetadata)) {
|
|
96
|
+
changedProperties.delete('metadataProvider');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return changedProperties.size > 0;
|
|
100
|
+
}
|
|
101
|
+
versionedValuesEqual(a, b) {
|
|
102
|
+
const aKeys = Object.keys(a);
|
|
103
|
+
const bKeys = Object.keys(b);
|
|
104
|
+
if (aKeys.length !== bKeys.length)
|
|
105
|
+
return false;
|
|
106
|
+
return aKeys.every((k) => {
|
|
107
|
+
var _a, _b, _c, _d;
|
|
108
|
+
const av = (_b = (_a = a[k]) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.value;
|
|
109
|
+
const bv = (_d = (_c = b[k]) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.value;
|
|
110
|
+
return this.fieldValueEqual(av, bv);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
fieldValueEqual(a, b) {
|
|
114
|
+
var _a, _b;
|
|
115
|
+
if (a === b)
|
|
116
|
+
return true;
|
|
117
|
+
if (!a || !b)
|
|
118
|
+
return false;
|
|
119
|
+
const aLangs = Object.keys(a.content);
|
|
120
|
+
const bLangs = Object.keys(b.content);
|
|
121
|
+
if (aLangs.length !== bLangs.length)
|
|
122
|
+
return false;
|
|
123
|
+
if (!aLangs.every((l) => (0, model_1.pteq)(a.content[l], b.content[l])))
|
|
124
|
+
return false;
|
|
125
|
+
const aCodes = (_a = a.codes) !== null && _a !== void 0 ? _a : [];
|
|
126
|
+
const bCodes = (_b = b.codes) !== null && _b !== void 0 ? _b : [];
|
|
127
|
+
return aCodes.length === bCodes.length && aCodes.every((c, i) => c.id === bCodes[i].id);
|
|
128
|
+
}
|
|
129
|
+
versionedMetadataEqual(a, b) {
|
|
130
|
+
const aKeys = Object.keys(a);
|
|
131
|
+
const bKeys = Object.keys(b);
|
|
132
|
+
if (aKeys.length !== bKeys.length)
|
|
133
|
+
return false;
|
|
134
|
+
return aKeys.every((k) => {
|
|
135
|
+
var _a, _b, _c, _d;
|
|
136
|
+
const am = (_b = (_a = a[k]) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.value;
|
|
137
|
+
const bm = (_d = (_c = b[k]) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.value;
|
|
138
|
+
return this.fieldMetadataEqual(am, bm);
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
fieldMetadataEqual(a, b) {
|
|
142
|
+
var _a, _b, _c, _d, _e;
|
|
143
|
+
if (a === b)
|
|
144
|
+
return true;
|
|
145
|
+
if (!a || !b)
|
|
146
|
+
return false;
|
|
147
|
+
return (a.label === b.label &&
|
|
148
|
+
a.index === b.index &&
|
|
149
|
+
a.valueDate === b.valueDate &&
|
|
150
|
+
a.owner === b.owner &&
|
|
151
|
+
((_b = (_a = a.tags) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) === ((_d = (_c = b.tags) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) &&
|
|
152
|
+
((_e = a.tags) !== null && _e !== void 0 ? _e : []).every((t, i) => { var _a, _b; return t.id === ((_b = (_a = b.tags) === null || _a === void 0 ? void 0 : _a[i]) === null || _b === void 0 ? void 0 : _b.id); }));
|
|
153
|
+
}
|
|
154
|
+
collectMetadata(values, metadataProvider) {
|
|
155
|
+
return Object.entries(values).reduce((acc, [id, versions]) => {
|
|
156
|
+
var _a, _b;
|
|
157
|
+
const revisions = versions.map((v) => v.revision);
|
|
158
|
+
acc[id] = (_b = (_a = metadataProvider(id, revisions)) === null || _a === void 0 ? void 0 : _a[id]) !== null && _b !== void 0 ? _b : [];
|
|
159
|
+
return acc;
|
|
160
|
+
}, {});
|
|
161
|
+
}
|
|
74
162
|
render() {
|
|
75
|
-
|
|
163
|
+
var _a, _b;
|
|
164
|
+
this.latestValues = (_a = this.valueProvider) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
165
|
+
if (this.latestValues && this.metadataProvider) {
|
|
166
|
+
this.latestMetadata = this.collectMetadata(this.latestValues, this.metadataProvider);
|
|
167
|
+
}
|
|
168
|
+
return ((_b = this.validationErrorsProvider) === null || _b === void 0 ? void 0 : _b.length)
|
|
76
169
|
? this._asyncTask.render({
|
|
77
170
|
pending: () => this.renderSync({ validationErrors: [] }),
|
|
78
171
|
complete: (validationErrors) => this.renderSync({ validationErrors }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../../tmp/components/common/field.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,qDAAmD;AACnD,6BAAgD;AAGhD,oCAAgC;AAEhC;;GAEG;AACH,MAAsB,KAAM,SAAQ,gBAAU;IAA9C;;QAMC;;;WAGG;QACS,oBAAe,GAAW,EAAE,CAAA;QAOxC;;WAEG;QACS,cAAS,GAAG,IAAI,CAAA;QAC5B;;WAEG;QACS,oBAAe,GAAG,IAAI,CAAA;QAElC;;WAEG;QACS,cAAS,GAA8B,EAAE,CAAA;QAEzC,wBAAmB,GAA+C,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;QAEtG;;WAEG;QACS,yBAAoB,GAAsB,SAAS,CAAA;QACnD,kBAAa,GAAqC,SAAS,CAAA;QAC3D,6BAAwB,GAA8C,SAAS,CAAA;QAC/E,mBAAc,GAAuF,GAAS,EAAE,gDAAC,OAAA,EAAE,CAAA,GAAA,CAAA;QACnH,qBAAgB,GAAgF,SAAS,CAAA;QACzG,uBAAkB,GAA8F,SAAS,CAAA;QACzH,0BAAqB,GAAkE,SAAS,CAAA;QAEzF,YAAO,GAAG,IAAI,CAAA;QACrB,aAAQ,GAAG,KAAK,CAAA;QAChB,oBAAe,GAAG,KAAK,CAAA;QAE1B,qBAAgB,GAAY,SAAS,CAAA;QAG9C,eAAU,GAAG,IAAI,WAAI,CAAC,IAAI,EAAE;YAC3B,IAAI,EAAE,GAAS,EAAE;gBAChB,OAAO,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YAClF,CAAC,CAAA;YACD,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;SACd,CAAC,CAAA;IAiBH,CAAC;IAfA,QAAQ;;QACP,OAAO,MAAA,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,gBAAgB,mCAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,mCAAI,IAAI,CAAA;IACvG,CAAC;IAED,MAAM;QACL,OAAO,IAAI,CAAC,wBAAwB;YACnC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBACvB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;gBACxD,QAAQ,EAAE,CAAC,gBAA2C,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;gBAChG,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;aACrD,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAA;IAC7C,CAAC;CAGD;AAzED,sBAyEC;AArEY;IAAX,IAAA,wBAAQ,GAAE;;oCAAc;AAMb;IAAX,IAAA,wBAAQ,GAAE;;8CAA6B;AAK5B;IAAX,IAAA,wBAAQ,GAAE;;2CAAyC;AAKxC;IAAX,IAAA,wBAAQ,GAAE;;wCAAiB;AAIhB;IAAX,IAAA,wBAAQ,GAAE;;8CAAuB;AAKtB;IAAX,IAAA,wBAAQ,GAAE;;wCAA0C;AAEzC;IAAX,IAAA,wBAAQ,GAAE;;kDAA2F;AAK1F;IAAX,IAAA,wBAAQ,GAAE;;mDAAoD;AACnD;IAAX,IAAA,wBAAQ,GAAE;;4CAA4D;AAC3D;IAAX,IAAA,wBAAQ,GAAE;;uDAAgF;AAC/E;IAAX,IAAA,wBAAQ,GAAE;;6CAAoH;AACnH;IAAX,IAAA,wBAAQ,GAAE;;+CAA0G;AACzG;IAAX,IAAA,wBAAQ,GAAE;;iDAA0H;AACzH;IAAX,IAAA,wBAAQ,GAAE;;oDAAiG;AAEzF;IAAlB,IAAA,wBAAQ,GAAE;;sCAAsB;AACrB;IAAX,IAAA,wBAAQ,GAAE;;uCAAiB;AAChB;IAAX,IAAA,wBAAQ,GAAE;;8CAAwB;AAE1B;IAAR,IAAA,qBAAK,GAAE;;+CAAsC;AACrC;IAAR,IAAA,qBAAK,GAAE;;+CAA0B","sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { LitElement, TemplateResult } from 'lit'\nimport { FieldMetadata, FieldValue, Labels } from '../model'\nimport { Suggestion, VersionedData } from '../../generic'\nimport { Task } from '@lit/task'\n\n/**\n * Base class for all fields.\n */\nexport abstract class Field extends LitElement {\n\t/**\n\t * The label of the field. This is a unique per form property that is used to create data in the formValuesContainer.\n\t */\n\t@property() label: string\n\n\t/**\n\t * The labels of the field. These are the labels that will be displayed in the UI.\n\t * Several labels can be displayed at once\n\t */\n\t@property() displayedLabels: Labels = {}\n\n\t/**\n\t * Extra styles applied to the field.\n\t */\n\t@property() styleOptions: { [key: string]: unknown }\n\n\t/**\n\t * Translate labels and options\n\t */\n\t@property() translate = true\n\t/**\n\t * Iso code of the default language\n\t */\n\t@property() defaultLanguage = 'en'\n\n\t/**\n\t * Iso code and names of the supported languages\n\t */\n\t@property() languages: { [iso: string]: string } = {}\n\n\t@property() translationProvider: (language: string, text: string) => string = (language, text) => text\n\n\t/**\n\t * Provides the value of the field.\n\t */\n\t@property() defaultValueProvider?: () => FieldValue = undefined\n\t@property() valueProvider?: () => VersionedData<FieldValue> = undefined\n\t@property() validationErrorsProvider?: () => Promise<[FieldMetadata, string][]> = undefined\n\t@property() ownersProvider: (terms: string[], ids?: string[], specialties?: string[]) => Promise<Suggestion[]> = async () => []\n\t@property() metadataProvider?: (id: string, revisions: (string | null)[]) => VersionedData<FieldMetadata> = undefined\n\t@property() handleValueChanged?: (label: string, language: string, value?: FieldValue, id?: string) => string | undefined = undefined\n\t@property() handleMetadataChanged?: (metadata: FieldMetadata, id?: string) => string | undefined = undefined\n\n\t@property() public visible = true\n\t@property() readonly = false\n\t@property() displayMetadata = false\n\n\t@state() selectedLanguage?: string = undefined\n\t@state() selectedRevision?: string\n\n\t_asyncTask = new Task(this, {\n\t\ttask: async () => {\n\t\t\treturn this.validationErrorsProvider ? await this.validationErrorsProvider() : []\n\t\t},\n\t\targs: () => [],\n\t})\n\n\tlanguage(): string {\n\t\treturn (this.translate ? this.selectedLanguage ?? this.defaultLanguage : this.defaultLanguage) ?? 'en'\n\t}\n\n\trender() {\n\t\treturn this.validationErrorsProvider\n\t\t\t? this._asyncTask.render({\n\t\t\t\t\tpending: () => this.renderSync({ validationErrors: [] }),\n\t\t\t\t\tcomplete: (validationErrors: [FieldMetadata, string][]) => this.renderSync({ validationErrors }),\n\t\t\t\t\terror: () => this.renderSync({ validationErrors: [] }),\n\t\t\t })\n\t\t\t: this.renderSync({ validationErrors: [] })\n\t}\n\n\tabstract renderSync({}: { validationErrors: [FieldMetadata, string][] }): TemplateResult | TemplateResult[] | undefined\n}\n"]}
|
|
1
|
+
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../../tmp/components/common/field.ts"],"names":[],"mappings":"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","sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { LitElement, TemplateResult } from 'lit'\nimport { FieldMetadata, FieldValue, Labels, pteq } from '../model'\nimport { Suggestion, Version, VersionedData } from '../../generic'\nimport { Task } from '@lit/task'\nimport { PropertyValues } from '@lit/reactive-element'\n\n/**\n * Base class for all fields.\n */\nexport abstract class Field extends LitElement {\n\t/**\n\t * The label of the field. This is a unique per form property that is used to create data in the formValuesContainer.\n\t */\n\t@property() label: string\n\n\t/**\n\t * The labels of the field. These are the labels that will be displayed in the UI.\n\t * Several labels can be displayed at once\n\t */\n\t@property() displayedLabels: Labels = {}\n\n\t/**\n\t * Extra styles applied to the field.\n\t */\n\t@property() styleOptions: { [key: string]: unknown }\n\n\t/**\n\t * Translate labels and options\n\t */\n\t@property() translate = true\n\t/**\n\t * Iso code of the default language\n\t */\n\t@property() defaultLanguage = 'en'\n\n\t/**\n\t * Iso code and names of the supported languages\n\t */\n\t@property() languages: { [iso: string]: string } = {}\n\n\t@property() translationProvider: (language: string, text: string) => string = (language, text) => text\n\n\t/**\n\t * Provides the value of the field.\n\t */\n\t@property() defaultValueProvider?: () => FieldValue = undefined\n\t@property() valueProvider?: () => VersionedData<FieldValue> = undefined\n\t@property() validationErrorsProvider?: () => Promise<[FieldMetadata, string] | null>[] = undefined\n\t@property() ownersProvider: (terms: string[], ids?: string[], specialties?: string[]) => Promise<Suggestion[]> = async () => []\n\t@property() metadataProvider?: (id: string, revisions: (string | null)[]) => VersionedData<FieldMetadata> = undefined\n\t@property() handleValueChanged?: (label: string, language: string, value?: FieldValue, id?: string) => string | undefined = undefined\n\t@property() handleMetadataChanged?: (metadata: FieldMetadata, id?: string) => string | undefined = undefined\n\n\t@property() public visible = true\n\t@property() readonly = false\n\t@property() displayMetadata = false\n\n\t@state() selectedLanguage?: string = undefined\n\t@state() selectedRevision?: string\n\n\tprivate latestValues?: VersionedData<FieldValue>\n\tprivate latestMetadata?: { [id: string]: Version<FieldMetadata>[] }\n\n\t_asyncTask = new Task(this, {\n\t\ttask: async () => {\n\t\t\tif (!this.validationErrorsProvider) return []\n\t\t\tconst results = await Promise.all(this.validationErrorsProvider())\n\t\t\treturn results.filter((r): r is [FieldMetadata, string] => r != null)\n\t\t},\n\t\targs: () => [],\n\t})\n\n\tlanguage(): string {\n\t\treturn (this.translate ? this.selectedLanguage ?? this.defaultLanguage : this.defaultLanguage) ?? 'en'\n\t}\n\n\tshouldUpdate(changedProperties: PropertyValues) {\n\t\tchangedProperties.delete('handleValueChanged')\n\t\tchangedProperties.delete('handleMetadataChanged')\n\t\tchangedProperties.delete('validationErrorsProvider')\n\n\t\tif (changedProperties.has('valueProvider')) {\n\t\t\tconst newValues = this.valueProvider?.() ?? {}\n\t\t\tif (this.versionedValuesEqual(this.latestValues ?? {}, newValues)) {\n\t\t\t\tchangedProperties.delete('valueProvider')\n\t\t\t}\n\t\t}\n\n\t\tif (changedProperties.has('metadataProvider')) {\n\t\t\tconst values = this.latestValues ?? this.valueProvider?.() ?? {}\n\t\t\tconst newMetadata = this.metadataProvider ? this.collectMetadata(values, this.metadataProvider) : {}\n\t\t\tif (this.versionedMetadataEqual(this.latestMetadata ?? {}, newMetadata)) {\n\t\t\t\tchangedProperties.delete('metadataProvider')\n\t\t\t}\n\t\t}\n\n\t\treturn changedProperties.size > 0\n\t}\n\n\tprivate versionedValuesEqual(a: VersionedData<FieldValue>, b: VersionedData<FieldValue>): boolean {\n\t\tconst aKeys = Object.keys(a)\n\t\tconst bKeys = Object.keys(b)\n\t\tif (aKeys.length !== bKeys.length) return false\n\t\treturn aKeys.every((k) => {\n\t\t\tconst av = a[k]?.[0]?.value\n\t\t\tconst bv = b[k]?.[0]?.value\n\t\t\treturn this.fieldValueEqual(av, bv)\n\t\t})\n\t}\n\n\tprivate fieldValueEqual(a: FieldValue | undefined, b: FieldValue | undefined): boolean {\n\t\tif (a === b) return true\n\t\tif (!a || !b) return false\n\t\tconst aLangs = Object.keys(a.content)\n\t\tconst bLangs = Object.keys(b.content)\n\t\tif (aLangs.length !== bLangs.length) return false\n\t\tif (!aLangs.every((l) => pteq(a.content[l], b.content[l]))) return false\n\t\tconst aCodes = a.codes ?? []\n\t\tconst bCodes = b.codes ?? []\n\t\treturn aCodes.length === bCodes.length && aCodes.every((c, i) => c.id === bCodes[i].id)\n\t}\n\n\tprivate versionedMetadataEqual(a: { [id: string]: Version<FieldMetadata>[] }, b: { [id: string]: Version<FieldMetadata>[] }): boolean {\n\t\tconst aKeys = Object.keys(a)\n\t\tconst bKeys = Object.keys(b)\n\t\tif (aKeys.length !== bKeys.length) return false\n\t\treturn aKeys.every((k) => {\n\t\t\tconst am = a[k]?.[0]?.value\n\t\t\tconst bm = b[k]?.[0]?.value\n\t\t\treturn this.fieldMetadataEqual(am, bm)\n\t\t})\n\t}\n\n\tprivate fieldMetadataEqual(a: FieldMetadata | undefined, b: FieldMetadata | undefined): boolean {\n\t\tif (a === b) return true\n\t\tif (!a || !b) return false\n\t\treturn (\n\t\t\ta.label === b.label &&\n\t\t\ta.index === b.index &&\n\t\t\ta.valueDate === b.valueDate &&\n\t\t\ta.owner === b.owner &&\n\t\t\t(a.tags?.length ?? 0) === (b.tags?.length ?? 0) &&\n\t\t\t(a.tags ?? []).every((t, i) => t.id === b.tags?.[i]?.id)\n\t\t)\n\t}\n\n\tprivate collectMetadata(values: VersionedData<FieldValue>, metadataProvider: (id: string, revisions: (string | null)[]) => VersionedData<FieldMetadata>): { [id: string]: Version<FieldMetadata>[] } {\n\t\treturn Object.entries(values).reduce((acc, [id, versions]) => {\n\t\t\tconst revisions = versions.map((v) => v.revision)\n\t\t\tacc[id] = metadataProvider(id, revisions)?.[id] ?? []\n\t\t\treturn acc\n\t\t}, {} as { [id: string]: Version<FieldMetadata>[] })\n\t}\n\n\tprotected handleSingleValueChanged = (id?: string) => this.handleValueChanged && ((label: string, language: string, value: FieldValue) => this.handleValueChanged?.(label, language, value, id))\n\n\tprotected handleSingleMetadataChanged = (id?: string) => this.handleMetadataChanged && ((metadata: FieldMetadata) => this.handleMetadataChanged?.(metadata, id))\n\n\tprotected singleValueProvider = (id?: string) => (this.valueProvider && id ? () => ({ [id]: this.valueProvider?.()?.[id] }) : () => ({}))\n\n\trender() {\n\t\tthis.latestValues = this.valueProvider?.()\n\t\tif (this.latestValues && this.metadataProvider) {\n\t\t\tthis.latestMetadata = this.collectMetadata(this.latestValues, this.metadataProvider)\n\t\t}\n\n\t\treturn this.validationErrorsProvider?.length\n\t\t\t? this._asyncTask.render({\n\t\t\t\t\tpending: () => this.renderSync({ validationErrors: [] }),\n\t\t\t\t\tcomplete: (validationErrors: [FieldMetadata, string][]) => this.renderSync({ validationErrors }),\n\t\t\t\t\terror: () => this.renderSync({ validationErrors: [] }),\n\t\t\t })\n\t\t\t: this.renderSync({ validationErrors: [] })\n\t}\n\n\tabstract renderSync({}: { validationErrors: [FieldMetadata, string][] }): TemplateResult | TemplateResult[] | undefined\n}\n"]}
|
|
@@ -4,7 +4,17 @@ exports.naturalCodesComparator = exports.defaultCodesComparator = exports.defaul
|
|
|
4
4
|
exports.generateLabels = generateLabels;
|
|
5
5
|
exports.generateLabel = generateLabel;
|
|
6
6
|
const lit_1 = require("lit");
|
|
7
|
-
const
|
|
7
|
+
const labelCache = new WeakMap();
|
|
8
|
+
const getLabels = (field) => {
|
|
9
|
+
var _a;
|
|
10
|
+
const cached = labelCache.get(field);
|
|
11
|
+
if (cached) {
|
|
12
|
+
return cached;
|
|
13
|
+
}
|
|
14
|
+
const labels = (_a = field.labels) !== null && _a !== void 0 ? _a : (field.shortLabel ? { float: field.shortLabel } : { float: field.label() });
|
|
15
|
+
labelCache.set(field, labels);
|
|
16
|
+
return labels;
|
|
17
|
+
};
|
|
8
18
|
exports.getLabels = getLabels;
|
|
9
19
|
function generateLabels(labels, language, translationProvider) {
|
|
10
20
|
return Object.keys(labels).map((position) => generateLabel(labels[position], position, language, translationProvider));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../tmp/components/common/utils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../tmp/components/common/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit'\nimport { Code, Field, Labels, Position } from '../model'\n\nconst labelCache = new WeakMap<Field, Labels>()\n\nexport const getLabels = (field: Field): Labels => {\n\tconst cached = labelCache.get(field)\n\tif (cached) {\n\t\treturn cached\n\t}\n\tconst labels = field.labels ?? (field.shortLabel ? { float: field.shortLabel } : { float: field.label() })\n\tlabelCache.set(field, labels)\n\treturn labels\n}\n\nexport function generateLabels(labels: Labels, language: string, translationProvider?: (language: string, text: string) => string): TemplateResult[] {\n\treturn Object.keys(labels).map((position: Position) => generateLabel(labels[position] as string, position, language, translationProvider))\n}\n\nexport function generateLabel(\n\tlabel: string,\n\tlabelPosition: string,\n\tlanguage: string,\n\ttranslationProvider: (language: string, text: string) => string = (language: string, text) => text,\n): TemplateResult {\n\tswitch (labelPosition) {\n\t\tcase 'right':\n\t\tcase 'left':\n\t\t\treturn html` <label class=\"icure-label side above ${labelPosition}\">${translationProvider(language, label)}</label> `\n\t\tdefault:\n\t\t\treturn html` <label class=\"icure-label ${labelPosition}\">${translationProvider(language, label)}</label> `\n\t}\n}\n\nexport const makePromoter = (promotions: string[]) => {\n\tconst middle = promotions.indexOf('*')\n\treturn (code: Code): number => {\n\t\tconst index = promotions.indexOf(code.id ?? '')\n\t\treturn index >= 0 ? index - middle : 0\n\t}\n}\n\nexport const defaultCodePromoter = (code: Code): number =>\n\tcode?.label?.en?.toLowerCase() === 'other' ? 2 : code?.label?.en?.toLowerCase() === 'none' ? 1 : code?.label?.en?.toLowerCase() === 'empty' ? -1 : 0\n\nexport const defaultCodesComparator =\n\t(language = 'en', ascending = true, codePromoter: (c: Code) => number = defaultCodePromoter) =>\n\t(a: Code, b: Code): number => {\n\t\tconst aPromoted = codePromoter(a)\n\t\tconst bPromoted = codePromoter(b)\n\t\tif (aPromoted !== bPromoted) {\n\t\t\treturn (aPromoted - bPromoted) * (ascending ? 1 : -1)\n\t\t}\n\t\treturn (a?.label?.[language] || '').localeCompare(b?.label?.[language] || '') * (ascending ? 1 : -1)\n\t}\n\nexport const naturalCodesComparator =\n\t(codePromoter: (c: Code) => number = defaultCodePromoter) =>\n\t(a: Code, b: Code): number => {\n\t\tconst aPromoted = codePromoter(a)\n\t\tconst bPromoted = codePromoter(b)\n\t\treturn aPromoted !== bPromoted ? -1 : aPromoted - bPromoted\n\t}\n"]}
|
|
@@ -1199,7 +1199,7 @@ class IcureButtonGroup extends (0, field_with_options_1.FieldWithOptionsMixin)(c
|
|
|
1199
1199
|
${(0, utils_1.generateLabels)(Object.entries((_g = this.displayedLabels) !== null && _g !== void 0 ? _g : {})
|
|
1200
1200
|
.filter(
|
|
1201
1201
|
//If we have less than 2 options, we don't need to display the label except if it is different from the first option
|
|
1202
|
-
([, l]) => { var _a, _b, _c; return ((_b = (_a = this.displayedOptions) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 1 || (((_c = this.displayedOptions) === null || _c === void 0 ? void 0 : _c.length) && l !== this.displayedOptions[0].label[this.language()]); })
|
|
1202
|
+
([, l]) => { var _a, _b, _c, _d, _e; return ((_b = (_a = this.displayedOptions) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 1 || (((_c = this.displayedOptions) === null || _c === void 0 ? void 0 : _c.length) && l !== ((_e = (_d = this.displayedOptions[0].label) === null || _d === void 0 ? void 0 : _d[this.language()]) !== null && _e !== void 0 ? _e : this.displayedOptions[0].id)); })
|
|
1203
1203
|
.reduce((acc, [k, v]) => (Object.assign(Object.assign({}, acc), { [k]: v })), {}), this.language(), this.translate ? this.translationProvider : undefined)}
|
|
1204
1204
|
${this.displayMetadata && metadata
|
|
1205
1205
|
? (0, lit_1.html) ` <icure-metadata-buttons-bar
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tmp/components/icure-button-group/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup, html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\n// @ts-ignore\nimport { css } from 'lit';\nconst baseCss = css`@charset \"UTF-8\";\n.tab-container .tab-bar li {\n display: inline-block;\n padding: 8px 16px;\n cursor: pointer;\n color: #000000;\n font-size: 14px;\n font-weight: 500;\n}\n.tab-container .tab-bar li.active {\n background-color: #656565;\n color: white;\n}\n.tab-container .tab-content .tab {\n display: none;\n}\n.tab-container .tab-content .tab.active {\n display: block;\n}\n\n:host {\n --bg-color-1: #f44336;\n}\n\n.ProseMirror {\n position: relative;\n width: 100%;\n word-wrap: break-word;\n white-space: pre-wrap;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n padding: 6px 8px 2px 8px;\n line-height: 1.2;\n color: #274768;\n font-size: 14px;\n font-weight: 400;\n outline: none;\n}\n.ProseMirror p:last-child,\n.ProseMirror h1:last-child,\n.ProseMirror h2:last-child,\n.ProseMirror h3:last-child,\n.ProseMirror h4:last-child,\n.ProseMirror h5:last-child,\n.ProseMirror h6:last-child {\n margin-bottom: 2px;\n}\n.ProseMirror p {\n margin-bottom: 1em;\n}\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n.ProseMirror li {\n position: relative;\n}\n.ProseMirror ul,\n.ProseMirror ol {\n padding-left: 30px;\n}\n.ProseMirror blockquote {\n padding-left: 1em;\n border-left: 3px solid #eee;\n margin-left: 0;\n margin-right: 0;\n}\n\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n.ProseMirror-hideselection {\n caret-color: transparent;\n}\n\n.ProseMirror-selectednode {\n outline: 2px solid #8cf;\n}\n\n/* Make sure li selections wrap around markers */\nli.ProseMirror-selectednode {\n outline: none;\n}\nli.ProseMirror-selectednode :after {\n content: \"\";\n position: absolute;\n left: -32px;\n right: -2px;\n top: -2px;\n bottom: -2px;\n border: 2px solid #8cf;\n pointer-events: none;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n}\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n/* Add space around the hr to make clicking it easier */\n.ProseMirror-example-setup-style hr {\n padding: 2px 10px;\n border: none;\n margin: 1em 0;\n}\n.ProseMirror-example-setup-style hr:after {\n content: \"\";\n display: block;\n height: 1px;\n background: silver;\n line-height: 2px;\n}\n\n.ProseMirror-example-setup-style img {\n cursor: default;\n}\n\n.ProseMirror-prompt {\n background: white;\n padding: 5px 10px 5px 15px;\n border: 1px solid silver;\n position: fixed;\n border-radius: 3px;\n z-index: 11;\n box-shadow: -0.5px 2px 5px rgba(0, 0, 0, 0.2);\n}\n.ProseMirror-prompt h5 {\n margin: 0;\n font-weight: normal;\n font-size: 100%;\n color: #444;\n}\n.ProseMirror-prompt input[type=text],\n.ProseMirror-prompt textarea {\n background: #eee;\n border: none;\n outline: none;\n}\n.ProseMirror-prompt input[type=text] {\n padding: 0 4px;\n}\n\n.ProseMirror-prompt-close {\n position: absolute;\n left: 2px;\n top: 1px;\n color: #666;\n border: none;\n background: transparent;\n padding: 0;\n}\n.ProseMirror-prompt-close:after {\n content: \"✕\";\n font-size: 12px;\n}\n\n.ProseMirror-invalid {\n background: #ffc;\n border: 1px solid #cc7;\n border-radius: 4px;\n padding: 5px 10px;\n position: absolute;\n min-width: 10em;\n}\n\n.ProseMirror-prompt-buttons {\n margin-top: 5px;\n display: none;\n}\n\n#editor,\n.editor {\n color: rgb(101, 101, 101);\n background-clip: padding-box;\n border-radius: 4px;\n border: 2px solid rgba(0, 0, 0, 0.2);\n padding: 5px 0;\n display: flex;\n align-items: flex-end;\n}\n\n.icure-input {\n background: #edf2f7;\n border-radius: 8px;\n border: none;\n min-height: 28px;\n height: auto;\n display: flex;\n flex-flow: row nowrap;\n align-items: flex-start;\n justify-content: space-between;\n}\n\n#editor {\n background: transparent;\n border: none;\n padding: 0;\n flex-grow: 1;\n display: flex;\n align-items: stretch;\n}\n#editor.tokens-list .ProseMirror, #editor.styled-tokens-list .ProseMirror {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n#editor.tokens-list .ProseMirror li, #editor.styled-tokens-list .ProseMirror li {\n display: flex;\n flex-direction: row;\n border-radius: 8px;\n padding: 2px 4px;\n margin-right: 2px;\n background-color: #dadada;\n border-color: rgba(42, 61, 108, 0.44);\n min-height: 20px;\n}\n#editor.tokens-list .ProseMirror li span, #editor.styled-tokens-list .ProseMirror li span {\n display: inline-block;\n min-height: 18px;\n}\n#editor.tokens-list .ProseMirror li span br, #editor.styled-tokens-list .ProseMirror li span br {\n display: none;\n}\n#editor.items-list .ProseMirror {\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n align-items: flex-start;\n gap: 6px;\n}\n#editor.items-list .ProseMirror li {\n list-style-type: none;\n width: 100%;\n padding-bottom: 4px;\n border-bottom: 1px dotted rgba(128, 128, 128, 0.5098039216);\n}\n#editor.items-list .ProseMirror li:last-child {\n border-bottom: none;\n}\n\n#content {\n position: relative;\n padding: 0;\n}\n\n* {\n font-family: \"Roboto\", Helvetica, sans-serif;\n}\n\np {\n margin-top: 0;\n}\n\nh3 {\n color: #274768;\n margin-top: 0;\n}\n\n.icure-input-metadata-container {\n display: flex;\n}\n.icure-input-metadata-container .icure-metadata-container {\n display: flex;\n flex-grow: 1;\n padding: 0 4px;\n border: 1px solid #DDE3E7;\n border-left: none;\n border-radius: 0 6px 6px 0;\n outline: 0;\n box-sizing: border-box;\n}\n.icure-input-metadata-container .icure-metadata-container__validationError {\n border-color: red;\n}\n\n.extra {\n min-width: 20px;\n width: auto;\n height: 20px;\n transition: all 0.24s cubic-bezier(0.42, 0.01, 1, 0.62);\n}\n.extra:hover .info {\n display: none;\n}\n.extra:hover .buttons-container .menu-container .btn {\n animation: slideIn 0.24s ease-in forwards;\n pointer-events: none;\n display: unset !important;\n}\n.extra.forced .info, .extra.forced .extra .info.hidden {\n opacity: 0 !important;\n z-index: 0 !important;\n display: none;\n}\n.extra.forced .buttons-container .btn {\n opacity: 1 !important;\n display: unset !important;\n}\n.extra.forced:hover .buttons-container .menu-container .btn {\n animation: none;\n pointer-events: all;\n}\n.extra--metadataButtonsBar {\n height: 100%;\n display: flex;\n align-items: center;\n padding: 0 4px;\n}\n.extra .info {\n color: #809ab4;\n font-size: 15px;\n width: 100%;\n height: auto;\n overflow: hidden;\n pointer-events: none;\n text-align: center;\n}\n.extra .info span {\n font-weight: 700;\n}\n.extra .info.hidden {\n display: none;\n}\n.extra .buttons-container {\n display: flex;\n height: 20px;\n width: auto;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-end;\n transition: all 0.24s cubic-bezier(0.14, 0.69, 0.87, 0.54);\n z-index: 1000;\n}\n.extra .buttons-container .btn {\n border: none;\n background: transparent;\n position: relative;\n top: 0;\n display: none;\n opacity: 0;\n cursor: pointer;\n height: 20px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n.extra .buttons-container .btn svg {\n width: 15px;\n height: 15px;\n}\n.extra .buttons-container .btn svg path {\n fill: #809ab4;\n}\n.extra .buttons-container .btn.forced {\n opacity: 1 !important;\n display: unset !important;\n}\n.extra .buttons-container .btn.forced svg path {\n fill: crimson !important;\n}\n.extra .buttons-container .btn:focus, .extra .buttons-container .btn:focus-within {\n border: none;\n outline: none;\n}\n.extra .buttons-container .btn:hover svg path {\n fill: #274768;\n}\n.extra .buttons-container .menu-container .btn:hover::before {\n content: \"\";\n display: block;\n border-color: #274768 transparent transparent transparent;\n border-style: solid;\n border-width: 4px;\n position: absolute;\n top: -6px;\n}\n.extra .buttons-container .menu-container .btn:hover::after {\n content: attr(data-content);\n position: absolute;\n top: -21px;\n height: 16px;\n left: 50%;\n transform: translateX(-50%);\n border-radius: 8px;\n background: #274768;\n color: white;\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n text-transform: capitalize;\n white-space: nowrap;\n padding: 0 12px;\n font-size: 12px;\n line-height: 0;\n}\n.extra .buttons-container .menu-container:last-child .btn {\n margin-right: 0;\n}\n\n@keyframes slideIn {\n 0% {\n top: 0;\n opacity: 0;\n pointer-events: none;\n }\n 100% {\n top: 0;\n opacity: 1;\n pointer-events: all;\n }\n}\n.menu-container {\n display: flex;\n align-items: center;\n height: fit-content;\n}\n.menu-container .item {\n height: 30px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n font-size: 14px;\n color: #274768;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n box-shadow: none;\n border: none;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n}\n.menu-container .item.existing {\n background-color: #BFE8EA;\n}\n.menu-container .item.selected {\n color: white;\n background-color: #084B83;\n}\n.menu-container .item:hover {\n background: #DCE7F2;\n color: #274768;\n font-weight: 500;\n border-radius: 4px;\n}\n\n.value-date-menu {\n width: unset !important;\n}\n\n.menu {\n display: flex;\n flex-direction: column;\n gap: 2px;\n position: absolute;\n top: 32px;\n right: -12px;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n border-radius: 8px;\n padding: 8px;\n width: 220px;\n min-height: 120px;\n max-height: 320px;\n overflow-y: scroll;\n}\n.menu .input-container {\n background: #edf2f7;\n border-radius: 4px;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n height: 32px;\n margin-bottom: 4px;\n padding: 0 4px;\n}\n.menu .input-container:hover {\n box-shadow: 0 0 0 3px rgba(40, 151, 255, 0.2);\n}\n.menu .input-container:focus-within {\n box-shadow: 0 0 0 3px rgba(40, 151, 255, 0.2), 0 0 0 1px rgb(40, 151, 255);\n}\n.menu .input-container input {\n background: transparent;\n border: none;\n flex-grow: 1;\n height: 100%;\n}\n.menu .input-container input:focus {\n background: transparent;\n border: none;\n outline: none;\n}\n\n.menu-trigger:focus .menu {\n display: flex;\n}\n\nspan {\n position: relative;\n z-index: 1;\n}\nspan.date {\n margin-right: 1px;\n}\nspan.time {\n margin-left: 1px;\n}\nspan.measure {\n display: inline-block;\n margin-right: 1px;\n}\nspan.unit {\n margin-left: 1px;\n display: inline-block;\n}\nspan[data-content]:hover::after {\n position: absolute;\n content: attr(data-content);\n background: #274768;\n color: #ffffff;\n font-size: 9px;\n line-height: 12px;\n top: -12px;\n left: 0px;\n padding: 0px 2px;\n}\nspan[data-content]::before {\n position: absolute;\n content: \"\";\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n opacity: 0.3;\n}\n\n.masked {\n display: none;\n}\n\n.companion {\n position: absolute;\n width: 15px;\n background-color: hsl(194, 100%, 50%);\n color: white;\n z-index: 20;\n padding: 0;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 0 2px 2px 0;\n}\n.companion:hover {\n font-weight: 700;\n background: hsl(202, 100%, 50%);\n}\n\n*::selection {\n background-color: hsla(194, 100%, 50%, 0.2);\n}\n\n.suggestion-palette {\n position: absolute;\n z-index: 20;\n max-width: 380px;\n font-size: 11px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 4px;\n border: none;\n border-radius: 8px;\n background: white;\n box-shadow: 0 1.1px 1.1px rgba(0, 0, 0, 0.022), 0 2.7px 2.7px rgba(0, 0, 0, 0.032), 0 5px 5px rgba(0, 0, 0, 0.04), 0 8.9px 8.9px rgba(0, 0, 0, 0.048), 0 16.7px 16.7px rgba(0, 0, 0, 0.058), 0 40px 40px rgba(0, 0, 0, 0.08);\n}\n.suggestion-palette ul {\n white-space: nowrap;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.suggestion-palette ul li:not(:first-child) svg.tab-icn,\n.suggestion-palette ul li:not(.focused) svg.return-icn, .suggestion-palette ul.focused li:first-child svg.tab-icn {\n height: 0;\n width: 0;\n transform: scale(0);\n opacity: 0;\n}\n.suggestion-palette ul li {\n padding: 0 8px;\n font-size: 11px;\n height: 20px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 4px;\n color: rgb(39, 71, 104);\n}\n.suggestion-palette ul li.focused {\n background-color: rgb(237, 242, 247);\n}\n.suggestion-palette ul li.focused svg.return-icn {\n animation: growIn 0.24s ease-in forwards;\n}\n.suggestion-palette ul li svg {\n height: 12px;\n width: 12px;\n border-radius: 4px;\n transform-origin: center center;\n}\n.suggestion-palette ul li svg path {\n fill: rgb(128, 154, 180);\n}\n\n@keyframes growIn {\n 0% {\n transform: scale(0.5);\n }\n 90% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n }\n}\nspan.code-count-1::after,\nspan.code-count-1::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n}\n\nspan.code-count-2::after,\nspan.code-count-2::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n /* STRIPES */\n /*background: repeating-linear-gradient(*/\n /*\t45deg,*/\n /*\tvar(--bg-code-color-1),*/\n /*\tvar(--bg-code-color-1) 10px,*/\n /*\tvar(--bg-code-color-2) 10px,*/\n /*\tvar(--bg-code-color-2) 20px*/\n /*);*/\n /* PAS STRIPES */\n background: linear-gradient(90deg, var(--bg-code-color-1) 0%, var(--bg-code-color-2) 100%);\n}\n\nspan.code-count-3::after,\nspan.code-count-3::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n /* STRIPES */\n background: repeating-linear-gradient(45deg, var(--bg-code-color-1), var(--bg-code-color-1) 10px, var(--bg-code-color-2) 10px, var(--bg-code-color-2) 20px);\n /* PAS STRIPES */\n /* background: linear-gradient(90deg, var(--bg-code-color-1) 0%, var(--bg-code-color-2) 100%);*/\n}\n\n.selected-option {\n padding: 2px;\n margin-right: 5px;\n}\n\n.options {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n width: auto;\n min-width: 100%;\n overflow-y: auto;\n padding: 2px;\n border-radius: 6px;\n}\n.options--subformView {\n top: 46px;\n min-width: unset;\n left: unset;\n right: 0;\n}\n\n.date-picker {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n width: 260px;\n overflow-y: auto;\n max-height: 280px;\n}\n\napp-date-picker {\n --app-primary: #084B83;\n --app-hover: #5b7da2;\n --app-selected-hover: #5b7da2;\n}\n\n.option {\n height: 28px;\n min-height: 28px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n font-size: 14px;\n color: #545454;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n box-shadow: none;\n border: none;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n padding: 4px 8px;\n -webkit-user-select: none; /* Safari */\n -ms-user-select: none; /* IE 10 and IE 11 */\n user-select: none; /* Standard syntax */\n cursor: pointer;\n}\n.option:hover {\n color: #656565;\n background-color: #ededed;\n}\n\n.select-arrow {\n border: none;\n background: 0px 0px;\n position: relative;\n top: 0px;\n opacity: 0.5;\n cursor: pointer;\n height: 20px;\n width: 10px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0px;\n}\n\n.hidden {\n display: none;\n}\n\n.container {\n position: relative;\n}\n\n.group {\n align-items: end;\n display: grid;\n}\n\n.subform {\n display: grid;\n position: relative;\n padding: 8px;\n border-radius: 6px;\n background-color: #e7f0fd;\n gap: 12px;\n}\n.subform__heading {\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: auto;\n}\n.subform__heading__title {\n padding: 0;\n margin: 0;\n}\n.subform__addBtn, .subform__removeBtn {\n cursor: pointer;\n background-color: #084B83;\n color: white;\n height: 32px;\n padding: 0 16px;\n border-radius: 6px;\n border: none;\n outline: none;\n}\n.subform__addBtn:hover, .subform__removeBtn:hover {\n background-color: #3D87C5;\n}\n.subform__removeBtn {\n justify-self: end;\n border: 1px solid #DDE3E7;\n background-color: #FCFCFD;\n color: #084B83;\n}\n.subform__removeBtn:hover {\n background-color: #F2F2F2;\n}\n.subform__child {\n display: grid;\n grid-template-rows: auto;\n gap: 8px;\n padding: 8px;\n border-radius: 6px;\n background: white;\n border: 1px solid #3D87C5;\n}\n.subform__child__title {\n padding: 12px !important;\n border-radius: 6px;\n margin: 0;\n background-color: #BFE8EA;\n}\n.subform__child .subform {\n background: unset;\n margin: 0;\n padding: 0;\n}\n\n.icure-form {\n background-color: rgba(0, 0, 0, 0);\n display: grid;\n gap: 16px 6px;\n grid-template-columns: repeat(24, 1fr);\n}\n.icure-form hr {\n display: block;\n margin-top: 20px;\n border-top: 1px solid rgba(8, 75, 131, 0.13);\n margin-bottom: 20px;\n}\n.icure-form h2 {\n font-size: add-two(12px, 0, 1.2);\n font-weight: 700;\n color: #084B83;\n padding: 2px;\n}\n.icure-form h3 {\n font-size: add-two(12px, 0, 1.1);\n font-weight: 500;\n color: #084B83;\n padding: 6px;\n}\n.icure-form .group.bordered {\n background: #f6f6f6;\n border-radius: 12px;\n}\n\n.icure-form-field {\n display: grid;\n align-items: flex-start;\n}\n\n.error {\n color: red;\n font-size: 12px;\n margin-top: 4px;\n}\n\n.icure-text-field .icure-label-extra, .icure-button-group .icure-label-extra {\n display: flex;\n width: 100%;\n gap: 12px;\n}\n.icure-text-field .icure-label, .icure-button-group .icure-label {\n z-index: 1;\n pointer-events: none;\n line-height: 1.4em;\n cursor: text;\n font-size: 12px;\n left: add-two(8px, 1px);\n color: #084B83;\n align-items: center;\n text-wrap: auto;\n min-height: 28px;\n max-width: 85%;\n min-width: 0;\n}\n.icure-text-field .icure-label.float, .icure-button-group .icure-label.float {\n display: flex;\n overflow: hidden;\n}\n\n.icure-text-field {\n position: relative;\n width: 100%;\n}\n.icure-text-field > .icure-label {\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n}\n.icure-text-field > .icure-input {\n flex: 1 1 auto;\n width: auto;\n}\n.icure-text-field > .icure-label.side {\n position: relative;\n}\n.icure-text-field > .icure-label.side.left {\n order: -1;\n margin-right: 1em;\n}\n.icure-text-field > .icure-label.side.right {\n order: 1;\n margin-left: 1em;\n}\n.icure-text-field .icure-input,\n.icure-text-field .input-container {\n padding: 8px;\n width: 100%;\n box-sizing: border-box;\n border-width: 1px;\n border-style: solid;\n border-color: #DDE3E7;\n border-radius: 2px;\n outline: 0;\n font: inherit;\n font-size: 14px;\n line-height: 1.4em;\n display: flex;\n align-items: center;\n vertical-align: middle;\n position: relative;\n -webkit-appearance: none;\n background-color: #ffffff;\n color: #000000;\n}\n.icure-text-field .icure-input .reset-button,\n.icure-text-field .input-container .reset-button {\n position: absolute;\n right: 0;\n border: none;\n background: transparent;\n top: 0;\n opacity: 0.5;\n cursor: pointer;\n height: 20px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n.icure-text-field .icure-input .reset-button svg,\n.icure-text-field .input-container .reset-button svg {\n width: 15px;\n height: 15px;\n}\n.icure-text-field .icure-input__validationError,\n.icure-text-field .input-container__validationError {\n border-color: red;\n}\n.icure-text-field .icure-input__withMetadata,\n.icure-text-field .input-container__withMetadata {\n border-radius: 6px 0 0 6px;\n}\n.icure-text-field .icure-input:focus, .icure-text-field .icure-input:focus-within,\n.icure-text-field .input-container:focus,\n.icure-text-field .input-container:focus-within {\n box-shadow: 0 2px 2px 1px rgba(0, 0, 0, 0.06);\n}\n.icure-text-field .icure-input:hover,\n.icure-text-field .input-container:hover {\n border-color: rgba(0, 0, 0, 0.15);\n box-shadow: none;\n}\n.icure-text-field .icure-input:hover:focus, .icure-text-field .icure-input:hover:focus-within,\n.icure-text-field .input-container:hover:focus,\n.icure-text-field .input-container:hover:focus-within {\n box-shadow: 0 2px 2px 1px rgba(0, 0, 0, 0.06);\n}\n.icure-text-field .icure-input .ProseMirror,\n.icure-text-field .input-container .ProseMirror {\n padding: 0;\n font-size: 14px;\n line-height: 1.4em;\n color: #000000;\n}\n.icure-text-field .icure-input .ProseMirror .date,\n.icure-text-field .input-container .ProseMirror .date {\n padding: 1px;\n}\n.icure-text-field .icure-input .ProseMirror .time,\n.icure-text-field .input-container .ProseMirror .time {\n padding: 1px;\n}\n.icure-text-field .icure-input .ProseMirror:focus .focused,\n.icure-text-field .input-container .ProseMirror:focus .focused {\n background-color: rgba(0, 0, 0, 0.05);\n border-radius: 3px;\n border-color: rgba(0, 0, 0, 0.1);\n}\n.icure-text-field .icure-input > svg,\n.icure-text-field .input-container > svg {\n opacity: 0.5;\n}\n.icure-text-field .icure-input > svg path,\n.icure-text-field .input-container > svg path {\n fill: #656565;\n}\n.icure-text-field .icure-input .extra,\n.icure-text-field .input-container .extra {\n height: 20px;\n}\n.icure-text-field .icure-input .extra > .info,\n.icure-text-field .input-container .extra > .info {\n color: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .btn svg path,\n.icure-text-field .input-container .extra .btn svg path {\n fill: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .btn svg path:hover,\n.icure-text-field .input-container .extra .btn svg path:hover {\n fill: #656565;\n opacity: 1;\n}\n\ninput[type=radio] {\n margin-top: -1px;\n vertical-align: middle;\n}\n\n.icure-checkbox:checked {\n accent-color: #06a070;\n}\n\n.icure-button {\n display: flex;\n height: 32px;\n padding: 0 16px;\n background-color: #084B83;\n color: white;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: normal;\n}\n.icure-button:hover {\n background-color: #3D87C5;\n}\n\n.icure-button-group {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.icure-button-group > div {\n display: grid;\n}\n.icure-button-group > div > div {\n display: flex;\n align-items: center;\n}\n.icure-button-group > div > div > .icure-button-group-label {\n z-index: 1;\n line-height: 1.4em;\n cursor: text;\n font-size: 12px;\n top: add-three(1.4em, 1px, 0);\n left: add-two(8px, 1px);\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n color: #084B83;\n display: flex;\n align-items: center;\n height: 28px;\n max-width: 85%;\n min-width: 0;\n}\n.icure-button-group > div > div > .icure-button-group-label > span {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n padding-right: 8px;\n}\n.icure-button-group > .icure-input {\n flex: 1 1 auto;\n width: auto;\n}\n.icure-button-group > .icure-label {\n transform: translate(0, 0) scale(1);\n}\n.icure-button-group > .icure-label.above, .icure-button-group.has-content > .icure-label, .icure-button-group:focus > .icure-label, .icure-button-group:focus-within > .icure-label {\n font-weight: 500;\n height: 1.4em;\n}` \nimport { Field } from '../common'\nimport { generateLabels } from '../common/utils'\nimport { extractSingleValue } from '../icure-form/fields/utils'\nimport { FieldWithOptionsMixin } from '../common/field-with-options'\nimport { FieldMetadata, FieldValue } from '../model'\nimport { Version } from '../../generic'\nimport { icureFormLogging } from '../../index'\n\nexport class IcureButtonGroup extends FieldWithOptionsMixin(Field) {\n\t@property() type: 'radio' | 'checkbox' = 'radio'\n\n\t//override\n\tstatic get styles(): CSSResultGroup[] {\n\t\treturn [baseCss]\n\t}\n\n\tgetValueFromProvider(): [string, string[], Version<FieldValue>[]] | [undefined, undefined, undefined] {\n\t\tconst [id, versions] = extractSingleValue(this.valueProvider?.())\n\t\tif (versions) {\n\t\t\tconst value = versions[0]?.value\n\t\t\tconst valueForLanguage = value?.content?.[this.language()] ?? ''\n\t\t\tconst fromValue = valueForLanguage && valueForLanguage.type === 'compound' && valueForLanguage.value ? Object.keys(valueForLanguage.value) : []\n\t\t\treturn [id, fromValue.concat(value?.codes?.map((c) => c.id)?.filter((id) => !fromValue.includes(id)) ?? []), versions]\n\t\t}\n\t\treturn [undefined, undefined, undefined]\n\t}\n\n\tpublic checkboxChange() {\n\t\tif (this.readonly) return\n\t\tif (this.handleValueChanged) {\n\t\t\tconst [valueId] = this.getValueFromProvider() ?? ''\n\t\t\tconst inputs = Array.from(this.shadowRoot?.querySelectorAll('input') || []).filter((input) => input.checked)\n\t\t\tconst selectedOptions = this.displayedOptions?.filter((option) => inputs.some((i) => i.id === option.id))\n\t\t\tthis.handleValueChanged?.(\n\t\t\t\tthis.label,\n\t\t\t\tthis.language(),\n\t\t\t\t{\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[this.language()]: {\n\t\t\t\t\t\t\ttype: 'compound',\n\t\t\t\t\t\t\tvalue: selectedOptions?.reduce(\n\t\t\t\t\t\t\t\t(acc, c) => ({\n\t\t\t\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t\t\t\t[c.id]: { type: 'boolean', value: true },\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tcodes: selectedOptions,\n\t\t\t\t},\n\t\t\t\tvalueId,\n\t\t\t)\n\t\t}\n\t}\n\n\toverride renderSync({ validationErrors }: { validationErrors: [FieldMetadata, string][] }): TemplateResult {\n\t\tif (!this.visible) {\n\t\t\treturn html``\n\t\t}\n\t\tif (icureFormLogging) {\n\t\t\tconsole.log(`Rendering button group ${this.label}`)\n\t\t}\n\n\t\tconst [id, inputValues, versions] = this.getValueFromProvider()\n\n\t\tconst version = this.selectedRevision ? versions?.find((v) => v.revision === this.selectedRevision) : versions?.[0]\n\n\t\tconst rev = version?.revision\n\t\tconst metadata = id && rev !== undefined ? this.metadataProvider?.(id, versions?.map((v) => v.revision) ?? [])?.[id]?.find((m) => m.revision === rev)?.value : undefined\n\n\t\treturn html`\n\t\t\t<div class=\"icure-text-field icure-button-group\">\n\t\t\t\t${this.displayedLabels && this.displayedOptions?.length\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<div class=\"icure-label-extra\">\n\t\t\t\t\t\t\t\t${generateLabels(\n\t\t\t\t\t\t\t\t\tObject.entries(this.displayedLabels ?? {})\n\t\t\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t\t\t//If we have less than 2 options, we don't need to display the label except if it is different from the first option\n\t\t\t\t\t\t\t\t\t\t\t([, l]) => (this.displayedOptions?.length ?? 0) > 1 || (this.displayedOptions?.length && l !== this.displayedOptions[0].label[this.language()]),\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t.reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {}),\n\t\t\t\t\t\t\t\t\tthis.language(),\n\t\t\t\t\t\t\t\t\tthis.translate ? this.translationProvider : undefined,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t${this.displayMetadata && metadata\n\t\t\t\t\t\t\t\t\t? html` <icure-metadata-buttons-bar\n\t\t\t\t\t\t\t\t\t\t\t.metadata=\"${metadata}\"\n\t\t\t\t\t\t\t\t\t\t\t.revision=\"${rev}\"\n\t\t\t\t\t\t\t\t\t\t\t.versions=\"${versions ?? []}\"\n\t\t\t\t\t\t\t\t\t\t\t.valueId=\"${extractSingleValue(this.valueProvider?.())?.[0]}\"\n\t\t\t\t\t\t\t\t\t\t\t.defaultLanguage=\"${this.defaultLanguage}\"\n\t\t\t\t\t\t\t\t\t\t\t.selectedLanguage=\"${this.selectedLanguage}\"\n\t\t\t\t\t\t\t\t\t\t\t.languages=\"${this.languages}\"\n\t\t\t\t\t\t\t\t\t\t\t.handleMetadataChanged=\"${this.handleMetadataChanged}\"\n\t\t\t\t\t\t\t\t\t\t\t.handleLanguageSelected=\"${(iso: string) => (this.selectedLanguage = iso)}\"\n\t\t\t\t\t\t\t\t\t\t\t.handleRevisionSelected=\"${(rev: string) => (this.selectedRevision = rev)}\"\n\t\t\t\t\t\t\t\t\t\t\t.ownersProvider=\"${this.ownersProvider}\"\n\t\t\t\t\t\t\t\t\t />`\n\t\t\t\t\t\t\t\t\t: nothing}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t `\n\t\t\t\t\t: nothing}\n\t\t\t\t<div style=\"${this.generateStyle()}\">\n\t\t\t\t\t${(this.displayedOptions?.length ? this.displayedOptions : [{ id: this.label, label: {} }]).map((x) => {\n\t\t\t\t\t\tconst text = (x.label ?? {})[this.language()] ?? ''\n\t\t\t\t\t\tif (this.readonly) {\n\t\t\t\t\t\t\treturn html` <div>\n\t\t\t\t\t\t\t\t<input class=\"icure-checkbox\" disabled type=\"${this.type}\" id=\"${x.id}\" name=\"${this.label}\" value=\"${text}\" .checked=\"${inputValues?.includes(x.id)}\" />\n\t\t\t\t\t\t\t\t<label class=\"icure-button-group-label\" for=\"${x.id}\"><span>${text}</span></label>\n\t\t\t\t\t\t\t</div>`\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn html` <div>\n\t\t\t\t\t\t\t<input class=\"icure-checkbox\" type=\"${this.type}\" id=\"${x.id}\" name=\"${this.label}\" value=\"${text}\" .checked=\"${inputValues?.includes(x.id)}\" @change=\"${this.checkboxChange}\" /><label\n\t\t\t\t\t\t\t\tclass=\"icure-button-group-label\"\n\t\t\t\t\t\t\t\tfor=\"${x.id}\"\n\t\t\t\t\t\t\t\t><span>${text}</span></label\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>`\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"error\">${validationErrors.map(([, error]) => html` <div>${this.translationProvider?.(this.language(), error)}</div>`)}</div>\n\t\t\t</div>\n\t\t`\n\t}\n\n\tprivate generateStyle() {\n\t\treturn this.styleOptions?.span\n\t\t\t? `grid-template-columns: repeat(${this.styleOptions?.span}, 1fr);`\n\t\t\t: this.styleOptions?.rows\n\t\t\t? `grid-template-columns: repeat(${Number((this.displayedOptions?.length ?? 0) / (this.styleOptions?.rows as number))}, 1fr);`\n\t\t\t: ''\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tmp/components/icure-button-group/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup, html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\n// @ts-ignore\nimport { css } from 'lit';\nconst baseCss = css`@charset \"UTF-8\";\n.tab-container .tab-bar li {\n display: inline-block;\n padding: 8px 16px;\n cursor: pointer;\n color: #000000;\n font-size: 14px;\n font-weight: 500;\n}\n.tab-container .tab-bar li.active {\n background-color: #656565;\n color: white;\n}\n.tab-container .tab-content .tab {\n display: none;\n}\n.tab-container .tab-content .tab.active {\n display: block;\n}\n\n:host {\n --bg-color-1: #f44336;\n}\n\n.ProseMirror {\n position: relative;\n width: 100%;\n word-wrap: break-word;\n white-space: pre-wrap;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n padding: 6px 8px 2px 8px;\n line-height: 1.2;\n color: #274768;\n font-size: 14px;\n font-weight: 400;\n outline: none;\n}\n.ProseMirror p:last-child,\n.ProseMirror h1:last-child,\n.ProseMirror h2:last-child,\n.ProseMirror h3:last-child,\n.ProseMirror h4:last-child,\n.ProseMirror h5:last-child,\n.ProseMirror h6:last-child {\n margin-bottom: 2px;\n}\n.ProseMirror p {\n margin-bottom: 1em;\n}\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n.ProseMirror li {\n position: relative;\n}\n.ProseMirror ul,\n.ProseMirror ol {\n padding-left: 30px;\n}\n.ProseMirror blockquote {\n padding-left: 1em;\n border-left: 3px solid #eee;\n margin-left: 0;\n margin-right: 0;\n}\n\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n.ProseMirror-hideselection {\n caret-color: transparent;\n}\n\n.ProseMirror-selectednode {\n outline: 2px solid #8cf;\n}\n\n/* Make sure li selections wrap around markers */\nli.ProseMirror-selectednode {\n outline: none;\n}\nli.ProseMirror-selectednode :after {\n content: \"\";\n position: absolute;\n left: -32px;\n right: -2px;\n top: -2px;\n bottom: -2px;\n border: 2px solid #8cf;\n pointer-events: none;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n}\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n/* Add space around the hr to make clicking it easier */\n.ProseMirror-example-setup-style hr {\n padding: 2px 10px;\n border: none;\n margin: 1em 0;\n}\n.ProseMirror-example-setup-style hr:after {\n content: \"\";\n display: block;\n height: 1px;\n background: silver;\n line-height: 2px;\n}\n\n.ProseMirror-example-setup-style img {\n cursor: default;\n}\n\n.ProseMirror-prompt {\n background: white;\n padding: 5px 10px 5px 15px;\n border: 1px solid silver;\n position: fixed;\n border-radius: 3px;\n z-index: 11;\n box-shadow: -0.5px 2px 5px rgba(0, 0, 0, 0.2);\n}\n.ProseMirror-prompt h5 {\n margin: 0;\n font-weight: normal;\n font-size: 100%;\n color: #444;\n}\n.ProseMirror-prompt input[type=text],\n.ProseMirror-prompt textarea {\n background: #eee;\n border: none;\n outline: none;\n}\n.ProseMirror-prompt input[type=text] {\n padding: 0 4px;\n}\n\n.ProseMirror-prompt-close {\n position: absolute;\n left: 2px;\n top: 1px;\n color: #666;\n border: none;\n background: transparent;\n padding: 0;\n}\n.ProseMirror-prompt-close:after {\n content: \"✕\";\n font-size: 12px;\n}\n\n.ProseMirror-invalid {\n background: #ffc;\n border: 1px solid #cc7;\n border-radius: 4px;\n padding: 5px 10px;\n position: absolute;\n min-width: 10em;\n}\n\n.ProseMirror-prompt-buttons {\n margin-top: 5px;\n display: none;\n}\n\n#editor,\n.editor {\n color: rgb(101, 101, 101);\n background-clip: padding-box;\n border-radius: 4px;\n border: 2px solid rgba(0, 0, 0, 0.2);\n padding: 5px 0;\n display: flex;\n align-items: flex-end;\n}\n\n.icure-input {\n background: #edf2f7;\n border-radius: 8px;\n border: none;\n min-height: 28px;\n height: auto;\n display: flex;\n flex-flow: row nowrap;\n align-items: flex-start;\n justify-content: space-between;\n}\n\n#editor {\n background: transparent;\n border: none;\n padding: 0;\n flex-grow: 1;\n display: flex;\n align-items: stretch;\n}\n#editor.tokens-list .ProseMirror, #editor.styled-tokens-list .ProseMirror {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n#editor.tokens-list .ProseMirror li, #editor.styled-tokens-list .ProseMirror li {\n display: flex;\n flex-direction: row;\n border-radius: 8px;\n padding: 2px 4px;\n margin-right: 2px;\n background-color: #dadada;\n border-color: rgba(42, 61, 108, 0.44);\n min-height: 20px;\n}\n#editor.tokens-list .ProseMirror li span, #editor.styled-tokens-list .ProseMirror li span {\n display: inline-block;\n min-height: 18px;\n}\n#editor.tokens-list .ProseMirror li span br, #editor.styled-tokens-list .ProseMirror li span br {\n display: none;\n}\n#editor.items-list .ProseMirror {\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n align-items: flex-start;\n gap: 6px;\n}\n#editor.items-list .ProseMirror li {\n list-style-type: none;\n width: 100%;\n padding-bottom: 4px;\n border-bottom: 1px dotted rgba(128, 128, 128, 0.5098039216);\n}\n#editor.items-list .ProseMirror li:last-child {\n border-bottom: none;\n}\n\n#content {\n position: relative;\n padding: 0;\n}\n\n* {\n font-family: \"Roboto\", Helvetica, sans-serif;\n}\n\np {\n margin-top: 0;\n}\n\nh3 {\n color: #274768;\n margin-top: 0;\n}\n\n.icure-input-metadata-container {\n display: flex;\n}\n.icure-input-metadata-container .icure-metadata-container {\n display: flex;\n flex-grow: 1;\n padding: 0 4px;\n border: 1px solid #DDE3E7;\n border-left: none;\n border-radius: 0 6px 6px 0;\n outline: 0;\n box-sizing: border-box;\n}\n.icure-input-metadata-container .icure-metadata-container__validationError {\n border-color: red;\n}\n\n.extra {\n min-width: 20px;\n width: auto;\n height: 20px;\n transition: all 0.24s cubic-bezier(0.42, 0.01, 1, 0.62);\n}\n.extra:hover .info {\n display: none;\n}\n.extra:hover .buttons-container .menu-container .btn {\n animation: slideIn 0.24s ease-in forwards;\n pointer-events: none;\n display: unset !important;\n}\n.extra.forced .info, .extra.forced .extra .info.hidden {\n opacity: 0 !important;\n z-index: 0 !important;\n display: none;\n}\n.extra.forced .buttons-container .btn {\n opacity: 1 !important;\n display: unset !important;\n}\n.extra.forced:hover .buttons-container .menu-container .btn {\n animation: none;\n pointer-events: all;\n}\n.extra--metadataButtonsBar {\n height: 100%;\n display: flex;\n align-items: center;\n padding: 0 4px;\n}\n.extra .info {\n color: #809ab4;\n font-size: 15px;\n width: 100%;\n height: auto;\n overflow: hidden;\n pointer-events: none;\n text-align: center;\n}\n.extra .info span {\n font-weight: 700;\n}\n.extra .info.hidden {\n display: none;\n}\n.extra .buttons-container {\n display: flex;\n height: 20px;\n width: auto;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-end;\n transition: all 0.24s cubic-bezier(0.14, 0.69, 0.87, 0.54);\n z-index: 1000;\n}\n.extra .buttons-container .btn {\n border: none;\n background: transparent;\n position: relative;\n top: 0;\n display: none;\n opacity: 0;\n cursor: pointer;\n height: 20px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n.extra .buttons-container .btn svg {\n width: 15px;\n height: 15px;\n}\n.extra .buttons-container .btn svg path {\n fill: #809ab4;\n}\n.extra .buttons-container .btn.forced {\n opacity: 1 !important;\n display: unset !important;\n}\n.extra .buttons-container .btn.forced svg path {\n fill: crimson !important;\n}\n.extra .buttons-container .btn:focus, .extra .buttons-container .btn:focus-within {\n border: none;\n outline: none;\n}\n.extra .buttons-container .btn:hover svg path {\n fill: #274768;\n}\n.extra .buttons-container .menu-container .btn:hover::before {\n content: \"\";\n display: block;\n border-color: #274768 transparent transparent transparent;\n border-style: solid;\n border-width: 4px;\n position: absolute;\n top: -6px;\n}\n.extra .buttons-container .menu-container .btn:hover::after {\n content: attr(data-content);\n position: absolute;\n top: -21px;\n height: 16px;\n left: 50%;\n transform: translateX(-50%);\n border-radius: 8px;\n background: #274768;\n color: white;\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n text-transform: capitalize;\n white-space: nowrap;\n padding: 0 12px;\n font-size: 12px;\n line-height: 0;\n}\n.extra .buttons-container .menu-container:last-child .btn {\n margin-right: 0;\n}\n\n@keyframes slideIn {\n 0% {\n top: 0;\n opacity: 0;\n pointer-events: none;\n }\n 100% {\n top: 0;\n opacity: 1;\n pointer-events: all;\n }\n}\n.menu-container {\n display: flex;\n align-items: center;\n height: fit-content;\n}\n.menu-container .item {\n height: 30px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n font-size: 14px;\n color: #274768;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n box-shadow: none;\n border: none;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n}\n.menu-container .item.existing {\n background-color: #BFE8EA;\n}\n.menu-container .item.selected {\n color: white;\n background-color: #084B83;\n}\n.menu-container .item:hover {\n background: #DCE7F2;\n color: #274768;\n font-weight: 500;\n border-radius: 4px;\n}\n\n.value-date-menu {\n width: unset !important;\n}\n\n.menu {\n display: flex;\n flex-direction: column;\n gap: 2px;\n position: absolute;\n top: 32px;\n right: -12px;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n border-radius: 8px;\n padding: 8px;\n width: 220px;\n min-height: 120px;\n max-height: 320px;\n overflow-y: scroll;\n}\n.menu .input-container {\n background: #edf2f7;\n border-radius: 4px;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n height: 32px;\n margin-bottom: 4px;\n padding: 0 4px;\n}\n.menu .input-container:hover {\n box-shadow: 0 0 0 3px rgba(40, 151, 255, 0.2);\n}\n.menu .input-container:focus-within {\n box-shadow: 0 0 0 3px rgba(40, 151, 255, 0.2), 0 0 0 1px rgb(40, 151, 255);\n}\n.menu .input-container input {\n background: transparent;\n border: none;\n flex-grow: 1;\n height: 100%;\n}\n.menu .input-container input:focus {\n background: transparent;\n border: none;\n outline: none;\n}\n\n.menu-trigger:focus .menu {\n display: flex;\n}\n\nspan {\n position: relative;\n z-index: 1;\n}\nspan.date {\n margin-right: 1px;\n}\nspan.time {\n margin-left: 1px;\n}\nspan.measure {\n display: inline-block;\n margin-right: 1px;\n}\nspan.unit {\n margin-left: 1px;\n display: inline-block;\n}\nspan[data-content]:hover::after {\n position: absolute;\n content: attr(data-content);\n background: #274768;\n color: #ffffff;\n font-size: 9px;\n line-height: 12px;\n top: -12px;\n left: 0px;\n padding: 0px 2px;\n}\nspan[data-content]::before {\n position: absolute;\n content: \"\";\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n opacity: 0.3;\n}\n\n.masked {\n display: none;\n}\n\n.companion {\n position: absolute;\n width: 15px;\n background-color: hsl(194, 100%, 50%);\n color: white;\n z-index: 20;\n padding: 0;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 0 2px 2px 0;\n}\n.companion:hover {\n font-weight: 700;\n background: hsl(202, 100%, 50%);\n}\n\n*::selection {\n background-color: hsla(194, 100%, 50%, 0.2);\n}\n\n.suggestion-palette {\n position: absolute;\n z-index: 20;\n max-width: 380px;\n font-size: 11px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 4px;\n border: none;\n border-radius: 8px;\n background: white;\n box-shadow: 0 1.1px 1.1px rgba(0, 0, 0, 0.022), 0 2.7px 2.7px rgba(0, 0, 0, 0.032), 0 5px 5px rgba(0, 0, 0, 0.04), 0 8.9px 8.9px rgba(0, 0, 0, 0.048), 0 16.7px 16.7px rgba(0, 0, 0, 0.058), 0 40px 40px rgba(0, 0, 0, 0.08);\n}\n.suggestion-palette ul {\n white-space: nowrap;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.suggestion-palette ul li:not(:first-child) svg.tab-icn,\n.suggestion-palette ul li:not(.focused) svg.return-icn, .suggestion-palette ul.focused li:first-child svg.tab-icn {\n height: 0;\n width: 0;\n transform: scale(0);\n opacity: 0;\n}\n.suggestion-palette ul li {\n padding: 0 8px;\n font-size: 11px;\n height: 20px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 4px;\n color: rgb(39, 71, 104);\n}\n.suggestion-palette ul li.focused {\n background-color: rgb(237, 242, 247);\n}\n.suggestion-palette ul li.focused svg.return-icn {\n animation: growIn 0.24s ease-in forwards;\n}\n.suggestion-palette ul li svg {\n height: 12px;\n width: 12px;\n border-radius: 4px;\n transform-origin: center center;\n}\n.suggestion-palette ul li svg path {\n fill: rgb(128, 154, 180);\n}\n\n@keyframes growIn {\n 0% {\n transform: scale(0.5);\n }\n 90% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n }\n}\nspan.code-count-1::after,\nspan.code-count-1::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n}\n\nspan.code-count-2::after,\nspan.code-count-2::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n /* STRIPES */\n /*background: repeating-linear-gradient(*/\n /*\t45deg,*/\n /*\tvar(--bg-code-color-1),*/\n /*\tvar(--bg-code-color-1) 10px,*/\n /*\tvar(--bg-code-color-2) 10px,*/\n /*\tvar(--bg-code-color-2) 20px*/\n /*);*/\n /* PAS STRIPES */\n background: linear-gradient(90deg, var(--bg-code-color-1) 0%, var(--bg-code-color-2) 100%);\n}\n\nspan.code-count-3::after,\nspan.code-count-3::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n /* STRIPES */\n background: repeating-linear-gradient(45deg, var(--bg-code-color-1), var(--bg-code-color-1) 10px, var(--bg-code-color-2) 10px, var(--bg-code-color-2) 20px);\n /* PAS STRIPES */\n /* background: linear-gradient(90deg, var(--bg-code-color-1) 0%, var(--bg-code-color-2) 100%);*/\n}\n\n.selected-option {\n padding: 2px;\n margin-right: 5px;\n}\n\n.options {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n width: auto;\n min-width: 100%;\n overflow-y: auto;\n padding: 2px;\n border-radius: 6px;\n}\n.options--subformView {\n top: 46px;\n min-width: unset;\n left: unset;\n right: 0;\n}\n\n.date-picker {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n width: 260px;\n overflow-y: auto;\n max-height: 280px;\n}\n\napp-date-picker {\n --app-primary: #084B83;\n --app-hover: #5b7da2;\n --app-selected-hover: #5b7da2;\n}\n\n.option {\n height: 28px;\n min-height: 28px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n font-size: 14px;\n color: #545454;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n box-shadow: none;\n border: none;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n padding: 4px 8px;\n -webkit-user-select: none; /* Safari */\n -ms-user-select: none; /* IE 10 and IE 11 */\n user-select: none; /* Standard syntax */\n cursor: pointer;\n}\n.option:hover {\n color: #656565;\n background-color: #ededed;\n}\n\n.select-arrow {\n border: none;\n background: 0px 0px;\n position: relative;\n top: 0px;\n opacity: 0.5;\n cursor: pointer;\n height: 20px;\n width: 10px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0px;\n}\n\n.hidden {\n display: none;\n}\n\n.container {\n position: relative;\n}\n\n.group {\n align-items: end;\n display: grid;\n}\n\n.subform {\n display: grid;\n position: relative;\n padding: 8px;\n border-radius: 6px;\n background-color: #e7f0fd;\n gap: 12px;\n}\n.subform__heading {\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: auto;\n}\n.subform__heading__title {\n padding: 0;\n margin: 0;\n}\n.subform__addBtn, .subform__removeBtn {\n cursor: pointer;\n background-color: #084B83;\n color: white;\n height: 32px;\n padding: 0 16px;\n border-radius: 6px;\n border: none;\n outline: none;\n}\n.subform__addBtn:hover, .subform__removeBtn:hover {\n background-color: #3D87C5;\n}\n.subform__removeBtn {\n justify-self: end;\n border: 1px solid #DDE3E7;\n background-color: #FCFCFD;\n color: #084B83;\n}\n.subform__removeBtn:hover {\n background-color: #F2F2F2;\n}\n.subform__child {\n display: grid;\n grid-template-rows: auto;\n gap: 8px;\n padding: 8px;\n border-radius: 6px;\n background: white;\n border: 1px solid #3D87C5;\n}\n.subform__child__title {\n padding: 12px !important;\n border-radius: 6px;\n margin: 0;\n background-color: #BFE8EA;\n}\n.subform__child .subform {\n background: unset;\n margin: 0;\n padding: 0;\n}\n\n.icure-form {\n background-color: rgba(0, 0, 0, 0);\n display: grid;\n gap: 16px 6px;\n grid-template-columns: repeat(24, 1fr);\n}\n.icure-form hr {\n display: block;\n margin-top: 20px;\n border-top: 1px solid rgba(8, 75, 131, 0.13);\n margin-bottom: 20px;\n}\n.icure-form h2 {\n font-size: add-two(12px, 0, 1.2);\n font-weight: 700;\n color: #084B83;\n padding: 2px;\n}\n.icure-form h3 {\n font-size: add-two(12px, 0, 1.1);\n font-weight: 500;\n color: #084B83;\n padding: 6px;\n}\n.icure-form .group.bordered {\n background: #f6f6f6;\n border-radius: 12px;\n}\n\n.icure-form-field {\n display: grid;\n align-items: flex-start;\n}\n\n.error {\n color: red;\n font-size: 12px;\n margin-top: 4px;\n}\n\n.icure-text-field .icure-label-extra, .icure-button-group .icure-label-extra {\n display: flex;\n width: 100%;\n gap: 12px;\n}\n.icure-text-field .icure-label, .icure-button-group .icure-label {\n z-index: 1;\n pointer-events: none;\n line-height: 1.4em;\n cursor: text;\n font-size: 12px;\n left: add-two(8px, 1px);\n color: #084B83;\n align-items: center;\n text-wrap: auto;\n min-height: 28px;\n max-width: 85%;\n min-width: 0;\n}\n.icure-text-field .icure-label.float, .icure-button-group .icure-label.float {\n display: flex;\n overflow: hidden;\n}\n\n.icure-text-field {\n position: relative;\n width: 100%;\n}\n.icure-text-field > .icure-label {\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n}\n.icure-text-field > .icure-input {\n flex: 1 1 auto;\n width: auto;\n}\n.icure-text-field > .icure-label.side {\n position: relative;\n}\n.icure-text-field > .icure-label.side.left {\n order: -1;\n margin-right: 1em;\n}\n.icure-text-field > .icure-label.side.right {\n order: 1;\n margin-left: 1em;\n}\n.icure-text-field .icure-input,\n.icure-text-field .input-container {\n padding: 8px;\n width: 100%;\n box-sizing: border-box;\n border-width: 1px;\n border-style: solid;\n border-color: #DDE3E7;\n border-radius: 2px;\n outline: 0;\n font: inherit;\n font-size: 14px;\n line-height: 1.4em;\n display: flex;\n align-items: center;\n vertical-align: middle;\n position: relative;\n -webkit-appearance: none;\n background-color: #ffffff;\n color: #000000;\n}\n.icure-text-field .icure-input .reset-button,\n.icure-text-field .input-container .reset-button {\n position: absolute;\n right: 0;\n border: none;\n background: transparent;\n top: 0;\n opacity: 0.5;\n cursor: pointer;\n height: 20px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n.icure-text-field .icure-input .reset-button svg,\n.icure-text-field .input-container .reset-button svg {\n width: 15px;\n height: 15px;\n}\n.icure-text-field .icure-input__validationError,\n.icure-text-field .input-container__validationError {\n border-color: red;\n}\n.icure-text-field .icure-input__withMetadata,\n.icure-text-field .input-container__withMetadata {\n border-radius: 6px 0 0 6px;\n}\n.icure-text-field .icure-input:focus, .icure-text-field .icure-input:focus-within,\n.icure-text-field .input-container:focus,\n.icure-text-field .input-container:focus-within {\n box-shadow: 0 2px 2px 1px rgba(0, 0, 0, 0.06);\n}\n.icure-text-field .icure-input:hover,\n.icure-text-field .input-container:hover {\n border-color: rgba(0, 0, 0, 0.15);\n box-shadow: none;\n}\n.icure-text-field .icure-input:hover:focus, .icure-text-field .icure-input:hover:focus-within,\n.icure-text-field .input-container:hover:focus,\n.icure-text-field .input-container:hover:focus-within {\n box-shadow: 0 2px 2px 1px rgba(0, 0, 0, 0.06);\n}\n.icure-text-field .icure-input .ProseMirror,\n.icure-text-field .input-container .ProseMirror {\n padding: 0;\n font-size: 14px;\n line-height: 1.4em;\n color: #000000;\n}\n.icure-text-field .icure-input .ProseMirror .date,\n.icure-text-field .input-container .ProseMirror .date {\n padding: 1px;\n}\n.icure-text-field .icure-input .ProseMirror .time,\n.icure-text-field .input-container .ProseMirror .time {\n padding: 1px;\n}\n.icure-text-field .icure-input .ProseMirror:focus .focused,\n.icure-text-field .input-container .ProseMirror:focus .focused {\n background-color: rgba(0, 0, 0, 0.05);\n border-radius: 3px;\n border-color: rgba(0, 0, 0, 0.1);\n}\n.icure-text-field .icure-input > svg,\n.icure-text-field .input-container > svg {\n opacity: 0.5;\n}\n.icure-text-field .icure-input > svg path,\n.icure-text-field .input-container > svg path {\n fill: #656565;\n}\n.icure-text-field .icure-input .extra,\n.icure-text-field .input-container .extra {\n height: 20px;\n}\n.icure-text-field .icure-input .extra > .info,\n.icure-text-field .input-container .extra > .info {\n color: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .btn svg path,\n.icure-text-field .input-container .extra .btn svg path {\n fill: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .btn svg path:hover,\n.icure-text-field .input-container .extra .btn svg path:hover {\n fill: #656565;\n opacity: 1;\n}\n\ninput[type=radio] {\n margin-top: -1px;\n vertical-align: middle;\n}\n\n.icure-checkbox:checked {\n accent-color: #06a070;\n}\n\n.icure-button {\n display: flex;\n height: 32px;\n padding: 0 16px;\n background-color: #084B83;\n color: white;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: normal;\n}\n.icure-button:hover {\n background-color: #3D87C5;\n}\n\n.icure-button-group {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.icure-button-group > div {\n display: grid;\n}\n.icure-button-group > div > div {\n display: flex;\n align-items: center;\n}\n.icure-button-group > div > div > .icure-button-group-label {\n z-index: 1;\n line-height: 1.4em;\n cursor: text;\n font-size: 12px;\n top: add-three(1.4em, 1px, 0);\n left: add-two(8px, 1px);\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n color: #084B83;\n display: flex;\n align-items: center;\n height: 28px;\n max-width: 85%;\n min-width: 0;\n}\n.icure-button-group > div > div > .icure-button-group-label > span {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n padding-right: 8px;\n}\n.icure-button-group > .icure-input {\n flex: 1 1 auto;\n width: auto;\n}\n.icure-button-group > .icure-label {\n transform: translate(0, 0) scale(1);\n}\n.icure-button-group > .icure-label.above, .icure-button-group.has-content > .icure-label, .icure-button-group:focus > .icure-label, .icure-button-group:focus-within > .icure-label {\n font-weight: 500;\n height: 1.4em;\n}` \nimport { Field } from '../common'\nimport { generateLabels } from '../common/utils'\nimport { extractSingleValue } from '../icure-form/fields/utils'\nimport { FieldWithOptionsMixin } from '../common/field-with-options'\nimport { FieldMetadata, FieldValue } from '../model'\nimport { Version } from '../../generic'\nimport { icureFormLogging } from '../../index'\n\nexport class IcureButtonGroup extends FieldWithOptionsMixin(Field) {\n\t@property() type: 'radio' | 'checkbox' = 'radio'\n\n\t//override\n\tstatic get styles(): CSSResultGroup[] {\n\t\treturn [baseCss]\n\t}\n\n\tgetValueFromProvider(): [string, string[], Version<FieldValue>[]] | [undefined, undefined, undefined] {\n\t\tconst [id, versions] = extractSingleValue(this.valueProvider?.())\n\t\tif (versions) {\n\t\t\tconst value = versions[0]?.value\n\t\t\tconst valueForLanguage = value?.content?.[this.language()] ?? ''\n\t\t\tconst fromValue = valueForLanguage && valueForLanguage.type === 'compound' && valueForLanguage.value ? Object.keys(valueForLanguage.value) : []\n\t\t\treturn [id, fromValue.concat(value?.codes?.map((c) => c.id)?.filter((id) => !fromValue.includes(id)) ?? []), versions]\n\t\t}\n\t\treturn [undefined, undefined, undefined]\n\t}\n\n\tpublic checkboxChange() {\n\t\tif (this.readonly) return\n\t\tif (this.handleValueChanged) {\n\t\t\tconst [valueId] = this.getValueFromProvider() ?? ''\n\t\t\tconst inputs = Array.from(this.shadowRoot?.querySelectorAll('input') || []).filter((input) => input.checked)\n\t\t\tconst selectedOptions = this.displayedOptions?.filter((option) => inputs.some((i) => i.id === option.id))\n\t\t\tthis.handleValueChanged?.(\n\t\t\t\tthis.label,\n\t\t\t\tthis.language(),\n\t\t\t\t{\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[this.language()]: {\n\t\t\t\t\t\t\ttype: 'compound',\n\t\t\t\t\t\t\tvalue: selectedOptions?.reduce(\n\t\t\t\t\t\t\t\t(acc, c) => ({\n\t\t\t\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t\t\t\t[c.id]: { type: 'boolean', value: true },\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tcodes: selectedOptions,\n\t\t\t\t},\n\t\t\t\tvalueId,\n\t\t\t)\n\t\t}\n\t}\n\n\toverride renderSync({ validationErrors }: { validationErrors: [FieldMetadata, string][] }): TemplateResult {\n\t\tif (!this.visible) {\n\t\t\treturn html``\n\t\t}\n\t\tif (icureFormLogging) {\n\t\t\tconsole.log(`Rendering button group ${this.label}`)\n\t\t}\n\n\t\tconst [id, inputValues, versions] = this.getValueFromProvider()\n\n\t\tconst version = this.selectedRevision ? versions?.find((v) => v.revision === this.selectedRevision) : versions?.[0]\n\n\t\tconst rev = version?.revision\n\t\tconst metadata = id && rev !== undefined ? this.metadataProvider?.(id, versions?.map((v) => v.revision) ?? [])?.[id]?.find((m) => m.revision === rev)?.value : undefined\n\n\t\treturn html`\n\t\t\t<div class=\"icure-text-field icure-button-group\">\n\t\t\t\t${this.displayedLabels && this.displayedOptions?.length\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<div class=\"icure-label-extra\">\n\t\t\t\t\t\t\t\t${generateLabels(\n\t\t\t\t\t\t\t\t\tObject.entries(this.displayedLabels ?? {})\n\t\t\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t\t\t//If we have less than 2 options, we don't need to display the label except if it is different from the first option\n\t\t\t\t\t\t\t\t\t\t\t([, l]) =>\n\t\t\t\t\t\t\t\t\t\t\t\t(this.displayedOptions?.length ?? 0) > 1 || (this.displayedOptions?.length && l !== (this.displayedOptions[0].label?.[this.language()] ?? this.displayedOptions[0].id)),\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t.reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {}),\n\t\t\t\t\t\t\t\t\tthis.language(),\n\t\t\t\t\t\t\t\t\tthis.translate ? this.translationProvider : undefined,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t${this.displayMetadata && metadata\n\t\t\t\t\t\t\t\t\t? html` <icure-metadata-buttons-bar\n\t\t\t\t\t\t\t\t\t\t\t.metadata=\"${metadata}\"\n\t\t\t\t\t\t\t\t\t\t\t.revision=\"${rev}\"\n\t\t\t\t\t\t\t\t\t\t\t.versions=\"${versions ?? []}\"\n\t\t\t\t\t\t\t\t\t\t\t.valueId=\"${extractSingleValue(this.valueProvider?.())?.[0]}\"\n\t\t\t\t\t\t\t\t\t\t\t.defaultLanguage=\"${this.defaultLanguage}\"\n\t\t\t\t\t\t\t\t\t\t\t.selectedLanguage=\"${this.selectedLanguage}\"\n\t\t\t\t\t\t\t\t\t\t\t.languages=\"${this.languages}\"\n\t\t\t\t\t\t\t\t\t\t\t.handleMetadataChanged=\"${this.handleMetadataChanged}\"\n\t\t\t\t\t\t\t\t\t\t\t.handleLanguageSelected=\"${(iso: string) => (this.selectedLanguage = iso)}\"\n\t\t\t\t\t\t\t\t\t\t\t.handleRevisionSelected=\"${(rev: string) => (this.selectedRevision = rev)}\"\n\t\t\t\t\t\t\t\t\t\t\t.ownersProvider=\"${this.ownersProvider}\"\n\t\t\t\t\t\t\t\t\t />`\n\t\t\t\t\t\t\t\t\t: nothing}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t `\n\t\t\t\t\t: nothing}\n\t\t\t\t<div style=\"${this.generateStyle()}\">\n\t\t\t\t\t${(this.displayedOptions?.length ? this.displayedOptions : [{ id: this.label, label: {} }]).map((x) => {\n\t\t\t\t\t\tconst text = (x.label ?? {})[this.language()] ?? ''\n\t\t\t\t\t\tif (this.readonly) {\n\t\t\t\t\t\t\treturn html` <div>\n\t\t\t\t\t\t\t\t<input class=\"icure-checkbox\" disabled type=\"${this.type}\" id=\"${x.id}\" name=\"${this.label}\" value=\"${text}\" .checked=\"${inputValues?.includes(x.id)}\" />\n\t\t\t\t\t\t\t\t<label class=\"icure-button-group-label\" for=\"${x.id}\"><span>${text}</span></label>\n\t\t\t\t\t\t\t</div>`\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn html` <div>\n\t\t\t\t\t\t\t<input class=\"icure-checkbox\" type=\"${this.type}\" id=\"${x.id}\" name=\"${this.label}\" value=\"${text}\" .checked=\"${inputValues?.includes(x.id)}\" @change=\"${this.checkboxChange}\" /><label\n\t\t\t\t\t\t\t\tclass=\"icure-button-group-label\"\n\t\t\t\t\t\t\t\tfor=\"${x.id}\"\n\t\t\t\t\t\t\t\t><span>${text}</span></label\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>`\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"error\">${validationErrors.map(([, error]) => html` <div>${this.translationProvider?.(this.language(), error)}</div>`)}</div>\n\t\t\t</div>\n\t\t`\n\t}\n\n\tprivate generateStyle() {\n\t\treturn this.styleOptions?.span\n\t\t\t? `grid-template-columns: repeat(${this.styleOptions?.span}, 1fr);`\n\t\t\t: this.styleOptions?.rows\n\t\t\t? `grid-template-columns: repeat(${Number((this.displayedOptions?.length ?? 0) / (this.styleOptions?.rows as number))}, 1fr);`\n\t\t\t: ''\n\t}\n}\n"]}
|
|
@@ -21,7 +21,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
21
21
|
exports.CheckBox = void 0;
|
|
22
22
|
const lit_1 = require("lit");
|
|
23
23
|
const common_1 = require("../../../common");
|
|
24
|
-
const utils_1 = require("../utils");
|
|
25
24
|
const decorators_js_1 = require("lit/decorators.js");
|
|
26
25
|
class CheckBox extends common_1.Field {
|
|
27
26
|
constructor() {
|
|
@@ -45,11 +44,11 @@ class CheckBox extends common_1.Field {
|
|
|
45
44
|
.ownersProvider=${this.ownersProvider}
|
|
46
45
|
.optionsProvider=${this.optionsProvider}
|
|
47
46
|
.translationProvider=${this.translationProvider}
|
|
48
|
-
.valueProvider=${
|
|
47
|
+
.valueProvider=${this.singleValueProvider(id)}
|
|
49
48
|
.validationErrorsProvider=${this.validationErrorsProvider}
|
|
50
49
|
.metadataProvider=${this.metadataProvider}
|
|
51
|
-
.handleValueChanged=${
|
|
52
|
-
.handleMetadataChanged=${
|
|
50
|
+
.handleValueChanged=${this.handleSingleValueChanged(id)}
|
|
51
|
+
.handleMetadataChanged=${this.handleSingleMetadataChanged(id)}
|
|
53
52
|
.styleOptions=${this.styleOptions}
|
|
54
53
|
></icure-button-group>
|
|
55
54
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../../../tmp/components/icure-form/fields/button-group/checkbox.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,6BAA0C;AAC1C,4CAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../../../tmp/components/icure-form/fields/button-group/checkbox.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,6BAA0C;AAC1C,4CAAuC;AACvC,qDAA4C;AAG5C,MAAa,QAAS,SAAQ,cAAK;IAAnC;;QACa,oBAAe,GAA+D,GAAS,EAAE,gDAAC,OAAA,EAAE,CAAA,GAAA,CAAA;IA2BzG,CAAC;IA1BS,UAAU;;QAClB,MAAM,eAAe,GAAG,MAAA,IAAI,CAAC,aAAa,oDAAI,CAAA;QAC9C,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACvH,OAAO,IAAA,UAAI,EAAA;;;kBAGI,IAAI,CAAC,QAAQ;yBACN,IAAI,CAAC,eAAe;yBACpB,IAAI,CAAC,eAAe;cAC/B,IAAI,CAAC,KAAK;yBACC,IAAI,CAAC,eAAe;mBAC1B,IAAI,CAAC,SAAS;mBACd,IAAI,CAAC,SAAS;uBACV,IAAI,CAAC,cAAc;wBAClB,IAAI,CAAC,eAAe;4BAChB,IAAI,CAAC,mBAAmB;sBAC9B,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;iCACjB,IAAI,CAAC,wBAAwB;yBACrC,IAAI,CAAC,gBAAgB;2BACnB,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;8BAC9B,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC;qBAC7C,IAAI,CAAC,YAAY;;IAElC,CAAA;QACF,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AA5BD,4BA4BC;AA3BY;IAAX,IAAA,wBAAQ,GAAE;;iDAA6F","sourcesContent":["import { html, TemplateResult } from 'lit'\nimport { Field } from '../../../common'\nimport { property } from 'lit/decorators.js'\nimport { Code } from '../../../model'\n\nexport class CheckBox extends Field {\n\t@property() optionsProvider: (language: string, searchTerm?: string) => Promise<Code[]> = async () => []\n\toverride renderSync(): TemplateResult[] {\n\t\tconst versionedValues = this.valueProvider?.()\n\t\treturn (versionedValues && Object.keys(versionedValues).length ? Object.keys(versionedValues) : [undefined]).map((id) => {\n\t\t\treturn html`\n\t\t\t\t<icure-button-group\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t.readonly=\"${this.readonly}\"\n\t\t\t\t\t.displayMetadata=\"${this.displayMetadata}\"\n\t\t\t\t\t.displayedLabels=\"${this.displayedLabels}\"\n\t\t\t\t\tlabel=\"${this.label}\"\n\t\t\t\t\t.defaultLanguage=\"${this.defaultLanguage}\"\n\t\t\t\t\t.languages=\"${this.languages}\"\n\t\t\t\t\t.translate=\"${this.translate}\"\n\t\t\t\t\t.ownersProvider=${this.ownersProvider}\n\t\t\t\t\t.optionsProvider=${this.optionsProvider}\n\t\t\t\t\t.translationProvider=${this.translationProvider}\n\t\t\t\t\t.valueProvider=${this.singleValueProvider(id)}\n\t\t\t\t\t.validationErrorsProvider=${this.validationErrorsProvider}\n\t\t\t\t\t.metadataProvider=${this.metadataProvider}\n\t\t\t\t\t.handleValueChanged=${this.handleSingleValueChanged(id)}\n\t\t\t\t\t.handleMetadataChanged=${this.handleSingleMetadataChanged(id)}\n\t\t\t\t\t.styleOptions=${this.styleOptions}\n\t\t\t\t></icure-button-group>\n\t\t\t`\n\t\t})\n\t}\n}\n"]}
|
|
@@ -21,7 +21,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
21
21
|
exports.RadioButton = void 0;
|
|
22
22
|
const lit_1 = require("lit");
|
|
23
23
|
const common_1 = require("../../../common");
|
|
24
|
-
const utils_1 = require("../utils");
|
|
25
24
|
const decorators_js_1 = require("lit/decorators.js");
|
|
26
25
|
class RadioButton extends common_1.Field {
|
|
27
26
|
constructor() {
|
|
@@ -45,11 +44,11 @@ class RadioButton extends common_1.Field {
|
|
|
45
44
|
.optionsProvider=${this.optionsProvider}
|
|
46
45
|
.ownersProvider=${this.ownersProvider}
|
|
47
46
|
.translationProvider=${this.translationProvider}
|
|
48
|
-
.valueProvider=${
|
|
47
|
+
.valueProvider=${this.singleValueProvider(id)}
|
|
49
48
|
.validationErrorsProvider=${this.validationErrorsProvider}
|
|
50
49
|
.metadataProvider=${this.metadataProvider}
|
|
51
|
-
.handleValueChanged=${
|
|
52
|
-
.handleMetadataChanged=${
|
|
50
|
+
.handleValueChanged=${this.handleSingleValueChanged(id)}
|
|
51
|
+
.handleMetadataChanged=${this.handleSingleMetadataChanged(id)}
|
|
53
52
|
.styleOptions=${this.styleOptions}
|
|
54
53
|
></icure-button-group>
|
|
55
54
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-button.js","sourceRoot":"","sources":["../../../../../tmp/components/icure-form/fields/button-group/radio-button.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,6BAA0C;AAC1C,4CAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"radio-button.js","sourceRoot":"","sources":["../../../../../tmp/components/icure-form/fields/button-group/radio-button.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,6BAA0C;AAC1C,4CAAuC;AACvC,qDAA4C;AAG5C,MAAa,WAAY,SAAQ,cAAK;IAAtC;;QACa,oBAAe,GAA+D,GAAS,EAAE,gDAAC,OAAA,EAAE,CAAA,GAAA,CAAA;IA2BzG,CAAC;IA1BS,UAAU;;QAClB,MAAM,eAAe,GAAG,MAAA,IAAI,CAAC,aAAa,oDAAI,CAAA;QAC9C,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACvH,OAAO,IAAA,UAAI,EAAA;;kBAEI,IAAI,CAAC,QAAQ;yBACN,IAAI,CAAC,eAAe;;yBAEpB,IAAI,CAAC,eAAe;cAC/B,IAAI,CAAC,KAAK;yBACC,IAAI,CAAC,eAAe;mBAC1B,IAAI,CAAC,SAAS;mBACd,IAAI,CAAC,SAAS;wBACT,IAAI,CAAC,eAAe;uBACrB,IAAI,CAAC,cAAc;4BACd,IAAI,CAAC,mBAAmB;sBAC9B,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;iCACjB,IAAI,CAAC,wBAAwB;yBACrC,IAAI,CAAC,gBAAgB;2BACnB,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;8BAC9B,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC;qBAC7C,IAAI,CAAC,YAAY;;IAElC,CAAA;QACF,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AA5BD,kCA4BC;AA3BY;IAAX,IAAA,wBAAQ,GAAE;;oDAA6F","sourcesContent":["import { html, TemplateResult } from 'lit'\nimport { Field } from '../../../common'\nimport { property } from 'lit/decorators.js'\nimport { Code } from '../../../model'\n\nexport class RadioButton extends Field {\n\t@property() optionsProvider: (language: string, searchTerm?: string) => Promise<Code[]> = async () => []\n\toverride renderSync(): TemplateResult[] {\n\t\tconst versionedValues = this.valueProvider?.()\n\t\treturn (versionedValues && Object.keys(versionedValues).length ? Object.keys(versionedValues) : [undefined]).map((id) => {\n\t\t\treturn html`\n\t\t\t\t<icure-button-group\n\t\t\t\t\t.readonly=\"${this.readonly}\"\n\t\t\t\t\t.displayMetadata=\"${this.displayMetadata}\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t.displayedLabels=\"${this.displayedLabels}\"\n\t\t\t\t\tlabel=\"${this.label}\"\n\t\t\t\t\t.defaultLanguage=\"${this.defaultLanguage}\"\n\t\t\t\t\t.languages=\"${this.languages}\"\n\t\t\t\t\t.translate=\"${this.translate}\"\n\t\t\t\t\t.optionsProvider=${this.optionsProvider}\n\t\t\t\t\t.ownersProvider=${this.ownersProvider}\n\t\t\t\t\t.translationProvider=${this.translationProvider}\n\t\t\t\t\t.valueProvider=${this.singleValueProvider(id)}\n\t\t\t\t\t.validationErrorsProvider=${this.validationErrorsProvider}\n\t\t\t\t\t.metadataProvider=${this.metadataProvider}\n\t\t\t\t\t.handleValueChanged=${this.handleSingleValueChanged(id)}\n\t\t\t\t\t.handleMetadataChanged=${this.handleSingleMetadataChanged(id)}\n\t\t\t\t\t.styleOptions=${this.styleOptions}\n\t\t\t\t></icure-button-group>\n\t\t\t`\n\t\t})\n\t}\n}\n"]}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DatePicker = void 0;
|
|
4
4
|
const lit_1 = require("lit");
|
|
5
|
-
const utils_1 = require("../utils");
|
|
6
5
|
const common_1 = require("../../../common");
|
|
7
6
|
class DatePicker extends common_1.Field {
|
|
8
7
|
renderSync() {
|
|
@@ -19,11 +18,11 @@ class DatePicker extends common_1.Field {
|
|
|
19
18
|
schema="decimal"
|
|
20
19
|
.ownersProvider=${this.ownersProvider}
|
|
21
20
|
.translationProvider=${this.translationProvider}
|
|
22
|
-
.valueProvider=${
|
|
21
|
+
.valueProvider=${this.singleValueProvider(id)}
|
|
23
22
|
.validationErrorsProvider=${this.validationErrorsProvider}
|
|
24
23
|
.metadataProvider=${this.metadataProvider}
|
|
25
|
-
.handleValueChanged=${
|
|
26
|
-
.handleMetadataChanged=${
|
|
24
|
+
.handleValueChanged=${this.handleSingleValueChanged(id)}
|
|
25
|
+
.handleMetadataChanged=${this.handleSingleMetadataChanged(id)}
|
|
27
26
|
></icure-date-picker-field>`;
|
|
28
27
|
});
|
|
29
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../../../tmp/components/icure-form/fields/date-picker/date-picker.ts"],"names":[],"mappings":";;;AAAA,6BAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../../../tmp/components/icure-form/fields/date-picker/date-picker.ts"],"names":[],"mappings":";;;AAAA,6BAA0C;AAC1C,4CAAuC;AAEvC,MAAa,UAAW,SAAQ,cAAK;IAC3B,UAAU;;QAClB,MAAM,eAAe,GAAG,MAAA,IAAI,CAAC,aAAa,oDAAI,CAAA;QAC9C,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACvH,OAAO,IAAA,UAAI,EAAA;iBACG,IAAI,CAAC,QAAQ;wBACN,IAAI,CAAC,eAAe;aAC/B,IAAI,CAAC,KAAK;wBACC,IAAI,CAAC,eAAe;wBACpB,IAAI,CAAC,eAAe;kBAC1B,IAAI,CAAC,SAAS;;sBAEV,IAAI,CAAC,cAAc;2BACd,IAAI,CAAC,mBAAmB;qBAC9B,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;gCACjB,IAAI,CAAC,wBAAwB;wBACrC,IAAI,CAAC,gBAAgB;0BACnB,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;6BAC9B,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC;+BAClC,CAAA;QAC7B,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AAtBD,gCAsBC","sourcesContent":["import { html, TemplateResult } from 'lit'\nimport { Field } from '../../../common'\n\nexport class DatePicker extends Field {\n\toverride renderSync(): TemplateResult[] {\n\t\tconst versionedValues = this.valueProvider?.()\n\t\treturn (versionedValues && Object.keys(versionedValues).length ? Object.keys(versionedValues) : [undefined]).map((id) => {\n\t\t\treturn html`<icure-date-picker-field\n\t\t\t\t.readonly=\"${this.readonly}\"\n\t\t\t\t.displayMetadata=\"${this.displayMetadata}\"\n\t\t\t\tlabel=\"${this.label}\"\n\t\t\t\t.displayedLabels=\"${this.displayedLabels}\"\n\t\t\t\t.defaultLanguage=\"${this.defaultLanguage}\"\n\t\t\t\t.languages=\"${this.languages}\"\n\t\t\t\tschema=\"decimal\"\n\t\t\t\t.ownersProvider=${this.ownersProvider}\n\t\t\t\t.translationProvider=${this.translationProvider}\n\t\t\t\t.valueProvider=${this.singleValueProvider(id)}\n\t\t\t\t.validationErrorsProvider=${this.validationErrorsProvider}\n\t\t\t\t.metadataProvider=${this.metadataProvider}\n\t\t\t\t.handleValueChanged=${this.handleSingleValueChanged(id)}\n\t\t\t\t.handleMetadataChanged=${this.handleSingleMetadataChanged(id)}\n\t\t\t></icure-date-picker-field>`\n\t\t})\n\t}\n}\n"]}
|