import styled from "css-styled"; import { SelectoOptions } from "./types"; export const injector = styled(` :host { position: fixed; display: none; border: 1px solid #4af; background: rgba(68, 170, 255, 0.5); pointer-events: none; will-change: transform; z-index: 100; } `); /** * @memberof Selecto */ export const CLASS_NAME = `selecto-selection ${injector.className}`; export const PROPERTIES = [ "className", "boundContainer", "selectableTargets", "selectByClick", "selectFromInside", "continueSelect", "continueSelectWithoutDeselect", "toggleContinueSelect", "toggleContinueSelectWithoutDeselect", "keyContainer", "hitRate", "scrollOptions", "checkInput", "preventDefault", "ratio", "getElementRect", "preventDragFromInside", "rootContainer", "dragCondition", "clickBySelectEnd", "checkOverflow", "innerScrollOptions", ] as const; /** * @memberof Selecto */ export const OPTIONS = [ // ignore target, container, "dragContainer", "cspNonce", "preventClickEventOnDrag", "preventClickEventOnDragStart", "preventRightClick", ...PROPERTIES, ] as const; export const OPTION_TYPES: { [key in keyof SelectoOptions]: any } = { className: String, boundContainer: null, portalContainer: null, container: null, dragContainer: null, selectableTargets: Array, selectByClick: Boolean, selectFromInside: Boolean, continueSelect: Boolean, toggleContinueSelect: Array, toggleContinueSelectWithoutDeselect: Array, keyContainer: null, hitRate: Number, scrollOptions: Object, checkInput: Boolean, preventDefault: Boolean, cspNonce: String, ratio: Number, getElementRect: Function, preventDragFromInside: Boolean, rootContainer: Object, dragCondition: Function, clickBySelectEnd: Boolean, continueSelectWithoutDeselect: Boolean, preventClickEventOnDragStart: Boolean, preventClickEventOnDrag: Boolean, checkOverflow: Boolean, innerScrollOptions: Object, }; /** * @memberof Selecto */ export const EVENTS = [ "dragStart", "drag", "dragEnd", "selectStart", "select", "selectEnd", "keydown", "keyup", "scroll", "innerScroll", ] as const; /** * @memberof Selecto */ export const METHODS = [ "clickTarget", "getSelectableElements", "setSelectedTargets", "getElementPoints", "getSelectedTargets", "findSelectableTargets", "triggerDragStart", "checkScroll", "selectTargetsByPoints", "setSelectedTargetsByPoints", ] as const;