@daracl/form 0.0.1

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 (57) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +146 -0
  3. package/dist/DaraForm.d.ts +129 -0
  4. package/dist/FieldInfoMap.d.ts +97 -0
  5. package/dist/FormTemplate.d.ts +60 -0
  6. package/dist/constants.d.ts +35 -0
  7. package/dist/daracl.form.js +7629 -0
  8. package/dist/daracl.form.js.map +1 -0
  9. package/dist/daracl.form.min.css +6 -0
  10. package/dist/daracl.form.min.css.map +1 -0
  11. package/dist/daracl.form.min.js +7 -0
  12. package/dist/daracl.form.min.js.LICENSE.txt +5 -0
  13. package/dist/daracl.form.min.js.map +1 -0
  14. package/dist/event/renderEvents.d.ts +6 -0
  15. package/dist/index.cjs +4540 -0
  16. package/dist/index.cjs.map +7 -0
  17. package/dist/index.css +1074 -0
  18. package/dist/index.css.map +7 -0
  19. package/dist/index.d.ts +4 -0
  20. package/dist/index.html +591 -0
  21. package/dist/index.js +4852 -0
  22. package/dist/index.js.map +7 -0
  23. package/dist/renderer/ButtonRender.d.ts +14 -0
  24. package/dist/renderer/CheckboxRender.d.ts +18 -0
  25. package/dist/renderer/CustomRender.d.ts +19 -0
  26. package/dist/renderer/DateRender.d.ts +15 -0
  27. package/dist/renderer/DropdownRender.d.ts +17 -0
  28. package/dist/renderer/FileRender.d.ts +38 -0
  29. package/dist/renderer/GridRender.d.ts +35 -0
  30. package/dist/renderer/GroupRender.d.ts +16 -0
  31. package/dist/renderer/HiddenRender.d.ts +13 -0
  32. package/dist/renderer/NumberRender.d.ts +14 -0
  33. package/dist/renderer/PasswordRender.d.ts +14 -0
  34. package/dist/renderer/RadioRender.d.ts +18 -0
  35. package/dist/renderer/RangeRender.d.ts +15 -0
  36. package/dist/renderer/Render.d.ts +43 -0
  37. package/dist/renderer/TabRender.d.ts +34 -0
  38. package/dist/renderer/TextAreaRender.d.ts +14 -0
  39. package/dist/renderer/TextRender.d.ts +14 -0
  40. package/dist/rule/fileValidator.d.ts +11 -0
  41. package/dist/rule/numberValidator.d.ts +10 -0
  42. package/dist/rule/regexpValidator.d.ts +11 -0
  43. package/dist/rule/stringValidator.d.ts +10 -0
  44. package/dist/rule/validator.d.ts +11 -0
  45. package/dist/types/DataMap.d.ts +17 -0
  46. package/dist/types/FormField.d.ts +129 -0
  47. package/dist/types/FormOptions.d.ts +91 -0
  48. package/dist/types/Message.d.ts +40 -0
  49. package/dist/types/ValidResult.d.ts +9 -0
  50. package/dist/util/Lanauage.d.ts +38 -0
  51. package/dist/util/renderFactory.d.ts +3 -0
  52. package/dist/util/styleUtils.d.ts +14 -0
  53. package/dist/util/utils.d.ts +62 -0
  54. package/dist/util/validUtils.d.ts +9 -0
  55. package/package.json +137 -0
  56. package/src/index.ts +7 -0
  57. package/style/daracl.form.scss +690 -0
@@ -0,0 +1,690 @@
1
+ $sizes: 8.33333333%, 16.66666667%, 25%, 33.33333333%, 41.66666667%, 50%, 58.33333333%, 66.66666667%, 75%, 83.33333333%, 91.66666667%, 100%;
2
+
3
+ @mixin rowFlex() {
4
+ &.top {
5
+ flex-direction: column;
6
+ > div {
7
+ max-width: 100% !important;
8
+ }
9
+ }
10
+
11
+ &.right {
12
+ -ms-flex-direction: row-reverse !important;
13
+ -webkit-box-orient: horizontal !important;
14
+ -webkit-box-direction: reverse !important;
15
+ flex-direction: row-reverse !important;
16
+ }
17
+
18
+ &.bottom {
19
+ flex-direction: column-reverse !important;
20
+ > div {
21
+ max-width: 100% !important;
22
+ }
23
+ }
24
+ }
25
+
26
+ .daracl-form {
27
+ --border-color: #dfe1e5;
28
+ --color-danger: #d9534f;
29
+ --background-danger: #d9534f;
30
+ --font-color: #686868;
31
+ --font-hover-color: #3a3d41;
32
+ --invalid-font-color: #ff4136;
33
+ --invalid-border-color: #ffb6b4;
34
+ --invalid-background-color: #fdd;
35
+ --button-bg: #f6f6f6;
36
+ --button-bg-hover: #ebebeb;
37
+ --tab-bg: #f6f6f6;
38
+ --tab-bg-hover: #ebebeb;
39
+ --tooltip-background: #3e3e3e;
40
+ --tooltip-color: #fff;
41
+ --field-margin-top: 10px;
42
+ --input-bg: #fff;
43
+ --input-color: #212529;
44
+ --input-disabled-bg: #ebebeb;
45
+ --bg-grid-header: #f1f1f1;
46
+ }
47
+
48
+ body.dark .daracl-form,
49
+ .daracl-form.dark {
50
+ --border-color: #41444c;
51
+ --color-danger: #d9534f;
52
+ --background-danger: #d9534f;
53
+ --font-color: #b9bdc1;
54
+ --font-hover-color: #f5f3f3;
55
+ --invalid-font-color: #ff4136;
56
+ --invalid-border-color: #ffb6b4;
57
+ --invalid-background-color: #fdd;
58
+ --button-bg: #435ebe;
59
+ --button-bg-hover: #3950a2;
60
+ --tab-bg: #23418f;
61
+ --tab-bg-hover: #516db1;
62
+ --tooltip-background: #3e3e3e;
63
+ --tooltip-color: #fff;
64
+ --field-margin-top: 10px;
65
+ --input-bg: transparent;
66
+ --input-color: #c6cddb;
67
+ --input-disabled-bg: #878787;
68
+ --bg-grid-header: #878787;
69
+ }
70
+
71
+ .daracl-form {
72
+ padding: 0px;
73
+ margin-top: 10px;
74
+ color: var(--font-color);
75
+
76
+ *,
77
+ ::after,
78
+ ::before {
79
+ box-sizing: border-box;
80
+ }
81
+
82
+ .txt {
83
+ &-left {
84
+ text-align: left;
85
+ }
86
+
87
+ &-center {
88
+ text-align: center;
89
+ }
90
+
91
+ &-right {
92
+ text-align: right;
93
+ }
94
+ }
95
+
96
+ &[data-df-mode="view"] {
97
+ .form-field {
98
+ border-width: 0px;
99
+ border-color: transparent;
100
+ border-color: transparent;
101
+ outline: initial;
102
+
103
+ &:focus-visible,
104
+ &:focus {
105
+ border-width: 0px;
106
+ }
107
+ }
108
+ }
109
+
110
+ .df-hidden {
111
+ max-height: 0vh !important;
112
+ width: 0px;
113
+ visibility: collapse;
114
+ display: none !important;
115
+ padding: 0px !important;
116
+ margin: 0px !important;
117
+ }
118
+
119
+ input,
120
+ select,
121
+ textarea {
122
+ background-color: transparent;
123
+ color: var(--font-color);
124
+ &[disabled] {
125
+ background-color: var(--input-disabled-bg);
126
+ opacity: 0.8;
127
+ }
128
+ }
129
+
130
+ .df-label {
131
+ position: relative;
132
+ font-weight: 700;
133
+ vertical-align: top;
134
+ padding: 5px 15px 0px 0px;
135
+ overflow: initial;
136
+ // 확인할것.
137
+ white-space: nowrap;
138
+ text-overflow: ellipsis;
139
+ word-break: break-all;
140
+
141
+ .required {
142
+ &::after {
143
+ content: "*";
144
+ vertical-align: middle;
145
+ }
146
+
147
+ color: var(--color-danger);
148
+ }
149
+
150
+ .df-tooltip {
151
+ visibility: visible;
152
+ color: var(--tooltip-color);
153
+ background: var(--tooltip-background);
154
+ width: 16px;
155
+ height: 16px;
156
+ border-radius: 8px;
157
+ text-align: center;
158
+ line-height: 16px;
159
+ margin: 0 5px;
160
+ font-size: 12px;
161
+ cursor: help;
162
+ position: relative;
163
+ display: inline-block;
164
+
165
+ .tooltip {
166
+ display: none;
167
+ text-align: initial;
168
+ background: var(--tooltip-background);
169
+ border-radius: 5px;
170
+ color: var(--tooltip-color);
171
+ padding: 10px 5px;
172
+ position: absolute;
173
+ z-index: 2;
174
+ left: -10px;
175
+ min-width: max-content;
176
+ text-shadow: none;
177
+ cursor: default;
178
+ }
179
+
180
+ &:hover .tooltip {
181
+ display: block;
182
+ }
183
+ }
184
+ }
185
+
186
+ .form-field {
187
+ border: 1px solid var(--border-color);
188
+ display: block;
189
+ width: 100%;
190
+ padding: 0.375rem 0.75rem;
191
+ font-weight: 400;
192
+ line-height: 1.5;
193
+ border-radius: 4px;
194
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
195
+ background-color: var(--input-bg);
196
+ background-clip: padding-box;
197
+ color: var(--input-color);
198
+
199
+ &[type="radio"],
200
+ &[type="checkbox"] {
201
+ width: 14px;
202
+ display: inline;
203
+ min-height: 0px;
204
+ padding: 0px;
205
+ margin: 0px;
206
+ vertical-align: middle;
207
+ }
208
+
209
+ &.dropdown {
210
+ appearance: none;
211
+ -webkit-appearance: none;
212
+ -moz-appearance: none;
213
+ }
214
+
215
+ &.textarea {
216
+ padding-right: 0px;
217
+ }
218
+
219
+ &[type="number"] {
220
+ padding-right: 3px;
221
+ }
222
+
223
+ &.file {
224
+ display: none;
225
+ }
226
+
227
+ &.range {
228
+ padding: 0px;
229
+ }
230
+ }
231
+
232
+ .df-row {
233
+ display: -ms-flexbox;
234
+ display: -webkit-box;
235
+ display: flex;
236
+ -ms-flex: 0 1 auto;
237
+ -webkit-box-flex: 0;
238
+ flex: 0 1 auto;
239
+ -ms-flex-direction: row;
240
+ -webkit-box-orient: horizontal;
241
+ -webkit-box-direction: normal;
242
+ flex-direction: row;
243
+ -ms-flex-wrap: wrap;
244
+ flex-wrap: wrap;
245
+
246
+ &.vertical {
247
+ display: block;
248
+ }
249
+
250
+ &.horizontal {
251
+ -webkit-box-flex: 0;
252
+ -ms-flex: 0 0 auto;
253
+ flex: 0 0 auto;
254
+ width: auto;
255
+ max-width: none;
256
+
257
+ > .form-group > .empty {
258
+ display: none !important;
259
+ }
260
+ }
261
+
262
+ @include rowFlex();
263
+ }
264
+
265
+ @each $size in $sizes {
266
+ $i: index($sizes, $size);
267
+ $className: ".col-xs-#{$i}";
268
+ #{$className} {
269
+ flex-basis: $size;
270
+ -webkit-box-flex: 0;
271
+ -ms-flex: 0 0 $size;
272
+ flex: 0 0 $size;
273
+ max-width: $size;
274
+ }
275
+ }
276
+
277
+ .align-items-center {
278
+ -webkit-box-align: center !important;
279
+ -ms-flex-align: center !important;
280
+ align-items: center !important;
281
+ }
282
+
283
+ .col-xs {
284
+ -webkit-flex-grow: 1;
285
+ -ms-flex-positive: 1;
286
+ -webkit-box-flex: 1;
287
+ flex-grow: 1;
288
+ -ms-flex-preferred-size: 0;
289
+ flex-basis: 0;
290
+ max-width: 100%;
291
+ }
292
+
293
+ .col-auto {
294
+ -webkit-box-flex: 0;
295
+ -ms-flex: 0 0 auto;
296
+ flex: 0 0 auto;
297
+ width: auto;
298
+ max-width: none;
299
+ }
300
+
301
+ .col-fix {
302
+ flex: none;
303
+ }
304
+
305
+ .col-full {
306
+ flex: 1;
307
+ overflow: auto;
308
+ }
309
+
310
+ .df-field-container {
311
+ overflow: initial;
312
+ position: relative;
313
+ > .df-row {
314
+ margin-top: -10px;
315
+ }
316
+
317
+ > div + .df-row {
318
+ margin-top: 0px;
319
+ }
320
+ .df-field {
321
+ position: relative;
322
+ margin-right: 10px;
323
+
324
+ .range-num {
325
+ clear: both;
326
+ display: block;
327
+ width: 100%;
328
+ text-align: left;
329
+ }
330
+
331
+ .file-wrapper {
332
+ border: 1px solid var(--border-color);
333
+ text-align: center;
334
+ display: block;
335
+ width: 100%;
336
+ padding: 0.375rem 0.75rem;
337
+ font-weight: 400;
338
+ line-height: 1.5;
339
+ background-clip: padding-box;
340
+ border-radius: 4px;
341
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
342
+ }
343
+ }
344
+ }
345
+
346
+ .daracl-file-list {
347
+ .file-icon {
348
+ width: 20px;
349
+ height: 20px;
350
+ display: inline-block;
351
+ vertical-align: middle;
352
+ cursor: pointer;
353
+
354
+ &:hover {
355
+ background-color: var(--button-bg-hover);
356
+ }
357
+
358
+ &.download {
359
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjIwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjIwcHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjwvZz48Zz48cGF0aCBkPSJNMTgsMTV2M0g2di0zSDR2M2MwLDEuMSwwLjksMiwyLDJoMTJjMS4xLDAsMi0wLjksMi0ydi0zSDE4eiBNMTcsMTFsLTEuNDEtMS40MUwxMywxMi4xN1Y0aC0ydjguMTdMOC40MSw5LjU5TDcsMTFsNSw1IEwxNywxMXoiLz48L2c+PC9zdmc+");
360
+ }
361
+
362
+ &.remove {
363
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjBweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE2IDl2MTBIOFY5aDhtLTEuNS02aC01bC0xIDFINXYyaDE0VjRoLTMuNWwtMS0xek0xOCA3SDZ2MTJjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjd6Ii8+PC9zdmc+");
364
+ }
365
+ }
366
+
367
+ .file-name {
368
+ text-overflow: ellipsis;
369
+ white-space: nowrap;
370
+ word-wrap: normal;
371
+ overflow: hidden;
372
+ display: inline-block;
373
+ vertical-align: middle;
374
+ width: calc(100% - 55px);
375
+ }
376
+ }
377
+
378
+ .field-group {
379
+ .field.vertical {
380
+ > * {
381
+ display: block;
382
+ }
383
+ }
384
+ }
385
+
386
+ .tab-header {
387
+ list-style: none;
388
+ margin: 0px;
389
+ padding: 0px;
390
+
391
+ display: flex;
392
+ line-height: 1.3;
393
+ width: 100%;
394
+ border-bottom: 1px solid var(--border-color);
395
+
396
+ &.tab-al {
397
+ &-left {
398
+ justify-content: left;
399
+ }
400
+ &-right {
401
+ justify-content: right;
402
+ }
403
+ &-center {
404
+ justify-content: center;
405
+ }
406
+ }
407
+
408
+ > .tab-item {
409
+ list-style: none;
410
+ float: left;
411
+ position: relative;
412
+ top: 0;
413
+ margin: 1px 0.4em 0 0;
414
+ padding: 0;
415
+ white-space: nowrap;
416
+
417
+ &.active {
418
+ a {
419
+ color: var(--font-hover-color);
420
+ background-color: var(--tab-bg);
421
+ }
422
+ }
423
+
424
+ a {
425
+ border-top-left-radius: calc(0.45rem - 1px);
426
+ border-top-right-radius: calc(0.45rem - 1px);
427
+ border: 1px solid transparent;
428
+ border-bottom-width: 0;
429
+ float: left;
430
+ padding: 0.5em 1em;
431
+ text-decoration: none;
432
+ color: var(--font-color);
433
+ height: 30px;
434
+ line-height: 15px;
435
+
436
+ &:hover {
437
+ background-color: var(--tab-bg-hover);
438
+ border: 1px solid var(--border-color);
439
+ border-bottom-width: 0;
440
+ }
441
+ }
442
+ }
443
+ }
444
+
445
+ .df-tab-body {
446
+ .tab-panel {
447
+ display: none;
448
+
449
+ &.active {
450
+ display: block;
451
+ }
452
+ }
453
+ }
454
+
455
+ .df-btn {
456
+ padding: 5px 10px;
457
+ border-radius: calc(0.45rem - 1px);
458
+ border: 1px solid var(--border-color);
459
+ background-color: var(--button-bg);
460
+
461
+ cursor: pointer;
462
+ transition: background-color 0.3s;
463
+
464
+ &:hover {
465
+ color: var(--font-hover-color);
466
+ background-color: var(--button-bg-hover);
467
+ }
468
+ }
469
+
470
+ .df-icon {
471
+ display: inline-block;
472
+ width: 21px; /* 아이콘의 너비 설정 */
473
+ height: 21px; /* 아이콘의 높이 설정 */
474
+ vertical-align: middle;
475
+ }
476
+
477
+ .df-add-icon {
478
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='20px' viewBox='0 -960 960 960' width='20px' fill='%235f6368'%3E%3Cpath d='M431-431H220.78v-98H431v-210.22h98V-529h210.22v98H529v210.22h-98V-431Z'/%3E%3C/svg%3E");
479
+ }
480
+
481
+ .df-remove-icon {
482
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='20px' viewBox='0 -960 960 960' width='20px' fill='%235f6368'%3E%3Cpath d='M291-221.91 221.91-291l189-189-189-189L291-738.09l189 189 189-189L738.09-669l-189 189 189 189L669-221.91l-189-189-189 189Z'/%3E%3C/svg%3E");
483
+ }
484
+
485
+ .form-group {
486
+ display: -ms-flexbox;
487
+ display: -webkit-box;
488
+ display: flex;
489
+ -ms-flex-direction: row;
490
+ -webkit-box-orient: horizontal;
491
+ -webkit-box-direction: normal;
492
+ flex-direction: row;
493
+ -ms-flex-wrap: wrap;
494
+ flex-wrap: wrap;
495
+ margin-top: var(--field-margin-top);
496
+ margin-bottom: 0px;
497
+ margin-right: 0px !important;
498
+ margin-left: 0px !important;
499
+
500
+ &:last-child {
501
+ margin-bottom: 0px;
502
+ }
503
+
504
+ @include rowFlex();
505
+
506
+ .help-message {
507
+ display: none;
508
+ }
509
+
510
+ .help-icon {
511
+ background-repeat: no-repeat;
512
+ background-position-y: center;
513
+
514
+ &.form-field {
515
+ background-position-x: calc(100% - 15px);
516
+ }
517
+
518
+ &.daracl-icon {
519
+ display: none;
520
+ position: absolute;
521
+ z-index: 1;
522
+ top: 0px;
523
+ right: 0px;
524
+ height: 100%;
525
+ width: 20px;
526
+ margin-right: 15px;
527
+ }
528
+ }
529
+
530
+ &.invalid {
531
+ .form-field {
532
+ border-color: var(--invalid-border-color);
533
+ outline-color: var(--invalid-border-color);
534
+ }
535
+
536
+ > .df-field-container.required > .df-field .help-icon {
537
+ display: block;
538
+ background-image: url("data:image/svg+xml; base64, PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgLTk2MCA5NjAgOTYwIiB3aWR0aD0iMjAiPjxwYXRoIGQ9Im0yNDktMjA3LTQyLTQyIDIzMS0yMzEtMjMxLTIzMSA0Mi00MiAyMzEgMjMxIDIzMS0yMzEgNDIgNDItMjMxIDIzMSAyMzEgMjMxLTQyIDQyLTIzMS0yMzEtMjMxIDIzMVoiIHN0eWxlPSImIzEwOyAgICBmaWxsOiAjZmY3MzczOyYjMTA7Ii8+PC9zdmc+");
539
+ }
540
+
541
+ .help-message {
542
+ display: block;
543
+ color: var(--invalid-font-color);
544
+ }
545
+ }
546
+
547
+ &.valid {
548
+ > .df-field-container.required {
549
+ > .df-field .help-icon {
550
+ display: block;
551
+ background-image: url("data:image/svg+xml; base64, PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgLTk2MCA5NjAgOTYwIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHN0eWxlPSImIzEwOyAgICBmaWxsOiAjMTlhOTc0OyYjMTA7Ij48cGF0aCBkPSJNMzc4LTI0NiAxNTQtNDcwbDQzLTQzIDE4MSAxODEgMzg0LTM4NCA0MyA0My00MjcgNDI3WiIvPjwvc3ZnPg==");
552
+ }
553
+ }
554
+ }
555
+
556
+ .file-label {
557
+ border: 1px solid var(--border-color);
558
+ display: inline;
559
+ width: 100%;
560
+ padding: 3px 15px;
561
+ line-height: 1;
562
+ background-clip: padding-box;
563
+ border-radius: 4px;
564
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
565
+
566
+ &:hover {
567
+ background-color: var(--button-bg-hover);
568
+ }
569
+ }
570
+ }
571
+ .df-grid-field {
572
+ margin-right: 10px;
573
+ .df-grid-btn-area {
574
+ border: 1px solid var(--border-color);
575
+ padding: 3px;
576
+ }
577
+
578
+ .df-grid-container {
579
+ width: 100%;
580
+ height: auto;
581
+ overflow-y: auto;
582
+ border: 1px solid var(--border-color);
583
+
584
+ .df-btn {
585
+ padding: 3px 5px;
586
+ }
587
+
588
+ .df-grid {
589
+ width: 100%;
590
+ border-top-width: 0px;
591
+ border-collapse: collapse;
592
+
593
+ > thead {
594
+ th {
595
+ position: sticky;
596
+ top: 0px;
597
+ z-index: 10;
598
+ border-bottom: 1px solid var(--border-color);
599
+ background-color: var(--bg-grid-header);
600
+ text-align: center;
601
+ }
602
+ }
603
+
604
+ .help-message {
605
+ display: none;
606
+ }
607
+
608
+ td,
609
+ th {
610
+ padding: 3px 5px;
611
+ }
612
+
613
+ .help-icon {
614
+ background-repeat: no-repeat;
615
+ background-position-y: center;
616
+
617
+ &.form-field {
618
+ background-position-x: calc(100% - 15px);
619
+ }
620
+
621
+ &.daracl-icon {
622
+ display: none;
623
+ position: absolute;
624
+ z-index: 1;
625
+ top: 0px;
626
+ right: 0px;
627
+ height: 100%;
628
+ width: 20px;
629
+ margin-right: 15px;
630
+ }
631
+ }
632
+
633
+ .grid-column {
634
+ position: relative;
635
+ }
636
+
637
+ .invalid {
638
+ .form-field {
639
+ border-color: var(--invalid-border-color);
640
+ outline-color: var(--invalid-border-color);
641
+ }
642
+
643
+ > .grid-column.required .df-field .help-icon {
644
+ display: block;
645
+ background-image: url("data:image/svg+xml; base64, PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgLTk2MCA5NjAgOTYwIiB3aWR0aD0iMjAiPjxwYXRoIGQ9Im0yNDktMjA3LTQyLTQyIDIzMS0yMzEtMjMxLTIzMSA0Mi00MiAyMzEgMjMxIDIzMS0yMzEgNDIgNDItMjMxIDIzMSAyMzEgMjMxLTQyIDQyLTIzMS0yMzEtMjMxIDIzMVoiIHN0eWxlPSImIzEwOyAgICBmaWxsOiAjZmY3MzczOyYjMTA7Ii8+PC9zdmc+");
646
+ }
647
+
648
+ .help-message {
649
+ display: block;
650
+ position: absolute;
651
+ border: 1px solid var(--invalid-border-color);
652
+ border-color: var(--invalid-border-color) transparent transparent transparent;
653
+ top: calc(100% + 6px);
654
+ left: 50%;
655
+ transform: translateX(-50%);
656
+ min-width: 270px;
657
+ padding: 5px 5px;
658
+ border-radius: 0.4rem;
659
+ z-index: 2;
660
+ background-color: var(--invalid-background-color);
661
+ color: var(--invalid-font-color);
662
+ &::after {
663
+ content: "";
664
+ position: absolute;
665
+ top: 0;
666
+ left: 50%;
667
+ width: 0;
668
+ height: 0;
669
+ border: 7px solid transparent;
670
+ border-bottom-color: var(--invalid-border-color);
671
+ border-top: 0;
672
+ border-left: 0;
673
+ margin-left: -3.5px;
674
+ margin-top: -7px;
675
+ }
676
+ }
677
+ }
678
+
679
+ .valid {
680
+ > .grid-column.required {
681
+ .df-field .help-icon {
682
+ display: block;
683
+ background-image: url("data:image/svg+xml; base64, PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgLTk2MCA5NjAgOTYwIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHN0eWxlPSImIzEwOyAgICBmaWxsOiAjMTlhOTc0OyYjMTA7Ij48cGF0aCBkPSJNMzc4LTI0NiAxNTQtNDcwbDQzLTQzIDE4MSAxODEgMzg0LTM4NCA0MyA0My00MjcgNDI3WiIvPjwvc3ZnPg==");
684
+ }
685
+ }
686
+ }
687
+ }
688
+ }
689
+ }
690
+ }