@mmlogic/components 0.3.5 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{collection/utils/cell-renderer.js → mosterdcomponents/cell-renderer-CbRwLOo8.js} +9 -3
- package/dist/mosterdcomponents/cell-renderer-CbRwLOo8.js.map +1 -0
- package/dist/{esm/index.js → mosterdcomponents/client-layout-D88nn5zf.js} +4 -1
- package/dist/mosterdcomponents/client-layout-D88nn5zf.js.map +1 -0
- package/dist/{collection/utils/format.js → mosterdcomponents/format-BAfsQfy1.js} +12 -7
- package/dist/mosterdcomponents/format-BAfsQfy1.js.map +1 -0
- package/dist/{collection/utils/i18n.js → mosterdcomponents/i18n-hoGGKbKU.js} +6 -1
- package/dist/mosterdcomponents/i18n-hoGGKbKU.js.map +1 -0
- package/dist/mosterdcomponents/index-B_tPFIvS.js +4585 -0
- package/dist/mosterdcomponents/index-B_tPFIvS.js.map +1 -0
- package/dist/mosterdcomponents/index-I5SuYv7a.js +4 -0
- package/dist/mosterdcomponents/index-I5SuYv7a.js.map +1 -0
- package/dist/mosterdcomponents/index.esm.js +5 -1
- package/dist/mosterdcomponents/index.esm.js.map +1 -0
- package/dist/mosterdcomponents/mosterdcomponents.css +180 -1
- package/dist/mosterdcomponents/mosterdcomponents.esm.js +50 -1
- package/dist/mosterdcomponents/mosterdcomponents.esm.js.map +1 -0
- package/dist/mosterdcomponents/mrd-boolean-field.entry.js +37 -0
- package/dist/mosterdcomponents/mrd-boolean-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-currency-field.entry.js +67 -0
- package/dist/mosterdcomponents/mrd-currency-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-date-field.entry.js +46 -0
- package/dist/mosterdcomponents/mrd-date-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-datetime-field.entry.js +78 -0
- package/dist/mosterdcomponents/mrd-datetime-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-email-field.entry.js +50 -0
- package/dist/mosterdcomponents/mrd-email-field.entry.js.map +1 -0
- package/dist/{collection/components/mrd-field/mrd-field.js → mosterdcomponents/mrd-field.entry.js} +28 -179
- package/dist/mosterdcomponents/mrd-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-file-field.entry.js +108 -0
- package/dist/mosterdcomponents/mrd-file-field.entry.js.map +1 -0
- package/dist/{collection/components/mrd-form/mrd-form.js → mosterdcomponents/mrd-form.entry.js} +31 -308
- package/dist/mosterdcomponents/mrd-form.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-hyperlink-field.entry.js +87 -0
- package/dist/mosterdcomponents/mrd-hyperlink-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-image-field.entry.js +122 -0
- package/dist/mosterdcomponents/mrd-image-field.entry.js.map +1 -0
- package/dist/{collection/components/mrd-layout-section/mrd-layout-section.js → mosterdcomponents/mrd-layout-section.entry.js} +31 -418
- package/dist/mosterdcomponents/mrd-layout-section.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-list-field.entry.js +107 -0
- package/dist/mosterdcomponents/mrd-list-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-longtext-field.entry.js +47 -0
- package/dist/mosterdcomponents/mrd-longtext-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-number-field.entry.js +87 -0
- package/dist/mosterdcomponents/mrd-number-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-relation-field.entry.js +267 -0
- package/dist/mosterdcomponents/mrd-relation-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-secret-field.entry.js +49 -0
- package/dist/mosterdcomponents/mrd-secret-field.entry.js.map +1 -0
- package/dist/{collection/components/mrd-table/mrd-table.js → mosterdcomponents/mrd-table.entry.js} +32 -394
- package/dist/mosterdcomponents/mrd-table.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-text-field.entry.js +47 -0
- package/dist/mosterdcomponents/mrd-text-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-textarea-field.entry.js +86 -0
- package/dist/mosterdcomponents/mrd-textarea-field.entry.js.map +1 -0
- package/dist/mosterdcomponents/mrd-time-field.entry.js +46 -0
- package/dist/mosterdcomponents/mrd-time-field.entry.js.map +1 -0
- package/dist/{esm/quill-CiuCgGz_.js → mosterdcomponents/quill-C9pgw_k-.js} +16282 -1397
- package/dist/mosterdcomponents/quill-C9pgw_k-.js.map +1 -0
- package/dist/{collection/utils/validation.js → mosterdcomponents/validation-ixb43cqU.js} +12 -5
- package/dist/mosterdcomponents/validation-ixb43cqU.js.map +1 -0
- package/package.json +1 -1
- package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -5
- package/dist/cjs/index-BPj2cBXs.js +0 -1570
- package/dist/cjs/index.cjs.js +0 -66
- package/dist/cjs/loader.cjs.js +0 -13
- package/dist/cjs/mosterdcomponents.cjs.js +0 -25
- package/dist/cjs/mrd-boolean-field_20.cjs.entry.js +0 -3961
- package/dist/cjs/quill-DmFfnC1f.js +0 -16272
- package/dist/collection/collection-manifest.json +0 -32
- package/dist/collection/components/mrd-boolean-field/mrd-boolean-field.js +0 -199
- package/dist/collection/components/mrd-boolean-field/mrd-boolean-field.scss +0 -77
- package/dist/collection/components/mrd-currency-field/mrd-currency-field.js +0 -248
- package/dist/collection/components/mrd-currency-field/mrd-currency-field.scss +0 -100
- package/dist/collection/components/mrd-date-field/mrd-date-field.js +0 -206
- package/dist/collection/components/mrd-date-field/mrd-date-field.scss +0 -66
- package/dist/collection/components/mrd-datetime-field/mrd-datetime-field.js +0 -240
- package/dist/collection/components/mrd-datetime-field/mrd-datetime-field.scss +0 -66
- package/dist/collection/components/mrd-email-field/mrd-email-field.js +0 -230
- package/dist/collection/components/mrd-email-field/mrd-email-field.scss +0 -69
- package/dist/collection/components/mrd-field/mrd-field.scss +0 -118
- package/dist/collection/components/mrd-file-field/mrd-file-field.js +0 -341
- package/dist/collection/components/mrd-file-field/mrd-file-field.scss +0 -153
- package/dist/collection/components/mrd-form/mrd-form.scss +0 -148
- package/dist/collection/components/mrd-hyperlink-field/mrd-hyperlink-field.js +0 -291
- package/dist/collection/components/mrd-hyperlink-field/mrd-hyperlink-field.scss +0 -91
- package/dist/collection/components/mrd-image-field/mrd-image-field.js +0 -356
- package/dist/collection/components/mrd-image-field/mrd-image-field.scss +0 -190
- package/dist/collection/components/mrd-layout-section/mrd-layout-section.scss +0 -445
- package/dist/collection/components/mrd-list-field/mrd-list-field.js +0 -313
- package/dist/collection/components/mrd-list-field/mrd-list-field.scss +0 -109
- package/dist/collection/components/mrd-longtext-field/mrd-longtext-field.js +0 -227
- package/dist/collection/components/mrd-longtext-field/mrd-longtext-field.scss +0 -78
- package/dist/collection/components/mrd-number-field/mrd-number-field.js +0 -316
- package/dist/collection/components/mrd-number-field/mrd-number-field.scss +0 -77
- package/dist/collection/components/mrd-relation-field/mrd-relation-field.js +0 -707
- package/dist/collection/components/mrd-relation-field/mrd-relation-field.scss +0 -266
- package/dist/collection/components/mrd-secret-field/mrd-secret-field.js +0 -229
- package/dist/collection/components/mrd-secret-field/mrd-secret-field.scss +0 -73
- package/dist/collection/components/mrd-table/mrd-table.scss +0 -809
- package/dist/collection/components/mrd-text-field/mrd-text-field.js +0 -227
- package/dist/collection/components/mrd-text-field/mrd-text-field.scss +0 -69
- package/dist/collection/components/mrd-textarea-field/mrd-textarea-field.js +0 -267
- package/dist/collection/components/mrd-textarea-field/mrd-textarea-field.scss +0 -135
- package/dist/collection/components/mrd-time-field/mrd-time-field.js +0 -206
- package/dist/collection/components/mrd-time-field/mrd-time-field.scss +0 -66
- package/dist/collection/dev/api.js +0 -145
- package/dist/collection/dev/app.js +0 -890
- package/dist/collection/dev/auth.js +0 -156
- package/dist/collection/dev/example-data.js +0 -403
- package/dist/collection/dev/sprites.svg +0 -55
- package/dist/collection/index.js +0 -1
- package/dist/collection/types/client-layout.js +0 -64
- package/dist/collection/types/index.js +0 -1
- package/dist/components/client-layout.js +0 -1
- package/dist/components/format.js +0 -1
- package/dist/components/i18n.js +0 -1
- package/dist/components/index.js +0 -1
- package/dist/components/mrd-boolean-field.js +0 -1
- package/dist/components/mrd-boolean-field2.js +0 -1
- package/dist/components/mrd-currency-field.js +0 -1
- package/dist/components/mrd-currency-field2.js +0 -1
- package/dist/components/mrd-date-field.js +0 -1
- package/dist/components/mrd-date-field2.js +0 -1
- package/dist/components/mrd-datetime-field.js +0 -1
- package/dist/components/mrd-datetime-field2.js +0 -1
- package/dist/components/mrd-email-field.js +0 -1
- package/dist/components/mrd-email-field2.js +0 -1
- package/dist/components/mrd-field.js +0 -1
- package/dist/components/mrd-field2.js +0 -1
- package/dist/components/mrd-file-field.js +0 -1
- package/dist/components/mrd-file-field2.js +0 -1
- package/dist/components/mrd-form.js +0 -1
- package/dist/components/mrd-hyperlink-field.js +0 -1
- package/dist/components/mrd-hyperlink-field2.js +0 -1
- package/dist/components/mrd-image-field.js +0 -1
- package/dist/components/mrd-image-field2.js +0 -1
- package/dist/components/mrd-layout-section.js +0 -1
- package/dist/components/mrd-list-field.js +0 -1
- package/dist/components/mrd-list-field2.js +0 -1
- package/dist/components/mrd-longtext-field.js +0 -1
- package/dist/components/mrd-longtext-field2.js +0 -1
- package/dist/components/mrd-number-field.js +0 -1
- package/dist/components/mrd-number-field2.js +0 -1
- package/dist/components/mrd-relation-field.js +0 -1
- package/dist/components/mrd-relation-field2.js +0 -1
- package/dist/components/mrd-secret-field.js +0 -1
- package/dist/components/mrd-secret-field2.js +0 -1
- package/dist/components/mrd-table.js +0 -1
- package/dist/components/mrd-table2.js +0 -1
- package/dist/components/mrd-text-field.js +0 -1
- package/dist/components/mrd-text-field2.js +0 -1
- package/dist/components/mrd-textarea-field.js +0 -1
- package/dist/components/mrd-textarea-field2.js +0 -1
- package/dist/components/mrd-time-field.js +0 -1
- package/dist/components/mrd-time-field2.js +0 -1
- package/dist/components/quill.js +0 -1
- package/dist/components/validation.js +0 -1
- package/dist/esm/app-globals-DQuL1Twl.js +0 -3
- package/dist/esm/index-_tsCCkAi.js +0 -1561
- package/dist/esm/loader.js +0 -11
- package/dist/esm/mosterdcomponents.js +0 -21
- package/dist/esm/mrd-boolean-field_20.entry.js +0 -3940
- package/dist/index.cjs.js +0 -1
- package/dist/index.js +0 -1
- package/dist/mosterdcomponents/p-CiuCgGz_.js +0 -1
- package/dist/mosterdcomponents/p-DQuL1Twl.js +0 -1
- package/dist/mosterdcomponents/p-_tsCCkAi.js +0 -2
- package/dist/mosterdcomponents/p-e477187c.entry.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-I5SuYv7a.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import './index-I5SuYv7a.js';
|
|
2
|
+
export { b as ClientLayoutItemFieldDataType, c as ClientLayoutItemRelationDisplayType, d as ClientLayoutItemRelationEditBehavior, a as ClientLayoutItemType, C as ClientLayoutType } from './client-layout-D88nn5zf.js';
|
|
3
|
+
//# sourceMappingURL=index.esm.js.map
|
|
4
|
+
|
|
5
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1 +1,180 @@
|
|
|
1
|
-
|
|
1
|
+
/* Mosterd Components — global styles & CSS custom properties */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
/* Color palette */
|
|
5
|
+
--mrd-color-primary: #2563eb;
|
|
6
|
+
--mrd-color-primary-light: #dbeafe;
|
|
7
|
+
--mrd-color-primary-dark: #1d4ed8;
|
|
8
|
+
--mrd-color-primary-hover: #1e40af;
|
|
9
|
+
|
|
10
|
+
--mrd-color-neutral-50: #f9fafb;
|
|
11
|
+
--mrd-color-neutral-100: #f3f4f6;
|
|
12
|
+
--mrd-color-neutral-200: #e5e7eb;
|
|
13
|
+
--mrd-color-neutral-300: #d1d5db;
|
|
14
|
+
--mrd-color-neutral-400: #9ca3af;
|
|
15
|
+
--mrd-color-neutral-500: #6b7280;
|
|
16
|
+
--mrd-color-neutral-600: #4b5563;
|
|
17
|
+
--mrd-color-neutral-700: #374151;
|
|
18
|
+
--mrd-color-neutral-800: #1f2937;
|
|
19
|
+
--mrd-color-neutral-900: #111827;
|
|
20
|
+
|
|
21
|
+
--mrd-color-danger: #dc2626;
|
|
22
|
+
--mrd-color-danger-light: #fee2e2;
|
|
23
|
+
--mrd-color-danger-dark: #b91c1c;
|
|
24
|
+
|
|
25
|
+
--mrd-color-success: #16a34a;
|
|
26
|
+
--mrd-color-success-light: #dcfce7;
|
|
27
|
+
--mrd-color-success-dark: #15803d;
|
|
28
|
+
|
|
29
|
+
--mrd-color-warning: #d97706;
|
|
30
|
+
--mrd-color-warning-light: #fef3c7;
|
|
31
|
+
|
|
32
|
+
--mrd-color-white: #ffffff;
|
|
33
|
+
--mrd-color-black: #000000;
|
|
34
|
+
|
|
35
|
+
/* Typography */
|
|
36
|
+
--mrd-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
37
|
+
--mrd-font-family-mono: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, monospace;
|
|
38
|
+
|
|
39
|
+
--mrd-font-size-xs: 0.75rem;
|
|
40
|
+
--mrd-font-size-sm: 0.875rem;
|
|
41
|
+
--mrd-font-size-base: 1rem;
|
|
42
|
+
--mrd-font-size-lg: 1.125rem;
|
|
43
|
+
--mrd-font-size-xl: 1.25rem;
|
|
44
|
+
--mrd-font-size-2xl: 1.5rem;
|
|
45
|
+
|
|
46
|
+
--mrd-font-weight-normal: 400;
|
|
47
|
+
--mrd-font-weight-medium: 500;
|
|
48
|
+
--mrd-font-weight-semibold: 600;
|
|
49
|
+
--mrd-font-weight-bold: 700;
|
|
50
|
+
|
|
51
|
+
--mrd-line-height-tight: 1.25;
|
|
52
|
+
--mrd-line-height-normal: 1.5;
|
|
53
|
+
--mrd-line-height-relaxed: 1.75;
|
|
54
|
+
|
|
55
|
+
/* Spacing */
|
|
56
|
+
--mrd-space-0: 0;
|
|
57
|
+
--mrd-space-1: 0.25rem;
|
|
58
|
+
--mrd-space-2: 0.5rem;
|
|
59
|
+
--mrd-space-3: 0.75rem;
|
|
60
|
+
--mrd-space-4: 1rem;
|
|
61
|
+
--mrd-space-5: 1.25rem;
|
|
62
|
+
--mrd-space-6: 1.5rem;
|
|
63
|
+
--mrd-space-8: 2rem;
|
|
64
|
+
--mrd-space-10: 2.5rem;
|
|
65
|
+
--mrd-space-12: 3rem;
|
|
66
|
+
|
|
67
|
+
/* Border */
|
|
68
|
+
--mrd-border-width: 1px;
|
|
69
|
+
--mrd-border-color: #d1d5db;
|
|
70
|
+
--mrd-border-color-focus: #2563eb;
|
|
71
|
+
--mrd-border-color-error: #dc2626;
|
|
72
|
+
|
|
73
|
+
--mrd-border-radius-sm: 0.25rem;
|
|
74
|
+
--mrd-border-radius: 0.375rem;
|
|
75
|
+
--mrd-border-radius-md: 0.5rem;
|
|
76
|
+
--mrd-border-radius-lg: 0.75rem;
|
|
77
|
+
--mrd-border-radius-full: 9999px;
|
|
78
|
+
|
|
79
|
+
/* Shadow */
|
|
80
|
+
--mrd-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
|
81
|
+
--mrd-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
|
|
82
|
+
--mrd-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
|
|
83
|
+
--mrd-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
|
|
84
|
+
--mrd-shadow-focus: 0 0 0 3px rgb(37 99 235 / 0.2);
|
|
85
|
+
--mrd-shadow-focus-error: 0 0 0 3px rgb(220 38 38 / 0.2);
|
|
86
|
+
|
|
87
|
+
/* Transition */
|
|
88
|
+
--mrd-transition-fast: 100ms ease;
|
|
89
|
+
--mrd-transition: 200ms ease;
|
|
90
|
+
--mrd-transition-slow: 300ms ease;
|
|
91
|
+
|
|
92
|
+
/* Form inputs */
|
|
93
|
+
--mrd-input-height: 2.5rem;
|
|
94
|
+
--mrd-input-height-sm: 2rem;
|
|
95
|
+
--mrd-input-height-lg: 3rem;
|
|
96
|
+
--mrd-input-padding-x: 0.75rem;
|
|
97
|
+
--mrd-input-padding-y: 0.5rem;
|
|
98
|
+
--mrd-input-bg: #ffffff;
|
|
99
|
+
--mrd-input-bg-disabled: #f3f4f6;
|
|
100
|
+
--mrd-input-color: #1f2937;
|
|
101
|
+
--mrd-input-placeholder-color: #9ca3af;
|
|
102
|
+
|
|
103
|
+
/* Label */
|
|
104
|
+
--mrd-label-color: #374151;
|
|
105
|
+
--mrd-label-font-size: 0.875rem;
|
|
106
|
+
--mrd-label-font-weight: 500;
|
|
107
|
+
--mrd-label-margin-bottom: 0.25rem;
|
|
108
|
+
|
|
109
|
+
/* Error */
|
|
110
|
+
--mrd-error-color: #dc2626;
|
|
111
|
+
--mrd-error-font-size: 0.75rem;
|
|
112
|
+
|
|
113
|
+
/* Z-index */
|
|
114
|
+
--mrd-z-dropdown: 100;
|
|
115
|
+
--mrd-z-modal: 200;
|
|
116
|
+
--mrd-z-tooltip: 300;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
*,
|
|
120
|
+
*::before,
|
|
121
|
+
*::after {
|
|
122
|
+
box-sizing: border-box;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/* Prose rules for mrd-textarea-field: Quill generates DOM dynamically so Stencil's
|
|
126
|
+
scoped CSS (.sc-*) never reaches these elements — global stylesheet is the only option. */
|
|
127
|
+
mrd-textarea-field .ql-editor p {
|
|
128
|
+
margin-bottom: 0.75em;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
mrd-textarea-field .ql-editor p:last-child {
|
|
132
|
+
margin-bottom: 0;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
mrd-textarea-field .ql-editor ul {
|
|
136
|
+
list-style: disc;
|
|
137
|
+
padding-left: 1.5em;
|
|
138
|
+
margin-bottom: 0.75em;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
mrd-textarea-field .ql-editor ol {
|
|
142
|
+
list-style: decimal;
|
|
143
|
+
padding-left: 1.5em;
|
|
144
|
+
margin-bottom: 0.75em;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
mrd-textarea-field .ql-editor li {
|
|
148
|
+
margin-bottom: 0.25em;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
mrd-textarea-field .ql-editor h1 {
|
|
152
|
+
font-size: 1.75em;
|
|
153
|
+
font-weight: 700;
|
|
154
|
+
margin-bottom: 0.5em;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
mrd-textarea-field .ql-editor h2 {
|
|
158
|
+
font-size: 1.375em;
|
|
159
|
+
font-weight: 700;
|
|
160
|
+
margin-bottom: 0.5em;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
mrd-textarea-field .ql-editor h3 {
|
|
164
|
+
font-size: 1.125em;
|
|
165
|
+
font-weight: 600;
|
|
166
|
+
margin-bottom: 0.5em;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
mrd-textarea-field .ql-editor a {
|
|
170
|
+
color: var(--mrd-color-primary);
|
|
171
|
+
text-decoration: underline;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
mrd-textarea-field .ql-editor strong {
|
|
175
|
+
font-weight: 700;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
mrd-textarea-field .ql-editor em {
|
|
179
|
+
font-style: italic;
|
|
180
|
+
}
|
|
@@ -1 +1,50 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { B as BUILD, c as consoleDevInfo, H, w as win, N as NAMESPACE, p as promiseResolve, g as globalScripts, b as bootstrapLazy } from './index-B_tPFIvS.js';
|
|
2
|
+
export { s as setNonce } from './index-B_tPFIvS.js';
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
Stencil Client Patch Browser v4.43.2 | MIT Licensed | https://stenciljs.com
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
var patchBrowser = () => {
|
|
9
|
+
if (BUILD.isDev && !BUILD.isTesting) {
|
|
10
|
+
consoleDevInfo("Running in development mode.");
|
|
11
|
+
}
|
|
12
|
+
if (BUILD.cloneNodeFix) {
|
|
13
|
+
patchCloneNodeFix(H.prototype);
|
|
14
|
+
}
|
|
15
|
+
const scriptElm = BUILD.scriptDataOpts ? win.document && Array.from(win.document.querySelectorAll("script")).find(
|
|
16
|
+
(s) => new RegExp(`/${NAMESPACE}(\\.esm)?\\.js($|\\?|#)`).test(s.src) || s.getAttribute("data-stencil-namespace") === NAMESPACE
|
|
17
|
+
) : null;
|
|
18
|
+
const importMeta = import.meta.url;
|
|
19
|
+
const opts = BUILD.scriptDataOpts ? (scriptElm || {})["data-opts"] || {} : {};
|
|
20
|
+
if (importMeta !== "") {
|
|
21
|
+
opts.resourcesUrl = new URL(".", importMeta).href;
|
|
22
|
+
}
|
|
23
|
+
return promiseResolve(opts);
|
|
24
|
+
};
|
|
25
|
+
var patchCloneNodeFix = (HTMLElementPrototype) => {
|
|
26
|
+
const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;
|
|
27
|
+
HTMLElementPrototype.cloneNode = function(deep) {
|
|
28
|
+
if (this.nodeName === "TEMPLATE") {
|
|
29
|
+
return nativeCloneNodeFn.call(this, deep);
|
|
30
|
+
}
|
|
31
|
+
const clonedNode = nativeCloneNodeFn.call(this, false);
|
|
32
|
+
const srcChildNodes = this.childNodes;
|
|
33
|
+
if (deep) {
|
|
34
|
+
for (let i = 0; i < srcChildNodes.length; i++) {
|
|
35
|
+
if (srcChildNodes[i].nodeType !== 2) {
|
|
36
|
+
clonedNode.appendChild(srcChildNodes[i].cloneNode(true));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return clonedNode;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
patchBrowser().then(async (options) => {
|
|
45
|
+
await globalScripts();
|
|
46
|
+
return bootstrapLazy([["mrd-form",[[2,"mrd-form",{"layout":[16],"locale":[1],"values":[16],"referenceHref":[1,"reference-href"],"referenceClass":[1,"reference-class"],"showCancel":[4,"show-cancel"],"me":[16],"formValues":[32],"errors":[32],"submitted":[32],"setFieldValue":[64]},null,{"values":[{"valuesChanged":0}],"me":[{"meChanged":0}]}]]],["mrd-layout-section",[[2,"mrd-layout-section",{"items":[16],"data":[16],"views":[16],"links":[16],"locale":[1],"searchQueryMap":[32],"searchResultsMap":[32],"imagePreviewUrl":[32],"imagePreviews":[32],"openHistoryField":[32],"setSearchResults":[64],"setViewPage":[64],"setViewAggregations":[64],"setImagePreview":[64],"openImagePreview":[64]},null,{"data":[{"dataChanged":0}]}]]],["mrd-field",[[2,"mrd-field",{"item":[16],"locale":[1],"value":[16],"historyEntries":[32],"currentValue":[32]},null,{"value":[{"valueChanged":0}]}]]],["mrd-table",[[2,"mrd-table",{"item":[16],"parentId":[1,"parent-id"],"rows":[16],"locale":[1],"totalElements":[2,"total-elements"],"pageSize":[2,"page-size"],"rowHeight":[2,"row-height"],"tableHeight":[2,"table-height"],"activeViewIdx":[32],"loadedPages":[32],"requestedPages":[32],"renderStart":[32],"renderEnd":[32],"colWidths":[32],"sortField":[32],"sortDir":[32],"filterMode":[32],"activeFilters":[32],"openFilterCol":[32],"pendingFilter":[32],"popupPos":[32],"createPickerOpen":[32],"viewPopoverOpen":[32],"scrollTop":[32],"textblockModal":[32],"jsonModal":[32],"aggregations":[32],"aggregationsTotal":[32],"minKnownTotal":[32],"init":[64],"setPage":[64],"setAggregations":[64]},null,{"totalElements":[{"totalElementsChanged":0}],"item":[{"itemChanged":0}]}]]],["mrd-boolean-field",[[2,"mrd-boolean-field",{"name":[1],"label":[1],"value":[4],"required":[4],"disabled":[4],"locale":[1],"checked":[32]}]]],["mrd-currency-field",[[2,"mrd-currency-field",{"name":[1],"label":[1],"value":[16],"required":[4],"disabled":[4],"locale":[1],"amountDisplay":[32],"currency":[32],"error":[32]}]]],["mrd-date-field",[[2,"mrd-date-field",{"name":[1],"label":[1],"value":[1],"required":[4],"disabled":[4],"locale":[1],"error":[32]}]]],["mrd-datetime-field",[[2,"mrd-datetime-field",{"name":[1],"label":[1],"value":[1],"required":[4],"disabled":[4],"locale":[1],"error":[32],"localValue":[32]},null,{"value":[{"valueChanged":0}]}]]],["mrd-email-field",[[2,"mrd-email-field",{"name":[1],"label":[1],"value":[1],"placeholder":[1],"required":[4],"disabled":[4],"locale":[1],"error":[32]}]]],["mrd-file-field",[[2,"mrd-file-field",{"name":[1],"label":[1],"value":[16],"required":[4],"disabled":[4],"locale":[1],"accept":[1],"maxSize":[2,"max-size"],"fileName":[32],"isDragging":[32],"uploading":[32],"error":[32]},null,{"value":[{"valueChanged":0}]}]]],["mrd-hyperlink-field",[[2,"mrd-hyperlink-field",{"name":[1],"label":[1],"value":[1],"placeholder":[1],"required":[4],"disabled":[4],"locale":[1],"internalHref":[32],"internalName":[32],"error":[32]},null,{"value":[{"valueChanged":0}]}]]],["mrd-image-field",[[2,"mrd-image-field",{"name":[1],"label":[1],"value":[16],"required":[4],"disabled":[4],"locale":[1],"accept":[1],"maxSize":[2,"max-size"],"previewUrl":[32],"fileName":[32],"isDragging":[32],"uploading":[32],"error":[32]},null,{"value":[{"valueChanged":0}]}]]],["mrd-list-field",[[2,"mrd-list-field",{"name":[1],"label":[1],"value":[1],"required":[4],"disabled":[4],"multiple":[4],"locale":[1],"listItems":[16],"error":[32],"selected":[32]}]]],["mrd-longtext-field",[[2,"mrd-longtext-field",{"name":[1],"label":[1],"value":[1],"placeholder":[1],"required":[4],"disabled":[4],"locale":[1],"error":[32]}]]],["mrd-number-field",[[2,"mrd-number-field",{"name":[1],"label":[1],"value":[2],"placeholder":[1],"required":[4],"disabled":[4],"locale":[1],"dataType":[1,"data-type"],"decimalPrecision":[2,"decimal-precision"],"displayValue":[32],"error":[32]}]]],["mrd-relation-field",[[2,"mrd-relation-field",{"name":[1],"label":[1],"required":[4],"disabled":[4],"locale":[1],"relatedClass":[1,"related-class"],"mostSignificantClass":[1,"most-significant-class"],"displayType":[1,"display-type"],"editBehavior":[1,"edit-behavior"],"commonRelation":[1,"common-relation"],"multiple":[4],"dropdownValues":[16],"value":[1],"searchQuery":[32],"searchResults":[32],"allRecords":[32],"isLoading":[32],"selectedItems":[32],"showResults":[32],"error":[32],"highlightedIndex":[32],"setAllRecords":[64],"setSearchResults":[64],"setLoading":[64]},null,{"allRecords":[{"allRecordsChanged":0}],"value":[{"valueChanged":0}]}]]],["mrd-secret-field",[[2,"mrd-secret-field",{"name":[1],"label":[1],"value":[1],"placeholder":[1],"required":[4],"disabled":[4],"locale":[1],"error":[32]}]]],["mrd-text-field",[[2,"mrd-text-field",{"name":[1],"label":[1],"value":[1],"placeholder":[1],"required":[4],"disabled":[4],"locale":[1],"error":[32]}]]],["mrd-textarea-field",[[2,"mrd-textarea-field",{"name":[1],"label":[1],"value":[1],"placeholder":[1],"required":[4],"disabled":[4],"locale":[1],"error":[32],"editorReady":[32]}]]],["mrd-time-field",[[2,"mrd-time-field",{"name":[1],"label":[1],"value":[1],"required":[4],"disabled":[4],"locale":[1],"error":[32]}]]]], options);
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=mosterdcomponents.esm.js.map
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=mosterdcomponents.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mosterdcomponents.esm.js","sources":["node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.43.2 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, H, promiseResolve, win } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? win.document && Array.from(win.document.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"names":[],"mappings":";;;AAAA;AACA;AACA;;AAKA,IAAI,YAAY,GAAG,MAAM;AACzB,EAAE,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;AACvC,IAAI,cAAc,CAAC,8BAA8B,CAAC;AAClD;AACA,EAAE,IAAI,KAAK,CAAC,YAAY,EAAE;AAC1B,IAAI,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;AAClC;AACA,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;AACnH,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAAC,KAAK;AAC1H,GAAG,GAAG,IAAI;AACV,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AACpC,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,SAAS,IAAI,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE;AAC/E,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI;AACrD;AACA,EAAE,OAAO,cAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;AACD,IAAI,iBAAiB,GAAG,CAAC,oBAAoB,KAAK;AAClD,EAAE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,SAAS;AAC1D,EAAE,oBAAoB,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE;AAClD,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;AACtC,MAAM,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/C;AACA,IAAI,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1D,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU;AACzC,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrD,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC7C,UAAU,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAClE;AACA;AACA;AACA,IAAI,OAAO,UAAU;AACrB,GAAG;AACH,CAAC;;ACrCD,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK;AACvC,EAAE,MAAM,aAAa,EAAE;AACvB,EAAE,OAAO,aAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D,CAAC,CAAC","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host } from './index-B_tPFIvS.js';
|
|
2
|
+
|
|
3
|
+
const mrdBooleanFieldScss = () => `.sc-mrd-boolean-field-h{display:block}.mrd-boolean-field.sc-mrd-boolean-field{display:flex;align-items:center;width:100%}.mrd-boolean-field__toggle-label.sc-mrd-boolean-field{display:flex;align-items:center;gap:var(--mrd-space-3);cursor:pointer;user-select:none}.mrd-boolean-field__checkbox.sc-mrd-boolean-field{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.mrd-boolean-field__checkbox.sc-mrd-boolean-field:checked+.mrd-boolean-field__toggle.sc-mrd-boolean-field{background-color:var(--mrd-color-primary)}.mrd-boolean-field__checkbox.sc-mrd-boolean-field:checked+.mrd-boolean-field__toggle.sc-mrd-boolean-field::after{transform:translateX(20px)}.mrd-boolean-field__checkbox.sc-mrd-boolean-field:focus+.mrd-boolean-field__toggle.sc-mrd-boolean-field{box-shadow:var(--mrd-shadow-focus)}.mrd-boolean-field__checkbox.sc-mrd-boolean-field:disabled+.mrd-boolean-field__toggle.sc-mrd-boolean-field{opacity:0.5;cursor:not-allowed}.mrd-boolean-field__toggle.sc-mrd-boolean-field{position:relative;display:inline-block;width:44px;height:24px;background-color:var(--mrd-color-neutral-300);border-radius:var(--mrd-border-radius-full);transition:background-color var(--mrd-transition);flex-shrink:0}.mrd-boolean-field__toggle.sc-mrd-boolean-field::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;background-color:var(--mrd-color-white);border-radius:50%;transition:transform var(--mrd-transition);box-shadow:var(--mrd-shadow-sm)}.mrd-boolean-field__text.sc-mrd-boolean-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-color-neutral-800)}.mrd-boolean-field__text--required.sc-mrd-boolean-field::after{content:' *';color:var(--mrd-color-danger)}`;
|
|
4
|
+
|
|
5
|
+
const MrdBooleanField = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.mrdChange = createEvent(this, "mrdChange", 7);
|
|
9
|
+
this.mrdBlur = createEvent(this, "mrdBlur", 7);
|
|
10
|
+
this.name = '';
|
|
11
|
+
this.label = '';
|
|
12
|
+
this.value = false;
|
|
13
|
+
this.required = false;
|
|
14
|
+
this.disabled = false;
|
|
15
|
+
this.locale = navigator.language;
|
|
16
|
+
this.checked = false;
|
|
17
|
+
this.handleChange = (e) => {
|
|
18
|
+
this.checked = e.target.checked;
|
|
19
|
+
this.mrdChange.emit({ name: this.name, value: this.checked });
|
|
20
|
+
};
|
|
21
|
+
this.handleBlur = () => {
|
|
22
|
+
this.mrdBlur.emit({ name: this.name, value: this.checked });
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
componentWillLoad() {
|
|
26
|
+
this.checked = !!this.value;
|
|
27
|
+
}
|
|
28
|
+
render() {
|
|
29
|
+
return (h(Host, { key: 'aed1d936d686870114a12aad9fc4cccb76ecd31e' }, h("div", { key: '5cc8aaa0f12d4195d02fce8a810d7d993e2e8c99', class: "mrd-boolean-field" }, h("label", { key: '41c3b3e0f01778fc2654ba86e3fe4e5a07c8537a', class: "mrd-boolean-field__toggle-label" }, h("input", { key: 'c261e6903e050d2f3d8df8abb90c74d99ed20161', class: "mrd-boolean-field__checkbox", type: "checkbox", name: this.name, checked: this.checked, disabled: this.disabled, onChange: this.handleChange, onBlur: this.handleBlur }), h("span", { key: '079ee220fe692536af15a7fb4286626102ae940e', class: "mrd-boolean-field__toggle", "aria-hidden": "true" }), this.label && (h("span", { key: '1f4f52a41f0bd6ba4c61cf9d4db74ab2f1aa8877', class: `mrd-boolean-field__text${this.required ? ' mrd-boolean-field__text--required' : ''}` }, this.label))))));
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
MrdBooleanField.style = mrdBooleanFieldScss();
|
|
33
|
+
|
|
34
|
+
export { MrdBooleanField as mrd_boolean_field };
|
|
35
|
+
//# sourceMappingURL=mrd-boolean-field.entry.esm.js.map
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=mrd-boolean-field.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"mrd-boolean-field.entry.js","mappings":";;AAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,yrDAAyrD,CAAC;;MCOhtD,eAAe,GAAA,MAAA;AAL5B,IAAA,WAAA,CAAA,OAAA,EAAA;;;;AAMU,QAAA,IAAA,CAAA,IAAI,GAAW,EAAE;AACjB,QAAA,IAAA,CAAA,KAAK,GAAW,EAAE;AAClB,QAAA,IAAA,CAAA,KAAK,GAAY,KAAK;AACtB,QAAA,IAAA,CAAA,QAAQ,GAAY,KAAK;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAY,KAAK;AACzB,QAAA,IAAA,CAAA,MAAM,GAAW,SAAS,CAAC,QAAQ;AAElC,QAAA,IAAA,CAAA,OAAO,GAAY,KAAK;AASzB,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,CAAQ,KAAI;YAClC,IAAI,CAAC,OAAO,GAAI,CAAC,CAAC,MAA2B,CAAC,OAAO;AACrD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/D,SAAC;AAEO,QAAA,IAAA,CAAA,UAAU,GAAG,MAAK;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAC7D,SAAC;AA2BF;IAtCC,iBAAiB,GAAA;QACf,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK;;IAY7B,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,mBAAmB,EAAA,EAC5B,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,KAAK,EAAC,iCAAiC,EAAA,EAC5C,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,6BAA6B,EACnC,IAAI,EAAC,UAAU,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,MAAM,EAAE,IAAI,CAAC,UAAU,EAAA,CACvB,EACF,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,2BAA2B,EAAA,aAAA,EAAa,MAAM,EAAA,CAAQ,EACjE,IAAI,CAAC,KAAK,KACT,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,CAAA,uBAAA,EAA0B,IAAI,CAAC,QAAQ,GAAG,oCAAoC,GAAG,EAAE,CAAA,CAAE,EAAA,EAC/F,IAAI,CAAC,KAAK,CACN,CACR,CACK,CACJ,CACD;;;;;;;","names":[],"sources":["src/components/mrd-boolean-field/mrd-boolean-field.scss?tag=mrd-boolean-field&encapsulation=scoped","src/components/mrd-boolean-field/mrd-boolean-field.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.mrd-boolean-field {\n display: flex;\n align-items: center;\n width: 100%;\n}\n\n.mrd-boolean-field__toggle-label {\n display: flex;\n align-items: center;\n gap: var(--mrd-space-3);\n cursor: pointer;\n user-select: none;\n}\n\n.mrd-boolean-field__checkbox {\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n pointer-events: none;\n}\n\n.mrd-boolean-field__checkbox:checked + .mrd-boolean-field__toggle {\n background-color: var(--mrd-color-primary);\n}\n\n.mrd-boolean-field__checkbox:checked + .mrd-boolean-field__toggle::after {\n transform: translateX(20px);\n}\n\n.mrd-boolean-field__checkbox:focus + .mrd-boolean-field__toggle {\n box-shadow: var(--mrd-shadow-focus);\n}\n\n.mrd-boolean-field__checkbox:disabled + .mrd-boolean-field__toggle {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.mrd-boolean-field__toggle {\n position: relative;\n display: inline-block;\n width: 44px;\n height: 24px;\n background-color: var(--mrd-color-neutral-300);\n border-radius: var(--mrd-border-radius-full);\n transition: background-color var(--mrd-transition);\n flex-shrink: 0;\n}\n\n.mrd-boolean-field__toggle::after {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: 20px;\n height: 20px;\n background-color: var(--mrd-color-white);\n border-radius: 50%;\n transition: transform var(--mrd-transition);\n box-shadow: var(--mrd-shadow-sm);\n}\n\n.mrd-boolean-field__text {\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-base);\n color: var(--mrd-color-neutral-800);\n}\n\n.mrd-boolean-field__text--required::after {\n content: ' *';\n color: var(--mrd-color-danger);\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'mrd-boolean-field',\n styleUrl: 'mrd-boolean-field.scss',\n scoped: true,\n})\nexport class MrdBooleanField {\n @Prop() name: string = '';\n @Prop() label: string = '';\n @Prop() value: boolean = false;\n @Prop() required: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() locale: string = navigator.language;\n\n @State() checked: boolean = false;\n\n @Event() mrdChange!: EventEmitter<{ name: string; value: boolean }>;\n @Event() mrdBlur!: EventEmitter<{ name: string; value: boolean }>;\n\n componentWillLoad() {\n this.checked = !!this.value;\n }\n\n private handleChange = (e: Event) => {\n this.checked = (e.target as HTMLInputElement).checked;\n this.mrdChange.emit({ name: this.name, value: this.checked });\n };\n\n private handleBlur = () => {\n this.mrdBlur.emit({ name: this.name, value: this.checked });\n };\n\n render() {\n return (\n <Host>\n <div class=\"mrd-boolean-field\">\n <label class=\"mrd-boolean-field__toggle-label\">\n <input\n class=\"mrd-boolean-field__checkbox\"\n type=\"checkbox\"\n name={this.name}\n checked={this.checked}\n disabled={this.disabled}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n />\n <span class=\"mrd-boolean-field__toggle\" aria-hidden=\"true\"></span>\n {this.label && (\n <span class={`mrd-boolean-field__text${this.required ? ' mrd-boolean-field__text--required' : ''}`}>\n {this.label}\n </span>\n )}\n </label>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host } from './index-B_tPFIvS.js';
|
|
2
|
+
import { t } from './i18n-hoGGKbKU.js';
|
|
3
|
+
import { v as validateRequired } from './validation-ixb43cqU.js';
|
|
4
|
+
import { p as parseLocalizedNumber } from './format-BAfsQfy1.js';
|
|
5
|
+
import './index-I5SuYv7a.js';
|
|
6
|
+
import './client-layout-D88nn5zf.js';
|
|
7
|
+
|
|
8
|
+
const mrdCurrencyFieldScss = () => `.sc-mrd-currency-field-h{display:block}.mrd-currency-field.sc-mrd-currency-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-currency-field__label.sc-mrd-currency-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-currency-field__label--required.sc-mrd-currency-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-currency-field__row.sc-mrd-currency-field{display:flex;gap:var(--mrd-space-2);align-items:stretch}.mrd-currency-field__amount.sc-mrd-currency-field{flex:1;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);outline:none;appearance:none;text-align:right;box-sizing:border-box}.mrd-currency-field__amount.sc-mrd-currency-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-currency-field__amount.sc-mrd-currency-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-currency-field__amount--error.sc-mrd-currency-field{border-color:var(--mrd-border-color-error)}.mrd-currency-field__amount--error.sc-mrd-currency-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-currency-field__currency.sc-mrd-currency-field{width:90px;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-space-2);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-input-color);background-color:var(--mrd-color-neutral-50);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);outline:none;cursor:pointer;box-sizing:border-box;appearance:none;text-align:center}.mrd-currency-field__currency.sc-mrd-currency-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-currency-field__currency.sc-mrd-currency-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-currency-field__error.sc-mrd-currency-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}`;
|
|
9
|
+
|
|
10
|
+
const COMMON_CURRENCIES = [
|
|
11
|
+
'EUR', 'USD', 'GBP', 'CHF', 'JPY', 'CNY', 'AUD', 'CAD',
|
|
12
|
+
'SEK', 'NOK', 'DKK', 'NZD', 'SGD', 'HKD', 'PLN', 'CZK',
|
|
13
|
+
'HUF', 'MXN', 'BRL', 'INR', 'TRY', 'ZAR', 'AED', 'SAR',
|
|
14
|
+
];
|
|
15
|
+
const MrdCurrencyField = class {
|
|
16
|
+
constructor(hostRef) {
|
|
17
|
+
registerInstance(this, hostRef);
|
|
18
|
+
this.mrdChange = createEvent(this, "mrdChange", 7);
|
|
19
|
+
this.mrdBlur = createEvent(this, "mrdBlur", 7);
|
|
20
|
+
this.name = '';
|
|
21
|
+
this.label = '';
|
|
22
|
+
this.value = { amount: null, currency: 'EUR' };
|
|
23
|
+
this.required = false;
|
|
24
|
+
this.disabled = false;
|
|
25
|
+
this.locale = navigator.language;
|
|
26
|
+
this.amountDisplay = '';
|
|
27
|
+
this.currency = 'EUR';
|
|
28
|
+
this.error = '';
|
|
29
|
+
this.handleAmountInput = (e) => {
|
|
30
|
+
this.amountDisplay = e.target.value;
|
|
31
|
+
};
|
|
32
|
+
this.handleAmountBlur = (e) => {
|
|
33
|
+
const raw = e.target.value;
|
|
34
|
+
const parsed = parseLocalizedNumber(raw, this.locale);
|
|
35
|
+
if (this.required && !validateRequired(raw)) {
|
|
36
|
+
this.error = t('required', this.locale);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.error = '';
|
|
40
|
+
}
|
|
41
|
+
const val = { amount: parsed, currency: this.currency };
|
|
42
|
+
this.mrdChange.emit({ name: this.name, value: val });
|
|
43
|
+
this.mrdBlur.emit({ name: this.name, value: val });
|
|
44
|
+
};
|
|
45
|
+
this.handleCurrencyChange = (e) => {
|
|
46
|
+
this.currency = e.target.value;
|
|
47
|
+
const parsed = parseLocalizedNumber(this.amountDisplay, this.locale);
|
|
48
|
+
this.mrdChange.emit({ name: this.name, value: { amount: parsed, currency: this.currency } });
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
componentWillLoad() {
|
|
52
|
+
if (this.value) {
|
|
53
|
+
this.currency = this.value.currency || 'EUR';
|
|
54
|
+
this.amountDisplay = this.value.amount !== null ? String(this.value.amount) : '';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
render() {
|
|
58
|
+
const hasError = !!this.error;
|
|
59
|
+
return (h(Host, { key: 'd3450e9c26b1a755d3e6a5a3561d93b2ac566a28' }, h("div", { key: 'b66942cc1953daff728504deef8a9cc1330ef549', class: "mrd-currency-field" }, this.label && (h("label", { key: '3d3f2f06e9ffea944552f0f7cf3150d0246c54f0', class: `mrd-currency-field__label${this.required ? ' mrd-currency-field__label--required' : ''}` }, this.label)), h("div", { key: 'd30a2adfceefdbefef2d4fe6633a163a753b15d0', class: "mrd-currency-field__row" }, h("input", { key: '9af09b19b6cbe24498d6ca8edf7b28f675afdec5', class: `mrd-currency-field__amount${hasError ? ' mrd-currency-field__amount--error' : ''}`, type: "text", inputMode: "decimal", name: `${this.name}_amount`, value: this.amountDisplay, placeholder: "0.00", required: this.required, disabled: this.disabled, onInput: this.handleAmountInput, onBlur: this.handleAmountBlur }), h("select", { key: '21e55b04b7bf16586b5cfaa82d77db45c6dedf21', class: "mrd-currency-field__currency", disabled: this.disabled, onChange: this.handleCurrencyChange }, COMMON_CURRENCIES.map(c => (h("option", { key: c, value: c, selected: c === this.currency }, c))))), hasError && h("span", { key: '7a0006d4230557cf9c58f82f21de73b5d12f7e17', class: "mrd-currency-field__error" }, this.error))));
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
MrdCurrencyField.style = mrdCurrencyFieldScss();
|
|
63
|
+
|
|
64
|
+
export { MrdCurrencyField as mrd_currency_field };
|
|
65
|
+
//# sourceMappingURL=mrd-currency-field.entry.esm.js.map
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=mrd-currency-field.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"mrd-currency-field.entry.js","mappings":"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","names":[],"sources":["src/components/mrd-currency-field/mrd-currency-field.scss?tag=mrd-currency-field&encapsulation=scoped","src/components/mrd-currency-field/mrd-currency-field.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.mrd-currency-field {\n display: flex;\n flex-direction: column;\n gap: var(--mrd-space-1);\n width: 100%;\n}\n\n.mrd-currency-field__label {\n display: block;\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-label-font-size);\n font-weight: var(--mrd-label-font-weight);\n color: var(--mrd-label-color);\n}\n\n.mrd-currency-field__label--required::after {\n content: ' *';\n color: var(--mrd-color-danger);\n}\n\n.mrd-currency-field__row {\n display: flex;\n gap: var(--mrd-space-2);\n align-items: stretch;\n}\n\n.mrd-currency-field__amount {\n flex: 1;\n height: var(--mrd-input-height);\n padding: var(--mrd-input-padding-y) var(--mrd-input-padding-x);\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-base);\n color: var(--mrd-input-color);\n background-color: var(--mrd-input-bg);\n border: var(--mrd-border-width) solid var(--mrd-border-color);\n border-radius: var(--mrd-border-radius);\n transition: border-color var(--mrd-transition), box-shadow var(--mrd-transition);\n outline: none;\n appearance: none;\n text-align: right;\n box-sizing: border-box;\n}\n\n.mrd-currency-field__amount:focus {\n border-color: var(--mrd-border-color-focus);\n box-shadow: var(--mrd-shadow-focus);\n}\n\n.mrd-currency-field__amount:disabled {\n background-color: var(--mrd-input-bg-disabled);\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.mrd-currency-field__amount--error {\n border-color: var(--mrd-border-color-error);\n}\n\n.mrd-currency-field__amount--error:focus {\n box-shadow: var(--mrd-shadow-focus-error);\n}\n\n.mrd-currency-field__currency {\n width: 90px;\n height: var(--mrd-input-height);\n padding: var(--mrd-input-padding-y) var(--mrd-space-2);\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-sm);\n font-weight: var(--mrd-font-weight-medium);\n color: var(--mrd-input-color);\n background-color: var(--mrd-color-neutral-50);\n border: var(--mrd-border-width) solid var(--mrd-border-color);\n border-radius: var(--mrd-border-radius);\n outline: none;\n cursor: pointer;\n box-sizing: border-box;\n appearance: none;\n text-align: center;\n}\n\n.mrd-currency-field__currency:focus {\n border-color: var(--mrd-border-color-focus);\n box-shadow: var(--mrd-shadow-focus);\n}\n\n.mrd-currency-field__currency:disabled {\n background-color: var(--mrd-input-bg-disabled);\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.mrd-currency-field__error {\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-error-font-size);\n color: var(--mrd-error-color);\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter } from '@stencil/core';\nimport { t } from '../../utils/i18n';\nimport { validateRequired } from '../../utils/validation';\nimport { parseLocalizedNumber } from '../../utils/format';\nimport { CurrencyValue } from '../../types';\n\nconst COMMON_CURRENCIES = [\n 'EUR', 'USD', 'GBP', 'CHF', 'JPY', 'CNY', 'AUD', 'CAD',\n 'SEK', 'NOK', 'DKK', 'NZD', 'SGD', 'HKD', 'PLN', 'CZK',\n 'HUF', 'MXN', 'BRL', 'INR', 'TRY', 'ZAR', 'AED', 'SAR',\n];\n\n@Component({\n tag: 'mrd-currency-field',\n styleUrl: 'mrd-currency-field.scss',\n scoped: true,\n})\nexport class MrdCurrencyField {\n @Prop() name: string = '';\n @Prop() label: string = '';\n @Prop() value: CurrencyValue = { amount: null, currency: 'EUR' };\n @Prop() required: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() locale: string = navigator.language;\n\n @State() amountDisplay: string = '';\n @State() currency: string = 'EUR';\n @State() error: string = '';\n\n @Event() mrdChange!: EventEmitter<{ name: string; value: CurrencyValue }>;\n @Event() mrdBlur!: EventEmitter<{ name: string; value: CurrencyValue }>;\n\n componentWillLoad() {\n if (this.value) {\n this.currency = this.value.currency || 'EUR';\n this.amountDisplay = this.value.amount !== null ? String(this.value.amount) : '';\n }\n }\n\n private handleAmountInput = (e: Event) => {\n this.amountDisplay = (e.target as HTMLInputElement).value;\n };\n\n private handleAmountBlur = (e: Event) => {\n const raw = (e.target as HTMLInputElement).value;\n const parsed = parseLocalizedNumber(raw, this.locale);\n\n if (this.required && !validateRequired(raw)) {\n this.error = t('required', this.locale);\n } else {\n this.error = '';\n }\n\n const val: CurrencyValue = { amount: parsed, currency: this.currency };\n this.mrdChange.emit({ name: this.name, value: val });\n this.mrdBlur.emit({ name: this.name, value: val });\n };\n\n private handleCurrencyChange = (e: Event) => {\n this.currency = (e.target as HTMLSelectElement).value;\n const parsed = parseLocalizedNumber(this.amountDisplay, this.locale);\n this.mrdChange.emit({ name: this.name, value: { amount: parsed, currency: this.currency } });\n };\n\n render() {\n const hasError = !!this.error;\n return (\n <Host>\n <div class=\"mrd-currency-field\">\n {this.label && (\n <label class={`mrd-currency-field__label${this.required ? ' mrd-currency-field__label--required' : ''}`}>\n {this.label}\n </label>\n )}\n <div class=\"mrd-currency-field__row\">\n <input\n class={`mrd-currency-field__amount${hasError ? ' mrd-currency-field__amount--error' : ''}`}\n type=\"text\"\n inputMode=\"decimal\"\n name={`${this.name}_amount`}\n value={this.amountDisplay}\n placeholder=\"0.00\"\n required={this.required}\n disabled={this.disabled}\n onInput={this.handleAmountInput}\n onBlur={this.handleAmountBlur}\n />\n <select\n class=\"mrd-currency-field__currency\"\n disabled={this.disabled}\n onChange={this.handleCurrencyChange}\n >\n {COMMON_CURRENCIES.map(c => (\n <option key={c} value={c} selected={c === this.currency}>\n {c}\n </option>\n ))}\n </select>\n </div>\n {hasError && <span class=\"mrd-currency-field__error\">{this.error}</span>}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host } from './index-B_tPFIvS.js';
|
|
2
|
+
import { t } from './i18n-hoGGKbKU.js';
|
|
3
|
+
import { v as validateRequired } from './validation-ixb43cqU.js';
|
|
4
|
+
import './index-I5SuYv7a.js';
|
|
5
|
+
import './client-layout-D88nn5zf.js';
|
|
6
|
+
|
|
7
|
+
const mrdDateFieldScss = () => `.sc-mrd-date-field-h{display:block}.mrd-date-field.sc-mrd-date-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-date-field__label.sc-mrd-date-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-date-field__label--required.sc-mrd-date-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-date-field__input.sc-mrd-date-field{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);outline:none;appearance:none;box-sizing:border-box;cursor:pointer}.mrd-date-field__input.sc-mrd-date-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-date-field__input.sc-mrd-date-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-date-field__input--error.sc-mrd-date-field{border-color:var(--mrd-border-color-error)}.mrd-date-field__input--error.sc-mrd-date-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-date-field__error.sc-mrd-date-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}`;
|
|
8
|
+
|
|
9
|
+
const MrdDateField = class {
|
|
10
|
+
constructor(hostRef) {
|
|
11
|
+
registerInstance(this, hostRef);
|
|
12
|
+
this.mrdChange = createEvent(this, "mrdChange", 7);
|
|
13
|
+
this.mrdBlur = createEvent(this, "mrdBlur", 7);
|
|
14
|
+
this.name = '';
|
|
15
|
+
this.label = '';
|
|
16
|
+
this.value = '';
|
|
17
|
+
this.required = false;
|
|
18
|
+
this.disabled = false;
|
|
19
|
+
this.locale = navigator.language;
|
|
20
|
+
this.error = '';
|
|
21
|
+
this.handleChange = (e) => {
|
|
22
|
+
const val = e.target.value;
|
|
23
|
+
if (this.required && !validateRequired(val)) {
|
|
24
|
+
this.error = t('required', this.locale);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
this.error = '';
|
|
28
|
+
}
|
|
29
|
+
this.mrdChange.emit({ name: this.name, value: val });
|
|
30
|
+
};
|
|
31
|
+
this.handleBlur = (e) => {
|
|
32
|
+
const val = e.target.value;
|
|
33
|
+
this.mrdBlur.emit({ name: this.name, value: val });
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
render() {
|
|
37
|
+
const hasError = !!this.error;
|
|
38
|
+
return (h(Host, { key: '84c777fc68a95e0b1ceb08d61e3af7afa199ce94' }, h("div", { key: '6653d94ab79c74342ce792792547018e4464a814', class: "mrd-date-field" }, this.label && (h("label", { key: '2fa7b7ec50c784f9410ca48b93d50e39dc6e0bee', class: `mrd-date-field__label${this.required ? ' mrd-date-field__label--required' : ''}` }, this.label)), h("input", { key: 'f79ebbaf0e28ad7668a5400d1df514b66457b72d', class: `mrd-date-field__input${hasError ? ' mrd-date-field__input--error' : ''}`, type: "date", name: this.name, value: this.value, required: this.required, disabled: this.disabled, onChange: this.handleChange, onBlur: this.handleBlur }), hasError && h("span", { key: 'e52f0b720d76e8ba0586fb40395b6875860762db', class: "mrd-date-field__error" }, this.error))));
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
MrdDateField.style = mrdDateFieldScss();
|
|
42
|
+
|
|
43
|
+
export { MrdDateField as mrd_date_field };
|
|
44
|
+
//# sourceMappingURL=mrd-date-field.entry.esm.js.map
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=mrd-date-field.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"mrd-date-field.entry.js","mappings":";;;;;;AAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,shDAAshD,CAAC;;MCS1iD,YAAY,GAAA,MAAA;AALzB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;AAMU,QAAA,IAAA,CAAA,IAAI,GAAW,EAAE;AACjB,QAAA,IAAA,CAAA,KAAK,GAAW,EAAE;AAClB,QAAA,IAAA,CAAA,KAAK,GAAW,EAAE;AAClB,QAAA,IAAA,CAAA,QAAQ,GAAY,KAAK;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAY,KAAK;AACzB,QAAA,IAAA,CAAA,MAAM,GAAW,SAAS,CAAC,QAAQ;AAElC,QAAA,IAAA,CAAA,KAAK,GAAW,EAAE;AAKnB,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,CAAQ,KAAI;AAClC,YAAA,MAAM,GAAG,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK;YAChD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;gBAC3C,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;;iBAClC;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,EAAE;;AAEjB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACtD,SAAC;AAEO,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,CAAQ,KAAI;AAChC,YAAA,MAAM,GAAG,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK;AAChD,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACpD,SAAC;AA2BF;IAzBC,MAAM,GAAA;AACJ,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK;AAC7B,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,gBAAgB,EAAA,EACxB,IAAI,CAAC,KAAK,KACT,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,KAAK,EAAE,CAAA,qBAAA,EAAwB,IAAI,CAAC,QAAQ,GAAG,kCAAkC,GAAG,EAAE,CAAA,CAAE,EAAA,EAC5F,IAAI,CAAC,KAAK,CACL,CACT,EACD,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,CAAA,qBAAA,EAAwB,QAAQ,GAAG,+BAA+B,GAAG,EAAE,CAAA,CAAE,EAChF,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,MAAM,EAAE,IAAI,CAAC,UAAU,EAAA,CACvB,EACD,QAAQ,IAAI,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,uBAAuB,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,CAChE,CACD;;;;;;;","names":[],"sources":["src/components/mrd-date-field/mrd-date-field.scss?tag=mrd-date-field&encapsulation=scoped","src/components/mrd-date-field/mrd-date-field.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.mrd-date-field {\n display: flex;\n flex-direction: column;\n gap: var(--mrd-space-1);\n width: 100%;\n}\n\n.mrd-date-field__label {\n display: block;\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-label-font-size);\n font-weight: var(--mrd-label-font-weight);\n color: var(--mrd-label-color);\n}\n\n.mrd-date-field__label--required::after {\n content: ' *';\n color: var(--mrd-color-danger);\n}\n\n.mrd-date-field__input {\n display: block;\n width: 100%;\n height: var(--mrd-input-height);\n padding: var(--mrd-input-padding-y) var(--mrd-input-padding-x);\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-base);\n color: var(--mrd-input-color);\n background-color: var(--mrd-input-bg);\n border: var(--mrd-border-width) solid var(--mrd-border-color);\n border-radius: var(--mrd-border-radius);\n transition: border-color var(--mrd-transition), box-shadow var(--mrd-transition);\n outline: none;\n appearance: none;\n box-sizing: border-box;\n cursor: pointer;\n}\n\n.mrd-date-field__input:focus {\n border-color: var(--mrd-border-color-focus);\n box-shadow: var(--mrd-shadow-focus);\n}\n\n.mrd-date-field__input:disabled {\n background-color: var(--mrd-input-bg-disabled);\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.mrd-date-field__input--error {\n border-color: var(--mrd-border-color-error);\n}\n\n.mrd-date-field__input--error:focus {\n box-shadow: var(--mrd-shadow-focus-error);\n}\n\n.mrd-date-field__error {\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-error-font-size);\n color: var(--mrd-error-color);\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter } from '@stencil/core';\nimport { t } from '../../utils/i18n';\nimport { validateRequired } from '../../utils/validation';\n\n@Component({\n tag: 'mrd-date-field',\n styleUrl: 'mrd-date-field.scss',\n scoped: true,\n})\nexport class MrdDateField {\n @Prop() name: string = '';\n @Prop() label: string = '';\n @Prop() value: string = '';\n @Prop() required: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() locale: string = navigator.language;\n\n @State() error: string = '';\n\n @Event() mrdChange!: EventEmitter<{ name: string; value: string }>;\n @Event() mrdBlur!: EventEmitter<{ name: string; value: string }>;\n\n private handleChange = (e: Event) => {\n const val = (e.target as HTMLInputElement).value;\n if (this.required && !validateRequired(val)) {\n this.error = t('required', this.locale);\n } else {\n this.error = '';\n }\n this.mrdChange.emit({ name: this.name, value: val });\n };\n\n private handleBlur = (e: Event) => {\n const val = (e.target as HTMLInputElement).value;\n this.mrdBlur.emit({ name: this.name, value: val });\n };\n\n render() {\n const hasError = !!this.error;\n return (\n <Host>\n <div class=\"mrd-date-field\">\n {this.label && (\n <label class={`mrd-date-field__label${this.required ? ' mrd-date-field__label--required' : ''}`}>\n {this.label}\n </label>\n )}\n <input\n class={`mrd-date-field__input${hasError ? ' mrd-date-field__input--error' : ''}`}\n type=\"date\"\n name={this.name}\n value={this.value}\n required={this.required}\n disabled={this.disabled}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n />\n {hasError && <span class=\"mrd-date-field__error\">{this.error}</span>}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host } from './index-B_tPFIvS.js';
|
|
2
|
+
import { t } from './i18n-hoGGKbKU.js';
|
|
3
|
+
import { v as validateRequired } from './validation-ixb43cqU.js';
|
|
4
|
+
import './index-I5SuYv7a.js';
|
|
5
|
+
import './client-layout-D88nn5zf.js';
|
|
6
|
+
|
|
7
|
+
const mrdDatetimeFieldScss = () => `.sc-mrd-datetime-field-h{display:block}.mrd-datetime-field.sc-mrd-datetime-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-datetime-field__label.sc-mrd-datetime-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-datetime-field__label--required.sc-mrd-datetime-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-datetime-field__input.sc-mrd-datetime-field{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);outline:none;appearance:none;box-sizing:border-box;cursor:pointer}.mrd-datetime-field__input.sc-mrd-datetime-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-datetime-field__input.sc-mrd-datetime-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-datetime-field__input--error.sc-mrd-datetime-field{border-color:var(--mrd-border-color-error)}.mrd-datetime-field__input--error.sc-mrd-datetime-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-datetime-field__error.sc-mrd-datetime-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}`;
|
|
8
|
+
|
|
9
|
+
const MrdDatetimeField = class {
|
|
10
|
+
constructor(hostRef) {
|
|
11
|
+
registerInstance(this, hostRef);
|
|
12
|
+
this.mrdChange = createEvent(this, "mrdChange", 7);
|
|
13
|
+
this.mrdBlur = createEvent(this, "mrdBlur", 7);
|
|
14
|
+
this.name = '';
|
|
15
|
+
this.label = '';
|
|
16
|
+
this.value = '';
|
|
17
|
+
this.required = false;
|
|
18
|
+
this.disabled = false;
|
|
19
|
+
this.locale = navigator.language;
|
|
20
|
+
this.error = '';
|
|
21
|
+
this.localValue = '';
|
|
22
|
+
this.handleChange = (e) => {
|
|
23
|
+
const localVal = e.target.value;
|
|
24
|
+
this.localValue = localVal;
|
|
25
|
+
if (this.required && !validateRequired(localVal)) {
|
|
26
|
+
this.error = t('required', this.locale);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this.error = '';
|
|
30
|
+
}
|
|
31
|
+
this.mrdChange.emit({ name: this.name, value: this.localToUtc(localVal) });
|
|
32
|
+
};
|
|
33
|
+
this.handleBlur = (e) => {
|
|
34
|
+
const localVal = e.target.value;
|
|
35
|
+
this.mrdBlur.emit({ name: this.name, value: this.localToUtc(localVal) });
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
componentWillLoad() {
|
|
39
|
+
this.localValue = this.utcToLocal(this.value);
|
|
40
|
+
}
|
|
41
|
+
valueChanged(newVal) {
|
|
42
|
+
this.localValue = this.utcToLocal(newVal);
|
|
43
|
+
}
|
|
44
|
+
// UTC ISO string → "YYYY-MM-DDTHH:mm" in local timezone (for datetime-local input)
|
|
45
|
+
utcToLocal(utcStr) {
|
|
46
|
+
if (!utcStr)
|
|
47
|
+
return '';
|
|
48
|
+
const d = new Date(utcStr);
|
|
49
|
+
if (isNaN(d.getTime()))
|
|
50
|
+
return '';
|
|
51
|
+
const pad = (n) => String(n).padStart(2, '0');
|
|
52
|
+
return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}T${pad(d.getHours())}:${pad(d.getMinutes())}`;
|
|
53
|
+
}
|
|
54
|
+
// "YYYY-MM-DDTHH:mm" local time → UTC ISO string (for API)
|
|
55
|
+
localToUtc(localStr) {
|
|
56
|
+
if (!localStr)
|
|
57
|
+
return '';
|
|
58
|
+
const d = new Date(localStr);
|
|
59
|
+
if (isNaN(d.getTime()))
|
|
60
|
+
return '';
|
|
61
|
+
return d.toISOString().replace(/\.\d{3}Z$/, 'Z');
|
|
62
|
+
}
|
|
63
|
+
render() {
|
|
64
|
+
const hasError = !!this.error;
|
|
65
|
+
return (h(Host, { key: '6052b08238484bee345ae4bb9b3025c7f2474c35' }, h("div", { key: 'f9073be4496e35a7d40405ae4e6a27a5c1607626', class: "mrd-datetime-field" }, this.label && (h("label", { key: '5933c3b2dfcae9bfad378441210ada6b625657a2', class: `mrd-datetime-field__label${this.required ? ' mrd-datetime-field__label--required' : ''}` }, this.label)), h("input", { key: '7a947b104c38960d2326a4877e4ca52db9fd9d84', class: `mrd-datetime-field__input${hasError ? ' mrd-datetime-field__input--error' : ''}`, type: "datetime-local", name: this.name, value: this.localValue, required: this.required, disabled: this.disabled, onChange: this.handleChange, onBlur: this.handleBlur }), hasError && h("span", { key: 'cea3dba7e14e18a3a08394ef3027b661f1808969', class: "mrd-datetime-field__error" }, this.error))));
|
|
66
|
+
}
|
|
67
|
+
static get watchers() { return {
|
|
68
|
+
"value": [{
|
|
69
|
+
"valueChanged": 0
|
|
70
|
+
}]
|
|
71
|
+
}; }
|
|
72
|
+
};
|
|
73
|
+
MrdDatetimeField.style = mrdDatetimeFieldScss();
|
|
74
|
+
|
|
75
|
+
export { MrdDatetimeField as mrd_datetime_field };
|
|
76
|
+
//# sourceMappingURL=mrd-datetime-field.entry.esm.js.map
|
|
77
|
+
|
|
78
|
+
//# sourceMappingURL=mrd-datetime-field.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"mrd-datetime-field.entry.js","mappings":"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","names":[],"sources":["src/components/mrd-datetime-field/mrd-datetime-field.scss?tag=mrd-datetime-field&encapsulation=scoped","src/components/mrd-datetime-field/mrd-datetime-field.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.mrd-datetime-field {\n display: flex;\n flex-direction: column;\n gap: var(--mrd-space-1);\n width: 100%;\n}\n\n.mrd-datetime-field__label {\n display: block;\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-label-font-size);\n font-weight: var(--mrd-label-font-weight);\n color: var(--mrd-label-color);\n}\n\n.mrd-datetime-field__label--required::after {\n content: ' *';\n color: var(--mrd-color-danger);\n}\n\n.mrd-datetime-field__input {\n display: block;\n width: 100%;\n height: var(--mrd-input-height);\n padding: var(--mrd-input-padding-y) var(--mrd-input-padding-x);\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-font-size-base);\n color: var(--mrd-input-color);\n background-color: var(--mrd-input-bg);\n border: var(--mrd-border-width) solid var(--mrd-border-color);\n border-radius: var(--mrd-border-radius);\n transition: border-color var(--mrd-transition), box-shadow var(--mrd-transition);\n outline: none;\n appearance: none;\n box-sizing: border-box;\n cursor: pointer;\n}\n\n.mrd-datetime-field__input:focus {\n border-color: var(--mrd-border-color-focus);\n box-shadow: var(--mrd-shadow-focus);\n}\n\n.mrd-datetime-field__input:disabled {\n background-color: var(--mrd-input-bg-disabled);\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.mrd-datetime-field__input--error {\n border-color: var(--mrd-border-color-error);\n}\n\n.mrd-datetime-field__input--error:focus {\n box-shadow: var(--mrd-shadow-focus-error);\n}\n\n.mrd-datetime-field__error {\n font-family: var(--mrd-font-family);\n font-size: var(--mrd-error-font-size);\n color: var(--mrd-error-color);\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter, Watch } from '@stencil/core';\nimport { t } from '../../utils/i18n';\nimport { validateRequired } from '../../utils/validation';\n\n@Component({\n tag: 'mrd-datetime-field',\n styleUrl: 'mrd-datetime-field.scss',\n scoped: true,\n})\nexport class MrdDatetimeField {\n @Prop() name: string = '';\n @Prop() label: string = '';\n @Prop() value: string = '';\n @Prop() required: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() locale: string = navigator.language;\n\n @State() error: string = '';\n @State() localValue: string = '';\n\n @Event() mrdChange!: EventEmitter<{ name: string; value: string }>;\n @Event() mrdBlur!: EventEmitter<{ name: string; value: string }>;\n\n componentWillLoad() {\n this.localValue = this.utcToLocal(this.value);\n }\n\n @Watch('value')\n valueChanged(newVal: string) {\n this.localValue = this.utcToLocal(newVal);\n }\n\n // UTC ISO string → \"YYYY-MM-DDTHH:mm\" in local timezone (for datetime-local input)\n private utcToLocal(utcStr: string): string {\n if (!utcStr) return '';\n const d = new Date(utcStr);\n if (isNaN(d.getTime())) return '';\n const pad = (n: number) => String(n).padStart(2, '0');\n return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}T${pad(d.getHours())}:${pad(d.getMinutes())}`;\n }\n\n // \"YYYY-MM-DDTHH:mm\" local time → UTC ISO string (for API)\n private localToUtc(localStr: string): string {\n if (!localStr) return '';\n const d = new Date(localStr);\n if (isNaN(d.getTime())) return '';\n return d.toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n }\n\n private handleChange = (e: Event) => {\n const localVal = (e.target as HTMLInputElement).value;\n this.localValue = localVal;\n if (this.required && !validateRequired(localVal)) {\n this.error = t('required', this.locale);\n } else {\n this.error = '';\n }\n this.mrdChange.emit({ name: this.name, value: this.localToUtc(localVal) });\n };\n\n private handleBlur = (e: Event) => {\n const localVal = (e.target as HTMLInputElement).value;\n this.mrdBlur.emit({ name: this.name, value: this.localToUtc(localVal) });\n };\n\n render() {\n const hasError = !!this.error;\n return (\n <Host>\n <div class=\"mrd-datetime-field\">\n {this.label && (\n <label class={`mrd-datetime-field__label${this.required ? ' mrd-datetime-field__label--required' : ''}`}>\n {this.label}\n </label>\n )}\n <input\n class={`mrd-datetime-field__input${hasError ? ' mrd-datetime-field__input--error' : ''}`}\n type=\"datetime-local\"\n name={this.name}\n value={this.localValue}\n required={this.required}\n disabled={this.disabled}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n />\n {hasError && <span class=\"mrd-datetime-field__error\">{this.error}</span>}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|