@stonecrop/aform 0.21.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aform.d.ts +35 -0
- package/dist/aform.js +1197 -996
- package/dist/aform.js.map +1 -1
- package/dist/assets/index.css +1 -1
- package/dist/src/index.d.ts +5 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -1
- package/dist/src/utils/badge.d.ts +25 -0
- package/dist/src/utils/badge.d.ts.map +1 -0
- package/dist/src/utils/badge.js +71 -0
- package/package.json +5 -5
- package/src/components/form/ABadge.vue +135 -0
- package/src/components/form/ADate.vue +17 -74
- package/src/components/form/ADateRange.vue +9 -70
- package/src/components/form/ADateSelection.vue +18 -10
- package/src/components/form/ADateTime.vue +118 -254
- package/src/components/form/ADateTimeInput.vue +299 -0
- package/src/components/form/ADropdown.vue +81 -99
- package/src/components/form/ADuration.vue +6 -1
- package/src/index.ts +8 -0
- package/src/utils/badge.ts +94 -0
package/dist/assets/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.aform_checkbox[data-v-ca06741d]{cursor:pointer;width:auto;margin-top:0;display:block}.aform_checkbox[data-v-ca06741d]:checked{accent-color:var(--sc-primary-color);border:1px solid black}.aform_checkbox-container[data-v-ca06741d]{width:100%;display:inline-block;text-align:left}.aform_checkbox-container input[data-v-ca06741d]{width:auto}.aform_checkbox-container:hover+.aform_field-label[data-v-ca06741d]{color:var(--sc-input-active-label-color)}.aform_form-link-wrapper[data-v-154d79c9]{position:relative}.input-group[data-v-154d79c9]{display:flex;align-items:stretch}.aform_input-field[data-v-154d79c9]{flex:1;min-width:0}.aform_form-element--embedded[data-v-154d79c9]{min-width:0;flex-grow:0}.aform_input-field--embedded[data-v-154d79c9]{outline:none;background:transparent;padding:.5ch 1ch}.aform_form-element--embedded .autocomplete-results[data-v-154d79c9]{min-width:100%;width:max-content}.aform_form-btn[data-v-154d79c9]{appearance:none;border:none;outline:1px solid var(--sc-input-border-color);outline-offset:-1px;margin-left:-2px;background:var(--sc-input-field-background, white);padding:0 .75rem;cursor:pointer}.aform_form-btn[data-v-154d79c9]:focus,.input-group:focus-within .aform_form-btn[data-v-154d79c9]{outline-color:var(--sc-input-active-border-color)}.autocomplete-results[data-v-154d79c9]{position:absolute;width:100%;z-index:100;padding:0;margin:0;list-style:none;border:1px solid var(--sc-input-active-border-color);border-top:none;border-radius:0 0 .25rem .25rem;background:#fff}.autocomplete-result[data-v-154d79c9]{padding:4px 6px;cursor:pointer;border-bottom:.5px solid lightgray}.autocomplete-result.is-active[data-v-154d79c9],.autocomplete-result[data-v-154d79c9]:hover{background-color:var(--sc-row-color-zebra-light);color:var(--sc-input-active-border-color)}.acurrency__row[data-v-15bec6ef]{display:flex;gap:1ch}.acurrency__row--base[data-v-15bec6ef]{margin-top:1.5rem}.acurrency__field[data-v-15bec6ef]{position:relative;flex:1;min-width:0}.acurrency__group[data-v-15bec6ef]{display:flex;align-items:stretch;width:100%;border:1px solid var(--sc-input-border-color);border-radius:.25rem}.acurrency__group[data-v-15bec6ef]:focus-within{border-color:var(--sc-input-active-border-color)}.acurrency__amount-wrap[data-v-15bec6ef]{position:relative;flex:1;min-width:0}.acurrency__amount-wrap .aform_field-label[data-v-15bec6ef]{font-size:.85rem}.acurrency__amount[data-v-15bec6ef]{width:100%;box-sizing:border-box;border:none;outline:none;padding:.5ch 1ch;background:transparent;border-radius:0 .25rem .25rem 0;text-align:right;appearance:textfield;-moz-appearance:textfield}.acurrency__amount[data-v-15bec6ef]::-webkit-outer-spin-button,.acurrency__amount[data-v-15bec6ef]::-webkit-inner-spin-button{appearance:none;-webkit-appearance:none;margin:0}.acurrency__currency[data-v-15bec6ef]{position:relative;flex:0 0 auto;min-width:4.5rem;background:var(--sc-gray-5);border-right:1px solid var(--sc-input-border-color);border-radius:.25rem 0 0 .25rem}.acurrency__base-field[data-v-15bec6ef]{width:100%;box-sizing:border-box;font-size:1rem;padding:.5ch 1ch;border:1px solid var(--sc-input-border-color);border-radius:.25rem;outline:none;appearance:textfield;-moz-appearance:textfield}.acurrency__base-field[data-v-15bec6ef]:disabled{color:var(--sc-gray-50, #888)}.acurrency__base-field[data-v-15bec6ef]::-webkit-outer-spin-button,.acurrency__base-field[data-v-15bec6ef]::-webkit-inner-spin-button{appearance:none;-webkit-appearance:none;margin:0}.adatepicker[data-v-322c2ceb],.adatepicker table[data-v-322c2ceb],.adatepicker tr[data-v-322c2ceb],.adatepicker td[data-v-322c2ceb],.adatepicker th[data-v-322c2ceb]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.adatepicker[data-v-322c2ceb]{font-size:var(--sc-table-font-size);display:inline-table;color:var(--sc-cell-text-color);outline:none;border-collapse:collapse;margin-bottom:10px}.adatepicker tr[data-v-322c2ceb]{height:1.15rem;text-align:center;vertical-align:middle}.adatepicker td[data-v-322c2ceb]{border:2px solid transparent;outline:2px solid transparent;min-width:3ch;max-width:3ch;cursor:pointer}.adatepicker td.date-cell[data-v-322c2ceb]:hover{background:var(--sc-gray-10)}.adatepicker td[data-v-322c2ceb]:focus,.adatepicker td[data-v-322c2ceb]:focus-within{box-shadow:none;min-height:1.15em;max-height:1.15em;overflow:hidden}.adatepicker .selectedDate[data-v-322c2ceb],.adatepicker .startDate[data-v-322c2ceb],.adatepicker .endDate[data-v-322c2ceb]{background:var(--sc-gray-20);font-weight:bolder}.adatepicker .startDate[data-v-322c2ceb]{border-left:1px solid var(--sc-gray-50);background:var(--sc-gray-20)!important}.adatepicker .endDate[data-v-322c2ceb]{border-right:1px solid var(--sc-gray-50);background:var(--sc-gray-20)!important}.adatepicker .withinRange[data-v-322c2ceb]{background:var(--sc-gray-5)}.adatepicker .todaysDate[data-v-322c2ceb]{font-weight:bolder;color:#000}.days-header>td[data-v-322c2ceb]{font-weight:700}.prev-date[data-v-322c2ceb]{color:var(--sc-gray-20)}.adatepicker .date-input[data-v-322c2ceb]{display:flex;width:100%;gap:5px;align-items:center}.adatepicker .date-input>input[data-v-322c2ceb]{width:50%;padding:2px}p.aform_error[data-v-322c2ceb]{position:static;display:block;color:var(--sc-brand-danger, red);font-size:.7rem;margin:.25rem 0 0}.adate_time[data-v-959a3e41]{width:auto;padding:10px;box-sizing:border-box;font-size:1rem;background:var(--sc-gray-10)}.adate_time_fields[data-v-959a3e41]{display:flex;align-items:stretch;gap:5px;justify-content:flex-start}.adate_time_fields>input[data-v-959a3e41]{min-width:30px;padding:2px;text-align:center;display:inline-block;flex-basis:0}.meridiem-selector[data-v-959a3e41]{cursor:pointer;display:inline-block;flex-basis:0;padding:5px;-webkit-user-select:none;user-select:none}.meridiem-selector[data-v-959a3e41]:focus{outline:2px solid black;outline-offset:-2px}.adate_time_segment[data-v-959a3e41]{display:flex;flex-direction:column;width:40px}.colon[data-v-959a3e41]{display:flex;align-items:normal}.aform_form-btn[data-v-959a3e41]{cursor:pointer}.aform-select[data-v-959a3e41]{border:1px solid rgb(118,118,118);font-size:1rem;padding:0rem;margin:0;border-radius:0;box-sizing:border-box;min-height:auto;position:relative;color:var(--sc-cell-text-color)}.meridiem-selector[data-v-959a3e41]{margin-left:6px}.adate-selection[data-v-eeadb3e2]{display:inline-block;border:1px solid var(--sc-gray-80);padding:10px;background:var(--sc-form-background)}.adate-selection__end-label[data-v-eeadb3e2]{font-size:.8em;font-weight:700;color:var(--sc-input-active-label-color, #555);margin-top:8px;margin-bottom:2px;padding-left:2px}.empty[data-v-eeadb3e2]{color:#ccc;padding:10px;text-align:center;border:1px solid #ccc}.adate-input[data-v-a73c275b]{overflow:auto}div[data-v-a73c275b]{min-width:40ch;width:100%;box-sizing:border-box;border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input[data-v-a73c275b]{width:calc(100% - 1ch);box-sizing:border-box;outline:1px solid transparent;border:1px solid var(--sc-input-border-color);padding:1ch .5ch .5ch 1ch;margin:.575rem 0 0;min-height:1.15rem;border-radius:.25rem}p[data-v-a73c275b],label[data-v-a73c275b]{color:var(--sc-input-label-color);display:block;min-height:1.15rem;padding:0rem;margin:0rem 0rem .25rem;border:1px solid transparent;box-sizing:border-box}p[data-v-a73c275b]{width:100%;color:red;font-size:85%;box-sizing:border-box}label[data-v-a73c275b]{z-index:0;font-size:80%;position:absolute;background:#fff;margin:-2.575rem 0 0 1ch;padding:0 .25ch;box-sizing:border-box}input[data-v-a73c275b]:focus{border:1px solid var(--sc-input-active-border-color)}input:focus+label[data-v-a73c275b]{color:var(--sc-input-active-label-color)}.picker[data-v-a73c275b]{position:absolute;top:50px}.autocomplete[data-v-2b75e2d5]{position:relative}.input-wrapper[data-v-2b75e2d5]{border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input[data-v-2b75e2d5]{width:calc(100% - 1ch);outline:1px solid transparent;border:1px solid var(--sc-input-border-color);padding:1ch .5ch .5ch 1ch;margin:.575rem 0 0;min-height:1.15rem;border-radius:.25rem;font-family:var(--sc-font-family)}input[data-v-2b75e2d5]:focus{border:1px solid var(--sc-input-active-border-color);border-radius:.25rem .25rem 0 0;border-bottom:none}label[data-v-2b75e2d5]{display:block;min-height:1.15rem;padding:0rem;margin:0rem 0rem .25rem;border:1px solid transparent;z-index:0;font-size:80%;position:absolute;background:#fff;margin:-2.575rem 0 0 1ch;padding:0 .25ch}.autocomplete-results[data-v-2b75e2d5]{position:absolute;width:calc(100% - 1ch + 1.5px);z-index:100;padding:0;margin:0;color:var(--sc-input-active-border-color);border:1px solid var(--sc-input-active-border-color);border-radius:0 0 .25rem .25rem;border-top:none;background-color:#fff}.autocomplete-result[data-v-2b75e2d5]{list-style:none;text-align:left;padding:4px 6px;cursor:pointer;border-bottom:.5px solid lightgray}.autocomplete-result.is-active[data-v-2b75e2d5],.autocomplete-result[data-v-2b75e2d5]:hover{background-color:var(--sc-row-color-zebra-light);color:var(--sc-input-active-border-color)}p.aform_error[data-v-2b75e2d5]{position:static;display:block;color:var(--sc-brand-danger, red);font-size:.7rem;margin:.25rem 0 0}.aduration[data-v-22611dd6]{position:relative;min-width:40ch;width:100%}.aduration__summary[data-v-22611dd6]{display:flex;gap:6px;align-items:baseline;margin-top:6px;font-size:.9em}.aduration__label[data-v-22611dd6]{font-weight:700;color:var(--sc-input-active-label-color, #555)}.aduration__value[data-v-22611dd6]{color:var(--sc-cell-text-color, #000)}.aduration__ms[data-v-22611dd6]{color:var(--sc-gray-50, #888);font-size:.85em}.aduration__footer[data-v-22611dd6]{margin-top:8px}.adaterange[data-v-b5838478]{min-width:40ch;width:100%;box-sizing:border-box;border:1px solid transparent;padding:0;margin:0;margin-right:1ch;position:relative;overflow:visible}.adate-input[data-v-b5838478]{width:calc(100% - 1ch);box-sizing:border-box;outline:1px solid transparent;border:1px solid var(--sc-input-border-color);padding:1ch .5ch .5ch 1ch;margin:.575rem 0 0;min-height:1.15rem;border-radius:.25rem;cursor:pointer;background:#fff;font-size:1rem}.adate-input[data-v-b5838478]:focus{border:1px solid var(--sc-input-active-border-color)}.adate-input:focus+label[data-v-b5838478]{color:var(--sc-input-active-label-color)}p[data-v-b5838478],label[data-v-b5838478]{color:var(--sc-input-label-color);display:block;min-height:1.15rem;padding:0;margin:0;border:1px solid transparent;margin-bottom:.25rem;box-sizing:border-box}p[data-v-b5838478]{width:100%;color:red;font-size:85%}label[data-v-b5838478]{z-index:0;font-size:80%;position:absolute;background:#fff;margin:-2.575rem 0 0 1ch;padding:0 .25ch;box-sizing:border-box}.picker[data-v-b5838478]{position:absolute;top:50px;left:0;z-index:1000}.aform input{font-family:var(--sc-font-family);border:none}.aform_form-element{padding:0;margin:0;position:relative;box-sizing:border-box;flex-grow:1;min-width:20ch}.aform__grid--full{flex-basis:100%;width:100%}.aform_input-field{outline:1px solid var(--sc-input-border-color);outline-offset:-1px;font-size:1rem;padding:.5rem;margin:0;border-radius:0;box-sizing:border-box;width:100%;min-height:auto;position:relative;color:var(--sc-cell-text-color);background:var(--sc-input-field-background);font-family:var(--sc-font-family)}.aform_input-field:focus{outline:1px solid var(--sc-input-active-border-color)}.aform_display-value{display:block;padding:.5rem;min-height:2rem;color:var(--sc-cell-text-color);word-break:break-word}.aform_input-field:focus+.aform_field-label{color:var(--sc-input-active-label-color)}.aform_field-label{color:var(--sc-input-label-color);display:inline-block;position:absolute;padding:0 .25rem;margin:0rem;z-index:1;font-size:.7rem;font-weight:300;letter-spacing:.05rem;background:linear-gradient(var(--sc-form-background) 50%,var(--sc-input-field-background) 50%);width:auto;box-sizing:border-box;background:#fff;margin:0;grid-row:1;top:0;left:10px;border:none;line-height:0;transform:translateY(-50%)}.aform_input-field:disabled,.aform_checkbox-container:has(.aform_checkbox:disabled){background:var(--sc-input-field-disabled-background)}.aform_input-field:disabled+.aform_field-label,.aform_checkbox-container:has(.aform_checkbox:disabled)+.aform_field-label{background:linear-gradient(var(--sc-form-background) 50%,var(--sc-input-field-disabled-background) 50%)}.aform_input-field:disabled~p.aform_error,.aform_checkbox-container:has(.aform_checkbox:disabled)~p.aform_error{background:linear-gradient(var(--sc-form-background) 50%,var(--sc-input-field-disabled-background) 50%)}.aform_field-label:after{margin:0;padding:0;box-sizing:border-box;content:"";line-height:normal}p.aform_error{display:inline-block;background:linear-gradient(var(--sc-form-background) 50%,var(--sc-input-field-background) 50%);padding:0 .25rem;margin:0rem;width:auto;color:var(--sc-brand-danger);font-size:.7rem;position:absolute;right:0;top:0;line-height:0;background:#fff;padding:.25rem;transform:translate(-1rem,-50%);margin:0}.aform[data-v-bb17171c]{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem;border:1px solid var(--sc-form-border);border-left:4px solid var(--sc-form-border);margin-bottom:1rem;max-width:100%}@media screen and (max-width:400px){.aform[data-v-bb17171c]{flex-direction:column}}.aform-nested-section[data-v-bb17171c]{width:100%;padding:.5rem 0}.aform-nested-label[data-v-bb17171c]{font-size:.9rem;font-weight:600;margin:0 0 .5rem;color:var(--sc-input-label-color, #666)}.aform-nested-section .aform[data-v-bb17171c]{border-left-width:2px;margin-left:.5rem}.collapse-button[data-v-6f1c1b45]{width:2ch;min-width:calc(66px - 4ch);background-color:transparent;font-size:150%;text-align:center;border:none;margin-top:-.5rem}.rotated[data-v-6f1c1b45]{transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transition:transform .25s;transform-origin:center center}.unrotated[data-v-6f1c1b45]{transform:rotate(0);-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transition:transform .25s}fieldset[data-v-162e7317]{max-width:100%;width:100%;margin-right:2ch;border:1px solid transparent;border-bottom:1px solid var(--sc-gray-50)}legend[data-v-162e7317]{width:100%;height:1.15rem;border:1px solid transparent;padding-bottom:.5rem;font-size:110%;font-weight:600;-webkit-user-select:none;user-select:none}.collapse-button[data-v-162e7317]{float:right}.aform_file-attach[data-v-8eefd179]{padding:1rem;display:flex;flex-wrap:wrap;gap:1rem;flex-direction:row;justify-content:center;align-items:center;border:1px dashed var(--sc-input-border-color);width:100%}@media screen and (max-width:400px){.aform_file-attach>.aform_form-btn[data-v-8eefd179]{width:100%}}.aform_file-attach-feedback[data-v-8eefd179]{color:var(--sc-input-label-color);width:100%;padding:.5rem;text-align:center;align-self:center}.aform_file-attach-feedback>li[data-v-8eefd179]{list-style:none;font-style:italic}.aform_file-attach-feedback>p[data-v-8eefd179]{margin-top:0}.aform_form-btn[data-v-8eefd179]{padding:.5rem 2rem;width:auto;border:1px solid var(--sc-input-border-color);color:var(--sc-input-label-color);cursor:pointer;background-color:#fff}.aform_form-btn[data-v-8eefd179]:disabled{background-color:var(--sc-gray-5)}.aquantity__row[data-v-0b714861]{display:flex;gap:1ch}.aquantity__row--stock[data-v-0b714861]{margin-top:1.5rem}.aquantity__field[data-v-0b714861]{position:relative;flex:1;min-width:0}.aquantity__group[data-v-0b714861]{display:flex;align-items:stretch;width:100%;border:1px solid var(--sc-input-border-color);border-radius:.25rem}.aquantity__group[data-v-0b714861]:focus-within{border-color:var(--sc-input-active-border-color)}.aquantity__qty[data-v-0b714861]{flex:1;min-width:0;border:none;outline:none;padding:.5ch 1ch;background:transparent;border-radius:.25rem 0 0 .25rem;appearance:textfield;-moz-appearance:textfield}.aquantity__qty[data-v-0b714861]::-webkit-outer-spin-button,.aquantity__qty[data-v-0b714861]::-webkit-inner-spin-button{appearance:none;-webkit-appearance:none;margin:0}.aquantity__uom[data-v-0b714861]{position:relative;flex:0 0 auto;border-left:1px solid var(--sc-input-border-color)}.aquantity__uom-toggle[data-v-0b714861]{display:flex;align-items:center;gap:.75ch;height:100%;padding:.5ch 1ch;background:var(--sc-gray-5);border:none;border-radius:0 .25rem .25rem 0;white-space:nowrap;cursor:pointer}.aquantity__uom-toggle[data-v-0b714861]:disabled{cursor:not-allowed;color:var(--sc-gray-50, #888)}.aquantity__caret[data-v-0b714861]{display:inline-block;width:0;height:0;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid currentColor}.aquantity__uom-menu[data-v-0b714861]{position:absolute;top:100%;right:0;z-index:100;min-width:100%;margin:.15rem 0 0;padding:.25rem 0;list-style:none;background:var(--sc-input-field-background, #fff);border:1px solid var(--sc-input-active-border-color);border-radius:.25rem}.aquantity__uom-option[data-v-0b714861]{padding:.4ch 1ch;white-space:nowrap;cursor:pointer}.aquantity__uom-option.is-active[data-v-0b714861],.aquantity__uom-option[data-v-0b714861]:hover{background-color:var(--sc-row-color-zebra-light)}.aquantity__stock-field[data-v-0b714861]{width:100%;font-size:1rem;padding:.5ch 1ch;border:1px solid var(--sc-input-border-color);border-radius:.25rem;outline:none}.aquantity__stock-field[data-v-0b714861]:disabled{color:var(--sc-gray-50, #888)}.aform_textbox[data-v-2a9c793b]{resize:vertical;line-height:1.5;min-height:4rem;font-family:inherit}.aform_textbox-display[data-v-2a9c793b]{white-space:pre-wrap}.login-container[data-v-2c0f0634]{width:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--sc-font-family)}.account-container[data-v-2c0f0634]{width:100%;margin-left:auto;margin-top:.5rem;margin-right:auto;display:flex;flex-direction:column;justify-content:center}.account-header[data-v-2c0f0634]{display:flex;flex-direction:column;text-align:center;margin-top:.5rem}#account-title[data-v-2c0f0634]{font-size:1.5rem;line-height:2rem;font-weight:600;letter-spacing:-.025em;margin:0}#account-subtitle[data-v-2c0f0634]{font-size:.875rem;line-height:1.25rem;margin:1rem}.login-form-container[data-v-2c0f0634]{display:grid;gap:.5rem}.login-form-element[data-v-2c0f0634]{display:grid;margin:.5rem 0;position:relative}.login-field[data-v-2c0f0634]{padding:.5rem .25rem .25rem .5rem;outline:1px solid transparent;border:1px solid var(--sc-input-border-color);border-radius:.25rem}.login-field[data-v-2c0f0634]:focus{border:1px solid black}.btn[data-v-2c0f0634]{background-color:var(--sc-btn-color);color:var(--sc-btn-label-color);border:1px solid var(--sc-btn-border);margin:.5rem 0;padding:.25rem;position:relative;cursor:pointer}.btn[data-v-2c0f0634]:hover{background-color:var(--sc-btn-hover)}.btn[data-v-2c0f0634]:disabled{background-color:var(--sc-input-field-disabled-background)}.disabled[data-v-2c0f0634]{opacity:.5}.loading-icon[data-v-2c0f0634]{animation:spin-2c0f0634 1s linear infinite forwards;display:inline-block;margin-right:.2rem;line-height:0;font-size:1rem;position:relative;top:.2rem}@keyframes spin-2c0f0634{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.aform-loading[data-v-274f5ba3]{width:100%;border:1px solid var(--sc-form-border);border-left:4px solid var(--sc-form-border);padding:1rem;margin-bottom:1rem;box-sizing:border-box;position:relative;overflow:hidden;background:var(--sc-input-field-background, #fff)}.aform-loading__label[data-v-274f5ba3]{font-size:.9rem;color:var(--sc-cell-text-color);z-index:1;position:relative}.aform-loading__label[data-v-274f5ba3]:not(:empty):after{content:"...";animation:ellipsis-274f5ba3 2s infinite}.aform-loading__bar[data-v-274f5ba3]{width:100%;height:100%;position:absolute;left:-100%;top:0;background:linear-gradient(90deg,rgba(var(--sc-table-loading-color),0),rgba(var(--sc-table-loading-color),1),rgba(var(--sc-table-loading-color),0));animation:bar-sweep-274f5ba3 2s infinite;z-index:0}@keyframes bar-sweep-274f5ba3{0%{left:-100%}to{left:100%}}@keyframes ellipsis-274f5ba3{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}
|
|
1
|
+
.aform_checkbox[data-v-ca06741d]{cursor:pointer;width:auto;margin-top:0;display:block}.aform_checkbox[data-v-ca06741d]:checked{accent-color:var(--sc-primary-color);border:1px solid black}.aform_checkbox-container[data-v-ca06741d]{width:100%;display:inline-block;text-align:left}.aform_checkbox-container input[data-v-ca06741d]{width:auto}.aform_checkbox-container:hover+.aform_field-label[data-v-ca06741d]{color:var(--sc-input-active-label-color)}.aform_form-link-wrapper[data-v-154d79c9]{position:relative}.input-group[data-v-154d79c9]{display:flex;align-items:stretch}.aform_input-field[data-v-154d79c9]{flex:1;min-width:0}.aform_form-element--embedded[data-v-154d79c9]{min-width:0;flex-grow:0}.aform_input-field--embedded[data-v-154d79c9]{outline:none;background:transparent;padding:.5ch 1ch}.aform_form-element--embedded .autocomplete-results[data-v-154d79c9]{min-width:100%;width:max-content}.aform_form-btn[data-v-154d79c9]{appearance:none;border:none;outline:1px solid var(--sc-input-border-color);outline-offset:-1px;margin-left:-2px;background:var(--sc-input-field-background, white);padding:0 .75rem;cursor:pointer}.aform_form-btn[data-v-154d79c9]:focus,.input-group:focus-within .aform_form-btn[data-v-154d79c9]{outline-color:var(--sc-input-active-border-color)}.autocomplete-results[data-v-154d79c9]{position:absolute;width:100%;z-index:100;padding:0;margin:0;list-style:none;border:1px solid var(--sc-input-active-border-color);border-top:none;border-radius:0 0 .25rem .25rem;background:#fff}.autocomplete-result[data-v-154d79c9]{padding:4px 6px;cursor:pointer;border-bottom:.5px solid lightgray}.autocomplete-result.is-active[data-v-154d79c9],.autocomplete-result[data-v-154d79c9]:hover{background-color:var(--sc-row-color-zebra-light);color:var(--sc-input-active-border-color)}.acurrency__row[data-v-15bec6ef]{display:flex;gap:1ch}.acurrency__row--base[data-v-15bec6ef]{margin-top:1.5rem}.acurrency__field[data-v-15bec6ef]{position:relative;flex:1;min-width:0}.acurrency__group[data-v-15bec6ef]{display:flex;align-items:stretch;width:100%;border:1px solid var(--sc-input-border-color);border-radius:.25rem}.acurrency__group[data-v-15bec6ef]:focus-within{border-color:var(--sc-input-active-border-color)}.acurrency__amount-wrap[data-v-15bec6ef]{position:relative;flex:1;min-width:0}.acurrency__amount-wrap .aform_field-label[data-v-15bec6ef]{font-size:.85rem}.acurrency__amount[data-v-15bec6ef]{width:100%;box-sizing:border-box;border:none;outline:none;padding:.5ch 1ch;background:transparent;border-radius:0 .25rem .25rem 0;text-align:right;appearance:textfield;-moz-appearance:textfield}.acurrency__amount[data-v-15bec6ef]::-webkit-outer-spin-button,.acurrency__amount[data-v-15bec6ef]::-webkit-inner-spin-button{appearance:none;-webkit-appearance:none;margin:0}.acurrency__currency[data-v-15bec6ef]{position:relative;flex:0 0 auto;min-width:4.5rem;background:var(--sc-gray-5);border-right:1px solid var(--sc-input-border-color);border-radius:.25rem 0 0 .25rem}.acurrency__base-field[data-v-15bec6ef]{width:100%;box-sizing:border-box;font-size:1rem;padding:.5ch 1ch;border:1px solid var(--sc-input-border-color);border-radius:.25rem;outline:none;appearance:textfield;-moz-appearance:textfield}.acurrency__base-field[data-v-15bec6ef]:disabled{color:var(--sc-gray-50, #888)}.acurrency__base-field[data-v-15bec6ef]::-webkit-outer-spin-button,.acurrency__base-field[data-v-15bec6ef]::-webkit-inner-spin-button{appearance:none;-webkit-appearance:none;margin:0}.adatepicker[data-v-322c2ceb],.adatepicker table[data-v-322c2ceb],.adatepicker tr[data-v-322c2ceb],.adatepicker td[data-v-322c2ceb],.adatepicker th[data-v-322c2ceb]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.adatepicker[data-v-322c2ceb]{font-size:var(--sc-table-font-size);display:inline-table;color:var(--sc-cell-text-color);outline:none;border-collapse:collapse;margin-bottom:10px}.adatepicker tr[data-v-322c2ceb]{height:1.15rem;text-align:center;vertical-align:middle}.adatepicker td[data-v-322c2ceb]{border:2px solid transparent;outline:2px solid transparent;min-width:3ch;max-width:3ch;cursor:pointer}.adatepicker td.date-cell[data-v-322c2ceb]:hover{background:var(--sc-gray-10)}.adatepicker td[data-v-322c2ceb]:focus,.adatepicker td[data-v-322c2ceb]:focus-within{box-shadow:none;min-height:1.15em;max-height:1.15em;overflow:hidden}.adatepicker .selectedDate[data-v-322c2ceb],.adatepicker .startDate[data-v-322c2ceb],.adatepicker .endDate[data-v-322c2ceb]{background:var(--sc-gray-20);font-weight:bolder}.adatepicker .startDate[data-v-322c2ceb]{border-left:1px solid var(--sc-gray-50);background:var(--sc-gray-20)!important}.adatepicker .endDate[data-v-322c2ceb]{border-right:1px solid var(--sc-gray-50);background:var(--sc-gray-20)!important}.adatepicker .withinRange[data-v-322c2ceb]{background:var(--sc-gray-5)}.adatepicker .todaysDate[data-v-322c2ceb]{font-weight:bolder;color:#000}.days-header>td[data-v-322c2ceb]{font-weight:700}.prev-date[data-v-322c2ceb]{color:var(--sc-gray-20)}.adatepicker .date-input[data-v-322c2ceb]{display:flex;width:100%;gap:5px;align-items:center}.adatepicker .date-input>input[data-v-322c2ceb]{width:50%;padding:2px}p.aform_error[data-v-322c2ceb]{position:static;display:block;color:var(--sc-brand-danger, red);font-size:.7rem;margin:.25rem 0 0}.adate_time[data-v-95ad0aa4]{width:auto;padding:10px;box-sizing:border-box;font-size:1rem;background:var(--sc-gray-10)}.adate_time_fields[data-v-95ad0aa4]{display:flex;align-items:stretch;gap:5px;justify-content:flex-start}.adate_time_fields>input[data-v-95ad0aa4]{min-width:30px;padding:2px;text-align:center;display:inline-block;flex-basis:0}.meridiem-selector[data-v-95ad0aa4]{cursor:pointer;display:inline-block;flex-basis:0;padding:5px;-webkit-user-select:none;user-select:none}.meridiem-selector[data-v-95ad0aa4]:focus{outline:2px solid black;outline-offset:-2px}.adate_time_segment[data-v-95ad0aa4]{display:flex;flex-direction:column;width:40px}.colon[data-v-95ad0aa4]{display:flex;align-items:normal}.aform_form-btn[data-v-95ad0aa4]{cursor:pointer}.aform-select[data-v-95ad0aa4]{border:1px solid rgb(118,118,118);font-size:1rem;padding:0rem;margin:0;border-radius:0;box-sizing:border-box;min-height:auto;position:relative;color:var(--sc-cell-text-color)}.meridiem-selector[data-v-95ad0aa4]{margin-left:6px}.adate-selection[data-v-602dfd69]{display:inline-block;border:1px solid var(--sc-gray-80);padding:10px;background:var(--sc-form-background)}.adate-selection__end-label[data-v-602dfd69]{font-size:.8em;font-weight:700;color:var(--sc-input-active-label-color, #555);margin-top:8px;margin-bottom:2px;padding-left:2px}.empty[data-v-602dfd69]{color:#ccc;padding:10px;text-align:center;border:1px solid #ccc}.adate-picker[data-v-5de3fe7a]{position:absolute;top:100%;left:0;z-index:1000;margin-top:.25rem}.autocomplete[data-v-11fc3569]{position:relative}.autocomplete-results[data-v-11fc3569]{position:absolute;left:0;right:0;z-index:100;padding:0;margin:0;color:var(--sc-input-active-border-color);border:1px solid var(--sc-input-active-border-color);border-radius:0;border-top:none;background-color:var(--sc-input-field-background, #fff);list-style:none}.autocomplete-result[data-v-11fc3569]{text-align:left;padding:4px 6px;cursor:pointer;border-bottom:.5px solid lightgray}.autocomplete-result.is-active[data-v-11fc3569],.autocomplete-result[data-v-11fc3569]:hover{background-color:var(--sc-row-color-zebra-light);color:var(--sc-input-active-border-color)}.abadge[data-v-4f364f5f]{display:block;box-sizing:border-box;font:inherit;line-height:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.abadge--cell-fill[data-v-4f364f5f]{display:block;box-sizing:border-box;width:100%;min-height:calc(var(--sc-atable-row-height, 1.5em) + 2 * var(--sc-atable-row-padding, .125rem));line-height:calc(var(--sc-atable-row-height, 1.5em) + 2 * var(--sc-atable-row-padding, .125rem));margin:0;padding:0 .5ch;border-radius:0;text-align:inherit;background:var(--sc-badge-bg);color:var(--sc-badge-text)}.abadge--cell-fill.abadge--neutral[data-v-4f364f5f]{--sc-badge-bg: var(--sc-badge-neutral-bg);--sc-badge-text: var(--sc-badge-neutral-text)}.abadge--cell-fill.abadge--success[data-v-4f364f5f]{--sc-badge-bg: var(--sc-badge-success-bg);--sc-badge-text: var(--sc-badge-success-text)}.abadge--cell-fill.abadge--warning[data-v-4f364f5f]{--sc-badge-bg: var(--sc-badge-warning-bg);--sc-badge-text: var(--sc-badge-warning-text)}.abadge--cell-fill.abadge--danger[data-v-4f364f5f]{--sc-badge-bg: var(--sc-badge-danger-bg);--sc-badge-text: var(--sc-badge-danger-text)}.abadge--cell-fill.abadge--brand[data-v-4f364f5f]{--sc-badge-bg: var(--sc-badge-brand-bg);--sc-badge-text: var(--sc-badge-brand-text)}.abadge--input-accent[data-v-4f364f5f]{background:var(--sc-input-field-background, #ffffff);color:inherit;border-left:4px solid var(--sc-badge-accent);padding-left:calc(1ch - 4px)}.abadge--input-accent.abadge--neutral[data-v-4f364f5f]{--sc-badge-accent: var(--sc-badge-neutral-accent)}.abadge--input-accent.abadge--success[data-v-4f364f5f]{--sc-badge-accent: var(--sc-badge-success-accent)}.abadge--input-accent.abadge--warning[data-v-4f364f5f]{--sc-badge-accent: var(--sc-badge-warning-accent)}.abadge--input-accent.abadge--danger[data-v-4f364f5f]{--sc-badge-accent: var(--sc-badge-danger-accent)}.abadge--input-accent.abadge--brand[data-v-4f364f5f]{--sc-badge-accent: var(--sc-badge-brand-accent)}.adatetime-picker[data-v-b0fa488b]{position:absolute;top:100%;left:0;z-index:1000;margin-top:.25rem}.aduration[data-v-2e4dd7dd]{position:relative;min-width:40ch;width:100%}.aduration__summary[data-v-2e4dd7dd]{display:flex;gap:6px;align-items:baseline;margin-top:6px;font-size:.9em}.aduration__label[data-v-2e4dd7dd]{font-weight:700;color:var(--sc-input-active-label-color, #555)}.aduration__value[data-v-2e4dd7dd]{color:var(--sc-cell-text-color, #000)}.aduration__ms[data-v-2e4dd7dd]{color:var(--sc-gray-50, #888);font-size:.85em}.aduration__footer[data-v-2e4dd7dd]{margin-top:8px}.adaterange-picker[data-v-f8dad4d3]{position:absolute;top:100%;left:0;z-index:1000;margin-top:.25rem}.aform input{font-family:var(--sc-font-family);border:none}.aform_form-element{padding:0;margin:0;position:relative;box-sizing:border-box;flex-grow:1;min-width:20ch}.aform__grid--full{flex-basis:100%;width:100%}.aform_input-field{outline:1px solid var(--sc-input-border-color);outline-offset:-1px;font-size:1rem;padding:.5rem;margin:0;border-radius:0;box-sizing:border-box;width:100%;min-height:auto;position:relative;color:var(--sc-cell-text-color);background:var(--sc-input-field-background);font-family:var(--sc-font-family)}.aform_input-field:focus{outline:1px solid var(--sc-input-active-border-color)}.aform_display-value{display:block;padding:.5rem;min-height:2rem;color:var(--sc-cell-text-color);word-break:break-word}.aform_input-field:focus+.aform_field-label{color:var(--sc-input-active-label-color)}.aform_field-label{color:var(--sc-input-label-color);display:inline-block;position:absolute;padding:0 .25rem;margin:0rem;z-index:1;font-size:.7rem;font-weight:300;letter-spacing:.05rem;background:linear-gradient(var(--sc-form-background) 50%,var(--sc-input-field-background) 50%);width:auto;box-sizing:border-box;background:#fff;margin:0;grid-row:1;top:0;left:10px;border:none;line-height:0;transform:translateY(-50%)}.aform_input-field:disabled,.aform_checkbox-container:has(.aform_checkbox:disabled){background:var(--sc-input-field-disabled-background)}.aform_input-field:disabled+.aform_field-label,.aform_checkbox-container:has(.aform_checkbox:disabled)+.aform_field-label{background:linear-gradient(var(--sc-form-background) 50%,var(--sc-input-field-disabled-background) 50%)}.aform_input-field:disabled~p.aform_error,.aform_checkbox-container:has(.aform_checkbox:disabled)~p.aform_error{background:linear-gradient(var(--sc-form-background) 50%,var(--sc-input-field-disabled-background) 50%)}.aform_field-label:after{margin:0;padding:0;box-sizing:border-box;content:"";line-height:normal}p.aform_error{display:inline-block;background:linear-gradient(var(--sc-form-background) 50%,var(--sc-input-field-background) 50%);padding:0 .25rem;margin:0rem;width:auto;color:var(--sc-brand-danger);font-size:.7rem;position:absolute;right:0;top:0;line-height:0;background:#fff;padding:.25rem;transform:translate(-1rem,-50%);margin:0}.aform[data-v-bb17171c]{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem;border:1px solid var(--sc-form-border);border-left:4px solid var(--sc-form-border);margin-bottom:1rem;max-width:100%}@media screen and (max-width:400px){.aform[data-v-bb17171c]{flex-direction:column}}.aform-nested-section[data-v-bb17171c]{width:100%;padding:.5rem 0}.aform-nested-label[data-v-bb17171c]{font-size:.9rem;font-weight:600;margin:0 0 .5rem;color:var(--sc-input-label-color, #666)}.aform-nested-section .aform[data-v-bb17171c]{border-left-width:2px;margin-left:.5rem}.collapse-button[data-v-6f1c1b45]{width:2ch;min-width:calc(66px - 4ch);background-color:transparent;font-size:150%;text-align:center;border:none;margin-top:-.5rem}.rotated[data-v-6f1c1b45]{transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transition:transform .25s;transform-origin:center center}.unrotated[data-v-6f1c1b45]{transform:rotate(0);-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transition:transform .25s}fieldset[data-v-162e7317]{max-width:100%;width:100%;margin-right:2ch;border:1px solid transparent;border-bottom:1px solid var(--sc-gray-50)}legend[data-v-162e7317]{width:100%;height:1.15rem;border:1px solid transparent;padding-bottom:.5rem;font-size:110%;font-weight:600;-webkit-user-select:none;user-select:none}.collapse-button[data-v-162e7317]{float:right}.aform_file-attach[data-v-8eefd179]{padding:1rem;display:flex;flex-wrap:wrap;gap:1rem;flex-direction:row;justify-content:center;align-items:center;border:1px dashed var(--sc-input-border-color);width:100%}@media screen and (max-width:400px){.aform_file-attach>.aform_form-btn[data-v-8eefd179]{width:100%}}.aform_file-attach-feedback[data-v-8eefd179]{color:var(--sc-input-label-color);width:100%;padding:.5rem;text-align:center;align-self:center}.aform_file-attach-feedback>li[data-v-8eefd179]{list-style:none;font-style:italic}.aform_file-attach-feedback>p[data-v-8eefd179]{margin-top:0}.aform_form-btn[data-v-8eefd179]{padding:.5rem 2rem;width:auto;border:1px solid var(--sc-input-border-color);color:var(--sc-input-label-color);cursor:pointer;background-color:#fff}.aform_form-btn[data-v-8eefd179]:disabled{background-color:var(--sc-gray-5)}.aquantity__row[data-v-0b714861]{display:flex;gap:1ch}.aquantity__row--stock[data-v-0b714861]{margin-top:1.5rem}.aquantity__field[data-v-0b714861]{position:relative;flex:1;min-width:0}.aquantity__group[data-v-0b714861]{display:flex;align-items:stretch;width:100%;border:1px solid var(--sc-input-border-color);border-radius:.25rem}.aquantity__group[data-v-0b714861]:focus-within{border-color:var(--sc-input-active-border-color)}.aquantity__qty[data-v-0b714861]{flex:1;min-width:0;border:none;outline:none;padding:.5ch 1ch;background:transparent;border-radius:.25rem 0 0 .25rem;appearance:textfield;-moz-appearance:textfield}.aquantity__qty[data-v-0b714861]::-webkit-outer-spin-button,.aquantity__qty[data-v-0b714861]::-webkit-inner-spin-button{appearance:none;-webkit-appearance:none;margin:0}.aquantity__uom[data-v-0b714861]{position:relative;flex:0 0 auto;border-left:1px solid var(--sc-input-border-color)}.aquantity__uom-toggle[data-v-0b714861]{display:flex;align-items:center;gap:.75ch;height:100%;padding:.5ch 1ch;background:var(--sc-gray-5);border:none;border-radius:0 .25rem .25rem 0;white-space:nowrap;cursor:pointer}.aquantity__uom-toggle[data-v-0b714861]:disabled{cursor:not-allowed;color:var(--sc-gray-50, #888)}.aquantity__caret[data-v-0b714861]{display:inline-block;width:0;height:0;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid currentColor}.aquantity__uom-menu[data-v-0b714861]{position:absolute;top:100%;right:0;z-index:100;min-width:100%;margin:.15rem 0 0;padding:.25rem 0;list-style:none;background:var(--sc-input-field-background, #fff);border:1px solid var(--sc-input-active-border-color);border-radius:.25rem}.aquantity__uom-option[data-v-0b714861]{padding:.4ch 1ch;white-space:nowrap;cursor:pointer}.aquantity__uom-option.is-active[data-v-0b714861],.aquantity__uom-option[data-v-0b714861]:hover{background-color:var(--sc-row-color-zebra-light)}.aquantity__stock-field[data-v-0b714861]{width:100%;font-size:1rem;padding:.5ch 1ch;border:1px solid var(--sc-input-border-color);border-radius:.25rem;outline:none}.aquantity__stock-field[data-v-0b714861]:disabled{color:var(--sc-gray-50, #888)}.aform_textbox[data-v-2a9c793b]{resize:vertical;line-height:1.5;min-height:4rem;font-family:inherit}.aform_textbox-display[data-v-2a9c793b]{white-space:pre-wrap}.login-container[data-v-2c0f0634]{width:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--sc-font-family)}.account-container[data-v-2c0f0634]{width:100%;margin-left:auto;margin-top:.5rem;margin-right:auto;display:flex;flex-direction:column;justify-content:center}.account-header[data-v-2c0f0634]{display:flex;flex-direction:column;text-align:center;margin-top:.5rem}#account-title[data-v-2c0f0634]{font-size:1.5rem;line-height:2rem;font-weight:600;letter-spacing:-.025em;margin:0}#account-subtitle[data-v-2c0f0634]{font-size:.875rem;line-height:1.25rem;margin:1rem}.login-form-container[data-v-2c0f0634]{display:grid;gap:.5rem}.login-form-element[data-v-2c0f0634]{display:grid;margin:.5rem 0;position:relative}.login-field[data-v-2c0f0634]{padding:.5rem .25rem .25rem .5rem;outline:1px solid transparent;border:1px solid var(--sc-input-border-color);border-radius:.25rem}.login-field[data-v-2c0f0634]:focus{border:1px solid black}.btn[data-v-2c0f0634]{background-color:var(--sc-btn-color);color:var(--sc-btn-label-color);border:1px solid var(--sc-btn-border);margin:.5rem 0;padding:.25rem;position:relative;cursor:pointer}.btn[data-v-2c0f0634]:hover{background-color:var(--sc-btn-hover)}.btn[data-v-2c0f0634]:disabled{background-color:var(--sc-input-field-disabled-background)}.disabled[data-v-2c0f0634]{opacity:.5}.loading-icon[data-v-2c0f0634]{animation:spin-2c0f0634 1s linear infinite forwards;display:inline-block;margin-right:.2rem;line-height:0;font-size:1rem;position:relative;top:.2rem}@keyframes spin-2c0f0634{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.aform-loading[data-v-274f5ba3]{width:100%;border:1px solid var(--sc-form-border);border-left:4px solid var(--sc-form-border);padding:1rem;margin-bottom:1rem;box-sizing:border-box;position:relative;overflow:hidden;background:var(--sc-input-field-background, #fff)}.aform-loading__label[data-v-274f5ba3]{font-size:.9rem;color:var(--sc-cell-text-color);z-index:1;position:relative}.aform-loading__label[data-v-274f5ba3]:not(:empty):after{content:"...";animation:ellipsis-274f5ba3 2s infinite}.aform-loading__bar[data-v-274f5ba3]{width:100%;height:100%;position:absolute;left:-100%;top:0;background:linear-gradient(90deg,rgba(var(--sc-table-loading-color),0),rgba(var(--sc-table-loading-color),1),rgba(var(--sc-table-loading-color),0));animation:bar-sweep-274f5ba3 2s infinite;z-index:0}@keyframes bar-sweep-274f5ba3{0%{left:-100%}to{left:100%}}@keyframes ellipsis-274f5ba3{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
export type * from '@stonecrop/atable/types';
|
|
2
2
|
export { deserializeFunction } from './utils/deserialize';
|
|
3
|
+
export { badgeInputAccentStyle, resolveFieldBadge } from './utils/badge';
|
|
4
|
+
export type { BadgeFormatContext, BadgeFormatFn } from './utils/badge';
|
|
3
5
|
import type { App } from 'vue';
|
|
4
6
|
import ACheckbox from './components/form/ACheckbox.vue';
|
|
5
7
|
import ACurrencyInput from './components/form/ACurrencyInput.vue';
|
|
6
8
|
import ADate from './components/form/ADate.vue';
|
|
7
9
|
import ADropdown from './components/form/ADropdown.vue';
|
|
10
|
+
import ABadge from './components/form/ABadge.vue';
|
|
8
11
|
import ADatePicker from './components/form/ADatePicker.vue';
|
|
9
12
|
import ADateTime from './components/form/ADateTime.vue';
|
|
13
|
+
import ADateTimeInput from './components/form/ADateTimeInput.vue';
|
|
10
14
|
import ADateSelection from './components/form/ADateSelection.vue';
|
|
11
15
|
import ADuration from './components/form/ADuration.vue';
|
|
12
16
|
import ADateRange from './components/form/ADateRange.vue';
|
|
@@ -27,5 +31,5 @@ export type * from './types';
|
|
|
27
31
|
* @public
|
|
28
32
|
*/
|
|
29
33
|
declare function install(app: App): void;
|
|
30
|
-
export { ACheckbox, ACurrencyInput, ADate, ADropdown, ADatePicker, ADateRange, ADateSelection, ADuration, ADateTime, AFieldset, AFileAttach, AForm, AFormLink, ANumericInput, AQuantityInput, ATextInput, ATextboxInput, Login, AFormLoading, install, };
|
|
34
|
+
export { ACheckbox, ACurrencyInput, ADate, ADropdown, ABadge, ADatePicker, ADateRange, ADateSelection, ADuration, ADateTime, ADateTimeInput, AFieldset, AFileAttach, AForm, AFormLink, ANumericInput, AQuantityInput, ATextInput, ATextboxInput, Login, AFormLoading, install, };
|
|
31
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,yBAAyB,CAAA;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,yBAAyB,CAAA;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACxE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAEtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAE9B,OAAO,SAAS,MAAM,iCAAiC,CAAA;AACvD,OAAO,cAAc,MAAM,sCAAsC,CAAA;AACjE,OAAO,KAAK,MAAM,6BAA6B,CAAA;AAC/C,OAAO,SAAS,MAAM,iCAAiC,CAAA;AACvD,OAAO,MAAM,MAAM,8BAA8B,CAAA;AACjD,OAAO,WAAW,MAAM,mCAAmC,CAAA;AAC3D,OAAO,SAAS,MAAM,iCAAiC,CAAA;AACvD,OAAO,cAAc,MAAM,sCAAsC,CAAA;AACjE,OAAO,cAAc,MAAM,sCAAsC,CAAA;AACjE,OAAO,SAAS,MAAM,iCAAiC,CAAA;AACvD,OAAO,UAAU,MAAM,kCAAkC,CAAA;AACzD,OAAO,SAAS,MAAM,iCAAiC,CAAA;AACvD,OAAO,WAAW,MAAM,mCAAmC,CAAA;AAC3D,OAAO,KAAK,MAAM,wBAAwB,CAAA;AAC1C,OAAO,SAAS,MAAM,iCAAiC,CAAA;AACvD,OAAO,aAAa,MAAM,qCAAqC,CAAA;AAC/D,OAAO,cAAc,MAAM,sCAAsC,CAAA;AACjE,OAAO,UAAU,MAAM,kCAAkC,CAAA;AACzD,OAAO,aAAa,MAAM,qCAAqC,CAAA;AAC/D,OAAO,KAAK,MAAM,kCAAkC,CAAA;AACpD,OAAO,YAAY,MAAM,+BAA+B,CAAA;AAExD,mBAAmB,SAAS,CAAA;AAE5B;;;;GAIG;AACH,iBAAS,OAAO,CAAC,GAAG,EAAE,GAAG,QAuBxB;AAED,OAAO,EACN,SAAS,EACT,cAAc,EACd,KAAK,EACL,SAAS,EACT,MAAM,EACN,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,cAAc,EACd,SAAS,EACT,WAAW,EACX,KAAK,EACL,SAAS,EACT,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,KAAK,EACL,YAAY,EACZ,OAAO,GACP,CAAA"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
export { deserializeFunction } from './utils/deserialize';
|
|
2
|
+
export { badgeInputAccentStyle, resolveFieldBadge } from './utils/badge';
|
|
2
3
|
import { install as installATable } from '@stonecrop/atable';
|
|
3
4
|
import ACheckbox from './components/form/ACheckbox.vue';
|
|
4
5
|
import ACurrencyInput from './components/form/ACurrencyInput.vue';
|
|
5
6
|
import ADate from './components/form/ADate.vue';
|
|
6
7
|
import ADropdown from './components/form/ADropdown.vue';
|
|
8
|
+
import ABadge from './components/form/ABadge.vue';
|
|
7
9
|
import ADatePicker from './components/form/ADatePicker.vue';
|
|
8
10
|
import ADateTime from './components/form/ADateTime.vue';
|
|
11
|
+
import ADateTimeInput from './components/form/ADateTimeInput.vue';
|
|
9
12
|
import ADateSelection from './components/form/ADateSelection.vue';
|
|
10
13
|
import ADuration from './components/form/ADuration.vue';
|
|
11
14
|
import ADateRange from './components/form/ADateRange.vue';
|
|
@@ -30,8 +33,10 @@ function install(app /* options */) {
|
|
|
30
33
|
app.component('ACurrencyInput', ACurrencyInput);
|
|
31
34
|
app.component('ADate', ADate);
|
|
32
35
|
app.component('ADropdown', ADropdown);
|
|
36
|
+
app.component('ABadge', ABadge);
|
|
33
37
|
app.component('ADatePicker', ADatePicker);
|
|
34
38
|
app.component('ADateTime', ADateTime);
|
|
39
|
+
app.component('ADateTimeInput', ADateTimeInput);
|
|
35
40
|
app.component('ADateRange', ADateRange);
|
|
36
41
|
app.component('ADateSelection', ADateSelection);
|
|
37
42
|
app.component('AFieldset', AFieldset);
|
|
@@ -45,4 +50,4 @@ function install(app /* options */) {
|
|
|
45
50
|
app.component('ADuration', ADuration);
|
|
46
51
|
app.component('AFormLoading', AFormLoading);
|
|
47
52
|
}
|
|
48
|
-
export { ACheckbox, ACurrencyInput, ADate, ADropdown, ADatePicker, ADateRange, ADateSelection, ADuration, ADateTime, AFieldset, AFileAttach, AForm, AFormLink, ANumericInput, AQuantityInput, ATextInput, ATextboxInput, Login, AFormLoading, install, };
|
|
53
|
+
export { ACheckbox, ACurrencyInput, ADate, ADropdown, ABadge, ADatePicker, ADateRange, ADateSelection, ADuration, ADateTime, ADateTimeInput, AFieldset, AFileAttach, AForm, AFormLink, ANumericInput, AQuantityInput, ATextInput, ATextboxInput, Login, AFormLoading, install, };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { BadgeDescriptor, FieldOptions } from '@stonecrop/schema';
|
|
2
|
+
/**
|
|
3
|
+
* Row context passed to badge `format` functions in form fields.
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export type BadgeFormatContext = {
|
|
7
|
+
record?: Record<string, unknown>;
|
|
8
|
+
row?: Record<string, unknown>;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Badge-aware field `format` function signature.
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export type BadgeFormatFn = (value: unknown, context: BadgeFormatContext) => string | BadgeDescriptor;
|
|
15
|
+
/**
|
|
16
|
+
* Resolve a field value to a badge descriptor using format (if present) then options map.
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveFieldBadge(value: unknown, options: FieldOptions | undefined, format: string | BadgeFormatFn | undefined, context?: BadgeFormatContext): BadgeDescriptor | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* CSS custom properties for input-accent styling on a native input.
|
|
22
|
+
* @public
|
|
23
|
+
*/
|
|
24
|
+
export declare function badgeInputAccentStyle(descriptor: BadgeDescriptor | undefined): Record<string, string> | undefined;
|
|
25
|
+
//# sourceMappingURL=badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/utils/badge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAKtE;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,KAAK,MAAM,GAAG,eAAe,CAAA;AAErG;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,YAAY,GAAG,SAAS,EACjC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,EAC1C,OAAO,GAAE,kBAAuB,GAC9B,eAAe,GAAG,SAAS,CAqB7B;AAqBD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAkBjH"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { isBadgeDescriptor, lookupBadge } from '@stonecrop/schema';
|
|
2
|
+
import { deserializeFunction } from './deserialize';
|
|
3
|
+
/**
|
|
4
|
+
* Resolve a field value to a badge descriptor using format (if present) then options map.
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export function resolveFieldBadge(value, options, format, context = {}) {
|
|
8
|
+
if (format) {
|
|
9
|
+
let formatted;
|
|
10
|
+
if (typeof format === 'function') {
|
|
11
|
+
formatted = format(value, context);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
const formatFn = deserializeFunction(format);
|
|
15
|
+
formatted = formatFn(value, context);
|
|
16
|
+
}
|
|
17
|
+
if (isBadgeDescriptor(formatted)) {
|
|
18
|
+
const label = formatted.label.trim();
|
|
19
|
+
return label ? formatted : undefined;
|
|
20
|
+
}
|
|
21
|
+
if (typeof formatted === 'string' && formatted !== '') {
|
|
22
|
+
return lookupBadge(options, formatted) ?? { label: formatted, variant: 'neutral' };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const key = badgeLookupKey(value);
|
|
26
|
+
if (key === undefined)
|
|
27
|
+
return undefined;
|
|
28
|
+
return lookupBadge(options, key);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Stored choice value as an options-map key. Only primitives can match a declared choice, so
|
|
32
|
+
* anything else yields undefined rather than the '[object Object]' that String() would produce.
|
|
33
|
+
*/
|
|
34
|
+
function badgeLookupKey(value) {
|
|
35
|
+
switch (typeof value) {
|
|
36
|
+
case 'string':
|
|
37
|
+
return value === '' ? undefined : value;
|
|
38
|
+
case 'number':
|
|
39
|
+
case 'boolean':
|
|
40
|
+
case 'bigint':
|
|
41
|
+
return String(value);
|
|
42
|
+
default:
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const BADGE_VARIANTS = new Set(['neutral', 'success', 'warning', 'danger', 'brand']);
|
|
47
|
+
/**
|
|
48
|
+
* CSS custom properties for input-accent styling on a native input.
|
|
49
|
+
* @public
|
|
50
|
+
*/
|
|
51
|
+
export function badgeInputAccentStyle(descriptor) {
|
|
52
|
+
if (!descriptor?.label?.trim())
|
|
53
|
+
return undefined;
|
|
54
|
+
const variant = descriptor.variant ?? 'neutral';
|
|
55
|
+
if (descriptor.color) {
|
|
56
|
+
return {
|
|
57
|
+
borderLeftWidth: '4px',
|
|
58
|
+
borderLeftStyle: 'solid',
|
|
59
|
+
borderLeftColor: descriptor.color,
|
|
60
|
+
paddingLeft: 'calc(1ch - 4px)',
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (!BADGE_VARIANTS.has(variant))
|
|
64
|
+
return undefined;
|
|
65
|
+
return {
|
|
66
|
+
borderLeftWidth: '4px',
|
|
67
|
+
borderLeftStyle: 'solid',
|
|
68
|
+
borderLeftColor: `var(--sc-badge-${variant}-accent)`,
|
|
69
|
+
paddingLeft: 'calc(1ch - 4px)',
|
|
70
|
+
};
|
|
71
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stonecrop/aform",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "Schema-driven form components for Stonecrop",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/agritheory/stonecrop/issues"
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@vueuse/components": "^14.2.1",
|
|
37
37
|
"@vueuse/core": "^14.2.1",
|
|
38
|
-
"@stonecrop/
|
|
39
|
-
"@stonecrop/
|
|
40
|
-
"@stonecrop/themes": "0.
|
|
41
|
-
"@stonecrop/
|
|
38
|
+
"@stonecrop/atable": "0.23.0",
|
|
39
|
+
"@stonecrop/schema": "0.23.0",
|
|
40
|
+
"@stonecrop/themes": "0.23.0",
|
|
41
|
+
"@stonecrop/utilities": "0.23.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@microsoft/api-documenter": "^7.30.5",
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<span v-if="displayLabel" :class="classes" :style="styleVars">{{ displayLabel }}</span>
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script setup lang="ts">
|
|
6
|
+
import type { BadgeDescriptor, BadgePresentation, BadgeVariant, FieldOptions } from '@stonecrop/schema'
|
|
7
|
+
import { lookupBadge } from '@stonecrop/schema'
|
|
8
|
+
import { computed, type CSSProperties } from 'vue'
|
|
9
|
+
|
|
10
|
+
const props = defineProps<
|
|
11
|
+
Partial<BadgeDescriptor> & {
|
|
12
|
+
/** Defaults to `cell-fill`: every call site fully determines this, so omitting it should
|
|
13
|
+
* degrade to the common case rather than rendering an unstyled badge. */
|
|
14
|
+
presentation?: BadgePresentation
|
|
15
|
+
/** Stored field value — used with `options` when `label` is omitted. */
|
|
16
|
+
value?: unknown
|
|
17
|
+
options?: FieldOptions
|
|
18
|
+
}
|
|
19
|
+
>()
|
|
20
|
+
|
|
21
|
+
const resolved = computed((): BadgeDescriptor | undefined => {
|
|
22
|
+
if (props.label?.trim()) {
|
|
23
|
+
return {
|
|
24
|
+
label: props.label.trim(),
|
|
25
|
+
variant: props.variant,
|
|
26
|
+
color: props.color,
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (props.value === null || props.value === undefined || props.value === '') return undefined
|
|
30
|
+
const key = typeof props.value === 'string' ? props.value : String(props.value)
|
|
31
|
+
return lookupBadge(props.options, key)
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
const displayLabel = computed(() => resolved.value?.label?.trim() ?? '')
|
|
35
|
+
|
|
36
|
+
const activeVariant = computed((): BadgeVariant => resolved.value?.variant ?? props.variant ?? 'neutral')
|
|
37
|
+
|
|
38
|
+
const activeColor = computed(() => resolved.value?.color ?? props.color)
|
|
39
|
+
|
|
40
|
+
const classes = computed(() => [
|
|
41
|
+
'abadge',
|
|
42
|
+
`abadge--${props.presentation ?? 'cell-fill'}`,
|
|
43
|
+
`abadge--${activeVariant.value}`,
|
|
44
|
+
])
|
|
45
|
+
|
|
46
|
+
const styleVars = computed((): CSSProperties => {
|
|
47
|
+
const color = activeColor.value
|
|
48
|
+
if (!color) return {}
|
|
49
|
+
return {
|
|
50
|
+
'--sc-badge-bg': color,
|
|
51
|
+
'--sc-badge-text': color,
|
|
52
|
+
'--sc-badge-accent': color,
|
|
53
|
+
} as CSSProperties
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
export type { BadgePresentation, BadgeVariant }
|
|
57
|
+
</script>
|
|
58
|
+
|
|
59
|
+
<style scoped>
|
|
60
|
+
.abadge {
|
|
61
|
+
display: block;
|
|
62
|
+
box-sizing: border-box;
|
|
63
|
+
font: inherit;
|
|
64
|
+
line-height: inherit;
|
|
65
|
+
white-space: nowrap;
|
|
66
|
+
overflow: hidden;
|
|
67
|
+
text-overflow: ellipsis;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.abadge--cell-fill {
|
|
71
|
+
display: block;
|
|
72
|
+
box-sizing: border-box;
|
|
73
|
+
width: 100%;
|
|
74
|
+
min-height: calc(var(--sc-atable-row-height, 1.5em) + 2 * var(--sc-atable-row-padding, 0.125rem));
|
|
75
|
+
line-height: calc(var(--sc-atable-row-height, 1.5em) + 2 * var(--sc-atable-row-padding, 0.125rem));
|
|
76
|
+
margin: 0;
|
|
77
|
+
padding: 0 0.5ch;
|
|
78
|
+
border-radius: 0;
|
|
79
|
+
text-align: inherit;
|
|
80
|
+
background: var(--sc-badge-bg);
|
|
81
|
+
color: var(--sc-badge-text);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.abadge--cell-fill.abadge--neutral {
|
|
85
|
+
--sc-badge-bg: var(--sc-badge-neutral-bg);
|
|
86
|
+
--sc-badge-text: var(--sc-badge-neutral-text);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.abadge--cell-fill.abadge--success {
|
|
90
|
+
--sc-badge-bg: var(--sc-badge-success-bg);
|
|
91
|
+
--sc-badge-text: var(--sc-badge-success-text);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.abadge--cell-fill.abadge--warning {
|
|
95
|
+
--sc-badge-bg: var(--sc-badge-warning-bg);
|
|
96
|
+
--sc-badge-text: var(--sc-badge-warning-text);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.abadge--cell-fill.abadge--danger {
|
|
100
|
+
--sc-badge-bg: var(--sc-badge-danger-bg);
|
|
101
|
+
--sc-badge-text: var(--sc-badge-danger-text);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.abadge--cell-fill.abadge--brand {
|
|
105
|
+
--sc-badge-bg: var(--sc-badge-brand-bg);
|
|
106
|
+
--sc-badge-text: var(--sc-badge-brand-text);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.abadge--input-accent {
|
|
110
|
+
background: var(--sc-input-field-background, #ffffff);
|
|
111
|
+
color: inherit;
|
|
112
|
+
border-left: 4px solid var(--sc-badge-accent);
|
|
113
|
+
padding-left: calc(1ch - 4px);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.abadge--input-accent.abadge--neutral {
|
|
117
|
+
--sc-badge-accent: var(--sc-badge-neutral-accent);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.abadge--input-accent.abadge--success {
|
|
121
|
+
--sc-badge-accent: var(--sc-badge-success-accent);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.abadge--input-accent.abadge--warning {
|
|
125
|
+
--sc-badge-accent: var(--sc-badge-warning-accent);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.abadge--input-accent.abadge--danger {
|
|
129
|
+
--sc-badge-accent: var(--sc-badge-danger-accent);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.abadge--input-accent.abadge--brand {
|
|
133
|
+
--sc-badge-accent: var(--sc-badge-brand-accent);
|
|
134
|
+
}
|
|
135
|
+
</style>
|
|
@@ -1,30 +1,25 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div>
|
|
2
|
+
<div class="aform_form-element">
|
|
3
3
|
<template v-if="mode === 'display'">
|
|
4
4
|
<span class="aform_display-value">{{ modelValue ? new Date(inputDate).toLocaleDateString() : '' }}</span>
|
|
5
|
-
<label>{{ label }}</label>
|
|
5
|
+
<label class="aform_field-label">{{ label }}</label>
|
|
6
6
|
</template>
|
|
7
7
|
<template v-else>
|
|
8
8
|
<input
|
|
9
9
|
:id="uuid"
|
|
10
10
|
ref="date"
|
|
11
11
|
v-model="inputDate"
|
|
12
|
-
class="
|
|
13
|
-
:value="inputDate"
|
|
12
|
+
class="aform_input-field"
|
|
14
13
|
type="date"
|
|
15
14
|
:disabled="mode === 'read'"
|
|
16
15
|
:required="required"
|
|
17
|
-
@click
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
" />
|
|
22
|
-
<label :for="uuid">{{ label }}</label>
|
|
23
|
-
<p v-show="errorText" v-html="errorText"></p>
|
|
16
|
+
@click="openPicker" />
|
|
17
|
+
<label class="aform_field-label" :for="uuid">{{ label }}</label>
|
|
18
|
+
<p v-show="errorText" class="aform_error" v-html="errorText"></p>
|
|
24
19
|
<ADateSelection
|
|
25
20
|
v-if="showPicker"
|
|
26
21
|
ref="picker"
|
|
27
|
-
class="picker"
|
|
22
|
+
class="adate-picker"
|
|
28
23
|
:select-range="false"
|
|
29
24
|
:show-time="false"
|
|
30
25
|
@get-date="handleDate" />
|
|
@@ -67,6 +62,10 @@ const showPicker = ref(false)
|
|
|
67
62
|
|
|
68
63
|
onClickOutside(pickerRef, () => (showPicker.value = false))
|
|
69
64
|
|
|
65
|
+
const openPicker = () => {
|
|
66
|
+
if (mode !== 'read') showPicker.value = !showPicker.value
|
|
67
|
+
}
|
|
68
|
+
|
|
70
69
|
watch(
|
|
71
70
|
() => modelValue.value,
|
|
72
71
|
newValue => {
|
|
@@ -79,72 +78,16 @@ watch(
|
|
|
79
78
|
const handleDate = (data: { selected: Date }) => {
|
|
80
79
|
currentDate.value = data.selected
|
|
81
80
|
modelValue.value = inputDate.value
|
|
81
|
+
showPicker.value = false
|
|
82
82
|
}
|
|
83
83
|
</script>
|
|
84
84
|
|
|
85
85
|
<style scoped>
|
|
86
|
-
.adate-
|
|
87
|
-
overflow: auto;
|
|
88
|
-
}
|
|
89
|
-
div {
|
|
90
|
-
min-width: 40ch;
|
|
91
|
-
width: 100%;
|
|
92
|
-
box-sizing: border-box;
|
|
93
|
-
border: 1px solid transparent;
|
|
94
|
-
padding: 0rem;
|
|
95
|
-
margin: 0rem;
|
|
96
|
-
margin-right: 1ch;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
input {
|
|
100
|
-
width: calc(100% - 1ch);
|
|
101
|
-
box-sizing: border-box;
|
|
102
|
-
outline: 1px solid transparent;
|
|
103
|
-
border: 1px solid var(--sc-input-border-color);
|
|
104
|
-
padding: 1ch 0.5ch 0.5ch 1ch;
|
|
105
|
-
margin: calc(1.15rem / 2) 0 0 0;
|
|
106
|
-
min-height: 1.15rem;
|
|
107
|
-
border-radius: 0.25rem;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
p,
|
|
111
|
-
label {
|
|
112
|
-
color: var(--sc-input-label-color);
|
|
113
|
-
display: block;
|
|
114
|
-
min-height: 1.15rem;
|
|
115
|
-
padding: 0rem;
|
|
116
|
-
margin: 0rem;
|
|
117
|
-
border: 1px solid transparent;
|
|
118
|
-
margin-bottom: 0.25rem;
|
|
119
|
-
box-sizing: border-box;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
p {
|
|
123
|
-
width: 100%;
|
|
124
|
-
color: red;
|
|
125
|
-
font-size: 85%;
|
|
126
|
-
box-sizing: border-box;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
label {
|
|
130
|
-
z-index: 0;
|
|
131
|
-
font-size: 80%;
|
|
132
|
-
position: absolute;
|
|
133
|
-
background: white;
|
|
134
|
-
margin: calc(-1.5rem - calc(2.15rem / 2)) 0 0 1ch;
|
|
135
|
-
padding: 0 0.25ch 0 0.25ch;
|
|
136
|
-
box-sizing: border-box;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
input:focus {
|
|
140
|
-
border: 1px solid var(--sc-input-active-border-color);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
input:focus + label {
|
|
144
|
-
color: var(--sc-input-active-label-color);
|
|
145
|
-
}
|
|
146
|
-
.picker {
|
|
86
|
+
.adate-picker {
|
|
147
87
|
position: absolute;
|
|
148
|
-
top:
|
|
88
|
+
top: 100%;
|
|
89
|
+
left: 0;
|
|
90
|
+
z-index: 1000;
|
|
91
|
+
margin-top: 0.25rem;
|
|
149
92
|
}
|
|
150
93
|
</style>
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="
|
|
2
|
+
<div class="aform_form-element">
|
|
3
3
|
<template v-if="mode === 'display'">
|
|
4
4
|
<span class="aform_display-value">{{ displayValue }}</span>
|
|
5
|
-
<label>{{ label }}</label>
|
|
5
|
+
<label class="aform_field-label">{{ label }}</label>
|
|
6
6
|
</template>
|
|
7
7
|
|
|
8
8
|
<template v-else>
|
|
9
9
|
<input
|
|
10
10
|
:id="uuid"
|
|
11
|
-
class="
|
|
11
|
+
class="aform_input-field"
|
|
12
12
|
type="text"
|
|
13
13
|
:value="rangeDisplay"
|
|
14
14
|
placeholder="Select date range"
|
|
15
15
|
:disabled="mode === 'read'"
|
|
16
16
|
readonly
|
|
17
17
|
@click="openPicker" />
|
|
18
|
-
<label :for="uuid">{{ label }}</label>
|
|
18
|
+
<label class="aform_field-label" :for="uuid">{{ label }}</label>
|
|
19
19
|
|
|
20
|
-
<p v-show="errorText" v-html="errorText"></p>
|
|
20
|
+
<p v-show="errorText" class="aform_error" v-html="errorText"></p>
|
|
21
21
|
|
|
22
22
|
<ADateSelection
|
|
23
23
|
v-if="showPicker"
|
|
24
24
|
ref="pickerRef"
|
|
25
|
-
class="picker"
|
|
25
|
+
class="adaterange-picker"
|
|
26
26
|
:select-range="true"
|
|
27
27
|
:show-time="false"
|
|
28
28
|
@get-date="handlePickerDate" />
|
|
@@ -123,72 +123,11 @@ watch(
|
|
|
123
123
|
</script>
|
|
124
124
|
|
|
125
125
|
<style scoped>
|
|
126
|
-
.adaterange {
|
|
127
|
-
min-width: 40ch;
|
|
128
|
-
width: 100%;
|
|
129
|
-
box-sizing: border-box;
|
|
130
|
-
border: 1px solid transparent;
|
|
131
|
-
padding: 0;
|
|
132
|
-
margin: 0;
|
|
133
|
-
margin-right: 1ch;
|
|
134
|
-
position: relative;
|
|
135
|
-
overflow: visible;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
.adate-input {
|
|
139
|
-
width: calc(100% - 1ch);
|
|
140
|
-
box-sizing: border-box;
|
|
141
|
-
outline: 1px solid transparent;
|
|
142
|
-
border: 1px solid var(--sc-input-border-color);
|
|
143
|
-
padding: 1ch 0.5ch 0.5ch 1ch;
|
|
144
|
-
margin: calc(1.15rem / 2) 0 0 0;
|
|
145
|
-
min-height: 1.15rem;
|
|
146
|
-
border-radius: 0.25rem;
|
|
147
|
-
cursor: pointer;
|
|
148
|
-
background: white;
|
|
149
|
-
font-size: 1rem;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
.adate-input:focus {
|
|
153
|
-
border: 1px solid var(--sc-input-active-border-color);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
.adate-input:focus + label {
|
|
157
|
-
color: var(--sc-input-active-label-color);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
p,
|
|
161
|
-
label {
|
|
162
|
-
color: var(--sc-input-label-color);
|
|
163
|
-
display: block;
|
|
164
|
-
min-height: 1.15rem;
|
|
165
|
-
padding: 0;
|
|
166
|
-
margin: 0;
|
|
167
|
-
border: 1px solid transparent;
|
|
168
|
-
margin-bottom: 0.25rem;
|
|
169
|
-
box-sizing: border-box;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
p {
|
|
173
|
-
width: 100%;
|
|
174
|
-
color: red;
|
|
175
|
-
font-size: 85%;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
label {
|
|
179
|
-
z-index: 0;
|
|
180
|
-
font-size: 80%;
|
|
181
|
-
position: absolute;
|
|
182
|
-
background: white;
|
|
183
|
-
margin: calc(-1.5rem - calc(2.15rem / 2)) 0 0 1ch;
|
|
184
|
-
padding: 0 0.25ch 0 0.25ch;
|
|
185
|
-
box-sizing: border-box;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
.picker {
|
|
126
|
+
.adaterange-picker {
|
|
189
127
|
position: absolute;
|
|
190
|
-
top:
|
|
128
|
+
top: 100%;
|
|
191
129
|
left: 0;
|
|
192
130
|
z-index: 1000;
|
|
131
|
+
margin-top: 0.25rem;
|
|
193
132
|
}
|
|
194
133
|
</style>
|