@stonecrop/aform 0.18.0 → 0.19.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 +13 -0
- package/dist/aform.js +350 -337
- package/dist/aform.js.map +1 -1
- package/dist/assets/index.css +1 -1
- package/dist/src/types/index.d.ts +12 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/components/form/AFormLink.vue +42 -25
- package/src/types/index.ts +13 -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-eb2fee75]{position:relative}.input-group[data-v-eb2fee75]{display:flex;align-items:stretch}.aform_input-field[data-v-eb2fee75]{flex:1;min-width:0}.aform_form-element--embedded[data-v-eb2fee75]{min-width:0;flex-grow:0}.aform_input-field--embedded[data-v-eb2fee75]{outline:none;background:transparent;padding:.5ch 1ch}.aform_form-element--embedded .autocomplete-results[data-v-eb2fee75]{min-width:100%;width:max-content}.aform_form-btn[data-v-eb2fee75]{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-eb2fee75]:focus,.input-group:focus-within .aform_form-btn[data-v-eb2fee75]{outline-color:var(--sc-input-active-border-color)}.autocomplete-results[data-v-eb2fee75]{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-eb2fee75]{padding:4px 6px;cursor:pointer;border-bottom:.5px solid lightgray}.autocomplete-result.is-active[data-v-eb2fee75],.autocomplete-result[data-v-eb2fee75]: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-9e85c95a]{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-9e85c95a]{height:1.15rem;text-align:center;vertical-align:middle}.adatepicker td[data-v-9e85c95a]{border:2px solid transparent;outline:2px solid transparent;min-width:3ch;max-width:3ch;cursor:pointer}.adatepicker td.date-cell[data-v-9e85c95a]:hover{background:var(--sc-gray-10)}.adatepicker td[data-v-9e85c95a]:focus,.adatepicker td[data-v-9e85c95a]:focus-within{box-shadow:none;min-height:1.15em;max-height:1.15em;overflow:hidden}.adatepicker .selectedDate[data-v-9e85c95a],.adatepicker .startDate[data-v-9e85c95a],.adatepicker .endDate[data-v-9e85c95a]{background:var(--sc-gray-20);font-weight:bolder}.adatepicker .startDate[data-v-9e85c95a]{border-left:1px solid var(--sc-gray-50);background:var(--sc-gray-20)!important}.adatepicker .endDate[data-v-9e85c95a]{border-right:1px solid var(--sc-gray-50);background:var(--sc-gray-20)!important}.adatepicker .withinRange[data-v-9e85c95a]{background:var(--sc-gray-5)}.adatepicker .todaysDate[data-v-9e85c95a]{font-weight:bolder;color:#000}.days-header>td[data-v-9e85c95a]{font-weight:700}.prev-date[data-v-9e85c95a]{color:var(--sc-gray-20)}.adatepicker .date-input[data-v-9e85c95a]{display:flex;width:100%;gap:5px;align-items:center}.adatepicker .date-input>input[data-v-9e85c95a]{width:50%;padding:2px}p.aform_error[data-v-9e85c95a]{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-9e85c95a]{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-9e85c95a]{height:1.15rem;text-align:center;vertical-align:middle}.adatepicker td[data-v-9e85c95a]{border:2px solid transparent;outline:2px solid transparent;min-width:3ch;max-width:3ch;cursor:pointer}.adatepicker td.date-cell[data-v-9e85c95a]:hover{background:var(--sc-gray-10)}.adatepicker td[data-v-9e85c95a]:focus,.adatepicker td[data-v-9e85c95a]:focus-within{box-shadow:none;min-height:1.15em;max-height:1.15em;overflow:hidden}.adatepicker .selectedDate[data-v-9e85c95a],.adatepicker .startDate[data-v-9e85c95a],.adatepicker .endDate[data-v-9e85c95a]{background:var(--sc-gray-20);font-weight:bolder}.adatepicker .startDate[data-v-9e85c95a]{border-left:1px solid var(--sc-gray-50);background:var(--sc-gray-20)!important}.adatepicker .endDate[data-v-9e85c95a]{border-right:1px solid var(--sc-gray-50);background:var(--sc-gray-20)!important}.adatepicker .withinRange[data-v-9e85c95a]{background:var(--sc-gray-5)}.adatepicker .todaysDate[data-v-9e85c95a]{font-weight:bolder;color:#000}.days-header>td[data-v-9e85c95a]{font-weight:700}.prev-date[data-v-9e85c95a]{color:var(--sc-gray-20)}.adatepicker .date-input[data-v-9e85c95a]{display:flex;width:100%;gap:5px;align-items:center}.adatepicker .date-input>input[data-v-9e85c95a]{width:50%;padding:2px}p.aform_error[data-v-9e85c95a]{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:"..."}}
|
|
@@ -185,6 +185,18 @@ export interface AFormLinkValue {
|
|
|
185
185
|
/** Additional properties passed through to the underlying input component */
|
|
186
186
|
[extra: string]: any;
|
|
187
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* What AFormLink accepts as its `v-model`.
|
|
190
|
+
*
|
|
191
|
+
* Wider than {@link AFormLinkValue} because a link is as often bound straight to its FK column as
|
|
192
|
+
* to a resolved reference: a record loaded from the DB carries the raw scalar, and a parent bound
|
|
193
|
+
* to that column coerces every update it receives back to a scalar. The component reads through
|
|
194
|
+
* `linkId`/`linkDisplayText`/`asLinkValue`, so all three shapes render and resolve identically.
|
|
195
|
+
*
|
|
196
|
+
* Emitting is narrower — AFormLink always writes back an {@link AFormLinkValue}.
|
|
197
|
+
* @public
|
|
198
|
+
*/
|
|
199
|
+
export type AFormLinkModelValue = AFormLinkValue | string | number;
|
|
188
200
|
/**
|
|
189
201
|
* Navigation contract for AFormLink. Provide via `provide('aformLinkNavigator', ...)` in the app plugin.
|
|
190
202
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stonecrop/aform",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.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/
|
|
41
|
-
"@stonecrop/
|
|
38
|
+
"@stonecrop/atable": "0.19.0",
|
|
39
|
+
"@stonecrop/schema": "0.19.0",
|
|
40
|
+
"@stonecrop/themes": "0.19.0",
|
|
41
|
+
"@stonecrop/utilities": "0.19.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@microsoft/api-documenter": "^7.30.5",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"preview": "vite preview",
|
|
82
82
|
"test": "vitest run --coverage.enabled false",
|
|
83
83
|
"test:coverage": "vitest run --coverage",
|
|
84
|
-
"test:types": "vue-tsc --noEmit",
|
|
84
|
+
"test:types": "vue-tsc --noEmit -p tsconfig.typecheck.json",
|
|
85
85
|
"test:ui": "vitest --ui",
|
|
86
86
|
"test:watch": "vitest watch"
|
|
87
87
|
}
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
import { vOnClickOutside } from '@vueuse/components'
|
|
60
60
|
import { computed, inject, ref, useId, watch } from 'vue'
|
|
61
61
|
|
|
62
|
-
import type { AFormLinkNavigator, AFormLinkValue, ComponentProps } from '../../types'
|
|
62
|
+
import type { AFormLinkModelValue, AFormLinkNavigator, AFormLinkValue, ComponentProps } from '../../types'
|
|
63
63
|
import { deserializeFunction } from '../../utils/deserialize'
|
|
64
64
|
|
|
65
65
|
const {
|
|
@@ -101,17 +101,15 @@ const {
|
|
|
101
101
|
// mount so two pickers on one page can't cross-wire their ARIA relationships.
|
|
102
102
|
const listboxId = `${uuid ?? `aform-link-${useId()}`}-listbox`
|
|
103
103
|
|
|
104
|
-
const modelValue = defineModel<
|
|
104
|
+
const modelValue = defineModel<AFormLinkModelValue>({ default: () => ({ id: '', displayText: '' }) })
|
|
105
105
|
|
|
106
|
-
const hasValidId = computed(() =>
|
|
107
|
-
const id = modelValue.value?.id
|
|
108
|
-
return id !== null && id !== undefined && id !== ''
|
|
109
|
-
})
|
|
106
|
+
const hasValidId = computed(() => linkId(modelValue.value) !== undefined)
|
|
110
107
|
|
|
111
108
|
const displayedText = computed(() => {
|
|
112
|
-
|
|
113
|
-
if (
|
|
114
|
-
|
|
109
|
+
const id = linkId(modelValue.value)
|
|
110
|
+
if (id === undefined) return '—'
|
|
111
|
+
if (formatter) return formatter(asLinkValue(modelValue.value))
|
|
112
|
+
return linkDisplayText(modelValue.value) ?? id
|
|
115
113
|
})
|
|
116
114
|
|
|
117
115
|
const searchText = ref(hasValidId.value ? displayedText.value : '')
|
|
@@ -126,25 +124,43 @@ type FilterFn = (search: string) => AFormLinkValue[] | Promise<AFormLinkValue[]>
|
|
|
126
124
|
type ResolverFn = (doctype: string, id: string) => string | undefined | Promise<string | undefined>
|
|
127
125
|
const resolver = inject<ResolverFn | null>('aformLinkResolver', null)
|
|
128
126
|
|
|
129
|
-
//
|
|
130
|
-
//
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
)
|
|
127
|
+
// A link's value arrives as a bare scalar as often as it does as an AFormLinkValue: a record
|
|
128
|
+
// loaded from the DB carries the raw FK column, and a parent bound to that column coerces every
|
|
129
|
+
// update it receives back to a scalar. So read the value through these three helpers rather than
|
|
130
|
+
// reaching into `modelValue.value` directly.
|
|
131
|
+
//
|
|
132
|
+
// Rejected: normalizing on write — an immediate watch that replaced a scalar model with `{ id }`.
|
|
133
|
+
// It survives only until the parent writes its scalar back, so it fixed a scalar passed once at
|
|
134
|
+
// mount and nothing else, and it emitted an `update:modelValue` the user never made on every
|
|
135
|
+
// mount of a scalar-valued link field.
|
|
136
|
+
function linkId(value: AFormLinkModelValue | null | undefined): string | undefined {
|
|
137
|
+
if (value == null) return undefined
|
|
138
|
+
if (typeof value === 'string') return value === '' ? undefined : value
|
|
139
|
+
if (typeof value === 'number') return String(value)
|
|
140
|
+
const id = value.id
|
|
141
|
+
if (id === null || id === undefined || id === '') return undefined
|
|
142
|
+
return String(id)
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function linkDisplayText(value: AFormLinkModelValue | null | undefined): string | undefined {
|
|
146
|
+
if (value == null || typeof value !== 'object') return undefined
|
|
147
|
+
const text = value.displayText
|
|
148
|
+
return typeof text === 'string' || typeof text === 'number' ? String(text) : undefined
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
function asLinkValue(value: AFormLinkModelValue | null | undefined): AFormLinkValue {
|
|
152
|
+
if (value != null && typeof value === 'object') return value
|
|
153
|
+
const id = linkId(value)
|
|
154
|
+
return id !== undefined ? { id } : { id: '' }
|
|
155
|
+
}
|
|
140
156
|
|
|
141
157
|
// When the id changes (including on first render), resolve its display text.
|
|
142
158
|
// Tries filterFunction first (returns a list of candidates to search); falls back to the
|
|
143
159
|
// injected resolver (a direct doctype+id lookup). Skips if displayText is already set.
|
|
144
160
|
watch(
|
|
145
|
-
() => modelValue.value
|
|
161
|
+
() => linkId(modelValue.value),
|
|
146
162
|
async id => {
|
|
147
|
-
if (!id || modelValue.value
|
|
163
|
+
if (!id || linkDisplayText(modelValue.value)) return
|
|
148
164
|
try {
|
|
149
165
|
let match: AFormLinkValue | undefined
|
|
150
166
|
let displayText: string | undefined
|
|
@@ -168,7 +184,7 @@ watch(
|
|
|
168
184
|
// an AFormLinkValue carries are part of the value (ACurrencyInput's `symbol`, which
|
|
169
185
|
// its formatter renders, is one). `id` is pinned to the value we already hold so a
|
|
170
186
|
// loosely-typed match (1 vs '1') can't change the FK's type underneath the record.
|
|
171
|
-
const resolved: AFormLinkValue = { ...modelValue.value, ...match, id
|
|
187
|
+
const resolved: AFormLinkValue = { ...asLinkValue(modelValue.value), ...match, id, displayText }
|
|
172
188
|
// Format for the same reason selectOption does: the input shows `formatter`'s output
|
|
173
189
|
// everywhere else (initial render, blur), so assigning the raw displayText here would
|
|
174
190
|
// make a value that arrived as a bare id render differently from the identical value
|
|
@@ -184,8 +200,9 @@ watch(
|
|
|
184
200
|
)
|
|
185
201
|
|
|
186
202
|
const handleNavigate = () => {
|
|
187
|
-
|
|
188
|
-
|
|
203
|
+
const id = linkId(modelValue.value)
|
|
204
|
+
if (navigator && doctype && id !== undefined) {
|
|
205
|
+
navigator.navigate(doctype, id)
|
|
189
206
|
} else if (navigator && !doctype) {
|
|
190
207
|
console.warn(
|
|
191
208
|
`[AFormLink] Navigation requested but \`doctype\` prop is missing. ` +
|
package/src/types/index.ts
CHANGED
|
@@ -228,6 +228,19 @@ export interface AFormLinkValue {
|
|
|
228
228
|
[extra: string]: any
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
+
/**
|
|
232
|
+
* What AFormLink accepts as its `v-model`.
|
|
233
|
+
*
|
|
234
|
+
* Wider than {@link AFormLinkValue} because a link is as often bound straight to its FK column as
|
|
235
|
+
* to a resolved reference: a record loaded from the DB carries the raw scalar, and a parent bound
|
|
236
|
+
* to that column coerces every update it receives back to a scalar. The component reads through
|
|
237
|
+
* `linkId`/`linkDisplayText`/`asLinkValue`, so all three shapes render and resolve identically.
|
|
238
|
+
*
|
|
239
|
+
* Emitting is narrower — AFormLink always writes back an {@link AFormLinkValue}.
|
|
240
|
+
* @public
|
|
241
|
+
*/
|
|
242
|
+
export type AFormLinkModelValue = AFormLinkValue | string | number
|
|
243
|
+
|
|
231
244
|
/**
|
|
232
245
|
* Navigation contract for AFormLink. Provide via `provide('aformLinkNavigator', ...)` in the app plugin.
|
|
233
246
|
* @public
|