@omegagrid/form 0.10.0 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/package.json +5 -5
  2. package/dist/constants.d.ts +0 -52
  3. package/dist/constants.d.ts.map +0 -1
  4. package/dist/constants.js +0 -15
  5. package/dist/constants.js.map +0 -1
  6. package/dist/index.d.ts +0 -4
  7. package/dist/index.d.ts.map +0 -1
  8. package/dist/index.js +0 -4
  9. package/dist/index.js.map +0 -1
  10. package/dist/model/formAdapter.d.ts +0 -14
  11. package/dist/model/formAdapter.d.ts.map +0 -1
  12. package/dist/model/formAdapter.js +0 -21
  13. package/dist/model/formAdapter.js.map +0 -1
  14. package/dist/model/formControlModel.d.ts +0 -9
  15. package/dist/model/formControlModel.d.ts.map +0 -1
  16. package/dist/model/formControlModel.js +0 -9
  17. package/dist/model/formControlModel.js.map +0 -1
  18. package/dist/model/formModel.d.ts +0 -17
  19. package/dist/model/formModel.d.ts.map +0 -1
  20. package/dist/model/formModel.js +0 -42
  21. package/dist/model/formModel.js.map +0 -1
  22. package/dist/model/index.d.ts +0 -4
  23. package/dist/model/index.d.ts.map +0 -1
  24. package/dist/model/index.js +0 -4
  25. package/dist/model/index.js.map +0 -1
  26. package/dist/options.d.ts +0 -3
  27. package/dist/options.d.ts.map +0 -1
  28. package/dist/options.js +0 -17
  29. package/dist/options.js.map +0 -1
  30. package/dist/types.d.ts +0 -99
  31. package/dist/types.d.ts.map +0 -1
  32. package/dist/types.js +0 -14
  33. package/dist/types.js.map +0 -1
  34. package/dist/ui/controls/baseControl.d.ts +0 -32
  35. package/dist/ui/controls/baseControl.d.ts.map +0 -1
  36. package/dist/ui/controls/baseControl.js +0 -97
  37. package/dist/ui/controls/baseControl.js.map +0 -1
  38. package/dist/ui/controls/button.d.ts +0 -16
  39. package/dist/ui/controls/button.d.ts.map +0 -1
  40. package/dist/ui/controls/button.js +0 -80
  41. package/dist/ui/controls/button.js.map +0 -1
  42. package/dist/ui/controls/calendarDateInput.d.ts +0 -11
  43. package/dist/ui/controls/calendarDateInput.d.ts.map +0 -1
  44. package/dist/ui/controls/calendarDateInput.js +0 -67
  45. package/dist/ui/controls/calendarDateInput.js.map +0 -1
  46. package/dist/ui/controls/checkbox.d.ts +0 -8
  47. package/dist/ui/controls/checkbox.d.ts.map +0 -1
  48. package/dist/ui/controls/checkbox.js +0 -38
  49. package/dist/ui/controls/checkbox.js.map +0 -1
  50. package/dist/ui/controls/colorInput.d.ts +0 -9
  51. package/dist/ui/controls/colorInput.d.ts.map +0 -1
  52. package/dist/ui/controls/colorInput.js +0 -48
  53. package/dist/ui/controls/colorInput.js.map +0 -1
  54. package/dist/ui/controls/dateInput.d.ts +0 -11
  55. package/dist/ui/controls/dateInput.d.ts.map +0 -1
  56. package/dist/ui/controls/dateInput.js +0 -80
  57. package/dist/ui/controls/dateInput.js.map +0 -1
  58. package/dist/ui/controls/fileInput.d.ts +0 -6
  59. package/dist/ui/controls/fileInput.d.ts.map +0 -1
  60. package/dist/ui/controls/fileInput.js +0 -28
  61. package/dist/ui/controls/fileInput.js.map +0 -1
  62. package/dist/ui/controls/index.d.ts +0 -11
  63. package/dist/ui/controls/index.d.ts.map +0 -1
  64. package/dist/ui/controls/index.js +0 -11
  65. package/dist/ui/controls/index.js.map +0 -1
  66. package/dist/ui/controls/label.d.ts +0 -6
  67. package/dist/ui/controls/label.d.ts.map +0 -1
  68. package/dist/ui/controls/label.js +0 -53
  69. package/dist/ui/controls/label.js.map +0 -1
  70. package/dist/ui/controls/list.d.ts +0 -17
  71. package/dist/ui/controls/list.d.ts.map +0 -1
  72. package/dist/ui/controls/list.js +0 -83
  73. package/dist/ui/controls/list.js.map +0 -1
  74. package/dist/ui/controls/numericInput.d.ts +0 -14
  75. package/dist/ui/controls/numericInput.d.ts.map +0 -1
  76. package/dist/ui/controls/numericInput.js +0 -81
  77. package/dist/ui/controls/numericInput.js.map +0 -1
  78. package/dist/ui/controls/textInput.d.ts +0 -11
  79. package/dist/ui/controls/textInput.d.ts.map +0 -1
  80. package/dist/ui/controls/textInput.js +0 -67
  81. package/dist/ui/controls/textInput.js.map +0 -1
  82. package/dist/ui/form.d.ts +0 -38
  83. package/dist/ui/form.d.ts.map +0 -1
  84. package/dist/ui/form.js +0 -201
  85. package/dist/ui/form.js.map +0 -1
  86. package/dist/ui/form.style.d.ts +0 -2
  87. package/dist/ui/form.style.d.ts.map +0 -1
  88. package/dist/ui/form.style.js +0 -45
  89. package/dist/ui/form.style.js.map +0 -1
  90. package/dist/ui/formContainer.d.ts +0 -31
  91. package/dist/ui/formContainer.d.ts.map +0 -1
  92. package/dist/ui/formContainer.js +0 -197
  93. package/dist/ui/formContainer.js.map +0 -1
  94. package/dist/ui/formContainer.style.d.ts +0 -2
  95. package/dist/ui/formContainer.style.d.ts.map +0 -1
  96. package/dist/ui/formContainer.style.js +0 -39
  97. package/dist/ui/formContainer.style.js.map +0 -1
  98. package/dist/ui/index.d.ts +0 -4
  99. package/dist/ui/index.d.ts.map +0 -1
  100. package/dist/ui/index.js +0 -4
  101. package/dist/ui/index.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/form",
3
- "version": "0.10.0",
3
+ "version": "0.10.2",
4
4
  "license": "UNLICENSED",
5
5
  "description": "Universal form component",
6
6
  "main": "./dist/index.js",
@@ -27,10 +27,10 @@
27
27
  "_prepublish": "yarn test && yarn lint"
28
28
  },
29
29
  "dependencies": {
30
- "@omegagrid/calendar": "^0.10.0",
31
- "@omegagrid/core": "^0.10.0",
32
- "@omegagrid/localize": "^0.10.0",
33
- "@omegagrid/tree": "^0.10.0",
30
+ "@omegagrid/calendar": "^0.10.2",
31
+ "@omegagrid/core": "^0.10.2",
32
+ "@omegagrid/localize": "^0.10.2",
33
+ "@omegagrid/tree": "^0.10.2",
34
34
  "lit": "^3.1.1",
35
35
  "lit-html": "^3.1.1",
36
36
  "ts-debounce": "^4.0.0"
@@ -1,52 +0,0 @@
1
- import { FormButtonConfig, FormButtonType } from './types';
2
- declare const _default: {
3
- PREFIX: string;
4
- DEFAULT_ACCENT_COLOR: string;
5
- DEFAULT_ACCENT_COLOR_2: import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | any | ArrayLike<number> | {
6
- [key: string]: any;
7
- }> | ArrayLike<number> | {
8
- [key: string]: any;
9
- }> | ArrayLike<number> | {
10
- [key: string]: any;
11
- }> | ArrayLike<number> | {
12
- [key: string]: any;
13
- }> | ArrayLike<number> | {
14
- [key: string]: any;
15
- }> | ArrayLike<number> | {
16
- [key: string]: any;
17
- }> | ArrayLike<number> | {
18
- [key: string]: any;
19
- }> | ArrayLike<number> | {
20
- [key: string]: any;
21
- }> | ArrayLike<number> | {
22
- [key: string]: any;
23
- }> | ArrayLike<number> | {
24
- [key: string]: any;
25
- }> | ArrayLike<number> | {
26
- [key: string]: any;
27
- }> | ArrayLike<number> | {
28
- [key: string]: any;
29
- }>;
30
- SIZER_SIZE: number;
31
- SLIDER_SIZE: number;
32
- SLIDER_MIN_LENGTH: number;
33
- EXPANDER_SIZE: number;
34
- LIST_ITEM_HEIGHT: number;
35
- LIST_RENDERING_TRESHOLD: number;
36
- LIST_AUTOSCROLL_TRESHOLD: number;
37
- LIST_AUTOSCROLL_DELAY: number;
38
- DEFAULT_TEXT_HIGHLIGHT_COLOR: string;
39
- TOOLTIP_MARGIN: number;
40
- MENU_ITEM_HEIGHT: number;
41
- COLORPICKER_COLOR_SIZE: number;
42
- DEFAULT_NUMBER_FORMAT: string;
43
- BUTTON_HEIGHT: number;
44
- FONT_SIZE: number;
45
- FLOATING_WINDOW_MAX_WIDTH: number;
46
- DEFAULT_FORM_CELL_PADDING: number;
47
- DEFAULT_FORM_ROW_HEIGHT: number;
48
- DEFAULT_FORM_LINE_HEIGHT: number;
49
- BUTTON_CONFIG: Map<FormButtonType, FormButtonConfig>;
50
- };
51
- export default _default;
52
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3D,wBAYC"}
package/dist/constants.js DELETED
@@ -1,15 +0,0 @@
1
- import { constants as coreConstants, ColorTypes } from '@omegagrid/core';
2
- export default {
3
- DEFAULT_FORM_CELL_PADDING: 2,
4
- DEFAULT_FORM_ROW_HEIGHT: 24,
5
- DEFAULT_FORM_LINE_HEIGHT: 22,
6
- BUTTON_CONFIG: new Map([
7
- ['save', { text: 'Save', color: ColorTypes.Accent, default: true }],
8
- ['reset', { text: 'Reset', color: ColorTypes.Gray }],
9
- ['validate', { text: 'Validate', color: ColorTypes.Gray }],
10
- ['storno', { text: 'Storno', color: ColorTypes.Gray }],
11
- ['close', { text: 'Close', color: ColorTypes.Gray }]
12
- ]),
13
- ...coreConstants
14
- };
15
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGzE,eAAe;IACd,yBAAyB,EAAE,CAAC;IAC5B,uBAAuB,EAAE,EAAE;IAC3B,wBAAwB,EAAE,EAAE;IAC5B,aAAa,EAAE,IAAI,GAAG,CAAmC;QACxD,CAAC,MAAM,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;QACjE,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAC,CAAC;QAClD,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAC,CAAC;QACxD,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAC,CAAC;QACpD,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAC,CAAC;KAClD,CAAC;IACF,GAAG,aAAa;CAChB,CAAA","sourcesContent":["import { constants as coreConstants, ColorTypes } from '@omegagrid/core';\nimport { FormButtonConfig, FormButtonType } from './types';\n\nexport default {\n\tDEFAULT_FORM_CELL_PADDING: 2,\n\tDEFAULT_FORM_ROW_HEIGHT: 24,\n\tDEFAULT_FORM_LINE_HEIGHT: 22,\n\tBUTTON_CONFIG: new Map<FormButtonType, FormButtonConfig>([\n\t\t['save', {text: 'Save', color: ColorTypes.Accent, default: true}],\n\t\t['reset', {text: 'Reset', color: ColorTypes.Gray}],\n\t\t['validate', {text: 'Validate', color: ColorTypes.Gray}],\n\t\t['storno', {text: 'Storno', color: ColorTypes.Gray}],\n\t\t['close', {text: 'Close', color: ColorTypes.Gray}]\n\t]),\n\t...coreConstants\n}"]}
package/dist/index.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from './ui';
2
- export * from './types';
3
- export * from './model';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
package/dist/index.js DELETED
@@ -1,4 +0,0 @@
1
- export * from './ui';
2
- export * from './types';
3
- export * from './model';
4
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC","sourcesContent":["export * from './ui';\nexport * from './types';\nexport * from './model';"]}
@@ -1,14 +0,0 @@
1
- import { ComponentAdapter } from '@omegagrid/core';
2
- import { Form } from '../ui';
3
- import { FormSettings, FormColumn, FormControlProperties, FormRow, FormValues, FormAlert } from '../types';
4
- import { FormContainerOptions } from '../types';
5
- export declare abstract class FormAdapter extends ComponentAdapter<Form> {
6
- getForms(): FormSettings[] | Promise<FormSettings[]>;
7
- getRows(id: string | number): FormRow[] | Promise<FormRow[]>;
8
- getColumns(id: string | number): FormColumn[] | Promise<FormColumn[]>;
9
- abstract getControls(id: string | number): FormControlProperties[] | Promise<FormControlProperties[]>;
10
- save(values: Map<string | number, FormValues>): boolean | FormAlert[] | Promise<boolean | FormAlert[]>;
11
- getOptions(): FormContainerOptions | Promise<FormContainerOptions>;
12
- onAction(action: string): void;
13
- }
14
- //# sourceMappingURL=formAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formAdapter.d.ts","sourceRoot":"","sources":["../../src/model/formAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,8BAAsB,WAAY,SAAQ,gBAAgB,CAAC,IAAI,CAAC;IAE/D,QAAQ,IAAI,YAAY,EAAE,GAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IAIlD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAC,MAAM,GAAG,OAAO,EAAE,GAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAIxD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAC,MAAM,GAAG,UAAU,EAAE,GAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IAIjE,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAC,MAAM,GAAG,qBAAqB,EAAE,GAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAEjG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAC,MAAM,EAAE,UAAU,CAAC,GAAG,OAAO,GAAC,SAAS,EAAE,GAAC,OAAO,CAAC,OAAO,GAAC,SAAS,EAAE,CAAC;IAI9F,UAAU,IAAI,oBAAoB,GAAC,OAAO,CAAC,oBAAoB,CAAC;IAIhE,QAAQ,CAAC,MAAM,EAAE,MAAM;CAEvB"}
@@ -1,21 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-vars */
2
- import { ComponentAdapter } from '@omegagrid/core';
3
- export class FormAdapter extends ComponentAdapter {
4
- getForms() {
5
- return [{ key: 0 }];
6
- }
7
- getRows(id) {
8
- return [];
9
- }
10
- getColumns(id) {
11
- return [];
12
- }
13
- save(values) {
14
- return true;
15
- }
16
- getOptions() {
17
- return {};
18
- }
19
- onAction(action) { }
20
- }
21
- //# sourceMappingURL=formAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formAdapter.js","sourceRoot":"","sources":["../../src/model/formAdapter.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKnD,MAAM,OAAgB,WAAY,SAAQ,gBAAsB;IAE/D,QAAQ;QACP,OAAO,CAAC,EAAC,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,EAAiB;QACxB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,UAAU,CAAC,EAAiB;QAC3B,OAAO,EAAE,CAAC;IACX,CAAC;IAID,IAAI,CAAC,MAAsC;QAC1C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,UAAU;QACT,OAAO,EAAE,CAAC;IACX,CAAC;IAED,QAAQ,CAAC,MAAc,IAAI,CAAC;CAE5B","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { ComponentAdapter } from '@omegagrid/core';\nimport { Form } from '../ui';\nimport { FormSettings, FormColumn, FormControlProperties, FormRow, FormValues, FormAlert } from '../types';\nimport { FormContainerOptions } from '../types';\n\nexport abstract class FormAdapter extends ComponentAdapter<Form> {\n\n\tgetForms(): FormSettings[]|Promise<FormSettings[]> {\n\t\treturn [{key: 0}];\n\t}\n\n\tgetRows(id: string|number): FormRow[]|Promise<FormRow[]> {\n\t\treturn [];\n\t}\n\n\tgetColumns(id: string|number): FormColumn[]|Promise<FormColumn[]> {\n\t\treturn [];\n\t}\n\n\tabstract getControls(id: string|number): FormControlProperties[]|Promise<FormControlProperties[]>;\n\n\tsave(values: Map<string|number, FormValues>): boolean|FormAlert[]|Promise<boolean|FormAlert[]> {\n\t\treturn true;\n\t}\n\n\tgetOptions(): FormContainerOptions|Promise<FormContainerOptions> {\n\t\treturn {};\n\t}\n\n\tonAction(action: string) { }\n\n}"]}
@@ -1,9 +0,0 @@
1
- import { FormControlProperties } from "../types";
2
- export declare class FormControlModel {
3
- readonly props: FormControlProperties;
4
- readonly dependencies: FormControlModel[];
5
- errors: string[];
6
- constructor(props: FormControlProperties);
7
- get key(): string;
8
- }
9
- //# sourceMappingURL=formControlModel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formControlModel.d.ts","sourceRoot":"","sources":["../../src/model/formControlModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,qBAAa,gBAAgB;aAMA,KAAK,EAAE,qBAAqB;IAJxD,SAAgB,YAAY,EAAE,gBAAgB,EAAE,CAAM;IAE/C,MAAM,EAAE,MAAM,EAAE,CAAM;gBAED,KAAK,EAAE,qBAAqB;IAExD,IAAI,GAAG,WAA4B;CAEnC"}
@@ -1,9 +0,0 @@
1
- export class FormControlModel {
2
- constructor(props) {
3
- this.props = props;
4
- this.dependencies = [];
5
- this.errors = [];
6
- }
7
- get key() { return this.props.key; }
8
- }
9
- //# sourceMappingURL=formControlModel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formControlModel.js","sourceRoot":"","sources":["../../src/model/formControlModel.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gBAAgB;IAM5B,YAA4B,KAA4B;QAA5B,UAAK,GAAL,KAAK,CAAuB;QAJxC,iBAAY,GAAuB,EAAE,CAAC;QAE/C,WAAM,GAAa,EAAE,CAAC;IAE+B,CAAC;IAE7D,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA,CAAC,CAAC;CAEnC","sourcesContent":["import { FormControlProperties } from \"../types\";\n\nexport class FormControlModel {\n\n\tpublic readonly dependencies: FormControlModel[] = [];\n\n\tpublic errors: string[] = [];\n\n\tconstructor(public readonly props: FormControlProperties) { }\n\n\tget key() { return this.props.key }\n\n}"]}
@@ -1,17 +0,0 @@
1
- import { FormColumn, FormOptions, FormRow, FormSettings } from "../types";
2
- import { FormControlModel } from "./formControlModel";
3
- export declare class FormModel {
4
- options: FormOptions;
5
- controls: FormControlModel[][];
6
- rows: FormRow[];
7
- columns: FormColumn[];
8
- private _rowCount;
9
- private _colCount;
10
- get rowCount(): number;
11
- get colCount(): number;
12
- readonly controlMap: Map<string, FormControlModel>;
13
- get(key: string): FormControlModel;
14
- constructor(sourceData: FormSettings);
15
- populate(sourceData: FormSettings): void;
16
- }
17
- //# sourceMappingURL=formModel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formModel.d.ts","sourceRoot":"","sources":["../../src/model/formModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,SAAS;IAErB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC;IAC/B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IAEtB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAK;IAEtB,IAAI,QAAQ,WAA4B;IACxC,IAAI,QAAQ,WAA4B;IAExC,SAAgB,UAAU,gCAAuC;IAEjE,GAAG,CAAC,GAAG,EAAE,MAAM;gBAEH,UAAU,EAAE,YAAY;IAIpC,QAAQ,CAAC,UAAU,EAAE,YAAY;CA+BjC"}
@@ -1,42 +0,0 @@
1
- import { FormControlModel } from "./formControlModel";
2
- export class FormModel {
3
- get rowCount() { return this._rowCount; }
4
- get colCount() { return this._colCount; }
5
- get(key) { return this.controlMap.get(key); }
6
- constructor(sourceData) {
7
- this._rowCount = 0;
8
- this._colCount = 0;
9
- this.controlMap = new Map();
10
- this.populate(sourceData);
11
- }
12
- populate(sourceData) {
13
- this.options = sourceData.options ?? {};
14
- this.controlMap.clear();
15
- this.controls = [];
16
- this.rows = sourceData.rows || [];
17
- this.columns = sourceData.columns || [];
18
- this._rowCount = this.rows.length;
19
- this._colCount = this.columns.length;
20
- sourceData.controls.forEach(c => {
21
- this._rowCount = Math.max(this._rowCount, c.row + 1);
22
- this._colCount = Math.max(this._colCount, c.col + 1);
23
- if (this._rowCount > this.rows.length)
24
- this.rows.push({});
25
- if (this._colCount > this.columns.length)
26
- this.columns.push({});
27
- c.key = c.key ?? ((c.row * this._colCount) + c.col).toString();
28
- this.controlMap.set(c.key, new FormControlModel(c));
29
- });
30
- this.controls = [...Array(this.rowCount)].map(() => Array(this.colCount));
31
- this.controlMap.forEach(c => {
32
- this.controls[c.props.row][c.props.col] = c;
33
- if (c.props.dependsOn) {
34
- this.controlMap.get(c.props.dependsOn).dependencies.push(c);
35
- }
36
- if (c.props.for && this.controlMap.get(c.props.for)?.props.required) {
37
- c.props.required = true;
38
- }
39
- });
40
- }
41
- }
42
- //# sourceMappingURL=formModel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formModel.js","sourceRoot":"","sources":["../../src/model/formModel.ts"],"names":[],"mappings":"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","sourcesContent":["import { FormColumn, FormOptions, FormRow, FormSettings } from \"../types\";\nimport { FormControlModel } from \"./formControlModel\";\n\nexport class FormModel {\n\n\toptions: FormOptions;\n\tcontrols: FormControlModel[][];\n\trows: FormRow[];\n\tcolumns: FormColumn[];\n\n\tprivate _rowCount = 0;\n\tprivate _colCount = 0;\n\n\tget rowCount() { return this._rowCount }\n\tget colCount() { return this._colCount }\n\n\tpublic readonly controlMap = new Map<string, FormControlModel>();\n\n\tget(key: string) { return this.controlMap.get(key) }\n\n\tconstructor(sourceData: FormSettings) {\n\t\tthis.populate(sourceData);\n\t}\n\n\tpopulate(sourceData: FormSettings) {\n\t\tthis.options = sourceData.options ?? {};\n\t\tthis.controlMap.clear();\n\t\tthis.controls = [];\n\t\tthis.rows = sourceData.rows || [];\n\t\tthis.columns = sourceData.columns || [];\n\t\tthis._rowCount = this.rows.length;\n\t\tthis._colCount = this.columns.length;\n\n\t\tsourceData.controls.forEach(c => {\n\t\t\tthis._rowCount = Math.max(this._rowCount, c.row + 1);\n\t\t\tthis._colCount = Math.max(this._colCount, c.col + 1);\n\t\t\tif (this._rowCount > this.rows.length) this.rows.push({});\n\t\t\tif (this._colCount > this.columns.length) this.columns.push({});\n\t\t\tc.key = c.key ?? ((c.row * this._colCount) + c.col).toString();\n\t\t\tthis.controlMap.set(c.key, new FormControlModel(c));\n\t\t});\n\n\t\tthis.controls = [...Array(this.rowCount)].map(() => Array(this.colCount));\n\t\tthis.controlMap.forEach(c => {\n\t\t\tthis.controls[c.props.row][c.props.col] = c\n\t\t\tif (c.props.dependsOn) {\n\t\t\t\tthis.controlMap.get(c.props.dependsOn).dependencies.push(c);\n\t\t\t}\n\n\t\t\tif (c.props.for && this.controlMap.get(c.props.for)?.props.required) {\n\t\t\t\tc.props.required = true;\n\t\t\t}\n\t\t});\n\t}\n\n}"]}
@@ -1,4 +0,0 @@
1
- export * from './formAdapter';
2
- export * from './formModel';
3
- export * from './formControlModel';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from './formAdapter';
2
- export * from './formModel';
3
- export * from './formControlModel';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './formAdapter';\nexport * from './formModel';\nexport * from './formControlModel';"]}
package/dist/options.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { FormContainerOptions } from './types';
2
- export declare function initOptions(options?: Partial<FormContainerOptions>, origOptions?: FormContainerOptions): FormContainerOptions;
3
- //# sourceMappingURL=options.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAU/C,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,WAAW,GAAE,oBAA2B,GAAG,oBAAoB,CAOnI"}
package/dist/options.js DELETED
@@ -1,17 +0,0 @@
1
- import { initCommonOptions } from "@omegagrid/core";
2
- const DEFAULT_OPTIONS = {
3
- caption: null,
4
- buttonsPosition: 'bottom',
5
- alertsPosition: 'bottom',
6
- buttons: [],
7
- closeAfterSave: true
8
- };
9
- export function initOptions(options, origOptions = null) {
10
- return {
11
- ...initCommonOptions(options, origOptions),
12
- ...DEFAULT_OPTIONS,
13
- ...origOptions,
14
- ...options,
15
- };
16
- }
17
- //# sourceMappingURL=options.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,MAAM,eAAe,GAAkC;IACtD,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,QAAQ;IACzB,cAAc,EAAE,QAAQ;IACxB,OAAO,EAAE,EAAE;IACX,cAAc,EAAE,IAAI;CACpB,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,OAAuC,EAAE,cAAoC,IAAI;IAC5G,OAAO;QACN,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC;QAC1C,GAAG,eAAe;QAClB,GAAG,WAAW;QACd,GAAG,OAAO;KACV,CAAC;AACH,CAAC","sourcesContent":["import { initCommonOptions } from \"@omegagrid/core\";\nimport { FormContainerOptions } from './types';\n\nconst DEFAULT_OPTIONS: Partial<FormContainerOptions> = {\n\tcaption: null,\n\tbuttonsPosition: 'bottom',\n\talertsPosition: 'bottom',\n\tbuttons: [],\n\tcloseAfterSave: true\n};\n\nexport function initOptions(options?: Partial<FormContainerOptions>, origOptions: FormContainerOptions = null): FormContainerOptions {\n\treturn {\n\t\t...initCommonOptions(options, origOptions),\n\t\t...DEFAULT_OPTIONS,\n\t\t...origOptions,\n\t\t...options,\n\t};\n}"]}
package/dist/types.d.ts DELETED
@@ -1,99 +0,0 @@
1
- import { ComponentAdapter, CommonOptions, ColorTypes, AlertType, VerticalPosition, IconSpec } from "@omegagrid/core";
2
- import { TreeAdapter } from "@omegagrid/tree";
3
- export declare enum FormControlType {
4
- TextInput = "text",
5
- Button = "button",
6
- NumericInput = "number",
7
- DateInput = "date",
8
- CalendarDateInput = "calendar",
9
- Checkbox = "checkbox",
10
- Label = "label",
11
- List = "list",
12
- ColorInput = "color",
13
- FileInput = "file"
14
- }
15
- export type ValidationResult = {
16
- valid: boolean;
17
- message?: string;
18
- };
19
- export type FormControlProperties = {
20
- /** Row index within form grid */
21
- row: number;
22
- /** Column index within form grid */
23
- col: number;
24
- /** Unique field identifier */
25
- key?: string;
26
- /** Key of bound form control */
27
- for?: string;
28
- /** Value validation pattern */
29
- pattern?: RegExp;
30
- /** Form control type */
31
- type?: FormControlType;
32
- /** Required field */
33
- required?: boolean;
34
- /** Readonly control */
35
- readOnly?: boolean;
36
- /** Current control value */
37
- value?: unknown;
38
- /** Key of parent element */
39
- dependsOn?: string;
40
- /** Component adapter where applicable (eg. TreeSelect) */
41
- adapter?: ComponentAdapter;
42
- /** Component item definition */
43
- content?: unknown;
44
- /** colspan */
45
- cs?: number;
46
- /** rowspan */
47
- rs?: number;
48
- /** control-specific options */
49
- options?: Record<string, unknown>;
50
- placeholder?: string;
51
- caption?: string;
52
- /** validation callback */
53
- validate?: (value: unknown, props: FormControlProperties) => ValidationResult | boolean | Promise<ValidationResult | boolean>;
54
- };
55
- export type FormAlert = {
56
- text: string;
57
- type: AlertType;
58
- };
59
- export type FormRow = {
60
- height?: number;
61
- };
62
- export type FormColumn = {
63
- width?: number;
64
- };
65
- export type FormGridModel = {
66
- rows: FormRow[];
67
- columns: FormColumn[];
68
- };
69
- export type FormOptions = {
70
- treeAdapter?: TreeAdapter;
71
- };
72
- export type FormContainerOptions = {
73
- caption?: string;
74
- buttonsPosition?: VerticalPosition;
75
- alertsPosition?: VerticalPosition;
76
- buttons?: FormButtonType[];
77
- formOptions?: FormOptions;
78
- closeAfterSave?: boolean;
79
- } & CommonOptions;
80
- export type FormSettings = {
81
- key?: string | number;
82
- caption?: string;
83
- treeAdapter?: TreeAdapter;
84
- controls?: FormControlProperties[];
85
- columns?: FormColumn[];
86
- rows?: FormRow[];
87
- options?: FormOptions;
88
- };
89
- export type FormButtonConfig = {
90
- key?: string;
91
- icon?: IconSpec | string;
92
- text: string;
93
- default?: boolean;
94
- color?: ColorTypes;
95
- };
96
- export type FormButtonType = "save" | "reset" | "validate" | "storno" | "close" | FormButtonConfig;
97
- export type FormAction = FormButtonType;
98
- export type FormValues = Record<string, unknown>;
99
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js DELETED
@@ -1,14 +0,0 @@
1
- export var FormControlType;
2
- (function (FormControlType) {
3
- FormControlType["TextInput"] = "text";
4
- FormControlType["Button"] = "button";
5
- FormControlType["NumericInput"] = "number";
6
- FormControlType["DateInput"] = "date";
7
- FormControlType["CalendarDateInput"] = "calendar";
8
- FormControlType["Checkbox"] = "checkbox";
9
- FormControlType["Label"] = "label";
10
- FormControlType["List"] = "list";
11
- FormControlType["ColorInput"] = "color";
12
- FormControlType["FileInput"] = "file";
13
- })(FormControlType || (FormControlType = {}));
14
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,eAWX;AAXD,WAAY,eAAe;IAC1B,qCAAkB,CAAA;IAClB,oCAAiB,CAAA;IACjB,0CAAuB,CAAA;IACvB,qCAAkB,CAAA;IAClB,iDAA8B,CAAA;IAC9B,wCAAqB,CAAA;IACrB,kCAAe,CAAA;IACf,gCAAa,CAAA;IACb,uCAAoB,CAAA;IACpB,qCAAkB,CAAA;AACnB,CAAC,EAXW,eAAe,KAAf,eAAe,QAW1B","sourcesContent":["import { ComponentAdapter, CommonOptions, ColorTypes, AlertType, VerticalPosition, IconSpec } from \"@omegagrid/core\";\nimport { TreeAdapter } from \"@omegagrid/tree\";\n\nexport enum FormControlType {\n\tTextInput = 'text',\n\tButton = 'button',\n\tNumericInput = 'number',\n\tDateInput = 'date',\n\tCalendarDateInput = 'calendar',\n\tCheckbox = 'checkbox',\n\tLabel = 'label',\n\tList = 'list',\n\tColorInput = 'color',\n\tFileInput = 'file',\n}\n\nexport type ValidationResult = {\n\tvalid: boolean;\n\tmessage?: string;\n};\n\nexport type FormControlProperties = {\n\t/** Row index within form grid */\n\trow: number,\n\t/** Column index within form grid */\n\tcol: number,\n\t/** Unique field identifier */\n\tkey?: string,\n\t/** Key of bound form control */\n\tfor?: string,\n\t/** Value validation pattern */\n\tpattern?: RegExp,\n\t/** Form control type */\n\ttype?: FormControlType,\n\t/** Required field */\n\trequired?: boolean,\n\t/** Readonly control */\n\treadOnly?: boolean,\n\t/** Current control value */\n\tvalue?: unknown,\n\t/** Key of parent element */\n\tdependsOn?: string,\n\t/** Component adapter where applicable (eg. TreeSelect) */\n\tadapter?: ComponentAdapter,\n\t/** Component item definition */\n\tcontent?: unknown,\n\t/** colspan */\n\tcs?: number,\n\t/** rowspan */\n\trs?: number,\n\t/** control-specific options */\n\toptions?: Record<string, unknown>,\n\tplaceholder?: string,\n\tcaption?: string,\n\n\t/** validation callback */\n\tvalidate?: (value: unknown, props: FormControlProperties) => ValidationResult|boolean|Promise<ValidationResult|boolean>,\n};\n\nexport type FormAlert = {\n\ttext: string,\n\ttype: AlertType\n};\n\nexport type FormRow = {\n\theight?: number\n}\n\nexport type FormColumn = {\n\twidth?: number\n}\n\nexport type FormGridModel = {\n\trows: FormRow[],\n\tcolumns: FormColumn[],\n}\n\nexport type FormOptions = {\n\ttreeAdapter?: TreeAdapter\n}\n\nexport type FormContainerOptions = {\n\tcaption?: string,\n\tbuttonsPosition?: VerticalPosition,\n\talertsPosition?: VerticalPosition,\n\tbuttons?: FormButtonType[],\n\tformOptions?: FormOptions,\n\tcloseAfterSave?: boolean\n} & CommonOptions;\n\nexport type FormSettings = {\n\tkey?: string|number,\n\tcaption?: string,\n\ttreeAdapter?: TreeAdapter,\n\tcontrols?: FormControlProperties[],\n\tcolumns?: FormColumn[],\n\trows?: FormRow[],\n\toptions?: FormOptions\n}\n\nexport type FormButtonConfig = {\n\tkey?: string,\n\ticon?: IconSpec|string,\n\ttext: string,\n\tdefault?: boolean,\n\tcolor?: ColorTypes\n}\n\nexport type FormButtonType = \"save\"|\"reset\"|\"validate\"|\"storno\"|\"close\"|FormButtonConfig;\n\nexport type FormAction = FormButtonType;\n\nexport type FormValues = Record<string, unknown>;"]}
@@ -1,32 +0,0 @@
1
- import { LitElement } from 'lit';
2
- import { ComponentAdapter } from '@omegagrid/core';
3
- import { FormControlModel, FormModel } from '../../model';
4
- export declare class ControlEvent<TValue> extends Event {
5
- readonly model: FormControlModel;
6
- readonly value: TValue;
7
- constructor(type: string, model: FormControlModel, value: TValue);
8
- }
9
- export interface IControl<TValue = unknown, TAdapter extends ComponentAdapter = null> extends HTMLElement {
10
- model: FormControlModel;
11
- adapter: TAdapter;
12
- value: TValue;
13
- reset(dispatchEvent?: boolean): Promise<void>;
14
- validate(): Promise<void>;
15
- get isValid(): boolean;
16
- }
17
- export declare abstract class BaseControl<TValue = unknown, TAdapter extends ComponentAdapter = null> extends LitElement implements IControl<TValue, TAdapter> {
18
- static styles: import("lit").CSSResult[];
19
- model: FormControlModel;
20
- formModel: FormModel;
21
- adapter: TAdapter;
22
- private _value;
23
- get value(): TValue;
24
- set value(value: TValue);
25
- required: boolean;
26
- protected updateValue(value: TValue, dispatchEvent?: boolean): Promise<void>;
27
- willUpdate(changedProps: Map<PropertyKey, unknown>): void;
28
- reset(dispatchEvent?: boolean): Promise<void>;
29
- validate(): Promise<void>;
30
- get isValid(): boolean;
31
- }
32
- //# sourceMappingURL=baseControl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseControl.d.ts","sourceRoot":"","sources":["../../../src/ui/controls/baseControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,UAAU,EAAE,MAAM,KAAK,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG1D,qBAAa,YAAY,CAAC,MAAM,CAAE,SAAQ,KAAK;aAG7B,KAAK,EAAE,gBAAgB;aACvB,KAAK,EAAE,MAAM;gBAF7B,IAAI,EAAE,MAAM,EACI,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,MAAM;CAI9B;AAED,MAAM,WAAW,QAAQ,CAAC,MAAM,GAAG,OAAO,EAAE,QAAQ,SAAS,gBAAgB,GAAG,IAAI,CAAE,SAAQ,WAAW;IACxG,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,QAAQ,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,QAAQ,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,OAAO,IAAK,OAAO,CAAC;CACxB;AAED,8BAAsB,WAAW,CAAC,MAAM,GAAG,OAAO,EAAE,QAAQ,SAAS,gBAAgB,GAAG,IAAI,CAC3F,SAAQ,UAAW,YAAW,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAExD,MAAM,CAAC,MAAM,4BAcV;IAGH,KAAK,EAAE,gBAAgB,CAAC;IAGxB,SAAS,EAAE,SAAS,CAAC;IAGrB,OAAO,EAAE,QAAQ,CAAC;IAElB,OAAO,CAAC,MAAM,CAAgB;IAC9B,IACI,KAAK,IACQ,MAAM,CADY;IACnC,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAMtB;IAGD,QAAQ,UAAS;cAED,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,UAAO;IAQ/D,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI;IASnD,KAAK,CAAC,aAAa,UAAO;IAM1B,QAAQ;IAgBd,IAAI,OAAO,YAA2C;CAEtD"}
@@ -1,97 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { css, LitElement } from 'lit';
8
- import { property } from "lit/decorators.js";
9
- export class ControlEvent extends Event {
10
- constructor(type, model, value) {
11
- super(type, { bubbles: true, cancelable: true, composed: true });
12
- this.model = model;
13
- this.value = value;
14
- }
15
- }
16
- export class BaseControl extends LitElement {
17
- constructor() {
18
- super(...arguments);
19
- this._value = null;
20
- this.required = false;
21
- }
22
- get value() { return this._value; }
23
- set value(value) {
24
- const oldValue = this._value;
25
- this._value = value;
26
- if (oldValue !== value) {
27
- this.requestUpdate('value', oldValue);
28
- }
29
- }
30
- async updateValue(value, dispatchEvent = true) {
31
- this._value = value;
32
- await this.validate();
33
- if (dispatchEvent) {
34
- this.dispatchEvent(new ControlEvent('change', this.model, value));
35
- }
36
- }
37
- willUpdate(changedProps) {
38
- if (changedProps.has('model')) {
39
- if (this.value === null) {
40
- this.value = this.model.props.value;
41
- }
42
- this.required = this.model.props.required;
43
- }
44
- }
45
- async reset(dispatchEvent = true) {
46
- const oldValue = this._value;
47
- await this.updateValue(this.model.props.value, dispatchEvent);
48
- this.requestUpdate('value', oldValue);
49
- }
50
- async validate() {
51
- if (!this.model)
52
- return;
53
- this.model.errors = [];
54
- if (this.required && (this.value == null || this.value === '')) {
55
- this.model.errors = ['this field is required'];
56
- }
57
- else if (this.model.props?.validate) {
58
- const result = await this.model.props.validate(this.value, this.model.props);
59
- const validationResult = typeof result == 'boolean' ? { valid: result } : result;
60
- if (!validationResult.valid) {
61
- this.model.errors.push(validationResult.message || 'Invalid value');
62
- }
63
- }
64
- }
65
- get isValid() { return this.model.errors.length == 0; }
66
- }
67
- BaseControl.styles = [css `
68
- :host {
69
- display: block;
70
- box-sizing: border-box;
71
- }
72
-
73
- * {
74
- box-sizing: border-box;
75
- }
76
-
77
- :host([required]) {
78
- border: 2px solid var(--og-accent-color);
79
- border-radius: var(--og-base-radius);
80
- }
81
- `];
82
- __decorate([
83
- property({ type: Object })
84
- ], BaseControl.prototype, "model", void 0);
85
- __decorate([
86
- property({ type: Object })
87
- ], BaseControl.prototype, "formModel", void 0);
88
- __decorate([
89
- property({ type: Object })
90
- ], BaseControl.prototype, "adapter", void 0);
91
- __decorate([
92
- property({ type: Object })
93
- ], BaseControl.prototype, "value", null);
94
- __decorate([
95
- property({ type: Boolean, reflect: true })
96
- ], BaseControl.prototype, "required", void 0);
97
- //# sourceMappingURL=baseControl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseControl.js","sourceRoot":"","sources":["../../../src/ui/controls/baseControl.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, LitElement } from 'lit';\nimport { property } from \"lit/decorators.js\";\nimport { ComponentAdapter } from '@omegagrid/core';\nimport { FormControlModel, FormModel } from '../../model';\nimport { ValidationResult } from '../../types';\n\nexport class ControlEvent<TValue> extends Event {\n\tconstructor(\n\t\ttype: string,\n\t\tpublic readonly model: FormControlModel,\n\t\tpublic readonly value: TValue\n\t) {\n\t\tsuper(type, {bubbles: true, cancelable: true, composed: true});\n\t}\n}\n\nexport interface IControl<TValue = unknown, TAdapter extends ComponentAdapter = null> extends HTMLElement {\n\tmodel: FormControlModel;\n\tadapter: TAdapter;\n\tvalue: TValue;\n\treset(dispatchEvent?: boolean): Promise<void>;\n\tvalidate() : Promise<void>;\n\tget isValid() : boolean;\n}\n\nexport abstract class BaseControl<TValue = unknown, TAdapter extends ComponentAdapter = null> \n\textends LitElement implements IControl<TValue, TAdapter> {\n\n\tstatic styles = [css`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\t:host([required]) {\n\t\t\tborder: 2px solid var(--og-accent-color);\n\t\t\tborder-radius: var(--og-base-radius);\n\t\t}\n\t`];\n\n\t@property({type: Object})\n\tmodel: FormControlModel;\n\n\t@property({type: Object})\n\tformModel: FormModel;\n\n\t@property({type: Object})\n\tadapter: TAdapter;\n\n\tprivate _value: TValue = null;\n\t@property({type: Object})\n\tget value() { return this._value; }\n\tset value(value: TValue) {\n\t\tconst oldValue = this._value;\n\t\tthis._value = value;\n\t\tif (oldValue !== value) {\n\t\t\tthis.requestUpdate('value', oldValue);\n\t\t}\n\t}\n\t\n\t@property({type: Boolean, reflect: true})\n\trequired = false;\n\n\tprotected async updateValue(value: TValue, dispatchEvent = true) {\n\t\tthis._value = value;\n\t\tawait this.validate();\n\t\tif (dispatchEvent) {\n\t\t\tthis.dispatchEvent(new ControlEvent<TValue>('change', this.model, value));\n\t\t}\n\t}\n\n\twillUpdate(changedProps: Map<PropertyKey, unknown>): void {\n\t\tif (changedProps.has('model')) {\n\t\t\tif (this.value === null) {\n\t\t\t\tthis.value = this.model.props.value as TValue;\n\t\t\t}\n\t\t\tthis.required = this.model.props.required;\n\t\t}\n\t}\n\n\tasync reset(dispatchEvent = true) {\n\t\tconst oldValue = this._value;\n\t\tawait this.updateValue(this.model.props.value as TValue, dispatchEvent);\n\t\tthis.requestUpdate('value', oldValue);\n\t}\n\n\tasync validate() {\n\t\tif (!this.model) return;\n\n\t\tthis.model.errors = [];\n\n\t\tif (this.required && (this.value == null || this.value === '')) {\n\t\t\tthis.model.errors = ['this field is required'];\n\t\t} else if (this.model.props?.validate) {\n\t\t\tconst result = await this.model.props.validate(this.value, this.model.props);\n\t\t\tconst validationResult = typeof result == 'boolean' ? {valid: result} as ValidationResult : result;\n\t\t\tif (!validationResult.valid) {\n\t\t\t\tthis.model.errors.push(validationResult.message || 'Invalid value');\n\t\t\t}\n\t\t}\n\t}\n\n\tget isValid() { return this.model.errors.length == 0 }\n\t\n}"]}
@@ -1,16 +0,0 @@
1
- import { Button as CoreButton } from "@omegagrid/core";
2
- import { FormControlModel } from "../../model";
3
- import { IControl } from "./baseControl";
4
- export declare class FormButton extends CoreButton implements IControl<string> {
5
- static styles: import("lit").CSSResult[];
6
- model: FormControlModel;
7
- adapter: null;
8
- value: string;
9
- constructor();
10
- protected updateValue(value: string, dispatchEvent?: boolean): void;
11
- willUpdate(props: Map<PropertyKey, unknown>): void;
12
- reset(): Promise<void>;
13
- validate(): Promise<void>;
14
- get isValid(): boolean;
15
- }
16
- //# sourceMappingURL=button.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/ui/controls/button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,IAAI,UAAU,EAAmB,MAAM,iBAAiB,CAAC;AAGnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAgB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEvD,qBAEa,UAAW,SAAQ,UAAW,YAAW,QAAQ,CAAC,MAAM,CAAC;IAErE,MAAM,CAAC,MAAM,4BAKV;IAGH,KAAK,EAAE,gBAAgB,CAAC;IAGxB,OAAO,EAAE,IAAI,CAAC;IAGd,KAAK,EAAE,MAAM,CAAQ;;IAUrB,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,UAAO;IASzD,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI;IAuB5C,KAAK;IAIL,QAAQ;IAId,IAAI,OAAO,YAA4C;CAEvD"}