@icure/form 2.0.10 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.yarn/cache/@babel-runtime-npm-7.28.4-31bc1b0001-934b0a0460.zip +0 -0
- package/.yarn/cache/@icure-api-npm-5.3.18-99d397b97c-0da319f009.zip +0 -0
- package/.yarn/cache/@icure-motss-app-datepicker-npm-6.0.0-rc.40-ca1da7abbb-9bbe2bed34.zip +0 -0
- package/.yarn/cache/@lit-labs-ssr-dom-shim-npm-1.4.0-e5ef5fbeba-e267c25576.zip +0 -0
- package/.yarn/cache/@lit-reactive-element-npm-2.1.1-3875228c32-b9bbc9c089.zip +0 -0
- package/.yarn/cache/@lit-task-npm-1.0.3-48f265b3e9-790b6a2603.zip +0 -0
- package/.yarn/cache/@types-linkify-it-npm-5.0.0-576a16b976-ec98e03aa8.zip +0 -0
- package/.yarn/cache/@types-markdown-it-npm-14.1.2-d0c4e12c49-ad66e0b377.zip +0 -0
- package/.yarn/cache/@types-mdurl-npm-2.0.0-2f4116c0b0-78746e96c6.zip +0 -0
- package/.yarn/cache/big-integer-npm-1.6.52-4bec75720c-6e86885787.zip +0 -0
- package/.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip +0 -0
- package/.yarn/cache/libphonenumber-js-npm-1.12.23-68ac3c21d2-aad6c9ddc4.zip +0 -0
- package/.yarn/cache/{lit-element-npm-4.1.1-bb20932b82-74d0f2d6fb.zip → lit-element-npm-4.2.1-b5bc114ced-5925326176.zip} +0 -0
- package/.yarn/cache/{lit-html-npm-3.2.1-1662fc597d-1bacd9f8b2.zip → lit-html-npm-3.3.1-e3722d4f4a-de07c66945.zip} +0 -0
- package/.yarn/cache/{lit-npm-3.2.1-27cb5b7782-ee22bbc53d.zip → lit-npm-3.3.1-8f683c51f1-fb88f1ff80.zip} +0 -0
- package/.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip +0 -0
- package/.yarn/cache/moment-npm-2.30.1-1c51a5c631-859236bab1.zip +0 -0
- package/.yarn/cache/prosemirror-commands-npm-1.7.1-5b2afb6640-2316c40ea2.zip +0 -0
- package/.yarn/cache/prosemirror-history-npm-1.4.1-ad68c86bb7-90f9bf59bc.zip +0 -0
- package/.yarn/cache/prosemirror-keymap-npm-1.2.3-0e7e0c8195-0a2eed2771.zip +0 -0
- package/.yarn/cache/prosemirror-markdown-npm-1.13.2-6e2f179fd8-ce9fcb3b13.zip +0 -0
- package/.yarn/cache/prosemirror-model-npm-1.25.3-95b23ed79b-2720e49795.zip +0 -0
- package/.yarn/cache/prosemirror-schema-basic-npm-1.2.4-8f943ded01-10ed022990.zip +0 -0
- package/.yarn/cache/prosemirror-schema-list-npm-1.5.1-7b138c5fed-6c7041e5b8.zip +0 -0
- package/.yarn/cache/prosemirror-transform-npm-1.10.4-f765dfe652-7b8b3ed82c.zip +0 -0
- package/.yarn/cache/prosemirror-view-npm-1.41.2-7f800b4d2b-263f15bec9.zip +0 -0
- package/.yarn/cache/text-encoding-npm-0.7.0-ff0c4af052-b6109a843f.zip +0 -0
- package/.yarn/cache/uuid-encoder-npm-1.2.0-6a9a810c6d-dd06230f08.zip +0 -0
- package/.yarn/cache/uuid-npm-8.3.2-eca0baba53-5575a8a75c.zip +0 -0
- package/.yarn/install-state.gz +0 -0
- package/components/common/field-with-options.d.ts +2 -2
- package/components/common/field-with-options.js +0 -1
- package/components/common/field-with-options.js.map +1 -1
- package/components/common/field.d.ts +10 -3
- package/components/common/field.js +21 -0
- package/components/common/field.js.map +1 -1
- package/components/common/metadata-buttons-bar.d.ts +2 -1
- package/components/common/metadata-buttons-bar.js +60 -28
- package/components/common/metadata-buttons-bar.js.map +1 -1
- package/components/common/styles/paths.d.ts +1 -0
- package/components/common/styles/paths.js +29 -16
- package/components/common/styles/paths.js.map +1 -1
- package/components/common/utils.js +4 -4
- package/components/common/utils.js.map +1 -1
- package/components/icure-button/index.d.ts +1 -1
- package/components/icure-button/index.js +54 -14
- package/components/icure-button/index.js.map +1 -1
- package/components/icure-button-group/index.d.ts +5 -3
- package/components/icure-button-group/index.js +81 -45
- package/components/icure-button-group/index.js.map +1 -1
- package/components/icure-date-picker/index.d.ts +6 -3
- package/components/icure-date-picker/index.js +62 -22
- package/components/icure-date-picker/index.js.map +1 -1
- package/components/icure-dropdown-field/index.d.ts +5 -2
- package/components/icure-dropdown-field/index.js +58 -18
- package/components/icure-dropdown-field/index.js.map +1 -1
- package/components/icure-form/fields/button-group/checkbox.d.ts +2 -1
- package/components/icure-form/fields/button-group/checkbox.js +1 -1
- package/components/icure-form/fields/button-group/checkbox.js.map +1 -1
- package/components/icure-form/fields/button-group/radio-button.d.ts +2 -1
- package/components/icure-form/fields/button-group/radio-button.js +1 -1
- package/components/icure-form/fields/button-group/radio-button.js.map +1 -1
- package/components/icure-form/fields/date-picker/date-picker.d.ts +2 -1
- package/components/icure-form/fields/date-picker/date-picker.js +1 -1
- package/components/icure-form/fields/date-picker/date-picker.js.map +1 -1
- package/components/icure-form/fields/date-picker/date-time-picker.d.ts +2 -1
- package/components/icure-form/fields/date-picker/date-time-picker.js +1 -1
- package/components/icure-form/fields/date-picker/date-time-picker.js.map +1 -1
- package/components/icure-form/fields/date-picker/time-picker.d.ts +2 -1
- package/components/icure-form/fields/date-picker/time-picker.js +1 -1
- package/components/icure-form/fields/date-picker/time-picker.js.map +1 -1
- package/components/icure-form/fields/dropdown/dropdown-field.d.ts +1 -1
- package/components/icure-form/fields/dropdown/dropdown-field.js +1 -1
- package/components/icure-form/fields/dropdown/dropdown-field.js.map +1 -1
- package/components/icure-form/fields/items-list-field/items-list-field.d.ts +2 -1
- package/components/icure-form/fields/items-list-field/items-list-field.js +1 -1
- package/components/icure-form/fields/items-list-field/items-list-field.js.map +1 -1
- package/components/icure-form/fields/measure-field/measure-field.d.ts +2 -1
- package/components/icure-form/fields/measure-field/measure-field.js +2 -1
- package/components/icure-form/fields/measure-field/measure-field.js.map +1 -1
- package/components/icure-form/fields/number-field/number-field.d.ts +2 -1
- package/components/icure-form/fields/number-field/number-field.js +2 -1
- package/components/icure-form/fields/number-field/number-field.js.map +1 -1
- package/components/icure-form/fields/text-field/text-field.d.ts +2 -1
- package/components/icure-form/fields/text-field/text-field.js +2 -1
- package/components/icure-form/fields/text-field/text-field.js.map +1 -1
- package/components/icure-form/fields/token-field/token-field.d.ts +2 -1
- package/components/icure-form/fields/token-field/token-field.js +1 -1
- package/components/icure-form/fields/token-field/token-field.js.map +1 -1
- package/components/icure-form/index.d.ts +6 -2
- package/components/icure-form/index.js +111 -21
- package/components/icure-form/index.js.map +1 -1
- package/components/icure-form/renderer/form/form-selection-button.js +48 -12
- package/components/icure-form/renderer/form/form-selection-button.js.map +1 -1
- package/components/icure-form/renderer/form/form.js +183 -142
- package/components/icure-form/renderer/form/form.js.map +1 -1
- package/components/icure-form/renderer/index.d.ts +1 -1
- package/components/icure-form/renderer/index.js.map +1 -1
- package/components/icure-label/index.js +54 -14
- package/components/icure-label/index.js.map +1 -1
- package/components/icure-text-field/index.d.ts +5 -2
- package/components/icure-text-field/index.js +151 -49
- package/components/icure-text-field/index.js.map +1 -1
- package/components/icure-text-field/prosemirror-commands.js +2 -3
- package/components/icure-text-field/prosemirror-commands.js.map +1 -1
- package/components/icure-text-field/prosemirror-utils.js +1 -2
- package/components/icure-text-field/prosemirror-utils.js.map +1 -1
- package/components/icure-text-field/schema/common-marks.js +2 -2
- package/components/icure-text-field/schema/common-marks.js.map +1 -1
- package/components/icure-text-field/schema/date-time-schema.js +3 -4
- package/components/icure-text-field/schema/date-time-schema.js.map +1 -1
- package/components/icure-text-field/schema/decimal-schema.js +1 -2
- package/components/icure-text-field/schema/decimal-schema.js.map +1 -1
- package/components/icure-text-field/schema/index.js +1 -2
- package/components/icure-text-field/schema/index.js.map +1 -1
- package/components/icure-text-field/schema/items-list-schema.js +1 -2
- package/components/icure-text-field/schema/items-list-schema.js.map +1 -1
- package/components/icure-text-field/schema/markdown-schema.js +3 -25
- package/components/icure-text-field/schema/markdown-schema.js.map +1 -1
- package/components/icure-text-field/schema/measure-schema.js +2 -2
- package/components/icure-text-field/schema/measure-schema.js.map +1 -1
- package/components/icure-text-field/schema/token-schema.js +1 -2
- package/components/icure-text-field/schema/token-schema.js.map +1 -1
- package/components/icure-text-field/schema/utils.js +2 -3
- package/components/icure-text-field/schema/utils.js.map +1 -1
- package/components/themes/default/index.js.map +1 -1
- package/components/themes/icure-blue/index.js +58 -3
- package/components/themes/icure-blue/index.js.map +1 -1
- package/components/themes/kendo/index.js +9 -5
- package/components/themes/kendo/index.js.map +1 -1
- package/conversion/icure-convert.js +1 -2
- package/conversion/icure-convert.js.map +1 -1
- package/generic/model.d.ts +5 -4
- package/generic/model.js.map +1 -1
- package/icure/form-values-container.d.ts +21 -13
- package/icure/form-values-container.js +235 -138
- package/icure/form-values-container.js.map +1 -1
- package/icure/icure-utils.js +6 -6
- package/icure/icure-utils.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/package.json +16 -13
- package/utils/dates.js +6 -7
- package/utils/dates.js.map +1 -1
- package/utils/fields-values-provider.d.ts +1 -1
- package/utils/fields-values-provider.js +16 -8
- package/utils/fields-values-provider.js.map +1 -1
- package/utils/interpreter.d.ts +2 -3
- package/utils/interpreter.js +11 -2
- package/utils/interpreter.js.map +1 -1
- package/utils/no-lodash.js +3 -4
- package/utils/no-lodash.js.map +1 -1
- package/utils/primitive.d.ts +1 -1
- package/utils/primitive.js +9 -9
- package/utils/primitive.js.map +1 -1
- package/.yarn/cache/@lit-labs-ssr-dom-shim-npm-1.2.1-d14ce3e3e5-5667c44f58.zip +0 -0
- package/.yarn/cache/@lit-reactive-element-npm-2.0.4-4836436301-368d788d9e.zip +0 -0
- package/.yarn/cache/app-datepicker-npm-6.0.0-rc.33-f74d593ddf-6490949c45.zip +0 -0
- package/.yarn/cache/lit-ntml-npm-3.0.6-98ebc6c1ac-2917c778d9.zip +0 -0
- package/.yarn/cache/lodash-es-npm-4.17.21-b45832dfce-05cbffad6e.zip +0 -0
- package/.yarn/cache/nodemod-npm-3.0.6-844d650911-47ffe619b3.zip +0 -0
- package/.yarn/cache/normalize-diacritics-npm-3.0.12-93e2346015-5ddc2cfaf8.zip +0 -0
- package/.yarn/cache/parse5-npm-6.0.1-70a35a494a-7d569a176c.zip +0 -0
- package/.yarn/cache/prosemirror-commands-npm-1.5.2-27f8f3fee9-ff65063a8c.zip +0 -0
- package/.yarn/cache/prosemirror-history-npm-1.3.2-cc128c8ee6-b85fe6378a.zip +0 -0
- package/.yarn/cache/prosemirror-keymap-npm-1.2.2-efb8276b00-85fe4fc303.zip +0 -0
- package/.yarn/cache/prosemirror-markdown-npm-1.12.0-28e990f443-d7607ee1a6.zip +0 -0
- package/.yarn/cache/prosemirror-model-npm-1.19.4-4fd32211c8-12c277ed30.zip +0 -0
- package/.yarn/cache/prosemirror-model-npm-1.23.0-57eb718541-f5ab1593cb.zip +0 -0
- package/.yarn/cache/prosemirror-schema-basic-npm-1.2.2-def7bf2ec7-1f93f8678c.zip +0 -0
- package/.yarn/cache/prosemirror-schema-list-npm-1.3.0-23c1830a7e-03654e37c8.zip +0 -0
- package/.yarn/cache/prosemirror-transform-npm-1.10.2-1c2da9123e-93b0c03aff.zip +0 -0
- package/.yarn/cache/prosemirror-transform-npm-1.8.0-ea3ca0411f-6d16ca4f95.zip +0 -0
- package/.yarn/cache/prosemirror-view-npm-1.32.7-63c3e4b182-40c9038a52.zip +0 -0
- package/.yarn/cache/prosemirror-view-npm-1.36.0-830888802f-38986f55e4.zip +0 -0
- package/components/icure-text-field/schema/items-list.d.ts +0 -3
- package/components/icure-text-field/schema/items-list.js +0 -31
- package/components/icure-text-field/schema/items-list.js.map +0 -1
- package/components/themes/ehr-lite/index.d.ts +0 -1
- package/components/themes/ehr-lite/index.js +0 -321
- package/components/themes/ehr-lite/index.js.map +0 -1
- package/utils/form-value-container.d.ts +0 -3
- package/utils/form-value-container.js +0 -34
- package/utils/form-value-container.js.map +0 -1
- package/utils/icure-utils.d.ts +0 -16
- package/utils/icure-utils.js +0 -105
- package/utils/icure-utils.js.map +0 -1
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Field } from './field';
|
|
2
2
|
import { Code } from '../model';
|
|
3
|
-
export declare class FieldWithOptionsMixinInterface extends Field {
|
|
3
|
+
export declare abstract class FieldWithOptionsMixinInterface extends Field {
|
|
4
4
|
optionsProvider: (language: string, terms?: string[]) => Promise<Code[]>;
|
|
5
5
|
displayedOptions: Code[];
|
|
6
6
|
}
|
|
7
|
-
type Constructor<T extends Field> = new (...args: any[]) => T;
|
|
7
|
+
type Constructor<T extends Field> = abstract new (...args: any[]) => T;
|
|
8
8
|
export declare const FieldWithOptionsMixin: <T extends Constructor<Field>>(superClass: T) => Constructor<FieldWithOptionsMixinInterface> & T;
|
|
9
9
|
export {};
|
|
@@ -19,7 +19,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
exports.FieldWithOptionsMixin = void 0;
|
|
22
|
-
const field_1 = require("./field");
|
|
23
22
|
const decorators_js_1 = require("lit/decorators.js");
|
|
24
23
|
const FieldWithOptionsMixin = (superClass) => {
|
|
25
24
|
class FieldWithOptionsMixinClass extends superClass {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-with-options.js","sourceRoot":"","sources":["../../../tmp/components/common/field-with-options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"field-with-options.js","sourceRoot":"","sources":["../../../tmp/components/common/field-with-options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAGA,qDAAmD;AAS5C,MAAM,qBAAqB,GAAG,CAA+B,UAAa,EAAE,EAAE;IACpF,MAAe,0BAA2B,SAAQ,UAAU;QAA5D;;YACa,oBAAe,GAA4D,GAAS,EAAE,gDAAC,OAAA,EAAE,CAAA,GAAA,CAAA;YAC5F,qBAAgB,GAAW,EAAE,CAAA;QAQvC,CAAC;QANO,YAAY,CAAC,kBAAkC;YACrD,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAA;YACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAO,OAAO,EAAE,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAA;YAChC,CAAC,CAAA,CAAC,CAAA;QACH,CAAC;KACD;IATY;QAAX,IAAA,wBAAQ,GAAE;;uEAA0F;IAC5F;QAAR,IAAA,qBAAK,GAAE;;wEAA8B;IASvC,oDAAoD;IACpD,OAAO,0BAA6E,CAAA;AACrF,CAAC,CAAA;AAdY,QAAA,qBAAqB,yBAcjC","sourcesContent":["import { Field } from './field'\nimport { PropertyValues } from '@lit/reactive-element'\nimport { Code } from '../model'\nimport { property, state } from 'lit/decorators.js'\n\nexport declare abstract class FieldWithOptionsMixinInterface extends Field {\n\toptionsProvider: (language: string, terms?: string[]) => Promise<Code[]>\n\tdisplayedOptions: Code[]\n}\n\ntype Constructor<T extends Field> = abstract new (...args: any[]) => T\n\nexport const FieldWithOptionsMixin = <T extends Constructor<Field>>(superClass: T) => {\n\tabstract class FieldWithOptionsMixinClass extends superClass {\n\t\t@property() optionsProvider: (language: string, terms?: string[]) => Promise<Code[]> = async () => []\n\t\t@state() displayedOptions: Code[] = []\n\n\t\tpublic firstUpdated(_changedProperties: PropertyValues) {\n\t\t\tsuper.firstUpdated(_changedProperties)\n\t\t\tthis.optionsProvider(this.language()).then(async (options) => {\n\t\t\t\tthis.displayedOptions = options\n\t\t\t})\n\t\t}\n\t}\n\t// Cast return type to the superClass type passed in\n\treturn FieldWithOptionsMixinClass as Constructor<FieldWithOptionsMixinInterface> & T\n}\n"]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
1
|
+
import { LitElement, TemplateResult } from 'lit';
|
|
2
2
|
import { FieldMetadata, FieldValue, Labels } from '../model';
|
|
3
3
|
import { Suggestion, VersionedData } from '../../generic';
|
|
4
|
+
import { Task } from '@lit/task';
|
|
4
5
|
/**
|
|
5
6
|
* Base class for all fields.
|
|
6
7
|
*/
|
|
7
|
-
export declare class Field extends LitElement {
|
|
8
|
+
export declare abstract class Field extends LitElement {
|
|
8
9
|
/**
|
|
9
10
|
* The label of the field. This is a unique per form property that is used to create data in the formValuesContainer.
|
|
10
11
|
*/
|
|
@@ -38,8 +39,9 @@ export declare class Field extends LitElement {
|
|
|
38
39
|
/**
|
|
39
40
|
* Provides the value of the field.
|
|
40
41
|
*/
|
|
42
|
+
defaultValueProvider?: () => FieldValue;
|
|
41
43
|
valueProvider?: () => VersionedData<FieldValue>;
|
|
42
|
-
validationErrorsProvider?: () => string[]
|
|
44
|
+
validationErrorsProvider?: () => Promise<[FieldMetadata, string][]>;
|
|
43
45
|
ownersProvider: (terms: string[], ids?: string[], specialties?: string[]) => Promise<Suggestion[]>;
|
|
44
46
|
metadataProvider?: (id: string, revisions: (string | null)[]) => VersionedData<FieldMetadata>;
|
|
45
47
|
handleValueChanged?: (label: string, language: string, value?: FieldValue, id?: string) => string | undefined;
|
|
@@ -49,5 +51,10 @@ export declare class Field extends LitElement {
|
|
|
49
51
|
displayMetadata: boolean;
|
|
50
52
|
selectedLanguage?: string;
|
|
51
53
|
selectedRevision?: string;
|
|
54
|
+
_asyncTask: Task<readonly [], [FieldMetadata, string][] | readonly []>;
|
|
52
55
|
language(): string;
|
|
56
|
+
render(): TemplateResult | TemplateResult[] | undefined;
|
|
57
|
+
abstract renderSync({}: {
|
|
58
|
+
validationErrors: [FieldMetadata, string][];
|
|
59
|
+
}): TemplateResult | TemplateResult[] | undefined;
|
|
53
60
|
}
|
|
@@ -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 task_1 = require("@lit/task");
|
|
24
25
|
/**
|
|
25
26
|
* Base class for all fields.
|
|
26
27
|
*/
|
|
@@ -48,6 +49,7 @@ class Field extends lit_1.LitElement {
|
|
|
48
49
|
/**
|
|
49
50
|
* Provides the value of the field.
|
|
50
51
|
*/
|
|
52
|
+
this.defaultValueProvider = undefined;
|
|
51
53
|
this.valueProvider = undefined;
|
|
52
54
|
this.validationErrorsProvider = undefined;
|
|
53
55
|
this.ownersProvider = () => __awaiter(this, void 0, void 0, function* () { return []; });
|
|
@@ -58,11 +60,26 @@ class Field extends lit_1.LitElement {
|
|
|
58
60
|
this.readonly = false;
|
|
59
61
|
this.displayMetadata = false;
|
|
60
62
|
this.selectedLanguage = undefined;
|
|
63
|
+
this._asyncTask = new task_1.Task(this, {
|
|
64
|
+
task: () => __awaiter(this, void 0, void 0, function* () {
|
|
65
|
+
return this.validationErrorsProvider ? yield this.validationErrorsProvider() : [];
|
|
66
|
+
}),
|
|
67
|
+
args: () => [],
|
|
68
|
+
});
|
|
61
69
|
}
|
|
62
70
|
language() {
|
|
63
71
|
var _a, _b;
|
|
64
72
|
return (_b = (this.translate ? (_a = this.selectedLanguage) !== null && _a !== void 0 ? _a : this.defaultLanguage : this.defaultLanguage)) !== null && _b !== void 0 ? _b : 'en';
|
|
65
73
|
}
|
|
74
|
+
render() {
|
|
75
|
+
return this.validationErrorsProvider
|
|
76
|
+
? this._asyncTask.render({
|
|
77
|
+
pending: () => this.renderSync({ validationErrors: [] }),
|
|
78
|
+
complete: (validationErrors) => this.renderSync({ validationErrors }),
|
|
79
|
+
error: () => this.renderSync({ validationErrors: [] }),
|
|
80
|
+
})
|
|
81
|
+
: this.renderSync({ validationErrors: [] });
|
|
82
|
+
}
|
|
66
83
|
}
|
|
67
84
|
exports.Field = Field;
|
|
68
85
|
__decorate([
|
|
@@ -93,6 +110,10 @@ __decorate([
|
|
|
93
110
|
(0, decorators_js_1.property)(),
|
|
94
111
|
__metadata("design:type", Function)
|
|
95
112
|
], Field.prototype, "translationProvider", void 0);
|
|
113
|
+
__decorate([
|
|
114
|
+
(0, decorators_js_1.property)(),
|
|
115
|
+
__metadata("design:type", Function)
|
|
116
|
+
], Field.prototype, "defaultValueProvider", void 0);
|
|
96
117
|
__decorate([
|
|
97
118
|
(0, decorators_js_1.property)(),
|
|
98
119
|
__metadata("design:type", Function)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../../tmp/components/common/field.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,qDAAmD;AACnD,
|
|
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 } 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,7 +1,7 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
2
|
import { FieldMetadata, FieldValue } from '../model';
|
|
3
3
|
import { Suggestion, Version } from '../../generic';
|
|
4
|
-
import { CustomEventDetail } from 'app-datepicker/dist/typings';
|
|
4
|
+
import { CustomEventDetail } from '@icure/motss-app-datepicker/dist/typings.js';
|
|
5
5
|
export declare class MetadataButtonBar extends LitElement {
|
|
6
6
|
valueId: string;
|
|
7
7
|
metadata: FieldMetadata;
|
|
@@ -16,6 +16,7 @@ export declare class MetadataButtonBar extends LitElement {
|
|
|
16
16
|
displayedLabels: {
|
|
17
17
|
[iso: string]: string;
|
|
18
18
|
};
|
|
19
|
+
handleReset?: () => void | undefined;
|
|
19
20
|
handleMetadataChanged?: (metadata: FieldMetadata, id?: string) => string | undefined;
|
|
20
21
|
handleLanguageSelected?: (iso?: string) => void;
|
|
21
22
|
handleRevisionSelected?: (rev?: string | null) => void;
|
|
@@ -24,12 +24,31 @@ const decorators_js_1 = require("lit/decorators.js");
|
|
|
24
24
|
const paths_1 = require("./styles/paths");
|
|
25
25
|
const date_fns_1 = require("date-fns");
|
|
26
26
|
const dates_1 = require("../../utils/dates");
|
|
27
|
-
const
|
|
28
|
-
const
|
|
27
|
+
const to_resolved_date_js_1 = require("@icure/motss-app-datepicker/dist/helpers/to-resolved-date.js");
|
|
28
|
+
const constants_js_1 = require("@icure/motss-app-datepicker/dist/constants.js");
|
|
29
29
|
const languages_1 = require("../../utils/languages");
|
|
30
30
|
// @ts-ignore
|
|
31
31
|
const lit_2 = require("lit");
|
|
32
32
|
const baseCss = (0, lit_2.css) `@charset "UTF-8";
|
|
33
|
+
.tab-container .tab-bar li {
|
|
34
|
+
display: inline-block;
|
|
35
|
+
padding: 8px 16px;
|
|
36
|
+
cursor: pointer;
|
|
37
|
+
color: #000000;
|
|
38
|
+
font-size: 14px;
|
|
39
|
+
font-weight: 500;
|
|
40
|
+
}
|
|
41
|
+
.tab-container .tab-bar li.active {
|
|
42
|
+
background-color: #656565;
|
|
43
|
+
color: white;
|
|
44
|
+
}
|
|
45
|
+
.tab-container .tab-content .tab {
|
|
46
|
+
display: none;
|
|
47
|
+
}
|
|
48
|
+
.tab-container .tab-content .tab.active {
|
|
49
|
+
display: block;
|
|
50
|
+
}
|
|
51
|
+
|
|
33
52
|
:host {
|
|
34
53
|
--bg-color-1: #f44336;
|
|
35
54
|
}
|
|
@@ -78,15 +97,15 @@ const baseCss = (0, lit_2.css) `@charset "UTF-8";
|
|
|
78
97
|
margin-right: 0;
|
|
79
98
|
}
|
|
80
99
|
|
|
81
|
-
.ProseMirror-hideselection {
|
|
82
|
-
caret-color: transparent;
|
|
83
|
-
}
|
|
84
100
|
.ProseMirror-hideselection *::selection {
|
|
85
101
|
background: transparent;
|
|
86
102
|
}
|
|
87
103
|
.ProseMirror-hideselection *::-moz-selection {
|
|
88
104
|
background: transparent;
|
|
89
105
|
}
|
|
106
|
+
.ProseMirror-hideselection {
|
|
107
|
+
caret-color: transparent;
|
|
108
|
+
}
|
|
90
109
|
|
|
91
110
|
.ProseMirror-selectednode {
|
|
92
111
|
outline: 2px solid #8cf;
|
|
@@ -877,13 +896,13 @@ app-date-picker {
|
|
|
877
896
|
margin-bottom: 20px;
|
|
878
897
|
}
|
|
879
898
|
.icure-form h2 {
|
|
880
|
-
font-size:
|
|
899
|
+
font-size: add-two(12px, 0, 1.2);
|
|
881
900
|
font-weight: 700;
|
|
882
901
|
color: #084B83;
|
|
883
902
|
padding: 2px;
|
|
884
903
|
}
|
|
885
904
|
.icure-form h3 {
|
|
886
|
-
font-size:
|
|
905
|
+
font-size: add-two(12px, 0, 1.1);
|
|
887
906
|
font-weight: 500;
|
|
888
907
|
color: #084B83;
|
|
889
908
|
padding: 6px;
|
|
@@ -915,17 +934,16 @@ app-date-picker {
|
|
|
915
934
|
line-height: 1.4em;
|
|
916
935
|
cursor: text;
|
|
917
936
|
font-size: 12px;
|
|
918
|
-
left:
|
|
937
|
+
left: add-two(8px, 1px);
|
|
919
938
|
color: #084B83;
|
|
920
939
|
align-items: center;
|
|
921
|
-
|
|
940
|
+
text-wrap: auto;
|
|
941
|
+
min-height: 28px;
|
|
922
942
|
max-width: 85%;
|
|
923
943
|
min-width: 0;
|
|
924
944
|
}
|
|
925
945
|
.icure-text-field .icure-label.float, .icure-button-group .icure-label.float {
|
|
926
946
|
display: flex;
|
|
927
|
-
white-space: nowrap;
|
|
928
|
-
text-overflow: ellipsis;
|
|
929
947
|
overflow: hidden;
|
|
930
948
|
}
|
|
931
949
|
|
|
@@ -960,7 +978,6 @@ app-date-picker {
|
|
|
960
978
|
border-style: solid;
|
|
961
979
|
border-color: #DDE3E7;
|
|
962
980
|
border-radius: 2px;
|
|
963
|
-
box-sizing: border-box;
|
|
964
981
|
outline: 0;
|
|
965
982
|
font: inherit;
|
|
966
983
|
font-size: 14px;
|
|
@@ -973,6 +990,25 @@ app-date-picker {
|
|
|
973
990
|
background-color: #ffffff;
|
|
974
991
|
color: #000000;
|
|
975
992
|
}
|
|
993
|
+
.icure-text-field .icure-input .reset-button,
|
|
994
|
+
.icure-text-field .input-container .reset-button {
|
|
995
|
+
position: absolute;
|
|
996
|
+
right: 0;
|
|
997
|
+
border: none;
|
|
998
|
+
background: transparent;
|
|
999
|
+
top: 0;
|
|
1000
|
+
opacity: 0.5;
|
|
1001
|
+
cursor: pointer;
|
|
1002
|
+
height: 20px;
|
|
1003
|
+
margin-left: 4px;
|
|
1004
|
+
margin-right: 4px;
|
|
1005
|
+
padding: 0;
|
|
1006
|
+
}
|
|
1007
|
+
.icure-text-field .icure-input .reset-button svg,
|
|
1008
|
+
.icure-text-field .input-container .reset-button svg {
|
|
1009
|
+
width: 15px;
|
|
1010
|
+
height: 15px;
|
|
1011
|
+
}
|
|
976
1012
|
.icure-text-field .icure-input__validationError,
|
|
977
1013
|
.icure-text-field .input-container__validationError {
|
|
978
1014
|
border-color: red;
|
|
@@ -1086,8 +1122,8 @@ input[type=radio] {
|
|
|
1086
1122
|
line-height: 1.4em;
|
|
1087
1123
|
cursor: text;
|
|
1088
1124
|
font-size: 12px;
|
|
1089
|
-
top:
|
|
1090
|
-
left:
|
|
1125
|
+
top: add-three(1.4em, 1px, 0);
|
|
1126
|
+
left: add-two(8px, 1px);
|
|
1091
1127
|
transition: transform 0.2s ease-out, color 0.2s ease-out;
|
|
1092
1128
|
color: #084B83;
|
|
1093
1129
|
display: flex;
|
|
@@ -1119,6 +1155,7 @@ class MetadataButtonBar extends lit_1.LitElement {
|
|
|
1119
1155
|
super(...arguments);
|
|
1120
1156
|
this.languages = {};
|
|
1121
1157
|
this.displayedLabels = {};
|
|
1158
|
+
this.handleReset = undefined;
|
|
1122
1159
|
this.handleMetadataChanged = undefined;
|
|
1123
1160
|
this.handleLanguageSelected = undefined;
|
|
1124
1161
|
this.handleRevisionSelected = undefined;
|
|
@@ -1158,8 +1195,7 @@ class MetadataButtonBar extends lit_1.LitElement {
|
|
|
1158
1195
|
const owner = (_b = this.metadata) === null || _b === void 0 ? void 0 : _b.owner;
|
|
1159
1196
|
if (owner && !this.loadedOwners[owner]) {
|
|
1160
1197
|
this.loadedOwners = Object.assign(Object.assign({}, this.loadedOwners), { [owner]: { id: owner, text: '', terms: [], label: {} } }); // Make sure we do not loop endlessly
|
|
1161
|
-
this.ownersProvider &&
|
|
1162
|
-
this.ownersProvider([], [owner]).then((availableOwners) => (this.loadedOwners = availableOwners.reduce((acc, o) => (Object.assign(Object.assign({}, acc), { [o.id]: o })), this.loadedOwners)));
|
|
1198
|
+
this.ownersProvider && this.ownersProvider([], [owner]).then((availableOwners) => (this.loadedOwners = availableOwners.reduce((acc, o) => (Object.assign(Object.assign({}, acc), { [o.id]: o })), this.loadedOwners)));
|
|
1163
1199
|
}
|
|
1164
1200
|
const forcedByMenu = this.displayOwnersMenu || this.displayLanguagesMenu || this.displayValueDateMenu || this.displayVersionsMenu;
|
|
1165
1201
|
const discordantMetadata = (_d = (_c = this.metadata) === null || _c === void 0 ? void 0 : _c.discordantMetadata) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
@@ -1167,9 +1203,11 @@ class MetadataButtonBar extends lit_1.LitElement {
|
|
|
1167
1203
|
const forcedByValueDate = (discordantMetadata === null || discordantMetadata === void 0 ? void 0 : discordantMetadata.valueDate) !== undefined;
|
|
1168
1204
|
const forcedByLanguage = this.selectedLanguage && this.defaultLanguage !== this.selectedLanguage;
|
|
1169
1205
|
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);
|
|
1206
|
+
console.log('handle reset', this.handleReset);
|
|
1170
1207
|
return (0, lit_1.html) ` <div id="extra" class=${'extra extra--metadataButtonsBar' + (forcedByMenu ? ' forced' : '')}>
|
|
1171
1208
|
<div class="info ${forcedByOwner || forcedByLanguage || forcedByValueDate ? 'hidden' : ''}">ⓘ</div>
|
|
1172
1209
|
<div class="buttons-container">
|
|
1210
|
+
${this.handleReset ? (0, lit_1.html) `<button @click="${() => { var _a; return (_a = this.handleReset) === null || _a === void 0 ? void 0 : _a.call(this); }}" class="btn forced">${paths_1.resetPicto}</button>` : lit_1.nothing}
|
|
1173
1211
|
<div class="menu-container">
|
|
1174
1212
|
<button
|
|
1175
1213
|
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 : ''}"
|
|
@@ -1207,24 +1245,14 @@ class MetadataButtonBar extends lit_1.LitElement {
|
|
|
1207
1245
|
${this.displayValueDateMenu
|
|
1208
1246
|
? (0, lit_1.html) `
|
|
1209
1247
|
<div id="menu" class="menu value-date-menu">
|
|
1210
|
-
<app-date-picker
|
|
1211
|
-
locale="${(_p = this.defaultLanguage) !== null && _p !== void 0 ? _p : 'en'}"
|
|
1212
|
-
style=""
|
|
1213
|
-
max="${constants_1.MAX_DATE}"
|
|
1214
|
-
min="${(0, to_resolved_date_1.toResolvedDate)('1900-01-01')}"
|
|
1215
|
-
@date-updated="${this.dateUpdated}"
|
|
1216
|
-
></app-date-picker>
|
|
1248
|
+
<app-date-picker locale="${(_p = this.defaultLanguage) !== null && _p !== void 0 ? _p : 'en'}" style="" max="${constants_js_1.MAX_DATE}" min="${(0, to_resolved_date_js_1.toResolvedDate)('1900-01-01')}" @date-updated="${this.dateUpdated}"></app-date-picker>
|
|
1217
1249
|
</div>
|
|
1218
1250
|
`
|
|
1219
1251
|
: ''}
|
|
1220
1252
|
</div>
|
|
1221
1253
|
<div class="menu-container">
|
|
1222
1254
|
<button
|
|
1223
|
-
data-content="${this.revision === null
|
|
1224
|
-
? 'latest'
|
|
1225
|
-
: this.revision
|
|
1226
|
-
? `rev-${this.revision.split('-')[0]} ${revisionDate ? `(${(0, date_fns_1.format)(new Date(revisionDate), 'yyyy-MM-dd')})` : ''}`
|
|
1227
|
-
: ''}"
|
|
1255
|
+
data-content="${this.revision === null ? 'latest' : this.revision ? `rev-${this.revision.split('-')[0]} ${revisionDate ? `(${(0, date_fns_1.format)(new Date(revisionDate), 'yyyy-MM-dd')})` : ''}` : ''}"
|
|
1228
1256
|
@click="${this.toggleVersionsMenu}"
|
|
1229
1257
|
class="btn version ${forcedByVersion ? 'forced' : ''}"
|
|
1230
1258
|
>
|
|
@@ -1392,6 +1420,10 @@ __decorate([
|
|
|
1392
1420
|
(0, decorators_js_1.property)(),
|
|
1393
1421
|
__metadata("design:type", Object)
|
|
1394
1422
|
], MetadataButtonBar.prototype, "displayedLabels", void 0);
|
|
1423
|
+
__decorate([
|
|
1424
|
+
(0, decorators_js_1.property)(),
|
|
1425
|
+
__metadata("design:type", Function)
|
|
1426
|
+
], MetadataButtonBar.prototype, "handleReset", void 0);
|
|
1395
1427
|
__decorate([
|
|
1396
1428
|
(0, decorators_js_1.property)(),
|
|
1397
1429
|
__metadata("design:type", Function)
|