import { asOptions } from '../dss/types'; import {StringWithAutocompleteOptions, ZeroOrMore} from '../types'; export type ValueProp = StringWithAutocompleteOptions< | 'value' | 'checked' | 'href' | 'ariaValueNow' | 'ariaChecked' | 'valueAsNumber' | 'valueAsDate' | 'textContent' | 'innerHTML' > export type DisplayProp = StringWithAutocompleteOptions< | 'textContent' | 'ariaValueText' >; export type ValueType = StringWithAutocompleteOptions< | 'Boolean' | 'String' | 'Number' | 'NumericRange' >; export type TrueText = StringWithAutocompleteOptions< | 'Yes' | 'On' >; export type FalseText = StringWithAutocompleteOptions< | 'No' | 'Off' >; export type TrueStringValue = StringWithAutocompleteOptions< | 'https://schema.org/True' >; export type FalseStringValue = StringWithAutocompleteOptions< | 'https://schema.org/False' >; export type StdEventNames = StringWithAutocompleteOptions< | 'input' | 'change' | 'click' | 'slotchange' >; export type BuiltInEditables = StringWithAutocompleteOptions< | 'input' | 'select' | 'textarea' >; export interface ASMROptions{ valueProp?: ValueProp; valueType?: ValueType; displayProp?: DisplayProp; trueText?: TrueText; falseText?: FalseText; trueValue?: TrueStringValue; falseValue?: FalseStringValue; path?: string; } export interface SetOptions extends ASMROptions{ valToDisplay?: (v: TProp) => string; allowUnsafe?: boolean; action?: |'set' |'toggle' |'increment' |'decrement' |'set-class' |'set-part' ; } export interface AbsOptions { /** * source of truth attribute */ sota?: string; /** * name of property corresponding to source of truth attribute * if different from source of truth attribute */ sotaProp?: string; /** * Is Roundabout ready */ isRAR?: boolean; /** * Is Roundabout Emulating */ isRAE?: boolean; /** * Is User Editable */ isUE?: boolean; /** * User Edit Event Name */ evt?: StdEventNames; propToAbsorb?: ValueProp; propToAbsorbValueType?: ValueType; selfIsVal?: boolean; as?: asOptions | undefined; } // export interface Setter { // setValue(nv: TProp); // } export interface SharingObject{ setValue(val: TProp); pureValue: TProp; } export interface AbsorbingObject extends EventTarget{ getValue(): Promise; }