@icure/form 1.1.21 → 1.1.22
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/install-state.gz +0 -0
- package/components/common/metadata-buttons-bar.d.ts +9 -6
- package/components/common/metadata-buttons-bar.js +56 -24
- package/components/common/metadata-buttons-bar.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-date-picker/index.js +1 -1
- package/components/icure-date-picker/index.js.map +1 -1
- package/components/icure-dropdown-field/index.js +1 -1
- package/components/icure-dropdown-field/index.js.map +1 -1
- package/components/icure-form/index.js +1 -1
- package/components/icure-form/index.js.map +1 -1
- package/components/icure-label/index.js +1 -1
- package/components/icure-label/index.js.map +1 -1
- package/components/icure-text-field/index.d.ts +1 -0
- package/components/icure-text-field/index.js +20 -17
- package/components/icure-text-field/index.js.map +1 -1
- package/components/themes/icure-blue/index.js +19 -1
- package/components/themes/icure-blue/index.js.map +1 -1
- package/icure/form-values-container.js +23 -21
- package/icure/form-values-container.js.map +1 -1
- package/package.json +1 -1
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
|
-
import { FieldMetadata } from '../model';
|
|
3
|
-
import { Suggestion } from '../../generic';
|
|
2
|
+
import { FieldMetadata, FieldValue } from '../model';
|
|
3
|
+
import { Suggestion, Version } from '../../generic';
|
|
4
4
|
import { CustomEventDetail } from 'app-datepicker/dist/typings';
|
|
5
5
|
export declare class MetadataButtonBar extends LitElement {
|
|
6
6
|
valueId: string;
|
|
7
7
|
metadata: FieldMetadata;
|
|
8
8
|
revision: string;
|
|
9
|
-
|
|
9
|
+
versions: Version<FieldValue>[];
|
|
10
10
|
defaultLanguage: string;
|
|
11
11
|
selectedLanguage?: string;
|
|
12
12
|
languages: {
|
|
@@ -17,6 +17,7 @@ export declare class MetadataButtonBar extends LitElement {
|
|
|
17
17
|
};
|
|
18
18
|
handleMetadataChanged?: (metadata: FieldMetadata, id?: string) => string | undefined;
|
|
19
19
|
handleLanguageSelected?: (iso?: string) => void;
|
|
20
|
+
handleRevisionSelected?: (rev?: string | null) => void;
|
|
20
21
|
ownersProvider: (terms: string[], ids?: string[], specialties?: string[]) => Promise<Suggestion[]>;
|
|
21
22
|
protected displayOwnersMenu: boolean;
|
|
22
23
|
protected ownerInputValue: string;
|
|
@@ -25,20 +26,22 @@ export declare class MetadataButtonBar extends LitElement {
|
|
|
25
26
|
[id: string]: Suggestion;
|
|
26
27
|
};
|
|
27
28
|
protected displayLanguagesMenu: boolean;
|
|
29
|
+
protected displayVersionsMenu: boolean;
|
|
28
30
|
protected displayValueDateMenu: boolean;
|
|
29
31
|
protected languageInputValue: string;
|
|
30
|
-
protected displayVersionsMenu: boolean;
|
|
31
32
|
static get styles(): import("lit").CSSResult[];
|
|
32
33
|
_handleClickOutside(event: MouseEvent): void;
|
|
33
34
|
connectedCallback(): void;
|
|
34
35
|
disconnectedCallback(): void;
|
|
35
36
|
render(): import("lit-html").TemplateResult<1>;
|
|
36
|
-
|
|
37
|
+
toggleOwnersMenu(ownerId?: string): void;
|
|
37
38
|
searchOwner(e: InputEvent): void;
|
|
38
39
|
searchLanguage(e: InputEvent): void;
|
|
39
40
|
handleOwnerButtonClicked(id: string): void;
|
|
40
41
|
handleLanguageButtonClicked(id: string): void;
|
|
42
|
+
handleRevisionButtonClicked(rev?: string | null): void;
|
|
41
43
|
toggleValueDateMenu(): void;
|
|
42
44
|
dateUpdated(date: CustomEventDetail['date-updated']): void;
|
|
43
|
-
|
|
45
|
+
toggleLanguagesMenu(): void;
|
|
46
|
+
toggleVersionsMenu(): void;
|
|
44
47
|
}
|
|
@@ -472,7 +472,7 @@ h3 {
|
|
|
472
472
|
display: block;
|
|
473
473
|
position: absolute;
|
|
474
474
|
top: 20px;
|
|
475
|
-
right:
|
|
475
|
+
right: -12px;
|
|
476
476
|
z-index: 2;
|
|
477
477
|
background: #fff;
|
|
478
478
|
box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);
|
|
@@ -1065,15 +1065,16 @@ class MetadataButtonBar extends lit_1.LitElement {
|
|
|
1065
1065
|
this.displayedLabels = {};
|
|
1066
1066
|
this.handleMetadataChanged = undefined;
|
|
1067
1067
|
this.handleLanguageSelected = undefined;
|
|
1068
|
+
this.handleRevisionSelected = undefined;
|
|
1068
1069
|
this.ownersProvider = () => __awaiter(this, void 0, void 0, function* () { return []; });
|
|
1069
1070
|
this.displayOwnersMenu = false;
|
|
1070
1071
|
this.ownerInputValue = '';
|
|
1071
1072
|
this.availableOwners = [];
|
|
1072
1073
|
this.loadedOwners = {};
|
|
1073
1074
|
this.displayLanguagesMenu = false;
|
|
1075
|
+
this.displayVersionsMenu = false;
|
|
1074
1076
|
this.displayValueDateMenu = false;
|
|
1075
1077
|
this.languageInputValue = '';
|
|
1076
|
-
this.displayVersionsMenu = false;
|
|
1077
1078
|
}
|
|
1078
1079
|
static get styles() {
|
|
1079
1080
|
return [baseCss];
|
|
@@ -1096,28 +1097,27 @@ class MetadataButtonBar extends lit_1.LitElement {
|
|
|
1096
1097
|
document.removeEventListener('click', this._handleClickOutside.bind(this));
|
|
1097
1098
|
}
|
|
1098
1099
|
render() {
|
|
1099
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
1100
|
-
const
|
|
1101
|
-
const
|
|
1102
|
-
const revisionDate = this.revisionDate;
|
|
1103
|
-
const owner = metadata === null || metadata === void 0 ? void 0 : metadata.owner;
|
|
1100
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
1101
|
+
const revisionDate = (_a = this.versions.find((x) => x.revision === this.revision)) === null || _a === void 0 ? void 0 : _a.modified;
|
|
1102
|
+
const owner = (_b = this.metadata) === null || _b === void 0 ? void 0 : _b.owner;
|
|
1104
1103
|
if (owner && !this.loadedOwners[owner]) {
|
|
1105
1104
|
this.loadedOwners = Object.assign(Object.assign({}, this.loadedOwners), { [owner]: { id: owner, text: '', terms: [], label: {} } }); // Make sure we do not loop endlessly
|
|
1106
1105
|
this.ownersProvider &&
|
|
1107
1106
|
this.ownersProvider([], [owner]).then((availableOwners) => (this.loadedOwners = availableOwners.reduce((acc, o) => (Object.assign(Object.assign({}, acc), { [o.id]: o })), this.loadedOwners)));
|
|
1108
1107
|
}
|
|
1109
1108
|
const forcedByMenu = this.displayOwnersMenu || this.displayLanguagesMenu || this.displayValueDateMenu || this.displayVersionsMenu;
|
|
1110
|
-
const discordantMetadata = (
|
|
1109
|
+
const discordantMetadata = (_d = (_c = this.metadata) === null || _c === void 0 ? void 0 : _c.discordantMetadata) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
1111
1110
|
const forcedByOwner = (discordantMetadata === null || discordantMetadata === void 0 ? void 0 : discordantMetadata.owner) !== undefined;
|
|
1112
1111
|
const forcedByValueDate = (discordantMetadata === null || discordantMetadata === void 0 ? void 0 : discordantMetadata.valueDate) !== undefined;
|
|
1113
1112
|
const forcedByLanguage = this.selectedLanguage && this.defaultLanguage !== this.selectedLanguage;
|
|
1113
|
+
const forcedByVersion = this.revision && this.revision !== ((_f = (_e = this.versions) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.revision);
|
|
1114
1114
|
return (0, lit_1.html) ` <div id="extra" class=${'extra' + (forcedByMenu ? ' forced' : '')}>
|
|
1115
1115
|
<div class="info ${forcedByOwner || forcedByLanguage || forcedByValueDate ? 'hidden' : ''}">•</div>
|
|
1116
1116
|
<div class="buttons-container">
|
|
1117
1117
|
<div class="menu-container">
|
|
1118
1118
|
<button
|
|
1119
|
-
data-content="${(
|
|
1120
|
-
@click="${() => this.
|
|
1119
|
+
data-content="${(_k = (((_g = this.metadata) === null || _g === void 0 ? void 0 : _g.owner) ? (_j = this.loadedOwners[(_h = this.metadata) === null || _h === void 0 ? void 0 : _h.owner]) === null || _j === void 0 ? void 0 : _j.text : '')) !== null && _k !== void 0 ? _k : ''}"
|
|
1120
|
+
@click="${() => { var _a; return this.toggleOwnersMenu((_a = this.metadata) === null || _a === void 0 ? void 0 : _a.owner); }}"
|
|
1121
1121
|
class="btn menu-trigger author ${forcedByOwner ? 'forced' : ''}"
|
|
1122
1122
|
>
|
|
1123
1123
|
${paths_1.ownerPicto}
|
|
@@ -1126,14 +1126,14 @@ class MetadataButtonBar extends lit_1.LitElement {
|
|
|
1126
1126
|
? (0, lit_1.html) `
|
|
1127
1127
|
<div id="menu" class="menu">
|
|
1128
1128
|
<div class="input-container">${paths_1.searchPicto} <input id="ownerSearch" @input="${this.searchOwner}" /></div>
|
|
1129
|
-
${(
|
|
1129
|
+
${(_m = (((_l = this.availableOwners) === null || _l === void 0 ? void 0 : _l.length) ? this.availableOwners : Object.values(this.loadedOwners))) === null || _m === void 0 ? void 0 : _m.map((x) => (0, lit_1.html) `<button @click="${() => this.handleOwnerButtonClicked(x.id)}" id="${x.id}" class="item">${x.text}</button>`)}
|
|
1130
1130
|
</div>
|
|
1131
1131
|
`
|
|
1132
1132
|
: ''}
|
|
1133
1133
|
</div>
|
|
1134
1134
|
<div class="menu-container">
|
|
1135
1135
|
<button
|
|
1136
|
-
data-content="${(metadata === null ||
|
|
1136
|
+
data-content="${((_o = this.metadata) === null || _o === void 0 ? void 0 : _o.valueDate) ? (0, date_fns_1.format)((0, dates_1.anyDateToDate)(this.metadata.valueDate), 'yyyy-MM-dd HH:mm:ss').replace(/ 00:00:00$/, '') : ''}"
|
|
1137
1137
|
class="btn date ${forcedByValueDate ? 'forced' : ''}"
|
|
1138
1138
|
@click="${() => this.toggleValueDateMenu()}"
|
|
1139
1139
|
>
|
|
@@ -1143,7 +1143,7 @@ class MetadataButtonBar extends lit_1.LitElement {
|
|
|
1143
1143
|
? (0, lit_1.html) `
|
|
1144
1144
|
<div id="menu" class="menu value-date-menu">
|
|
1145
1145
|
<app-date-picker
|
|
1146
|
-
locale="${(
|
|
1146
|
+
locale="${(_p = this.defaultLanguage) !== null && _p !== void 0 ? _p : 'en'}"
|
|
1147
1147
|
style=""
|
|
1148
1148
|
max="${constants_1.MAX_DATE}"
|
|
1149
1149
|
min="${(0, to_resolved_date_1.toResolvedDate)('1900-01-01')}"
|
|
@@ -1155,16 +1155,31 @@ class MetadataButtonBar extends lit_1.LitElement {
|
|
|
1155
1155
|
</div>
|
|
1156
1156
|
<div class="menu-container">
|
|
1157
1157
|
<button
|
|
1158
|
-
data-content="${revision === null
|
|
1159
|
-
|
|
1158
|
+
data-content="${this.revision === null
|
|
1159
|
+
? 'latest'
|
|
1160
|
+
: this.revision
|
|
1161
|
+
? `rev-${this.revision.split('-')[0]} ${revisionDate ? `(${(0, date_fns_1.format)(new Date(revisionDate), 'yyyy-MM-dd')})` : ''}`
|
|
1162
|
+
: ''}"
|
|
1163
|
+
@click="${this.toggleVersionsMenu}"
|
|
1164
|
+
class="btn version ${forcedByVersion ? 'forced' : ''}"
|
|
1160
1165
|
>
|
|
1161
1166
|
${paths_1.versionPicto}
|
|
1162
1167
|
</button>
|
|
1168
|
+
${this.displayVersionsMenu
|
|
1169
|
+
? (0, lit_1.html) ` <div id="menu" class="menu">
|
|
1170
|
+
${this.versions.map((x) => {
|
|
1171
|
+
var _a;
|
|
1172
|
+
return (0, lit_1.html) `<button class="item ${x.revision === this.revision ? 'selected' : ''}" @click="${() => this.handleRevisionButtonClicked(x.revision)}">
|
|
1173
|
+
${x.revision == null ? 'Latest' : (_a = x.revision) !== null && _a !== void 0 ? _a : ''} ${x.modified ? `(${(0, date_fns_1.format)(new Date(x.modified), 'yyyy-MM-dd')})` : ''}
|
|
1174
|
+
</button>`;
|
|
1175
|
+
})}
|
|
1176
|
+
</div>`
|
|
1177
|
+
: ''}
|
|
1163
1178
|
</div>
|
|
1164
1179
|
<div class="menu-container">
|
|
1165
1180
|
<button
|
|
1166
|
-
data-content="${this.selectedLanguage ? (
|
|
1167
|
-
@click="${this.
|
|
1181
|
+
data-content="${this.selectedLanguage ? (_q = (0, languages_1.languageName)(this.selectedLanguage)) !== null && _q !== void 0 ? _q : this.selectedLanguage : (_r = (0, languages_1.languageName)(this.defaultLanguage)) !== null && _r !== void 0 ? _r : this.defaultLanguage}"
|
|
1182
|
+
@click="${this.toggleLanguagesMenu}"
|
|
1168
1183
|
class="btn menu-trigger language ${forcedByLanguage ? 'forced' : ''}"
|
|
1169
1184
|
>
|
|
1170
1185
|
${paths_1.i18nPicto}
|
|
@@ -1183,7 +1198,7 @@ class MetadataButtonBar extends lit_1.LitElement {
|
|
|
1183
1198
|
</div>
|
|
1184
1199
|
</div>`;
|
|
1185
1200
|
}
|
|
1186
|
-
|
|
1201
|
+
toggleOwnersMenu(ownerId) {
|
|
1187
1202
|
this.displayOwnersMenu = !this.displayOwnersMenu;
|
|
1188
1203
|
if (this.displayOwnersMenu) {
|
|
1189
1204
|
this.displayLanguagesMenu = false;
|
|
@@ -1222,6 +1237,11 @@ class MetadataButtonBar extends lit_1.LitElement {
|
|
|
1222
1237
|
(_a = this.handleLanguageSelected) === null || _a === void 0 ? void 0 : _a.call(this, id);
|
|
1223
1238
|
this.displayOwnersMenu = false;
|
|
1224
1239
|
}
|
|
1240
|
+
handleRevisionButtonClicked(rev) {
|
|
1241
|
+
var _a;
|
|
1242
|
+
(_a = this.handleRevisionSelected) === null || _a === void 0 ? void 0 : _a.call(this, rev);
|
|
1243
|
+
this.displayVersionsMenu = false;
|
|
1244
|
+
}
|
|
1225
1245
|
toggleValueDateMenu() {
|
|
1226
1246
|
this.displayValueDateMenu = !this.displayValueDateMenu;
|
|
1227
1247
|
if (this.displayValueDateMenu) {
|
|
@@ -1240,7 +1260,7 @@ class MetadataButtonBar extends lit_1.LitElement {
|
|
|
1240
1260
|
this.displayOwnersMenu = false;
|
|
1241
1261
|
}
|
|
1242
1262
|
}
|
|
1243
|
-
|
|
1263
|
+
toggleLanguagesMenu() {
|
|
1244
1264
|
this.displayLanguagesMenu = !this.displayLanguagesMenu;
|
|
1245
1265
|
if (this.displayLanguagesMenu) {
|
|
1246
1266
|
this.displayOwnersMenu = false;
|
|
@@ -1248,6 +1268,14 @@ class MetadataButtonBar extends lit_1.LitElement {
|
|
|
1248
1268
|
this.displayValueDateMenu = false;
|
|
1249
1269
|
}
|
|
1250
1270
|
}
|
|
1271
|
+
toggleVersionsMenu() {
|
|
1272
|
+
this.displayVersionsMenu = !this.displayVersionsMenu;
|
|
1273
|
+
if (this.displayLanguagesMenu) {
|
|
1274
|
+
this.displayOwnersMenu = false;
|
|
1275
|
+
this.displayLanguagesMenu = false;
|
|
1276
|
+
this.displayValueDateMenu = false;
|
|
1277
|
+
}
|
|
1278
|
+
}
|
|
1251
1279
|
}
|
|
1252
1280
|
exports.MetadataButtonBar = MetadataButtonBar;
|
|
1253
1281
|
__decorate([
|
|
@@ -1264,8 +1292,8 @@ __decorate([
|
|
|
1264
1292
|
], MetadataButtonBar.prototype, "revision", void 0);
|
|
1265
1293
|
__decorate([
|
|
1266
1294
|
(0, decorators_js_1.property)(),
|
|
1267
|
-
__metadata("design:type",
|
|
1268
|
-
], MetadataButtonBar.prototype, "
|
|
1295
|
+
__metadata("design:type", Array)
|
|
1296
|
+
], MetadataButtonBar.prototype, "versions", void 0);
|
|
1269
1297
|
__decorate([
|
|
1270
1298
|
(0, decorators_js_1.property)(),
|
|
1271
1299
|
__metadata("design:type", String)
|
|
@@ -1290,6 +1318,10 @@ __decorate([
|
|
|
1290
1318
|
(0, decorators_js_1.property)(),
|
|
1291
1319
|
__metadata("design:type", Function)
|
|
1292
1320
|
], MetadataButtonBar.prototype, "handleLanguageSelected", void 0);
|
|
1321
|
+
__decorate([
|
|
1322
|
+
(0, decorators_js_1.property)(),
|
|
1323
|
+
__metadata("design:type", Function)
|
|
1324
|
+
], MetadataButtonBar.prototype, "handleRevisionSelected", void 0);
|
|
1293
1325
|
__decorate([
|
|
1294
1326
|
(0, decorators_js_1.property)(),
|
|
1295
1327
|
__metadata("design:type", Function)
|
|
@@ -1317,13 +1349,13 @@ __decorate([
|
|
|
1317
1349
|
__decorate([
|
|
1318
1350
|
(0, decorators_js_1.state)(),
|
|
1319
1351
|
__metadata("design:type", Object)
|
|
1320
|
-
], MetadataButtonBar.prototype, "
|
|
1352
|
+
], MetadataButtonBar.prototype, "displayVersionsMenu", void 0);
|
|
1321
1353
|
__decorate([
|
|
1322
1354
|
(0, decorators_js_1.state)(),
|
|
1323
1355
|
__metadata("design:type", Object)
|
|
1324
|
-
], MetadataButtonBar.prototype, "
|
|
1356
|
+
], MetadataButtonBar.prototype, "displayValueDateMenu", void 0);
|
|
1325
1357
|
__decorate([
|
|
1326
1358
|
(0, decorators_js_1.state)(),
|
|
1327
1359
|
__metadata("design:type", Object)
|
|
1328
|
-
], MetadataButtonBar.prototype, "
|
|
1360
|
+
], MetadataButtonBar.prototype, "languageInputValue", void 0);
|
|
1329
1361
|
//# sourceMappingURL=metadata-buttons-bar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-buttons-bar.js","sourceRoot":"","sources":["../../../tmp/components/common/metadata-buttons-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { FieldMetadata } from '../model'\nimport { Suggestion } from '../../generic'\nimport { datePicto, i18nPicto, ownerPicto, searchPicto, versionPicto } from './styles/paths'\nimport { format } from 'date-fns'\nimport { anyDateToDate } from '../../utils/dates'\nimport { toResolvedDate } from 'app-datepicker/dist/helpers/to-resolved-date'\nimport { CustomEventDetail } from 'app-datepicker/dist/typings'\nimport { MAX_DATE } from 'app-datepicker/dist/constants'\nimport { languageName } from '../../utils/languages'\n\n// @ts-ignore\nimport { css } from 'lit';\nconst baseCss = css`@charset \"UTF-8\";\n:host {\n --bg-color-1: #f44336;\n}\n\n.ProseMirror {\n position: relative;\n}\n\n.ProseMirror {\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}\n\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n\n.ProseMirror li {\n position: relative;\n}\n\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\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}\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\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\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 ul,\n.ProseMirror ol {\n padding-left: 30px;\n}\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-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\n.ProseMirror-prompt h5 {\n margin: 0;\n font-weight: normal;\n font-size: 100%;\n color: #444;\n}\n\n.ProseMirror-prompt input[type=text],\n.ProseMirror-prompt textarea {\n background: #eee;\n border: none;\n outline: none;\n}\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\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.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\n.ProseMirror {\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\n.ProseMirror p {\n margin-bottom: 1em;\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: inline-block;\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}\n#editor.tokens-list .ProseMirror li span, #editor.styled-tokens-list .ProseMirror li span {\n min-width: 26px;\n display: inline-block;\n}\n#editor.tokens-list .ProseMirror li span br, #editor.styled-tokens-list .ProseMirror li span br {\n display: none;\n}\n#editor.tokens-list .ProseMirror li span:after:hover, #editor.styled-tokens-list .ProseMirror li span:after:hover {\n background: transparent url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxu cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJPdXRsaW5lIiB2aWV3 Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iIzAwMDAwMCIgZmlsbD0iIzAwMDAwMCIg d2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPjxwYXRoIGQ9Ik0xNiw4YTEsMSwwLDAs MC0xLjQxNCwwTDEyLDEwLjU4Niw5LjQxNCw4QTEsMSwwLDAsMCw4LDkuNDE0TDEw LjU4NiwxMiw4LDE0LjU4NkExLDEsMCwwLDAsOS40MTQsMTZMMTIsMTMuNDE0LDE0 LjU4NiwxNkExLDEsMCwwLDAsMTYsMTQuNTg2TDEzLjQxNCwxMiwxNiw5LjQxNEEx LDEsMCwwLDAsMTYsOFoiLz48cGF0aCBkPSJNMTIsMEExMiwxMiwwLDEsMCwyNCwx MiwxMi4wMTMsMTIuMDEzLDAsMCwwLDEyLDBabTAsMjJBMTAsMTAsMCwxLDEsMjIs MTIsMTAuMDExLDEwLjAxMSwwLDAsMSwxMiwyMloiLz48L3N2Zz4K\") no-repeat center/16px;\n}\n#editor.tokens-list .ProseMirror li span:after, #editor.styled-tokens-list .ProseMirror li span:after {\n content: \" \";\n min-width: 22px;\n background: transparent url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxu cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJPdXRsaW5lIiB2aWV3 Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iIzg4ODg4OCIgZmlsbD0iIzg4ODg4OCIg d2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPjxwYXRoIGQ9Ik0xNiw4YTEsMSwwLDAs MC0xLjQxNCwwTDEyLDEwLjU4Niw5LjQxNCw4QTEsMSwwLDAsMCw4LDkuNDE0TDEw LjU4NiwxMiw4LDE0LjU4NkExLDEsMCwwLDAsOS40MTQsMTZMMTIsMTMuNDE0LDE0 LjU4NiwxNkExLDEsMCwwLDAsMTYsMTQuNTg2TDEzLjQxNCwxMiwxNiw5LjQxNEEx LDEsMCwwLDAsMTYsOFoiLz48cGF0aCBkPSJNMTIsMEExMiwxMiwwLDEsMCwyNCwx MiwxMi4wMTMsMTIuMDEzLDAsMCwwLDEyLDBabTAsMjJBMTAsMTAsMCwxLDEsMjIs MTIsMTAuMDExLDEwLjAxMSwwLDAsMSwxMiwyMloiLz48L3N2Zz4K\") no-repeat center/16px;\n display: inline-block;\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.extra {\n flex-shrink: 0;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n padding: 0 8px;\n transition: all 0.24s cubic-bezier(0.42, 0.01, 1, 0.62);\n}\n\n.extra > .info {\n color: #809ab4;\n font-size: 12px;\n width: 100%;\n height: auto;\n overflow: hidden;\n pointer-events: none;\n text-align: right;\n}\n\n.extra > .info > span {\n font-weight: 700;\n}\n\n.extra .buttons-container {\n position: relative;\n display: flex;\n height: 100%;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-end;\n width: 0;\n transition: all 0.24s cubic-bezier(0.14, 0.69, 0.87, 0.54);\n}\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\n.extra.forced:hover .buttons-container .menu-container .btn {\n animation: none;\n pointer-events: all;\n}\n\n.extra.forced .buttons-container .btn {\n opacity: 1 !important;\n display: unset !important;\n}\n\n.extra .buttons-container .btn.forced {\n opacity: 1 !important;\n display: unset !important;\n}\n\n.extra.forced .info, .extra .info.hidden {\n opacity: 0 !important;\n z-index: 0 !important;\n}\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 width: 10px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n\n.extra .buttons-container .menu-container:last-child .btn {\n margin-right: 0;\n}\n\n.extra .buttons-container .btn svg path {\n fill: #809ab4;\n}\n\n.extra .buttons-container .btn.forced svg path {\n fill: crimson !important;\n}\n\n.extra .buttons-container .btn:hover svg path {\n fill: #274768;\n}\n\n.extra .buttons-container .menu-container .btn:hover::after {\n content: attr(data-content);\n position: absolute;\n top: -22px;\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\n.extra .buttons-container .btn:focus,\n.extra .buttons-container .btn:focus-within {\n border: none;\n outline: none;\n}\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\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\n.value-date-menu {\n width: unset !important;\n}\n\n.menu {\n display: block;\n position: absolute;\n top: 20px;\n right: 0;\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: block;\n}\n\n.menu-container .item {\n height: 22px;\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\n.menu-container .item:hover {\n background: #f5f9fd;\n font-weight: 500;\n border-radius: 4px;\n}\n\nspan {\n position: relative;\n z-index: 1;\n}\n\nspan.date {\n margin-right: 1px;\n}\n\nspan.time {\n margin-left: 1px;\n}\n\nspan.measure {\n display: inline-block;\n margin-right: 1px;\n}\n\nspan.unit {\n margin-left: 1px;\n display: inline-block;\n}\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}\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\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\n.suggestion-palette ul {\n white-space: nowrap;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\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 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.suggestion-palette ul li:not(:first-child) svg.tab-icn,\n.suggestion-palette ul li:not(.focused) svg.return-icn,\n.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\n.suggestion-palette ul li.focused {\n background-color: rgb(237, 242, 247);\n}\n\n.suggestion-palette ul li.focused svg.return-icn {\n animation: growIn 0.24s ease-in forwards;\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: 30px;\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 max-height: 280px;\n}\n\n.date-picker {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: 30px;\n right: 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 left: 0px;\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}\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.icure-form {\n background-color: rgba(0, 0, 0, 0);\n display: grid;\n gap: 0 6px;\n grid-template-columns: repeat(24, 1fr);\n}\n\n.group {\n align-items: end;\n display: grid;\n}\n\n.subform {\n align-items: end;\n display: grid;\n position: relative;\n margin: 8px -8px 8px;\n padding: 0 8px 0;\n min-height: 64px;\n background-color: #e7f0fd;\n}\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: 14.4px;\n font-weight: 700;\n color: #084B83;\n padding: 2px;\n}\n.icure-form h3 {\n font-size: 13.2px;\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.icure-form .float-right-btn {\n position: absolute;\n right: 10px;\n cursor: pointer;\n}\n.icure-form .float-right-btn.top {\n top: 6px;\n}\n.icure-form .float-right-btn.bottom {\n bottom: -8px;\n}\n\n.icure-form-field {\n align-items: end;\n display: grid;\n}\n\n.error {\n color: red;\n font-size: 12px;\n}\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: 9px;\n color: #084B83;\n align-items: center;\n 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: inline-block;\n height: 1.4em;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.icure-text-field {\n position: relative;\n width: 100%;\n flex-direction: row;\n justify-content: stretch;\n align-items: center;\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 border-radius: 2px;\n padding: 0 8px;\n width: 100%;\n box-sizing: border-box;\n border-width: 1px;\n border-style: solid;\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 border-color: red;\n color: #000000;\n box-sizing: border-box;\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 .buttons-container .btn svg path,\n.icure-text-field .input-container .extra .buttons-container .btn svg path {\n fill: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .buttons-container .btn svg path:hover,\n.icure-text-field .input-container .extra .buttons-container .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-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: calc(1.4em + 1px);\n left: 9px;\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}` \n\nexport class MetadataButtonBar extends LitElement {\n\t@property() valueId: string\n\t@property() metadata: FieldMetadata\n\t@property() revision: string\n\t@property() revisionDate: number\n\t@property() defaultLanguage: string\n\t@property() selectedLanguage?: string\n\t@property() languages: { [iso: string]: string } = {}\n\t@property() displayedLabels: { [iso: string]: string } = {}\n\t@property() handleMetadataChanged?: (metadata: FieldMetadata, id?: string) => string | undefined = undefined\n\t@property() handleLanguageSelected?: (iso?: string) => void = undefined\n\t@property() ownersProvider: (terms: string[], ids?: string[], specialties?: string[]) => Promise<Suggestion[]> = async () => []\n\n\t@state() protected displayOwnersMenu = false\n\t@state() protected ownerInputValue = ''\n\t@state() protected availableOwners: Suggestion[] = []\n\t@state() protected loadedOwners: { [id: string]: Suggestion } = {}\n\n\t@state() protected displayLanguagesMenu = false\n\t@state() protected displayValueDateMenu = false\n\t@state() protected languageInputValue = ''\n\n\t@state() protected displayVersionsMenu = false\n\n\tstatic get styles() {\n\t\treturn [baseCss]\n\t}\n\n\t_handleClickOutside(event: MouseEvent): void {\n\t\tif (!event.composedPath().includes(this)) {\n\t\t\tthis.displayVersionsMenu = false\n\t\t\tthis.displayLanguagesMenu = false\n\t\t\tthis.displayOwnersMenu = false\n\t\t\tthis.displayValueDateMenu = false\n\t\t\tevent.stopPropagation()\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tdocument.addEventListener('click', this._handleClickOutside.bind(this))\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tdocument.removeEventListener('click', this._handleClickOutside.bind(this))\n\t}\n\n\trender() {\n\t\tconst metadata = this.metadata\n\t\tconst revision = this.revision\n\t\tconst revisionDate = this.revisionDate\n\n\t\tconst owner = metadata?.owner\n\t\tif (owner && !this.loadedOwners[owner]) {\n\t\t\tthis.loadedOwners = { ...this.loadedOwners, [owner]: { id: owner, text: '', terms: [], label: {} } } // Make sure we do not loop endlessly\n\t\t\tthis.ownersProvider &&\n\t\t\t\tthis.ownersProvider([], [owner]).then((availableOwners) => (this.loadedOwners = availableOwners.reduce((acc, o) => ({ ...acc, [o.id]: o }), this.loadedOwners)))\n\t\t}\n\n\t\tconst forcedByMenu = this.displayOwnersMenu || this.displayLanguagesMenu || this.displayValueDateMenu || this.displayVersionsMenu\n\n\t\tconst discordantMetadata = this.metadata?.discordantMetadata?.()\n\n\t\tconst forcedByOwner = discordantMetadata?.owner !== undefined\n\t\tconst forcedByValueDate = discordantMetadata?.valueDate !== undefined\n\t\tconst forcedByLanguage = this.selectedLanguage && this.defaultLanguage !== this.selectedLanguage\n\n\t\treturn html` <div id=\"extra\" class=${'extra' + (forcedByMenu ? ' forced' : '')}>\n\t\t\t<div class=\"info ${forcedByOwner || forcedByLanguage || forcedByValueDate ? 'hidden' : ''}\">•</div>\n\t\t\t<div class=\"buttons-container\">\n\t\t\t\t<div class=\"menu-container\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tdata-content=\"${(metadata?.owner ? this.loadedOwners[metadata?.owner]?.text : '') ?? ''}\"\n\t\t\t\t\t\t@click=\"${() => this.toggleOwnerMenu(metadata?.owner)}\"\n\t\t\t\t\t\tclass=\"btn menu-trigger author ${forcedByOwner ? 'forced' : ''}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${ownerPicto}\n\t\t\t\t\t</button>\n\t\t\t\t\t${this.displayOwnersMenu\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<div id=\"menu\" class=\"menu\">\n\t\t\t\t\t\t\t\t\t<div class=\"input-container\">${searchPicto} <input id=\"ownerSearch\" @input=\"${this.searchOwner}\" /></div>\n\t\t\t\t\t\t\t\t\t${(this.availableOwners?.length ? this.availableOwners : Object.values(this.loadedOwners))?.map(\n\t\t\t\t\t\t\t\t\t\t(x) => html`<button @click=\"${() => this.handleOwnerButtonClicked(x.id)}\" id=\"${x.id}\" class=\"item\">${x.text}</button>`,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t `\n\t\t\t\t\t\t: ''}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"menu-container\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tdata-content=\"${metadata?.valueDate ? format(anyDateToDate(metadata.valueDate)!, 'yyyy-MM-dd HH:mm:ss').replace(/ 00:00:00$/, '') : ''}\"\n\t\t\t\t\t\tclass=\"btn date ${forcedByValueDate ? 'forced' : ''}\"\n\t\t\t\t\t\t@click=\"${() => this.toggleValueDateMenu()}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${datePicto}\n\t\t\t\t\t</button>\n\t\t\t\t\t${this.displayValueDateMenu\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<div id=\"menu\" class=\"menu value-date-menu\">\n\t\t\t\t\t\t\t\t\t<app-date-picker\n\t\t\t\t\t\t\t\t\t\tlocale=\"${this.defaultLanguage ?? 'en'}\"\n\t\t\t\t\t\t\t\t\t\tstyle=\"\"\n\t\t\t\t\t\t\t\t\t\tmax=\"${MAX_DATE}\"\n\t\t\t\t\t\t\t\t\t\tmin=\"${toResolvedDate('1900-01-01')}\"\n\t\t\t\t\t\t\t\t\t\t@date-updated=\"${this.dateUpdated}\"\n\t\t\t\t\t\t\t\t\t></app-date-picker>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t `\n\t\t\t\t\t\t: ''}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"menu-container\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tdata-content=\"${revision === null ? 'latest' : revision ? `${revision.split('-')[0]} ${revisionDate ? `(${format(new Date(revisionDate), 'yyyy-MM-dd')})` : ''}` : ''}\"\n\t\t\t\t\t\tclass=\"btn version\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${versionPicto}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"menu-container\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tdata-content=\"${this.selectedLanguage ? languageName(this.selectedLanguage) ?? this.selectedLanguage : languageName(this.defaultLanguage) ?? this.defaultLanguage}\"\n\t\t\t\t\t\t@click=\"${this.toggleLanguageMenu}\"\n\t\t\t\t\t\tclass=\"btn menu-trigger language ${forcedByLanguage ? 'forced' : ''}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${i18nPicto}\n\t\t\t\t\t</button>\n\t\t\t\t\t${this.displayLanguagesMenu\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<div id=\"menu\" class=\"menu\">\n\t\t\t\t\t\t\t\t\t<div class=\"input-container\">${searchPicto} <input id=\"languageSearch\" @input=\"${this.searchLanguage}\" /></div>\n\t\t\t\t\t\t\t\t\t${[this.defaultLanguage, ...Object.keys(this.languages).filter((x) => x !== this.defaultLanguage)]\n\t\t\t\t\t\t\t\t\t\t.filter((x) => !!x && (languageName(x) ?? this.languages[x] ?? x).toLowerCase().includes((this.languageInputValue ?? '').toLowerCase()))\n\t\t\t\t\t\t\t\t\t\t.map((x) => html`<button @click=\"${() => this.handleLanguageButtonClicked(x)}\" id=\"${x}\" class=\"item\">${x ? languageName(x) : ''}</button>`)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t `\n\t\t\t\t\t\t: ''}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>`\n\t}\n\n\ttoggleOwnerMenu(ownerId?: string) {\n\t\tthis.displayOwnersMenu = !this.displayOwnersMenu\n\t\tif (this.displayOwnersMenu) {\n\t\t\tthis.displayLanguagesMenu = false\n\t\t\tthis.displayVersionsMenu = false\n\t\t\tthis.displayValueDateMenu = false\n\n\t\t\tsetTimeout(() => {\n\t\t\t\t;(this.renderRoot.querySelector('#ownerSearch') as HTMLInputElement)?.focus()\n\t\t\t}, 0)\n\t\t}\n\t}\n\n\tsearchOwner(e: InputEvent) {\n\t\tconst text = (e.target as HTMLInputElement).value\n\t\tsetTimeout(async () => {\n\t\t\tif ((this.renderRoot.querySelector('#ownerSearch') as HTMLInputElement)?.value === text) {\n\t\t\t\tif (this.ownersProvider) {\n\t\t\t\t\tconst availableOwners = await this.ownersProvider(text.split(' '))\n\t\t\t\t\tconsole.log(availableOwners)\n\t\t\t\t\tthis.availableOwners = availableOwners\n\t\t\t\t}\n\t\t\t}\n\t\t}, 300)\n\t}\n\n\tsearchLanguage(e: InputEvent) {\n\t\tthis.languageInputValue = (e.target as HTMLInputElement).value\n\t}\n\n\thandleOwnerButtonClicked(id: string) {\n\t\tconst valueId = this.valueId\n\t\tthis.handleMetadataChanged && valueId && this.handleMetadataChanged({ label: this.metadata.label, owner: id })\n\t\tthis.displayOwnersMenu = false\n\t}\n\n\thandleLanguageButtonClicked(id: string) {\n\t\tthis.handleLanguageSelected?.(id)\n\t\tthis.displayOwnersMenu = false\n\t}\n\n\ttoggleValueDateMenu() {\n\t\tthis.displayValueDateMenu = !this.displayValueDateMenu\n\t\tif (this.displayValueDateMenu) {\n\t\t\tthis.displayOwnersMenu = false\n\t\t\tthis.displayLanguagesMenu = false\n\t\t\tthis.displayVersionsMenu = false\n\t\t}\n\t}\n\n\tdateUpdated(date: CustomEventDetail['date-updated']): void {\n\t\tconst parts = date.detail.value?.split('-')\n\t\tif (parts && parts.length === 3) {\n\t\t\tconst fuzzyDateValue = parseInt(parts[0]) * 10000 + parseInt(parts[1]) * 100 + parseInt(parts[2])\n\t\t\tconst valueId = this.valueId\n\t\t\tthis.handleMetadataChanged && this.handleMetadataChanged({ label: this.metadata.label, valueDate: fuzzyDateValue * 1000000 }, valueId)\n\t\t\tthis.displayOwnersMenu = false\n\t\t}\n\t}\n\n\ttoggleLanguageMenu() {\n\t\tthis.displayLanguagesMenu = !this.displayLanguagesMenu\n\t\tif (this.displayLanguagesMenu) {\n\t\t\tthis.displayOwnersMenu = false\n\t\t\tthis.displayVersionsMenu = false\n\t\t\tthis.displayValueDateMenu = false\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"metadata-buttons-bar.js","sourceRoot":"","sources":["../../../tmp/components/common/metadata-buttons-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { FieldMetadata, FieldValue } from '../model'\nimport { Suggestion, Version } from '../../generic'\nimport { datePicto, i18nPicto, ownerPicto, searchPicto, versionPicto } from './styles/paths'\nimport { format } from 'date-fns'\nimport { anyDateToDate } from '../../utils/dates'\nimport { toResolvedDate } from 'app-datepicker/dist/helpers/to-resolved-date'\nimport { CustomEventDetail } from 'app-datepicker/dist/typings'\nimport { MAX_DATE } from 'app-datepicker/dist/constants'\nimport { languageName } from '../../utils/languages'\n\n// @ts-ignore\nimport { css } from 'lit';\nconst baseCss = css`@charset \"UTF-8\";\n:host {\n --bg-color-1: #f44336;\n}\n\n.ProseMirror {\n position: relative;\n}\n\n.ProseMirror {\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}\n\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n\n.ProseMirror li {\n position: relative;\n}\n\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\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}\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\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\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 ul,\n.ProseMirror ol {\n padding-left: 30px;\n}\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-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\n.ProseMirror-prompt h5 {\n margin: 0;\n font-weight: normal;\n font-size: 100%;\n color: #444;\n}\n\n.ProseMirror-prompt input[type=text],\n.ProseMirror-prompt textarea {\n background: #eee;\n border: none;\n outline: none;\n}\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\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.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\n.ProseMirror {\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\n.ProseMirror p {\n margin-bottom: 1em;\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: inline-block;\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}\n#editor.tokens-list .ProseMirror li span, #editor.styled-tokens-list .ProseMirror li span {\n min-width: 26px;\n display: inline-block;\n}\n#editor.tokens-list .ProseMirror li span br, #editor.styled-tokens-list .ProseMirror li span br {\n display: none;\n}\n#editor.tokens-list .ProseMirror li span:after:hover, #editor.styled-tokens-list .ProseMirror li span:after:hover {\n background: transparent url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxu cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJPdXRsaW5lIiB2aWV3 Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iIzAwMDAwMCIgZmlsbD0iIzAwMDAwMCIg d2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPjxwYXRoIGQ9Ik0xNiw4YTEsMSwwLDAs MC0xLjQxNCwwTDEyLDEwLjU4Niw5LjQxNCw4QTEsMSwwLDAsMCw4LDkuNDE0TDEw LjU4NiwxMiw4LDE0LjU4NkExLDEsMCwwLDAsOS40MTQsMTZMMTIsMTMuNDE0LDE0 LjU4NiwxNkExLDEsMCwwLDAsMTYsMTQuNTg2TDEzLjQxNCwxMiwxNiw5LjQxNEEx LDEsMCwwLDAsMTYsOFoiLz48cGF0aCBkPSJNMTIsMEExMiwxMiwwLDEsMCwyNCwx MiwxMi4wMTMsMTIuMDEzLDAsMCwwLDEyLDBabTAsMjJBMTAsMTAsMCwxLDEsMjIs MTIsMTAuMDExLDEwLjAxMSwwLDAsMSwxMiwyMloiLz48L3N2Zz4K\") no-repeat center/16px;\n}\n#editor.tokens-list .ProseMirror li span:after, #editor.styled-tokens-list .ProseMirror li span:after {\n content: \" \";\n min-width: 22px;\n background: transparent url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxu cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJPdXRsaW5lIiB2aWV3 Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iIzg4ODg4OCIgZmlsbD0iIzg4ODg4OCIg d2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPjxwYXRoIGQ9Ik0xNiw4YTEsMSwwLDAs MC0xLjQxNCwwTDEyLDEwLjU4Niw5LjQxNCw4QTEsMSwwLDAsMCw4LDkuNDE0TDEw LjU4NiwxMiw4LDE0LjU4NkExLDEsMCwwLDAsOS40MTQsMTZMMTIsMTMuNDE0LDE0 LjU4NiwxNkExLDEsMCwwLDAsMTYsMTQuNTg2TDEzLjQxNCwxMiwxNiw5LjQxNEEx LDEsMCwwLDAsMTYsOFoiLz48cGF0aCBkPSJNMTIsMEExMiwxMiwwLDEsMCwyNCwx MiwxMi4wMTMsMTIuMDEzLDAsMCwwLDEyLDBabTAsMjJBMTAsMTAsMCwxLDEsMjIs MTIsMTAuMDExLDEwLjAxMSwwLDAsMSwxMiwyMloiLz48L3N2Zz4K\") no-repeat center/16px;\n display: inline-block;\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.extra {\n flex-shrink: 0;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n padding: 0 8px;\n transition: all 0.24s cubic-bezier(0.42, 0.01, 1, 0.62);\n}\n\n.extra > .info {\n color: #809ab4;\n font-size: 12px;\n width: 100%;\n height: auto;\n overflow: hidden;\n pointer-events: none;\n text-align: right;\n}\n\n.extra > .info > span {\n font-weight: 700;\n}\n\n.extra .buttons-container {\n position: relative;\n display: flex;\n height: 100%;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-end;\n width: 0;\n transition: all 0.24s cubic-bezier(0.14, 0.69, 0.87, 0.54);\n}\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\n.extra.forced:hover .buttons-container .menu-container .btn {\n animation: none;\n pointer-events: all;\n}\n\n.extra.forced .buttons-container .btn {\n opacity: 1 !important;\n display: unset !important;\n}\n\n.extra .buttons-container .btn.forced {\n opacity: 1 !important;\n display: unset !important;\n}\n\n.extra.forced .info, .extra .info.hidden {\n opacity: 0 !important;\n z-index: 0 !important;\n}\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 width: 10px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n\n.extra .buttons-container .menu-container:last-child .btn {\n margin-right: 0;\n}\n\n.extra .buttons-container .btn svg path {\n fill: #809ab4;\n}\n\n.extra .buttons-container .btn.forced svg path {\n fill: crimson !important;\n}\n\n.extra .buttons-container .btn:hover svg path {\n fill: #274768;\n}\n\n.extra .buttons-container .menu-container .btn:hover::after {\n content: attr(data-content);\n position: absolute;\n top: -22px;\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\n.extra .buttons-container .btn:focus,\n.extra .buttons-container .btn:focus-within {\n border: none;\n outline: none;\n}\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\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\n.value-date-menu {\n width: unset !important;\n}\n\n.menu {\n display: block;\n position: absolute;\n top: 20px;\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: block;\n}\n\n.menu-container .item {\n height: 22px;\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\n.menu-container .item:hover {\n background: #f5f9fd;\n font-weight: 500;\n border-radius: 4px;\n}\n\nspan {\n position: relative;\n z-index: 1;\n}\n\nspan.date {\n margin-right: 1px;\n}\n\nspan.time {\n margin-left: 1px;\n}\n\nspan.measure {\n display: inline-block;\n margin-right: 1px;\n}\n\nspan.unit {\n margin-left: 1px;\n display: inline-block;\n}\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}\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\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\n.suggestion-palette ul {\n white-space: nowrap;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\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 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.suggestion-palette ul li:not(:first-child) svg.tab-icn,\n.suggestion-palette ul li:not(.focused) svg.return-icn,\n.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\n.suggestion-palette ul li.focused {\n background-color: rgb(237, 242, 247);\n}\n\n.suggestion-palette ul li.focused svg.return-icn {\n animation: growIn 0.24s ease-in forwards;\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: 30px;\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 max-height: 280px;\n}\n\n.date-picker {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: 30px;\n right: 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 left: 0px;\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}\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.icure-form {\n background-color: rgba(0, 0, 0, 0);\n display: grid;\n gap: 0 6px;\n grid-template-columns: repeat(24, 1fr);\n}\n\n.group {\n align-items: end;\n display: grid;\n}\n\n.subform {\n align-items: end;\n display: grid;\n position: relative;\n margin: 8px -8px 8px;\n padding: 0 8px 0;\n min-height: 64px;\n background-color: #e7f0fd;\n}\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: 14.4px;\n font-weight: 700;\n color: #084B83;\n padding: 2px;\n}\n.icure-form h3 {\n font-size: 13.2px;\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.icure-form .float-right-btn {\n position: absolute;\n right: 10px;\n cursor: pointer;\n}\n.icure-form .float-right-btn.top {\n top: 6px;\n}\n.icure-form .float-right-btn.bottom {\n bottom: -8px;\n}\n\n.icure-form-field {\n align-items: end;\n display: grid;\n}\n\n.error {\n color: red;\n font-size: 12px;\n}\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: 9px;\n color: #084B83;\n align-items: center;\n 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: inline-block;\n height: 1.4em;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.icure-text-field {\n position: relative;\n width: 100%;\n flex-direction: row;\n justify-content: stretch;\n align-items: center;\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 border-radius: 2px;\n padding: 0 8px;\n width: 100%;\n box-sizing: border-box;\n border-width: 1px;\n border-style: solid;\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 border-color: red;\n color: #000000;\n box-sizing: border-box;\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 .buttons-container .btn svg path,\n.icure-text-field .input-container .extra .buttons-container .btn svg path {\n fill: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .buttons-container .btn svg path:hover,\n.icure-text-field .input-container .extra .buttons-container .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-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: calc(1.4em + 1px);\n left: 9px;\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}` \n\nexport class MetadataButtonBar extends LitElement {\n\t@property() valueId: string\n\t@property() metadata: FieldMetadata\n\t@property() revision: string\n\t@property() versions: Version<FieldValue>[]\n\t@property() defaultLanguage: string\n\t@property() selectedLanguage?: string\n\t@property() languages: { [iso: string]: string } = {}\n\t@property() displayedLabels: { [iso: string]: string } = {}\n\t@property() handleMetadataChanged?: (metadata: FieldMetadata, id?: string) => string | undefined = undefined\n\t@property() handleLanguageSelected?: (iso?: string) => void = undefined\n\t@property() handleRevisionSelected?: (rev?: string | null) => void = undefined\n\t@property() ownersProvider: (terms: string[], ids?: string[], specialties?: string[]) => Promise<Suggestion[]> = async () => []\n\n\t@state() protected displayOwnersMenu = false\n\t@state() protected ownerInputValue = ''\n\t@state() protected availableOwners: Suggestion[] = []\n\t@state() protected loadedOwners: { [id: string]: Suggestion } = {}\n\n\t@state() protected displayLanguagesMenu = false\n\t@state() protected displayVersionsMenu = false\n\t@state() protected displayValueDateMenu = false\n\t@state() protected languageInputValue = ''\n\n\tstatic get styles() {\n\t\treturn [baseCss]\n\t}\n\n\t_handleClickOutside(event: MouseEvent): void {\n\t\tif (!event.composedPath().includes(this)) {\n\t\t\tthis.displayVersionsMenu = false\n\t\t\tthis.displayLanguagesMenu = false\n\t\t\tthis.displayOwnersMenu = false\n\t\t\tthis.displayValueDateMenu = false\n\t\t\tevent.stopPropagation()\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tdocument.addEventListener('click', this._handleClickOutside.bind(this))\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tdocument.removeEventListener('click', this._handleClickOutside.bind(this))\n\t}\n\n\trender() {\n\t\tconst revisionDate = this.versions.find((x) => x.revision === this.revision)?.modified\n\n\t\tconst owner = this.metadata?.owner\n\t\tif (owner && !this.loadedOwners[owner]) {\n\t\t\tthis.loadedOwners = { ...this.loadedOwners, [owner]: { id: owner, text: '', terms: [], label: {} } } // Make sure we do not loop endlessly\n\t\t\tthis.ownersProvider &&\n\t\t\t\tthis.ownersProvider([], [owner]).then((availableOwners) => (this.loadedOwners = availableOwners.reduce((acc, o) => ({ ...acc, [o.id]: o }), this.loadedOwners)))\n\t\t}\n\n\t\tconst forcedByMenu = this.displayOwnersMenu || this.displayLanguagesMenu || this.displayValueDateMenu || this.displayVersionsMenu\n\n\t\tconst discordantMetadata = this.metadata?.discordantMetadata?.()\n\n\t\tconst forcedByOwner = discordantMetadata?.owner !== undefined\n\t\tconst forcedByValueDate = discordantMetadata?.valueDate !== undefined\n\t\tconst forcedByLanguage = this.selectedLanguage && this.defaultLanguage !== this.selectedLanguage\n\t\tconst forcedByVersion = this.revision && this.revision !== this.versions?.[0]?.revision\n\n\t\treturn html` <div id=\"extra\" class=${'extra' + (forcedByMenu ? ' forced' : '')}>\n\t\t\t<div class=\"info ${forcedByOwner || forcedByLanguage || forcedByValueDate ? 'hidden' : ''}\">•</div>\n\t\t\t<div class=\"buttons-container\">\n\t\t\t\t<div class=\"menu-container\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tdata-content=\"${(this.metadata?.owner ? this.loadedOwners[this.metadata?.owner]?.text : '') ?? ''}\"\n\t\t\t\t\t\t@click=\"${() => this.toggleOwnersMenu(this.metadata?.owner)}\"\n\t\t\t\t\t\tclass=\"btn menu-trigger author ${forcedByOwner ? 'forced' : ''}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${ownerPicto}\n\t\t\t\t\t</button>\n\t\t\t\t\t${this.displayOwnersMenu\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<div id=\"menu\" class=\"menu\">\n\t\t\t\t\t\t\t\t\t<div class=\"input-container\">${searchPicto} <input id=\"ownerSearch\" @input=\"${this.searchOwner}\" /></div>\n\t\t\t\t\t\t\t\t\t${(this.availableOwners?.length ? this.availableOwners : Object.values(this.loadedOwners))?.map(\n\t\t\t\t\t\t\t\t\t\t(x) => html`<button @click=\"${() => this.handleOwnerButtonClicked(x.id)}\" id=\"${x.id}\" class=\"item\">${x.text}</button>`,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t `\n\t\t\t\t\t\t: ''}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"menu-container\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tdata-content=\"${this.metadata?.valueDate ? format(anyDateToDate(this.metadata.valueDate)!, 'yyyy-MM-dd HH:mm:ss').replace(/ 00:00:00$/, '') : ''}\"\n\t\t\t\t\t\tclass=\"btn date ${forcedByValueDate ? 'forced' : ''}\"\n\t\t\t\t\t\t@click=\"${() => this.toggleValueDateMenu()}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${datePicto}\n\t\t\t\t\t</button>\n\t\t\t\t\t${this.displayValueDateMenu\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<div id=\"menu\" class=\"menu value-date-menu\">\n\t\t\t\t\t\t\t\t\t<app-date-picker\n\t\t\t\t\t\t\t\t\t\tlocale=\"${this.defaultLanguage ?? 'en'}\"\n\t\t\t\t\t\t\t\t\t\tstyle=\"\"\n\t\t\t\t\t\t\t\t\t\tmax=\"${MAX_DATE}\"\n\t\t\t\t\t\t\t\t\t\tmin=\"${toResolvedDate('1900-01-01')}\"\n\t\t\t\t\t\t\t\t\t\t@date-updated=\"${this.dateUpdated}\"\n\t\t\t\t\t\t\t\t\t></app-date-picker>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t `\n\t\t\t\t\t\t: ''}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"menu-container\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tdata-content=\"${this.revision === null\n\t\t\t\t\t\t\t? 'latest'\n\t\t\t\t\t\t\t: this.revision\n\t\t\t\t\t\t\t? `rev-${this.revision.split('-')[0]} ${revisionDate ? `(${format(new Date(revisionDate), 'yyyy-MM-dd')})` : ''}`\n\t\t\t\t\t\t\t: ''}\"\n\t\t\t\t\t\t@click=\"${this.toggleVersionsMenu}\"\n\t\t\t\t\t\tclass=\"btn version ${forcedByVersion ? 'forced' : ''}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${versionPicto}\n\t\t\t\t\t</button>\n\t\t\t\t\t${this.displayVersionsMenu\n\t\t\t\t\t\t? html` <div id=\"menu\" class=\"menu\">\n\t\t\t\t\t\t\t\t${this.versions.map(\n\t\t\t\t\t\t\t\t\t(x) =>\n\t\t\t\t\t\t\t\t\t\thtml`<button class=\"item ${x.revision === this.revision ? 'selected' : ''}\" @click=\"${() => this.handleRevisionButtonClicked(x.revision)}\">\n\t\t\t\t\t\t\t\t\t\t\t${x.revision == null ? 'Latest' : x.revision ?? ''} ${x.modified ? `(${format(new Date(x.modified), 'yyyy-MM-dd')})` : ''}\n\t\t\t\t\t\t\t\t\t\t</button>`,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t </div>`\n\t\t\t\t\t\t: ''}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"menu-container\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tdata-content=\"${this.selectedLanguage ? languageName(this.selectedLanguage) ?? this.selectedLanguage : languageName(this.defaultLanguage) ?? this.defaultLanguage}\"\n\t\t\t\t\t\t@click=\"${this.toggleLanguagesMenu}\"\n\t\t\t\t\t\tclass=\"btn menu-trigger language ${forcedByLanguage ? 'forced' : ''}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${i18nPicto}\n\t\t\t\t\t</button>\n\t\t\t\t\t${this.displayLanguagesMenu\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<div id=\"menu\" class=\"menu\">\n\t\t\t\t\t\t\t\t\t<div class=\"input-container\">${searchPicto} <input id=\"languageSearch\" @input=\"${this.searchLanguage}\" /></div>\n\t\t\t\t\t\t\t\t\t${[this.defaultLanguage, ...Object.keys(this.languages).filter((x) => x !== this.defaultLanguage)]\n\t\t\t\t\t\t\t\t\t\t.filter((x) => !!x && (languageName(x) ?? this.languages[x] ?? x).toLowerCase().includes((this.languageInputValue ?? '').toLowerCase()))\n\t\t\t\t\t\t\t\t\t\t.map((x) => html`<button @click=\"${() => this.handleLanguageButtonClicked(x)}\" id=\"${x}\" class=\"item\">${x ? languageName(x) : ''}</button>`)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t `\n\t\t\t\t\t\t: ''}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>`\n\t}\n\n\ttoggleOwnersMenu(ownerId?: string) {\n\t\tthis.displayOwnersMenu = !this.displayOwnersMenu\n\t\tif (this.displayOwnersMenu) {\n\t\t\tthis.displayLanguagesMenu = false\n\t\t\tthis.displayVersionsMenu = false\n\t\t\tthis.displayValueDateMenu = false\n\n\t\t\tsetTimeout(() => {\n\t\t\t\t;(this.renderRoot.querySelector('#ownerSearch') as HTMLInputElement)?.focus()\n\t\t\t}, 0)\n\t\t}\n\t}\n\n\tsearchOwner(e: InputEvent) {\n\t\tconst text = (e.target as HTMLInputElement).value\n\t\tsetTimeout(async () => {\n\t\t\tif ((this.renderRoot.querySelector('#ownerSearch') as HTMLInputElement)?.value === text) {\n\t\t\t\tif (this.ownersProvider) {\n\t\t\t\t\tconst availableOwners = await this.ownersProvider(text.split(' '))\n\t\t\t\t\tconsole.log(availableOwners)\n\t\t\t\t\tthis.availableOwners = availableOwners\n\t\t\t\t}\n\t\t\t}\n\t\t}, 300)\n\t}\n\n\tsearchLanguage(e: InputEvent) {\n\t\tthis.languageInputValue = (e.target as HTMLInputElement).value\n\t}\n\n\thandleOwnerButtonClicked(id: string) {\n\t\tconst valueId = this.valueId\n\t\tthis.handleMetadataChanged && valueId && this.handleMetadataChanged({ label: this.metadata.label, owner: id })\n\t\tthis.displayOwnersMenu = false\n\t}\n\n\thandleLanguageButtonClicked(id: string) {\n\t\tthis.handleLanguageSelected?.(id)\n\t\tthis.displayOwnersMenu = false\n\t}\n\n\thandleRevisionButtonClicked(rev?: string | null) {\n\t\tthis.handleRevisionSelected?.(rev)\n\t\tthis.displayVersionsMenu = false\n\t}\n\n\ttoggleValueDateMenu() {\n\t\tthis.displayValueDateMenu = !this.displayValueDateMenu\n\t\tif (this.displayValueDateMenu) {\n\t\t\tthis.displayOwnersMenu = false\n\t\t\tthis.displayLanguagesMenu = false\n\t\t\tthis.displayVersionsMenu = false\n\t\t}\n\t}\n\n\tdateUpdated(date: CustomEventDetail['date-updated']): void {\n\t\tconst parts = date.detail.value?.split('-')\n\t\tif (parts && parts.length === 3) {\n\t\t\tconst fuzzyDateValue = parseInt(parts[0]) * 10000 + parseInt(parts[1]) * 100 + parseInt(parts[2])\n\t\t\tconst valueId = this.valueId\n\t\t\tthis.handleMetadataChanged && this.handleMetadataChanged({ label: this.metadata.label, valueDate: fuzzyDateValue * 1000000 }, valueId)\n\t\t\tthis.displayOwnersMenu = false\n\t\t}\n\t}\n\n\ttoggleLanguagesMenu() {\n\t\tthis.displayLanguagesMenu = !this.displayLanguagesMenu\n\t\tif (this.displayLanguagesMenu) {\n\t\t\tthis.displayOwnersMenu = false\n\t\t\tthis.displayVersionsMenu = false\n\t\t\tthis.displayValueDateMenu = false\n\t\t}\n\t}\n\n\ttoggleVersionsMenu() {\n\t\tthis.displayVersionsMenu = !this.displayVersionsMenu\n\t\tif (this.displayLanguagesMenu) {\n\t\t\tthis.displayOwnersMenu = false\n\t\t\tthis.displayLanguagesMenu = false\n\t\t\tthis.displayValueDateMenu = false\n\t\t}\n\t}\n}\n"]}
|