UNPKG

ng-ytl-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

129 lines (121 loc) 3.16 kB
import { ConnectionPositionPair } from '@angular/cdk/overlay'; export const POSITION_MAP: { [key: string]: ConnectionPositionPair } = { 'top' : { originX : 'center', originY : 'top', overlayX: 'center', overlayY: 'bottom' }, 'topCenter' : { originX : 'center', originY : 'top', overlayX: 'center', overlayY: 'bottom' }, 'topLeft' : { originX : 'start', originY : 'top', overlayX: 'start', overlayY: 'bottom' }, 'topRight' : { originX : 'end', originY : 'top', overlayX: 'end', overlayY: 'bottom' }, 'right' : { originX : 'end', originY : 'center', overlayX: 'start', overlayY: 'center', }, 'rightTop' : { originX : 'end', originY : 'top', overlayX: 'start', overlayY: 'top', }, 'rightBottom' : { originX : 'end', originY : 'bottom', overlayX: 'start', overlayY: 'bottom', }, 'bottom' : { originX : 'center', originY : 'bottom', overlayX: 'center', overlayY: 'top', }, 'bottomCenter': { originX : 'center', originY : 'bottom', overlayX: 'center', overlayY: 'top', }, 'bottomLeft' : { originX : 'start', originY : 'bottom', overlayX: 'start', overlayY: 'top', }, 'bottomRight' : { originX : 'end', originY : 'bottom', overlayX: 'end', overlayY: 'top', }, 'left' : { originX : 'start', originY : 'center', overlayX: 'end', overlayY: 'center', }, 'leftTop' : { originX : 'start', originY : 'top', overlayX: 'end', overlayY: 'top', }, 'leftBottom' : { originX : 'start', originY : 'bottom', overlayX: 'end', overlayY: 'bottom', }, } as { } as { [key: string]: ConnectionPositionPair }; // TODO: The whole logic does not make sense here, _objectValues just returns a copy of original array export const DEFAULT_4_POSITIONS = _objectValues([ POSITION_MAP.top, POSITION_MAP.right, POSITION_MAP.bottom, POSITION_MAP.left]); export const DEFAULT_DROPDOWN_POSITIONS = _objectValues([ POSITION_MAP.bottomLeft, POSITION_MAP.topLeft ]); export const DEFAULT_DATEPICKER_POSITIONS = [ { originX : 'start', originY : 'top', overlayX: 'start', overlayY: 'top', }, { originX : 'start', originY : 'bottom', overlayX: 'start', overlayY: 'bottom', } ] as ConnectionPositionPair[]; function arrayMap<T, S>(array: T[], iteratee: (item: T, index: number, arr: T[]) => S): S[] { let index = -1; const length = array == null ? 0 : array.length; const result = Array(length); while (++index < length) { result[ index ] = iteratee(array[ index ], index, array); } return result; } function baseValues<T>(object: { [key: string]: T } | T[], props: string[]): T[] { return arrayMap(props, (key) => { return object[ key ]; }); } function _objectValues<T>(object: { [key: string]: T } | T[]): T[] { return object == null ? [] : baseValues(object, Object.keys(object)); }