@stonecrop/aform 0.13.8 → 0.13.9

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.
@@ -1 +1 @@
1
- @import"https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400..700;1,400..700&display=swap";.atable-cell{border-radius:0;box-sizing:border-box;outline:none;box-shadow:none;color:var(--sc-cell-text-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);border-spacing:0px;border-collapse:collapse;overflow:hidden;text-overflow:ellipsis;order:1;white-space:nowrap;max-width:40ch;border-top:1px solid var(--sc-row-border-color);margin:0 0 0 1px}.atable-cell a{color:var(--sc-cell-text-color);text-decoration:none}.atable-cell:focus,.atable-cell:focus-within{background-color:var(--sc-focus-cell-background);outline-width:var(--sc-atable-cell-border-width);outline-style:solid;outline-offset:calc(var(--sc-atable-cell-border-width) * -1);outline-color:var(--sc-focus-cell-outline);box-shadow:none;overflow:hidden;text-wrap:nowrap;box-sizing:border-box}.cell-modified{font-weight:700;font-style:italic}.cell-modified-highlight{background-color:var(--sc-cell-changed-color)}.row-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch;display:flex;align-items:center;justify-content:center}.expandable-row{border-top:1px solid var(--sc-row-border-color);height:var(--sc-atable-row-height)}.expandable-row>td:first-child{border-left:4px solid var(--sc-row-border-color)}.expanded-row{border-left:2px solid var(--sc-row-border-color)}.expandable-row:last-child{border-bottom:1px solid var(--sc-row-border-color)}.expanded-row-content{border-top:1px solid var(--sc-row-border-color);padding:1.5rem}.expandable-row.changed-row-gradient[data-v-a42297c7]:has(td.cell-modified){--cell-color-start: color-mix(in srgb, var(--sc-cell-changed-color), #fff 20%);--cell-color-end: color-mix(in srgb, var(--sc-cell-changed-color), #fff 60%);background:linear-gradient(90deg,var(--cell-color-start),var(--cell-color-end))}.aganttcell[data-v-c3173189]{background-color:#f9f9f9;width:100%;padding:0;height:100%}.gantt-container[data-v-c3173189]{position:relative;height:100%;background-color:#f0f0f0;border-radius:4px;overflow:visible}.gantt-bar[data-v-c3173189]{position:absolute;border-radius:4px;display:flex;align-items:center;justify-content:space-between;cursor:grab;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);transition:left .1s ease-out,width .1s ease-out;height:80%;top:50%;z-index:0;transform:translateY(-50%)}.gantt-bar[data-v-c3173189]:active{cursor:grabbing}.gantt-bar.is-dragging[data-v-c3173189]{z-index:10}.gantt-label[data-v-c3173189]{flex:1;text-align:center;font-size:12px;color:#aaa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px;-webkit-user-select:none;user-select:none}.resize-handle[data-v-c3173189]{position:relative;width:12px;height:100%;cursor:ew-resize;display:flex;align-items:center;justify-content:center;z-index:0;background:#00000040}.left-resize-handle[data-v-c3173189]{border-right:1px solid rgba(0,0,0,.5)}.right-resize-handle[data-v-c3173189]{border-left:1px solid rgba(0,0,0,.5)}.handle-grip[data-v-c3173189]{width:4px;height:12px;border-radius:2px;background:#000c}.resize-handle[data-v-c3173189]:hover{background-color:#ffffff80}.vertical-indicator[data-v-c3173189]{position:absolute;width:2px;opacity:0;pointer-events:none;transition:opacity .2s ease;top:-100vh;height:100vh;z-index:5;background-color:var(--v1b78cb3b)}.left-indicator[data-v-c3173189]{left:50%;transform:translate(-50%)}.right-indicator[data-v-c3173189]{right:50%;transform:translate(50%)}.resize-handle.is-dragging .vertical-indicator[data-v-c3173189]{opacity:.7}.gantt-container[data-v-c3173189]:after{content:"";position:absolute;inset:0;background-size:calc(100% / var(--v0a4cd982)) 100%;background-image:linear-gradient(to right,rgba(0,0,0,.1) 1px,transparent 1px);pointer-events:none;z-index:1}.connection-handle[data-v-c3173189]{position:absolute;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:0;transition:opacity .2s ease;cursor:crosshair;z-index:2;display:flex;align-items:center;justify-content:center}.connection-handle.visible[data-v-c3173189]{opacity:1}.left-connection-handle[data-v-c3173189]{left:-16px}.right-connection-handle[data-v-c3173189]{right:-16px}.connection-dot[data-v-c3173189]{width:8px;height:8px;border-radius:50%;background-color:#2196f3;border:2px solid white;box-shadow:0 1px 3px #0000004d}.connection-handle:hover .connection-dot[data-v-c3173189]{background-color:#1976d2;transform:scale(1.2)}.connection-handle.is-dragging[data-v-c3173189]{opacity:1!important}.connection-handle.is-dragging .connection-dot[data-v-c3173189]{background-color:#1976d2;transform:scale(1.3);box-shadow:0 2px 8px #2196f366}.atable-row-actions{width:2rem;min-width:2rem;padding:0 .25rem;vertical-align:middle;white-space:nowrap;border-top:1px solid var(--sc-row-border-color);background:#fff;-webkit-user-select:none;user-select:none;position:relative}.atable-row-actions.dropdown-active{z-index:101}.row-actions-icons{display:flex;gap:.25rem;align-items:center;justify-content:center}.row-action-btn{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:.125rem;border:none;background:transparent;cursor:pointer;border-radius:.25rem;transition:background-color .15s ease}.row-action-btn:hover{background-color:var(--sc-gray-10, #e5e5e5)}.row-action-btn:focus{outline:2px solid var(--sc-focus-cell-outline, #3b82f6);outline-offset:1px}.row-action-btn .action-icon{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem}.row-action-btn .action-icon :deep(svg){width:100%;height:100%}.row-actions-dropdown{position:relative;display:inline-block}.row-actions-dropdown:has(button:focus){outline:2px solid var(--sc-focus-cell-outline);outline-offset:-2px}.row-actions-toggle{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:none;background:transparent;cursor:pointer;border-radius:.25rem;font-size:1rem;font-weight:700;transition:background-color .15s ease}.row-actions-toggle:hover{background-color:var(--sc-gray-10, #e5e5e5)}.dropdown-icon{line-height:1}.row-actions-menu{position:fixed;z-index:100;min-width:10rem;padding:.25rem 0;background:#fff;border:1px solid var(--sc-row-border-color);border-left:4px solid var(--sc-row-border-color);border-radius:0}.row-actions-menu.menu-flipped{box-shadow:0 -4px 6px -1px #0000001a,0 -2px 4px -2px #0000001a}.row-action-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;border:none;background:transparent;cursor:pointer;text-align:left;font-size:.875rem;transition:background-color .15s ease}.row-action-menu-item:hover{background-color:var(--sc-gray-10, #f5f5f5)}.row-action-menu-item:focus{outline:none;background-color:var(--sc-gray-10, #f5f5f5)}.row-action-menu-item .action-icon{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem;flex-shrink:0}.row-action-menu-item .action-icon :deep(svg){width:100%;height:100%}.row-action-menu-item .action-label{flex:1}.atable-row{background-color:#fff}.atable-row:last-child>td{border-bottom:1px solid var(--sc-row-border-color)}.atable-row>td:first-child{border-left:4px solid var(--sc-row-border-color)}.atable-row>td:last-child{border-right:1px solid var(--sc-row-border-color)}.list-index{color:var(--sc-header-text-color);font-weight:700;padding-left:var(--sc-atable-row-padding);padding-right:.5em;text-align:left;-webkit-user-select:none;user-select:none;border-top:1px solid var(--sc-row-border-color);text-overflow:ellipsis;overflow:hidden;box-sizing:border-box;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.tree-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch;box-sizing:border-box;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.atable-row:has(td.cell-modified)>td.sticky-column,.atable-row:has(td.cell-modified)>th.sticky-column,.atable-row:has(td.cell-modified)>td.sticky-index,.atable-row:has(td.cell-modified)>th.sticky-index{background:var(--sc-cell-changed-color)}.atable-row.changed-row-gradient[data-v-e7ca13d1]:has(td.cell-modified){--cell-color-start: color-mix(in srgb, var(--sc-cell-changed-color), #fff 20%);--cell-color-end: color-mix(in srgb, var(--sc-cell-changed-color), #fff 60%);background:linear-gradient(90deg,var(--cell-color-start),var(--cell-color-end))}.gantt-connection-overlay[data-v-d5929c98]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:15}.connection-path[data-v-d5929c98]{transition:stroke-width .2s ease;pointer-events:auto;cursor:pointer;stroke-dasharray:5px;stroke:var(--sc-cell-text-color)}#arrowhead-marker polygon[data-v-d5929c98]{fill:var(--sc-cell-text-color)}.animated-path[data-v-d5929c98]{animation:animated-dash-d5929c98 infinite 1.5s linear}.connection-path[data-v-d5929c98]:hover{stroke-width:3px}.connection-hitbox[data-v-d5929c98]{pointer-events:auto;cursor:pointer}@keyframes animated-dash-d5929c98{0%{stroke-dashoffset:0px}to{stroke-dashoffset:-10px}}.column-filter[data-v-e0efa4a9]{display:flex;align-items:center;gap:.25rem;width:100%}.filter-input[data-v-e0efa4a9],.filter-select[data-v-e0efa4a9]{background-color:var(--sc-form-background)!important;padding:.15rem .2rem;border:1px solid var(--sc-form-border);border-radius:3px;font-size:.875rem;color:var(--sc-text-color);width:100%;box-sizing:border-box}.filter-input[data-v-e0efa4a9]:focus,.filter-select[data-v-e0efa4a9]:focus{outline:none;border-color:var(--sc-input-active-border-color)}.checkbox-filter[data-v-e0efa4a9]{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:var(--sc-text-color);cursor:pointer}.filter-checkbox[data-v-e0efa4a9]{margin:0}.date-range-filter[data-v-e0efa4a9]{display:flex;gap:.25rem;align-items:center;width:100%}.date-range-filter .filter-input[data-v-e0efa4a9]{flex:1;min-width:0}.date-separator[data-v-e0efa4a9]{color:var(--sc-gray-50);font-weight:500;padding:0 .25rem;flex-shrink:0}.clear-btn[data-v-e0efa4a9]{background:var(--sc-gray-10, #f0f0f0);border:1px solid var(--sc-form-border);border-radius:3px;color:var(--sc-gray-70);cursor:pointer;font-size:1rem;padding:.15rem .4rem;line-height:1;flex-shrink:0}.atable-header-row th{padding-left:.5ch!important;font-weight:700;min-width:3ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);box-sizing:border-box;color:var(--sc-header-text-color);position:relative}#header-index{padding-left:var(--sc-atable-row-padding);box-sizing:border-box;border-top:none}.tree-index{padding-right:0}th{order:1}.list-expansion-index{width:2ch;margin-left:5px}.cursor-pointer{cursor:pointer}.atable-filters-row th{padding:.25rem .5ch;vertical-align:top}.row-actions-header{width:2rem;min-width:2rem;padding:0 .25rem}:root{--sc-primary-color: #0098c9;--sc-primary-text-color: #ffffff;--sc-brand-color: #202a44;--sc-gray-5: #f2f2f2;--sc-gray-10: #e6e6e6;--sc-gray-20: #cccccc;--sc-gray-50: #808080;--sc-gray-60: #666666;--sc-gray-80: #333333;--sc-brand-danger: #e63c28;--sc-brand-success: #155724;--sc-brand-warning: #b99d3e;--sc-active-cell-background: #ffffff;--sc-active-cell-outline: #e6a92d;--sc-cell-border-color: #ffffff;--sc-cell-text-color: #3a3c41;--sc-focus-cell-background: #ffffff;--sc-focus-cell-outline: #000000;--sc-header-border-color: #ffffff;--sc-header-text-color: var(--sc-gray-20);--sc-row-border-color: var(--sc-gray-20);--sc-row-color-zebra-dark: #dddddd;--sc-row-color-zebra-light: #eeeeee;--sc-row-number-background-color: #ffffff;--sc-input-active-border-color: #000000;--sc-input-active-label-color: #000000;--sc-input-border-color: var(--sc-gray-20);--sc-input-label-color: var(--sc-gray-60);--sc-required-border: #e63c28;--sc-cell-changed-color: #d8edff;--sc-form-border: var(--sc-gray-5);--sc-form-background: #ffffff;--sc-input-field-background: #ffffff;--sc-input-field-disabled-background: var(--sc-gray-5);--sc-font-size: 10px;--sc-font-family: Arimo, Arial, sans-serif;--sc-table-font-size: 16px;--sc-atable-font-family: "Arimo", sans-serif;--sc-atable-row-padding: .125rem;--sc-atable-row-height: 1.5em;--sc-atable-cell-border-width: 2px;--sc-table-loading-color: 204, 204, 204;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.amodal{position:absolute;background-color:var(--sc-row-color-zebra-dark);z-index:200}.atable-container{position:relative}.sticky-index{position:sticky;left:0;z-index:100;order:0}.sticky-column,th.sticky-column,td.sticky-column,th.sticky-index,td.sticky-index{position:sticky;z-index:100;order:0;background:#fff}.sticky-column-edge,.atable th.sticky-column-edge{border-right:1px solid var(--sc-row-border-color)}[data-v-402a86ad]:root{--sc-primary-color: #0098c9;--sc-primary-text-color: #ffffff;--sc-brand-color: #202a44;--sc-gray-5: #f2f2f2;--sc-gray-10: #e6e6e6;--sc-gray-20: #cccccc;--sc-gray-50: #808080;--sc-gray-60: #666666;--sc-gray-80: #333333;--sc-brand-danger: #e63c28;--sc-brand-success: #155724;--sc-brand-warning: #b99d3e;--sc-active-cell-background: #ffffff;--sc-active-cell-outline: #e6a92d;--sc-cell-border-color: #ffffff;--sc-cell-text-color: #3a3c41;--sc-focus-cell-background: #ffffff;--sc-focus-cell-outline: #000000;--sc-header-border-color: #ffffff;--sc-header-text-color: var(--sc-gray-20);--sc-row-border-color: var(--sc-gray-20);--sc-row-color-zebra-dark: #dddddd;--sc-row-color-zebra-light: #eeeeee;--sc-row-number-background-color: #ffffff;--sc-input-active-border-color: #000000;--sc-input-active-label-color: #000000;--sc-input-border-color: var(--sc-gray-20);--sc-input-label-color: var(--sc-gray-60);--sc-required-border: #e63c28;--sc-cell-changed-color: #d8edff;--sc-form-border: var(--sc-gray-5);--sc-form-background: #ffffff;--sc-input-field-background: #ffffff;--sc-input-field-disabled-background: var(--sc-gray-5);--sc-font-size: 10px;--sc-font-family: Arimo, Arial, sans-serif;--sc-table-font-size: 16px;--sc-atable-font-family: "Arimo", sans-serif;--sc-atable-row-padding: .125rem;--sc-atable-row-height: 1.5em;--sc-atable-cell-border-width: 2px;--sc-table-loading-color: 204, 204, 204;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.atable[data-v-402a86ad]{position:relative;font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);border-collapse:collapse;box-sizing:border-box;table-layout:auto;width:auto;overflow:clip;height:1px}.atable th[data-v-402a86ad]{border-width:0px;border-style:solid;border-radius:0;padding-left:.5ch;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);color:var(--sc-gray-60);height:var(--sc-atable-row-height);font-weight:300;letter-spacing:.05rem;order:1;box-sizing:border-box}.atable th[data-v-402a86ad]:focus{outline:none}.atable[data-v-402a86ad]:tbody{overflow:hidden;position:relative}.atable[data-v-402a86ad]:tbody:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-color:transparent;z-index:100}.aloading[data-v-a930a25b]{width:100%;border-top:1px solid var(--sc-row-border-color);border-bottom:1px solid var(--sc-row-border-color);display:flex;background-color:#fff;border-left:4px solid var(--sc-row-border-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);align-items:center;box-sizing:border-box;background:var(--sc-focus-cell-background);overflow:hidden;position:relative}.aloading-bar[data-v-a930a25b]{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:gradient-a930a25b infinite 2s;z-index:0}.aloading-header[data-v-a930a25b]{color:var(--sc-cell-text-color);font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);padding:0;margin:0;font-weight:400;z-index:1}.aloading-header[data-v-a930a25b]:after{content:"...";animation:ellipse-a930a25b 2s;animation-iteration-count:infinite}@keyframes gradient-a930a25b{0%{left:-100%}to{left:100%}}@keyframes ellipse-a930a25b{0%{content:""}20%{content:""}40%{content:"."}60%{content:".."}80%{content:"..."}}.aloading[data-v-e1165876]{width:100%;border-top:1px solid var(--sc-row-border-color);border-bottom:1px solid var(--sc-row-border-color);display:flex;background-color:#fff;border-left:4px solid var(--sc-row-border-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);align-items:center;box-sizing:border-box;background:var(--sc-focus-cell-background);overflow:hidden;position:relative}.aloading-bar[data-v-e1165876]{width:50%;height:3px;position:absolute;left:-100%;bottom:0;background:var(--sc-row-border-color);animation:bar-left-e1165876 infinite 2s;z-index:0}.aloading-header[data-v-e1165876]{color:var(--sc-cell-text-color);font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);padding:0;margin:0;font-weight:400;z-index:1}.aloading-header[data-v-e1165876]:after{content:"...";animation:ellipse-e1165876 2s;animation-iteration-count:infinite}@keyframes bar-left-e1165876{0%{left:-50%}to{left:100%}}@keyframes ellipse-e1165876{0%{content:""}20%{content:""}40%{content:"."}60%{content:".."}80%{content:"..."}}.aform_checkbox[data-v-cc185b72]{cursor:pointer;width:auto;margin-top:0;display:block}.aform_checkbox[data-v-cc185b72]:checked{accent-color:var(--sc-primary-color);border:1px solid black}.aform_checkbox-container[data-v-cc185b72]{width:100%;display:inline-block;text-align:left}.aform_checkbox-container input[data-v-cc185b72]{width:auto}.aform_checkbox-container:hover+.aform_field-label[data-v-cc185b72]{color:var(--sc-input-active-label-color)}.adatepicker[data-v-4b066fd6]{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-4b066fd6]{height:1.15rem;text-align:center;vertical-align:middle}.adatepicker td[data-v-4b066fd6]{border:2px solid transparent;outline:2px solid transparent;min-width:3ch;max-width:3ch;cursor:pointer}.adatepicker td.date-cell[data-v-4b066fd6]:hover{background:var(--sc-gray-10)}.adatepicker td[data-v-4b066fd6]:focus,.adatepicker td[data-v-4b066fd6]:focus-within{box-shadow:none;min-height:1.15em;max-height:1.15em;overflow:hidden}.adatepicker .selectedDate[data-v-4b066fd6],.adatepicker .startDate[data-v-4b066fd6],.adatepicker .endDate[data-v-4b066fd6]{background:var(--sc-gray-20);font-weight:bolder}.adatepicker .startDate[data-v-4b066fd6]{border-left:1px solid var(--sc-gray-50);background:var(--sc-gray-20)!important}.adatepicker .endDate[data-v-4b066fd6]{border-right:1px solid var(--sc-gray-50);background:var(--sc-gray-20)!important}.adatepicker .withinRange[data-v-4b066fd6]{background:var(--sc-gray-5)}.adatepicker .todaysDate[data-v-4b066fd6]{font-weight:bolder;color:#000}.days-header>td[data-v-4b066fd6]{font-weight:700}.prev-date[data-v-4b066fd6]{color:var(--sc-gray-20)}.adatepicker .date-input[data-v-4b066fd6]{display:flex;width:100%;gap:5px;align-items:center}.adatepicker .date-input>input[data-v-4b066fd6]{width:50%;padding:2px}.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-aca398d0]{overflow:auto}div[data-v-aca398d0]{min-width:40ch;width:100%;box-sizing:border-box;border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input[data-v-aca398d0]{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-aca398d0],label[data-v-aca398d0]{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-aca398d0]{width:100%;color:red;font-size:85%;box-sizing:border-box}label[data-v-aca398d0]{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-aca398d0]:focus{border:1px solid var(--sc-input-active-border-color)}input:focus+label[data-v-aca398d0]{color:var(--sc-input-active-label-color)}.picker[data-v-aca398d0]{position:absolute;top:50px}.autocomplete[data-v-c823d475]{position:relative}.input-wrapper[data-v-c823d475]{border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input[data-v-c823d475]{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}input[data-v-c823d475]:focus{border:1px solid var(--sc-input-active-border-color);border-radius:.25rem .25rem 0 0;border-bottom:none}label[data-v-c823d475]{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-c823d475]{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-c823d475]{list-style:none;text-align:left;padding:4px 6px;cursor:pointer;border-bottom:.5px solid lightgray}.autocomplete-result.is-active[data-v-c823d475],.autocomplete-result[data-v-c823d475]:hover{background-color:var(--sc-row-color-zebra-light);color:var(--sc-input-active-border-color)}.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-810e8eb5]{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-810e8eb5]{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-810e8eb5]:focus{border:1px solid var(--sc-input-active-border-color)}.adate-input:focus+label[data-v-810e8eb5]{color:var(--sc-input-active-label-color)}p[data-v-810e8eb5],label[data-v-810e8eb5]{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-810e8eb5]{width:100%;color:red;font-size:85%}label[data-v-810e8eb5]{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-810e8eb5]{position:absolute;top:50px;left:0;z-index:1000}.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}.aform_form-element{padding:0;margin:0;position:relative;box-sizing:border-box;flex-grow:1;min-width:20ch;margin-bottom:1rem}.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)}.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{background:var(--sc-input-field-disabled-background)}.aform_input-field: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{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:block;display:inline-block;display:none;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-70086a8f]{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-70086a8f]{flex-direction:column}}.aform-nested-section[data-v-70086a8f]{width:100%;padding:.5rem 0}.aform-nested-label[data-v-70086a8f]{font-size:.9rem;font-weight:600;margin:0 0 .5rem;color:var(--sc-input-label-color, #666)}.aform-nested-section .aform[data-v-70086a8f]{border-left-width:2px;margin-left:.5rem}fieldset[data-v-3cefeba6]{max-width:100%;width:100%;margin-right:2ch;border:1px solid transparent;border-bottom:1px solid var(--sc-gray-50)}legend[data-v-3cefeba6]{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-3cefeba6]{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)}.aform_form-link-wrapper[data-v-4b68886b]{position:relative}.input-group[data-v-4b68886b]{display:flex;align-items:stretch}.aform_input-field[data-v-4b68886b]{flex:1;min-width:0}.aform_form-btn[data-v-4b68886b]{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-4b68886b]:focus,.input-group:focus-within .aform_form-btn[data-v-4b68886b]{outline-color:var(--sc-input-active-border-color)}.autocomplete-results[data-v-4b68886b]{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-4b68886b]{padding:4px 6px;cursor:pointer;border-bottom:.5px solid lightgray}.autocomplete-result.is-active[data-v-4b68886b],.autocomplete-result[data-v-4b68886b]:hover{background-color:var(--sc-row-color-zebra-light);color:var(--sc-input-active-border-color)}.login-container[data-v-d9ffd0a7]{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-d9ffd0a7]{width:100%;margin-left:auto;margin-top:.5rem;margin-right:auto;display:flex;flex-direction:column;justify-content:center}.account-header[data-v-d9ffd0a7]{display:flex;flex-direction:column;text-align:center;margin-top:.5rem}#account-title[data-v-d9ffd0a7]{font-size:1.5rem;line-height:2rem;font-weight:600;letter-spacing:-.025em;margin:0}#account-subtitle[data-v-d9ffd0a7]{font-size:.875rem;line-height:1.25rem;margin:1rem}.login-form-container[data-v-d9ffd0a7]{display:grid;gap:.5rem}.login-form-element[data-v-d9ffd0a7]{display:grid;margin:.5rem 0;position:relative}.login-field[data-v-d9ffd0a7]{padding:.5rem .25rem .25rem .5rem;outline:1px solid transparent;border:1px solid var(--sc-input-border-color);border-radius:.25rem}.login-field[data-v-d9ffd0a7]:focus{border:1px solid black}.btn[data-v-d9ffd0a7]{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-d9ffd0a7]:hover{background-color:var(--sc-btn-hover)}.btn[data-v-d9ffd0a7]:disabled{background-color:var(--sc-input-field-disabled-background)}.disabled[data-v-d9ffd0a7]{opacity:.5}.loading-icon[data-v-d9ffd0a7]{animation:spin-d9ffd0a7 1s linear infinite forwards;display:inline-block;margin-right:.2rem;line-height:0;font-size:1rem;position:relative;top:.2rem}@keyframes spin-d9ffd0a7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
1
+ @import"https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400..700;1,400..700&display=swap";.atable-cell{border-radius:0;box-sizing:border-box;outline:none;box-shadow:none;color:var(--sc-cell-text-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);border-spacing:0px;border-collapse:collapse;overflow:hidden;text-overflow:ellipsis;order:1;white-space:nowrap;max-width:40ch;border-top:1px solid var(--sc-row-border-color);margin:0 0 0 1px}.atable-cell a{color:var(--sc-cell-text-color);text-decoration:none}.atable-cell:focus,.atable-cell:focus-within{background-color:var(--sc-focus-cell-background);outline-width:var(--sc-atable-cell-border-width);outline-style:solid;outline-offset:calc(var(--sc-atable-cell-border-width) * -1);outline-color:var(--sc-focus-cell-outline);box-shadow:none;overflow:hidden;text-wrap:nowrap;box-sizing:border-box}.cell-modified{font-weight:700;font-style:italic}.cell-modified-highlight{background-color:var(--sc-cell-changed-color)}.row-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch;display:flex;align-items:center;justify-content:center}.expandable-row{border-top:1px solid var(--sc-row-border-color);height:var(--sc-atable-row-height)}.expandable-row>td:first-child{border-left:4px solid var(--sc-row-border-color)}.expanded-row{border-left:2px solid var(--sc-row-border-color)}.expandable-row:last-child{border-bottom:1px solid var(--sc-row-border-color)}.expanded-row-content{border-top:1px solid var(--sc-row-border-color);padding:1.5rem}.expandable-row.changed-row-gradient[data-v-a42297c7]:has(td.cell-modified){--cell-color-start: color-mix(in srgb, var(--sc-cell-changed-color), #fff 20%);--cell-color-end: color-mix(in srgb, var(--sc-cell-changed-color), #fff 60%);background:linear-gradient(90deg,var(--cell-color-start),var(--cell-color-end))}.aganttcell[data-v-c3173189]{background-color:#f9f9f9;width:100%;padding:0;height:100%}.gantt-container[data-v-c3173189]{position:relative;height:100%;background-color:#f0f0f0;border-radius:4px;overflow:visible}.gantt-bar[data-v-c3173189]{position:absolute;border-radius:4px;display:flex;align-items:center;justify-content:space-between;cursor:grab;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);transition:left .1s ease-out,width .1s ease-out;height:80%;top:50%;z-index:0;transform:translateY(-50%)}.gantt-bar[data-v-c3173189]:active{cursor:grabbing}.gantt-bar.is-dragging[data-v-c3173189]{z-index:10}.gantt-label[data-v-c3173189]{flex:1;text-align:center;font-size:12px;color:#aaa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px;-webkit-user-select:none;user-select:none}.resize-handle[data-v-c3173189]{position:relative;width:12px;height:100%;cursor:ew-resize;display:flex;align-items:center;justify-content:center;z-index:0;background:#00000040}.left-resize-handle[data-v-c3173189]{border-right:1px solid rgba(0,0,0,.5)}.right-resize-handle[data-v-c3173189]{border-left:1px solid rgba(0,0,0,.5)}.handle-grip[data-v-c3173189]{width:4px;height:12px;border-radius:2px;background:#000c}.resize-handle[data-v-c3173189]:hover{background-color:#ffffff80}.vertical-indicator[data-v-c3173189]{position:absolute;width:2px;opacity:0;pointer-events:none;transition:opacity .2s ease;top:-100vh;height:100vh;z-index:5;background-color:var(--v1b78cb3b)}.left-indicator[data-v-c3173189]{left:50%;transform:translate(-50%)}.right-indicator[data-v-c3173189]{right:50%;transform:translate(50%)}.resize-handle.is-dragging .vertical-indicator[data-v-c3173189]{opacity:.7}.gantt-container[data-v-c3173189]:after{content:"";position:absolute;inset:0;background-size:calc(100% / var(--v0a4cd982)) 100%;background-image:linear-gradient(to right,rgba(0,0,0,.1) 1px,transparent 1px);pointer-events:none;z-index:1}.connection-handle[data-v-c3173189]{position:absolute;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:0;transition:opacity .2s ease;cursor:crosshair;z-index:2;display:flex;align-items:center;justify-content:center}.connection-handle.visible[data-v-c3173189]{opacity:1}.left-connection-handle[data-v-c3173189]{left:-16px}.right-connection-handle[data-v-c3173189]{right:-16px}.connection-dot[data-v-c3173189]{width:8px;height:8px;border-radius:50%;background-color:#2196f3;border:2px solid white;box-shadow:0 1px 3px #0000004d}.connection-handle:hover .connection-dot[data-v-c3173189]{background-color:#1976d2;transform:scale(1.2)}.connection-handle.is-dragging[data-v-c3173189]{opacity:1!important}.connection-handle.is-dragging .connection-dot[data-v-c3173189]{background-color:#1976d2;transform:scale(1.3);box-shadow:0 2px 8px #2196f366}.atable-row-actions{width:2rem;min-width:2rem;padding:0 .25rem;vertical-align:middle;white-space:nowrap;border-top:1px solid var(--sc-row-border-color);background:#fff;-webkit-user-select:none;user-select:none;position:relative}.atable-row-actions.dropdown-active{z-index:101}.row-actions-icons{display:flex;gap:.25rem;align-items:center;justify-content:center}.row-action-btn{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:.125rem;border:none;background:transparent;cursor:pointer;border-radius:.25rem;transition:background-color .15s ease}.row-action-btn:hover{background-color:var(--sc-gray-10, #e5e5e5)}.row-action-btn:focus{outline:2px solid var(--sc-focus-cell-outline, #3b82f6);outline-offset:1px}.row-action-btn .action-icon{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem}.row-action-btn .action-icon :deep(svg){width:100%;height:100%}.row-actions-dropdown{position:relative;display:inline-block}.row-actions-dropdown:has(button:focus){outline:2px solid var(--sc-focus-cell-outline);outline-offset:-2px}.row-actions-toggle{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:none;background:transparent;cursor:pointer;border-radius:.25rem;font-size:1rem;font-weight:700;transition:background-color .15s ease}.row-actions-toggle:hover{background-color:var(--sc-gray-10, #e5e5e5)}.dropdown-icon{line-height:1}.row-actions-menu{position:fixed;z-index:100;min-width:10rem;padding:.25rem 0;background:#fff;border:1px solid var(--sc-row-border-color);border-left:4px solid var(--sc-row-border-color);border-radius:0}.row-actions-menu.menu-flipped{box-shadow:0 -4px 6px -1px #0000001a,0 -2px 4px -2px #0000001a}.row-action-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;border:none;background:transparent;cursor:pointer;text-align:left;font-size:.875rem;transition:background-color .15s ease}.row-action-menu-item:hover{background-color:var(--sc-gray-10, #f5f5f5)}.row-action-menu-item:focus{outline:none;background-color:var(--sc-gray-10, #f5f5f5)}.row-action-menu-item .action-icon{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem;flex-shrink:0}.row-action-menu-item .action-icon :deep(svg){width:100%;height:100%}.row-action-menu-item .action-label{flex:1}.atable-row{background-color:#fff}.atable-row:last-child>td{border-bottom:1px solid var(--sc-row-border-color)}.atable-row>td:first-child{border-left:4px solid var(--sc-row-border-color)}.atable-row>td:last-child{border-right:1px solid var(--sc-row-border-color)}.list-index{color:var(--sc-header-text-color);font-weight:700;padding-left:var(--sc-atable-row-padding);padding-right:.5em;text-align:left;-webkit-user-select:none;user-select:none;border-top:1px solid var(--sc-row-border-color);text-overflow:ellipsis;overflow:hidden;box-sizing:border-box;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.tree-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch;box-sizing:border-box;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.atable-row:has(td.cell-modified)>td.sticky-column,.atable-row:has(td.cell-modified)>th.sticky-column,.atable-row:has(td.cell-modified)>td.sticky-index,.atable-row:has(td.cell-modified)>th.sticky-index{background:var(--sc-cell-changed-color)}.atable-row.changed-row-gradient[data-v-e7ca13d1]:has(td.cell-modified){--cell-color-start: color-mix(in srgb, var(--sc-cell-changed-color), #fff 20%);--cell-color-end: color-mix(in srgb, var(--sc-cell-changed-color), #fff 60%);background:linear-gradient(90deg,var(--cell-color-start),var(--cell-color-end))}.gantt-connection-overlay[data-v-d5929c98]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:15}.connection-path[data-v-d5929c98]{transition:stroke-width .2s ease;pointer-events:auto;cursor:pointer;stroke-dasharray:5px;stroke:var(--sc-cell-text-color)}#arrowhead-marker polygon[data-v-d5929c98]{fill:var(--sc-cell-text-color)}.animated-path[data-v-d5929c98]{animation:animated-dash-d5929c98 infinite 1.5s linear}.connection-path[data-v-d5929c98]:hover{stroke-width:3px}.connection-hitbox[data-v-d5929c98]{pointer-events:auto;cursor:pointer}@keyframes animated-dash-d5929c98{0%{stroke-dashoffset:0px}to{stroke-dashoffset:-10px}}.column-filter[data-v-e0efa4a9]{display:flex;align-items:center;gap:.25rem;width:100%}.filter-input[data-v-e0efa4a9],.filter-select[data-v-e0efa4a9]{background-color:var(--sc-form-background)!important;padding:.15rem .2rem;border:1px solid var(--sc-form-border);border-radius:3px;font-size:.875rem;color:var(--sc-text-color);width:100%;box-sizing:border-box}.filter-input[data-v-e0efa4a9]:focus,.filter-select[data-v-e0efa4a9]:focus{outline:none;border-color:var(--sc-input-active-border-color)}.checkbox-filter[data-v-e0efa4a9]{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:var(--sc-text-color);cursor:pointer}.filter-checkbox[data-v-e0efa4a9]{margin:0}.date-range-filter[data-v-e0efa4a9]{display:flex;gap:.25rem;align-items:center;width:100%}.date-range-filter .filter-input[data-v-e0efa4a9]{flex:1;min-width:0}.date-separator[data-v-e0efa4a9]{color:var(--sc-gray-50);font-weight:500;padding:0 .25rem;flex-shrink:0}.clear-btn[data-v-e0efa4a9]{background:var(--sc-gray-10, #f0f0f0);border:1px solid var(--sc-form-border);border-radius:3px;color:var(--sc-gray-70);cursor:pointer;font-size:1rem;padding:.15rem .4rem;line-height:1;flex-shrink:0}.atable-header-row th{padding-left:.5ch!important;font-weight:700;min-width:3ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);box-sizing:border-box;color:var(--sc-header-text-color);position:relative}#header-index{padding-left:var(--sc-atable-row-padding);box-sizing:border-box;border-top:none}.tree-index{padding-right:0}th{order:1}.list-expansion-index{width:2ch;margin-left:5px}.cursor-pointer{cursor:pointer}.atable-filters-row th{padding:.25rem .5ch;vertical-align:top}.row-actions-header{width:2rem;min-width:2rem;padding:0 .25rem}:root{--sc-primary-color: #0098c9;--sc-primary-text-color: #ffffff;--sc-brand-color: #202a44;--sc-gray-5: #f2f2f2;--sc-gray-10: #e6e6e6;--sc-gray-20: #cccccc;--sc-gray-50: #808080;--sc-gray-60: #666666;--sc-gray-80: #333333;--sc-brand-danger: #e63c28;--sc-brand-success: #155724;--sc-brand-warning: #b99d3e;--sc-active-cell-background: #ffffff;--sc-active-cell-outline: #e6a92d;--sc-cell-border-color: #ffffff;--sc-cell-text-color: #3a3c41;--sc-focus-cell-background: #ffffff;--sc-focus-cell-outline: #000000;--sc-header-border-color: #ffffff;--sc-header-text-color: var(--sc-gray-20);--sc-row-border-color: var(--sc-gray-20);--sc-row-color-zebra-dark: #dddddd;--sc-row-color-zebra-light: #eeeeee;--sc-row-number-background-color: #ffffff;--sc-input-active-border-color: #000000;--sc-input-active-label-color: #000000;--sc-input-border-color: var(--sc-gray-20);--sc-input-label-color: var(--sc-gray-60);--sc-required-border: #e63c28;--sc-cell-changed-color: #d8edff;--sc-form-border: var(--sc-gray-5);--sc-form-background: #ffffff;--sc-input-field-background: #ffffff;--sc-input-field-disabled-background: var(--sc-gray-5);--sc-font-size: 10px;--sc-font-family: Arimo, Arial, sans-serif;--sc-table-font-size: 16px;--sc-atable-font-family: "Arimo", sans-serif;--sc-atable-row-padding: .125rem;--sc-atable-row-height: 1.5em;--sc-atable-cell-border-width: 2px;--sc-table-loading-color: 204, 204, 204;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.amodal{position:absolute;background-color:var(--sc-row-color-zebra-dark);z-index:200}.atable-container{position:relative}.sticky-index{position:sticky;left:0;z-index:100;order:0}.sticky-column,th.sticky-column,td.sticky-column,th.sticky-index,td.sticky-index{position:sticky;z-index:100;order:0;background:#fff}.sticky-column-edge,.atable th.sticky-column-edge{border-right:1px solid var(--sc-row-border-color)}[data-v-402a86ad]:root{--sc-primary-color: #0098c9;--sc-primary-text-color: #ffffff;--sc-brand-color: #202a44;--sc-gray-5: #f2f2f2;--sc-gray-10: #e6e6e6;--sc-gray-20: #cccccc;--sc-gray-50: #808080;--sc-gray-60: #666666;--sc-gray-80: #333333;--sc-brand-danger: #e63c28;--sc-brand-success: #155724;--sc-brand-warning: #b99d3e;--sc-active-cell-background: #ffffff;--sc-active-cell-outline: #e6a92d;--sc-cell-border-color: #ffffff;--sc-cell-text-color: #3a3c41;--sc-focus-cell-background: #ffffff;--sc-focus-cell-outline: #000000;--sc-header-border-color: #ffffff;--sc-header-text-color: var(--sc-gray-20);--sc-row-border-color: var(--sc-gray-20);--sc-row-color-zebra-dark: #dddddd;--sc-row-color-zebra-light: #eeeeee;--sc-row-number-background-color: #ffffff;--sc-input-active-border-color: #000000;--sc-input-active-label-color: #000000;--sc-input-border-color: var(--sc-gray-20);--sc-input-label-color: var(--sc-gray-60);--sc-required-border: #e63c28;--sc-cell-changed-color: #d8edff;--sc-form-border: var(--sc-gray-5);--sc-form-background: #ffffff;--sc-input-field-background: #ffffff;--sc-input-field-disabled-background: var(--sc-gray-5);--sc-font-size: 10px;--sc-font-family: Arimo, Arial, sans-serif;--sc-table-font-size: 16px;--sc-atable-font-family: "Arimo", sans-serif;--sc-atable-row-padding: .125rem;--sc-atable-row-height: 1.5em;--sc-atable-cell-border-width: 2px;--sc-table-loading-color: 204, 204, 204;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.atable[data-v-402a86ad]{position:relative;font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);border-collapse:collapse;box-sizing:border-box;table-layout:auto;width:auto;overflow:clip;height:1px}.atable th[data-v-402a86ad]{border-width:0px;border-style:solid;border-radius:0;padding-left:.5ch;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);color:var(--sc-gray-60);height:var(--sc-atable-row-height);font-weight:300;letter-spacing:.05rem;order:1;box-sizing:border-box}.atable th[data-v-402a86ad]:focus{outline:none}.atable[data-v-402a86ad]:tbody{overflow:hidden;position:relative}.atable[data-v-402a86ad]:tbody:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-color:transparent;z-index:100}.aloading[data-v-a930a25b]{width:100%;border-top:1px solid var(--sc-row-border-color);border-bottom:1px solid var(--sc-row-border-color);display:flex;background-color:#fff;border-left:4px solid var(--sc-row-border-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);align-items:center;box-sizing:border-box;background:var(--sc-focus-cell-background);overflow:hidden;position:relative}.aloading-bar[data-v-a930a25b]{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:gradient-a930a25b infinite 2s;z-index:0}.aloading-header[data-v-a930a25b]{color:var(--sc-cell-text-color);font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);padding:0;margin:0;font-weight:400;z-index:1}.aloading-header[data-v-a930a25b]:after{content:"...";animation:ellipse-a930a25b 2s;animation-iteration-count:infinite}@keyframes gradient-a930a25b{0%{left:-100%}to{left:100%}}@keyframes ellipse-a930a25b{0%{content:""}20%{content:""}40%{content:"."}60%{content:".."}80%{content:"..."}}.aloading[data-v-e1165876]{width:100%;border-top:1px solid var(--sc-row-border-color);border-bottom:1px solid var(--sc-row-border-color);display:flex;background-color:#fff;border-left:4px solid var(--sc-row-border-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);align-items:center;box-sizing:border-box;background:var(--sc-focus-cell-background);overflow:hidden;position:relative}.aloading-bar[data-v-e1165876]{width:50%;height:3px;position:absolute;left:-100%;bottom:0;background:var(--sc-row-border-color);animation:bar-left-e1165876 infinite 2s;z-index:0}.aloading-header[data-v-e1165876]{color:var(--sc-cell-text-color);font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);padding:0;margin:0;font-weight:400;z-index:1}.aloading-header[data-v-e1165876]:after{content:"...";animation:ellipse-e1165876 2s;animation-iteration-count:infinite}@keyframes bar-left-e1165876{0%{left:-50%}to{left:100%}}@keyframes ellipse-e1165876{0%{content:""}20%{content:""}40%{content:"."}60%{content:".."}80%{content:"..."}}.aform_checkbox[data-v-cc185b72]{cursor:pointer;width:auto;margin-top:0;display:block}.aform_checkbox[data-v-cc185b72]:checked{accent-color:var(--sc-primary-color);border:1px solid black}.aform_checkbox-container[data-v-cc185b72]{width:100%;display:inline-block;text-align:left}.aform_checkbox-container input[data-v-cc185b72]{width:auto}.aform_checkbox-container:hover+.aform_field-label[data-v-cc185b72]{color:var(--sc-input-active-label-color)}.adatepicker[data-v-4b066fd6]{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-4b066fd6]{height:1.15rem;text-align:center;vertical-align:middle}.adatepicker td[data-v-4b066fd6]{border:2px solid transparent;outline:2px solid transparent;min-width:3ch;max-width:3ch;cursor:pointer}.adatepicker td.date-cell[data-v-4b066fd6]:hover{background:var(--sc-gray-10)}.adatepicker td[data-v-4b066fd6]:focus,.adatepicker td[data-v-4b066fd6]:focus-within{box-shadow:none;min-height:1.15em;max-height:1.15em;overflow:hidden}.adatepicker .selectedDate[data-v-4b066fd6],.adatepicker .startDate[data-v-4b066fd6],.adatepicker .endDate[data-v-4b066fd6]{background:var(--sc-gray-20);font-weight:bolder}.adatepicker .startDate[data-v-4b066fd6]{border-left:1px solid var(--sc-gray-50);background:var(--sc-gray-20)!important}.adatepicker .endDate[data-v-4b066fd6]{border-right:1px solid var(--sc-gray-50);background:var(--sc-gray-20)!important}.adatepicker .withinRange[data-v-4b066fd6]{background:var(--sc-gray-5)}.adatepicker .todaysDate[data-v-4b066fd6]{font-weight:bolder;color:#000}.days-header>td[data-v-4b066fd6]{font-weight:700}.prev-date[data-v-4b066fd6]{color:var(--sc-gray-20)}.adatepicker .date-input[data-v-4b066fd6]{display:flex;width:100%;gap:5px;align-items:center}.adatepicker .date-input>input[data-v-4b066fd6]{width:50%;padding:2px}.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-aca398d0]{overflow:auto}div[data-v-aca398d0]{min-width:40ch;width:100%;box-sizing:border-box;border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input[data-v-aca398d0]{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-aca398d0],label[data-v-aca398d0]{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-aca398d0]{width:100%;color:red;font-size:85%;box-sizing:border-box}label[data-v-aca398d0]{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-aca398d0]:focus{border:1px solid var(--sc-input-active-border-color)}input:focus+label[data-v-aca398d0]{color:var(--sc-input-active-label-color)}.picker[data-v-aca398d0]{position:absolute;top:50px}.autocomplete[data-v-c823d475]{position:relative}.input-wrapper[data-v-c823d475]{border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input[data-v-c823d475]{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}input[data-v-c823d475]:focus{border:1px solid var(--sc-input-active-border-color);border-radius:.25rem .25rem 0 0;border-bottom:none}label[data-v-c823d475]{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-c823d475]{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-c823d475]{list-style:none;text-align:left;padding:4px 6px;cursor:pointer;border-bottom:.5px solid lightgray}.autocomplete-result.is-active[data-v-c823d475],.autocomplete-result[data-v-c823d475]:hover{background-color:var(--sc-row-color-zebra-light);color:var(--sc-input-active-border-color)}.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-810e8eb5]{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-810e8eb5]{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-810e8eb5]:focus{border:1px solid var(--sc-input-active-border-color)}.adate-input:focus+label[data-v-810e8eb5]{color:var(--sc-input-active-label-color)}p[data-v-810e8eb5],label[data-v-810e8eb5]{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-810e8eb5]{width:100%;color:red;font-size:85%}label[data-v-810e8eb5]{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-810e8eb5]{position:absolute;top:50px;left:0;z-index:1000}.aform_form-element{padding:0;margin:0;position:relative;box-sizing:border-box;flex-grow:1;min-width:20ch;margin-bottom:1rem}.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)}.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{background:var(--sc-input-field-disabled-background)}.aform_input-field: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{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:block;display:inline-block;display:none;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-5396e11b]{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-5396e11b]{flex-direction:column}}.aform-nested-section[data-v-5396e11b]{width:100%;padding:.5rem 0}.aform-nested-label[data-v-5396e11b]{font-size:.9rem;font-weight:600;margin:0 0 .5rem;color:var(--sc-input-label-color, #666)}.aform-nested-section .aform[data-v-5396e11b]{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)}.aform_form-link-wrapper[data-v-4b68886b]{position:relative}.input-group[data-v-4b68886b]{display:flex;align-items:stretch}.aform_input-field[data-v-4b68886b]{flex:1;min-width:0}.aform_form-btn[data-v-4b68886b]{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-4b68886b]:focus,.input-group:focus-within .aform_form-btn[data-v-4b68886b]{outline-color:var(--sc-input-active-border-color)}.autocomplete-results[data-v-4b68886b]{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-4b68886b]{padding:4px 6px;cursor:pointer;border-bottom:.5px solid lightgray}.autocomplete-result.is-active[data-v-4b68886b],.autocomplete-result[data-v-4b68886b]:hover{background-color:var(--sc-row-color-zebra-light);color:var(--sc-input-active-border-color)}.login-container[data-v-d9ffd0a7]{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-d9ffd0a7]{width:100%;margin-left:auto;margin-top:.5rem;margin-right:auto;display:flex;flex-direction:column;justify-content:center}.account-header[data-v-d9ffd0a7]{display:flex;flex-direction:column;text-align:center;margin-top:.5rem}#account-title[data-v-d9ffd0a7]{font-size:1.5rem;line-height:2rem;font-weight:600;letter-spacing:-.025em;margin:0}#account-subtitle[data-v-d9ffd0a7]{font-size:.875rem;line-height:1.25rem;margin:1rem}.login-form-container[data-v-d9ffd0a7]{display:grid;gap:.5rem}.login-form-element[data-v-d9ffd0a7]{display:grid;margin:.5rem 0;position:relative}.login-field[data-v-d9ffd0a7]{padding:.5rem .25rem .25rem .5rem;outline:1px solid transparent;border:1px solid var(--sc-input-border-color);border-radius:.25rem}.login-field[data-v-d9ffd0a7]:focus{border:1px solid black}.btn[data-v-d9ffd0a7]{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-d9ffd0a7]:hover{background-color:var(--sc-btn-hover)}.btn[data-v-d9ffd0a7]:disabled{background-color:var(--sc-input-field-disabled-background)}.disabled[data-v-d9ffd0a7]{opacity:.5}.loading-icon[data-v-d9ffd0a7]{animation:spin-d9ffd0a7 1s linear infinite forwards;display:inline-block;margin-right:.2rem;line-height:0;font-size:1rem;position:relative;top:.2rem}@keyframes spin-d9ffd0a7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
@@ -1,10 +1,107 @@
1
- import type { TableColumn, TableConfig, TableRow } from '@stonecrop/atable';
2
- import type { ColumnSchema } from '@stonecrop/schema';
1
+ import type { ColumnSchema, FieldValidation, TableViewConfig, ValueField } from '@stonecrop/schema';
3
2
  /**
4
- * The rendering mode for AForm components
3
+ * Controls the level of user interaction for a field, container, or table.
4
+ * `'edit'` — interactive; `'read'` — non-interactive with form chrome;
5
+ * `'display'` — non-interactive plain-text rendering.
5
6
  * @public
6
7
  */
7
- export type FormMode = 'edit' | 'read' | 'display';
8
+ export type { InteractionMode } from '@stonecrop/schema';
9
+ /**
10
+ * A resolved scalar field. Derived from ValueField with `cardinality` omitted
11
+ * (consumed by resolveSchema) and an optional `doctype` added for unresolved Link fields.
12
+ * @public
13
+ */
14
+ export type ResolvedScalar = Omit<ValueField, 'cardinality'> & {
15
+ /** Doctype slug for unresolved Link fields — added by resolveSchema when AFormLink is available */
16
+ doctype?: string;
17
+ };
18
+ /**
19
+ * A resolved Link field with cardinality `one` or `atMostOne` — embedded as a nested form.
20
+ * @public
21
+ */
22
+ export interface ResolvedLink {
23
+ /** Discriminator */
24
+ kind: 'link';
25
+ /** Field identifier */
26
+ fieldname: string;
27
+ /** Component to render; defaults to `'AForm'` */
28
+ component: string;
29
+ /** Human-readable label */
30
+ label?: string;
31
+ /** Interaction mode */
32
+ mode?: import('@stonecrop/schema').InteractionMode;
33
+ /** Resolved child fields */
34
+ schema: ResolvedField[];
35
+ /** Preserved from the original ValueField */
36
+ required?: boolean;
37
+ /** Preserved from the original ValueField */
38
+ readOnly?: boolean;
39
+ /** Preserved from the original ValueField */
40
+ hidden?: boolean;
41
+ /** Preserved from the original ValueField */
42
+ default?: unknown;
43
+ /** Preserved from the original ValueField */
44
+ validation?: FieldValidation;
45
+ }
46
+ /**
47
+ * A resolved table — either from a Link with `noneOrMany`/`atLeastOne` cardinality,
48
+ * or from an inline TableField. ATable receives columns via `:schema` (ColumnSchema[])
49
+ * and row data via `:rows` from formData at render time.
50
+ * @public
51
+ */
52
+ export interface ResolvedTable {
53
+ /** Discriminator */
54
+ kind: 'table';
55
+ /** Field identifier */
56
+ fieldname: string;
57
+ /** Component to render; defaults to `'ATable'` */
58
+ component: string;
59
+ /** Human-readable label */
60
+ label?: string;
61
+ /** Interaction mode for all cells */
62
+ mode?: import('@stonecrop/schema').InteractionMode;
63
+ /** Column definitions — passed to ATable's `:schema` prop */
64
+ schema: ColumnSchema[];
65
+ /** View configuration — always present; defaults to `{ view: 'list' }` */
66
+ config: TableViewConfig;
67
+ /** Preserved from the original ValueField or TableField */
68
+ required?: boolean;
69
+ /** Preserved from the original ValueField or TableField */
70
+ readOnly?: boolean;
71
+ /** Preserved from the original ValueField or TableField */
72
+ hidden?: boolean;
73
+ /** Preserved from the original ValueField or TableField */
74
+ default?: unknown;
75
+ /** Preserved from the original ValueField or TableField */
76
+ validation?: FieldValidation;
77
+ }
78
+ /**
79
+ * A resolved fieldset — groups child fields inside an AFieldset component.
80
+ * @public
81
+ */
82
+ export interface ResolvedFieldset {
83
+ /** Discriminator */
84
+ kind: 'fieldset';
85
+ /** Field identifier */
86
+ fieldname: string;
87
+ /** Component to render; defaults to `'AFieldset'` */
88
+ component?: string;
89
+ /** Human-readable label for the legend */
90
+ label?: string;
91
+ /** Whether the fieldset can be collapsed */
92
+ collapsible?: boolean;
93
+ /** Interaction mode for all children */
94
+ mode?: import('@stonecrop/schema').InteractionMode;
95
+ /** Resolved child fields */
96
+ schema: ResolvedField[];
97
+ }
98
+ /**
99
+ * The discriminated union of all resolved field types — what AForm consumes
100
+ * after `resolveSchema()` has transformed the authoring `DoctypeField[]`.
101
+ * Narrowed by `kind`: `'field'` | `'link'` | `'table'` | `'fieldset'`.
102
+ * @public
103
+ */
104
+ export type ResolvedField = ResolvedScalar | ResolvedLink | ResolvedTable | ResolvedFieldset;
8
105
  /**
9
106
  * Defined props for AForm components
10
107
  * @public
@@ -14,7 +111,7 @@ export type ComponentProps = {
14
111
  * The schema object to pass to the component
15
112
  * @public
16
113
  */
17
- schema?: SchemaTypes;
114
+ schema?: ResolvedField;
18
115
  /**
19
116
  * The label to display in the component
20
117
  * @public
@@ -38,7 +135,7 @@ export type ComponentProps = {
38
135
  * The rendering mode for the component
39
136
  * @public
40
137
  */
41
- mode?: FormMode;
138
+ mode?: import('@stonecrop/schema').InteractionMode;
42
139
  /**
43
140
  * Set a unique identifier for elements inside the component
44
141
  * @public
@@ -57,142 +154,6 @@ export type ComponentProps = {
57
154
  [key: string]: any;
58
155
  };
59
156
  };
60
- /**
61
- * Basic field structure for AForm schemas
62
- * @public
63
- */
64
- export type BaseSchema = {
65
- /**
66
- * The fieldname for the schema field
67
- * @public
68
- */
69
- fieldname: string;
70
- /**
71
- * The component to render
72
- *
73
- * @remarks
74
- * This must be a string that represents the component to render. The registration of the component
75
- * should be done in the main application.
76
- *
77
- * @public
78
- */
79
- component?: string;
80
- /**
81
- * Per-field rendering mode override; takes precedence over the AForm-level `mode` prop
82
- * @public
83
- */
84
- mode?: FormMode;
85
- /**
86
- * Hide the field from the form UI while keeping it in the data model.
87
- * Consumed by AForm — not passed down to field components.
88
- * @public
89
- */
90
- hidden?: boolean;
91
- };
92
- /**
93
- * Schema structure for defining forms inside AForm
94
- * @public
95
- */
96
- export type FormSchema = BaseSchema & {
97
- /**
98
- * Align the field in the form
99
- * @beta
100
- */
101
- align?: CanvasTextAlign;
102
- /**
103
- * Indicate whether the field is editable
104
- * @beta
105
- */
106
- edit?: boolean;
107
- /**
108
- * The field type for the schema field
109
- * @public
110
- */
111
- fieldtype?: string;
112
- /**
113
- * The label to display in the form
114
- * @public
115
- */
116
- label?: string;
117
- /**
118
- * The unique identifier for the field
119
- * @beta
120
- */
121
- name?: string;
122
- /**
123
- * CSS width for the field's flex item in the AForm grid.
124
- * Applied as `flex-basis` and `width` on the rendered component element.
125
- * Use `"100%"` to make the field span the full form row.
126
- */
127
- width?: string;
128
- /**
129
- * The mask to apply to the field. Accepts either a plain mask string
130
- * (e.g. `"##/##/####"`) or a stringified arrow function that receives `locale`
131
- * and returns a mask string
132
- * (e.g. `"(locale) => locale === 'en-US' ? '(###) ###-####' : '####-######'"`).
133
- * @public
134
- */
135
- mask?: string;
136
- };
137
- /**
138
- * Schema structure for defining tables inside AForm.
139
- *
140
- * Two mutually exclusive forms:
141
- * - **Columns-based** (no `kind`): caller provides `columns` directly
142
- * - **Schema-delegated** (`kind: 'table'`): caller provides `schema`; ATable runs
143
- * `schemaToColumns` to derive columns at render time
144
- *
145
- * @public
146
- */
147
- export type TableSchema = BaseSchema & {
148
- /**
149
- * The configuration for the table
150
- * @public
151
- */
152
- config?: TableConfig;
153
- /**
154
- * The rows to display in the table
155
- * @public
156
- */
157
- rows?: TableRow[];
158
- } & ({
159
- /** Explicit column definitions; `schema` and `kind` must not be set */
160
- columns?: TableColumn[];
161
- kind?: never;
162
- schema?: never;
163
- } | {
164
- /** Marks this entry as schema-delegated; ATable derives columns from `schema` */
165
- kind: 'table';
166
- /** Child schema passed to ATable's `schema` prop */
167
- schema: ColumnSchema[];
168
- columns?: never;
169
- });
170
- /**
171
- * Schema structure for defining fieldsets inside AForm
172
- * @public
173
- */
174
- export type FieldsetSchema = BaseSchema & {
175
- /**
176
- * The label to display in the fieldset
177
- * @public
178
- */
179
- label?: string;
180
- /**
181
- * The schemas to be rendered inside the fieldset
182
- * @public
183
- */
184
- schema?: SchemaTypes[];
185
- /**
186
- * Indicate whether the fieldset is collapsible
187
- * @public
188
- */
189
- collapsible?: boolean;
190
- };
191
- /**
192
- * Superset of all schema types for AForm
193
- * @public
194
- */
195
- export type SchemaTypes = FormSchema | TableSchema | FieldsetSchema;
196
157
  /**
197
158
  * The value shape for AFormLink — a linked document reference with optional display text
198
159
  * @public
@@ -202,6 +163,7 @@ export interface AFormLinkValue {
202
163
  id: string | number;
203
164
  /** Display text shown in the input. Falls back to `String(id)` if omitted. */
204
165
  displayText?: string;
166
+ /** Additional properties passed through to the underlying input component */
205
167
  [extra: string]: any;
206
168
  }
207
169
  /**
@@ -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.13.8",
3
+ "version": "0.13.9",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "author": {
@@ -35,10 +35,10 @@
35
35
  "dependencies": {
36
36
  "@vueuse/core": "^14.2.1",
37
37
  "@vueuse/components": "^14.2.1",
38
- "@stonecrop/schema": "0.13.8",
39
- "@stonecrop/atable": "0.13.8",
40
- "@stonecrop/utilities": "0.13.8",
41
- "@stonecrop/themes": "0.13.8"
38
+ "@stonecrop/atable": "0.13.9",
39
+ "@stonecrop/themes": "0.13.9",
40
+ "@stonecrop/schema": "0.13.9",
41
+ "@stonecrop/utilities": "0.13.9"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "pinia": "^3.0.4",
@@ -3,9 +3,8 @@
3
3
  <template v-for="(componentObj, key) in schema" :key="key">
4
4
  <!-- Nested schema field (Doctype or any field with resolved schema) -->
5
5
  <div v-if="isNestedSection(componentObj)" class="aform-nested-section">
6
- <!-- Suppress h4 when collapsible is present — fieldset components render their own legend -->
7
- <!-- TODO: replace 'collapsible' presence check with a type discriminant on SchemaTypes once one exists -->
8
- <h4 v-if="componentObj.label && !('collapsible' in componentObj)" class="aform-nested-label">
6
+ <!-- Suppress h4 for fieldsets — they render their own legend inside AFieldset -->
7
+ <h4 v-if="componentObj.label && componentObj.kind !== 'fieldset'" class="aform-nested-label">
9
8
  {{ componentObj.label }}
10
9
  </h4>
11
10
  <component
@@ -14,7 +13,7 @@
14
13
  :mode="resolvedMode(componentObj)"
15
14
  :schema="componentObj.schema"
16
15
  :label="componentObj.label"
17
- :collapsible="componentObj.collapsible"
16
+ :collapsible="componentObj.kind === 'fieldset' ? componentObj.collapsible : undefined"
18
17
  @update:data="(val: any) => updateNestedData(componentObj.fieldname, val)" />
19
18
  </div>
20
19
 
@@ -36,17 +35,18 @@
36
35
  <script setup lang="ts">
37
36
  import { computed, watchEffect, watch, ref } from 'vue'
38
37
 
39
- import type { SchemaTypes, FieldsetSchema, FormMode } from '../types'
38
+ import type { ResolvedField, ResolvedLink, ResolvedFieldset } from '../types'
39
+ import type { InteractionMode } from '@stonecrop/schema'
40
40
 
41
41
  const emit = defineEmits(['update:schema', 'update:data'])
42
42
  const dataModel = defineModel<Record<string, any>>('data', { required: true })
43
- const { schema, mode = 'edit' } = defineProps<{ schema: SchemaTypes[]; mode?: FormMode }>()
43
+ const { schema, mode = 'edit' } = defineProps<{ schema: ResolvedField[]; mode?: InteractionMode }>()
44
44
 
45
- const isNestedSection = (componentObj: SchemaTypes): componentObj is FieldsetSchema =>
45
+ const isNestedSection = (componentObj: ResolvedField): componentObj is ResolvedLink | ResolvedFieldset =>
46
+ (componentObj.kind === 'link' || componentObj.kind === 'fieldset') &&
46
47
  'schema' in componentObj &&
47
48
  Array.isArray(componentObj.schema) &&
48
- componentObj.schema.length > 0 &&
49
- (!('kind' in componentObj) || componentObj.kind !== 'table')
49
+ componentObj.schema.length > 0
50
50
 
51
51
  // Reactive nested data refs for two-way binding with nested AForm instances
52
52
  const nestedData = ref<Record<string, any>>({})
@@ -78,7 +78,7 @@ const updateNestedData = (fieldname: string, val: any) => {
78
78
  }
79
79
  }
80
80
 
81
- const componentProps = (componentObj: SchemaTypes) => {
81
+ const componentProps = (componentObj: ResolvedField) => {
82
82
  const propsToPass: Record<string, any> = {}
83
83
  for (const [key, value] of Object.entries(componentObj)) {
84
84
  // 'mode' is excluded here because it is handled by resolvedMode()
@@ -88,21 +88,18 @@ const componentProps = (componentObj: SchemaTypes) => {
88
88
  }
89
89
  }
90
90
 
91
- // Tabular components (those with 'columns' or kind: 'table') need rows from formData
92
- // when no explicit rows were provided in the schema. Preserves non-empty rows that were
93
- // set directly on the schema entry (e.g. Desktop records view).
94
- if ('columns' in componentObj || ('kind' in componentObj && componentObj.kind === 'table')) {
95
- const existingRows = componentObj.rows
96
- if (!existingRows || (Array.isArray(existingRows) && existingRows.length === 0)) {
97
- propsToPass['rows'] = dataModel.value[componentObj.fieldname] || []
98
- }
91
+ // kind: 'table' is the canonical check; 'columns' in componentObj is a structural fallback
92
+ // for schemas passed directly to AForm without going through the registry.
93
+ if (componentObj.kind === 'table' || 'columns' in componentObj) {
94
+ propsToPass['rows'] = dataModel.value[componentObj.fieldname] || []
99
95
  }
100
96
 
101
97
  return propsToPass
102
98
  }
103
99
 
104
- const fieldStyle = (componentObj: SchemaTypes): Record<string, string> => {
105
- const width = (componentObj as { width?: string }).width
100
+ const fieldStyle = (componentObj: ResolvedField): Record<string, string> => {
101
+ if (componentObj.kind !== 'field') return {}
102
+ const width = componentObj.width
106
103
  if (!width) return {}
107
104
  return { flexBasis: width, width }
108
105
  }
@@ -110,7 +107,7 @@ const fieldStyle = (componentObj: SchemaTypes): Record<string, string> => {
110
107
  const effectiveFormMode = computed(() => mode ?? 'edit')
111
108
 
112
109
  // Resolve the effective mode for a schema field, allowing per-field overrides
113
- function resolvedMode(componentObj: SchemaTypes): FormMode {
110
+ function resolvedMode(componentObj: ResolvedField): InteractionMode {
114
111
  const fieldMode = componentObj.mode
115
112
  if (fieldMode) return fieldMode
116
113
  return effectiveFormMode.value
@@ -11,11 +11,12 @@
11
11
  </template>
12
12
 
13
13
  <script setup lang="ts">
14
+ import type { InteractionMode } from '@stonecrop/schema'
14
15
  import { ref } from 'vue'
15
16
 
16
- import CollapseButton from '../base/CollapseButton.vue'
17
17
  import AForm from '../AForm.vue'
18
- import type { SchemaTypes, FormMode } from '../../types'
18
+ import CollapseButton from '../base/CollapseButton.vue'
19
+ import type { ResolvedField } from '../../types'
19
20
 
20
21
  const {
21
22
  schema,
@@ -24,12 +25,12 @@ const {
24
25
  data = {},
25
26
  mode = 'edit',
26
27
  } = defineProps<{
27
- schema: SchemaTypes[]
28
+ schema: ResolvedField[]
28
29
  label?: string
29
30
  collapsible?: boolean
30
31
  data?: Record<string, any>
31
32
  /** Rendering mode forwarded to the inner AForm */
32
- mode?: FormMode
33
+ mode?: InteractionMode
33
34
  }>()
34
35
 
35
36
  const collapsed = ref(false)