igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
84 lines • 8.66 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { HorizontalAlignment, VerticalAlignment, cloneInstance } from './../utilities';
import { fadeIn, fadeOut } from '../../../animations/main';
/**
* Positions the element based on the directions passed in trough PositionSettings.
* These are Top/Middle/Bottom for verticalDirection and Left/Center/Right for horizontalDirection
*/
export class GlobalPositionStrategy {
/**
* @param {?=} settings
*/
constructor(settings) {
this._defaultSettings = {
horizontalDirection: HorizontalAlignment.Center,
verticalDirection: VerticalAlignment.Middle,
horizontalStartPoint: HorizontalAlignment.Center,
verticalStartPoint: VerticalAlignment.Middle,
openAnimation: fadeIn,
closeAnimation: fadeOut,
minSize: { width: 0, height: 0 }
};
this.settings = Object.assign({}, this._defaultSettings, settings);
}
/**
* @param {?} contentElement
* @param {?=} size
* @param {?=} document
* @param {?=} initialCall
* @return {?}
*/
position(contentElement, size, document, initialCall) {
contentElement.classList.add('igx-overlay__content--relative');
contentElement.parentElement.classList.add('igx-overlay__wrapper--flex');
switch (this.settings.horizontalDirection) {
case HorizontalAlignment.Left:
contentElement.parentElement.style.justifyContent = 'flex-start';
break;
case HorizontalAlignment.Center:
contentElement.parentElement.style.justifyContent = 'center';
break;
case HorizontalAlignment.Right:
contentElement.parentElement.style.justifyContent = 'flex-end';
break;
default:
break;
}
switch (this.settings.verticalDirection) {
case VerticalAlignment.Top:
contentElement.parentElement.style.alignItems = 'flex-start';
break;
case VerticalAlignment.Middle:
contentElement.parentElement.style.alignItems = 'center';
break;
case VerticalAlignment.Bottom:
contentElement.parentElement.style.alignItems = 'flex-end';
break;
default:
break;
}
}
/**
* \@inheritdoc
* @return {?}
*/
clone() {
return cloneInstance(this);
}
}
if (false) {
/**
* @type {?}
* @private
*/
GlobalPositionStrategy.prototype._defaultSettings;
/**
* \@inheritdoc
* @type {?}
*/
GlobalPositionStrategy.prototype.settings;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXBvc2l0aW9uLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9vdmVybGF5L3Bvc2l0aW9uL2dsb2JhbC1wb3NpdGlvbi1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFvQixtQkFBbUIsRUFBRSxpQkFBaUIsRUFBUSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQU0zRCxNQUFNLE9BQU8sc0JBQXNCOzs7O0lBYy9CLFlBQVksUUFBMkI7UUFiL0IscUJBQWdCLEdBQXFCO1lBQ3pDLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDLE1BQU07WUFDL0MsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsTUFBTTtZQUMzQyxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO1lBQ2hELGtCQUFrQixFQUFFLGlCQUFpQixDQUFDLE1BQU07WUFDNUMsYUFBYSxFQUFFLE1BQU07WUFDckIsY0FBYyxFQUFFLE9BQU87WUFDdkIsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFO1NBQ25DLENBQUM7UUFNRSxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RSxDQUFDOzs7Ozs7OztJQUVELFFBQVEsQ0FBQyxjQUEyQixFQUFFLElBQVcsRUFBRSxRQUFtQixFQUFFLFdBQXFCO1FBQ3pGLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDL0QsY0FBYyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDekUsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFO1lBQ3ZDLEtBQUssbUJBQW1CLENBQUMsSUFBSTtnQkFDekIsY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQztnQkFDakUsTUFBTTtZQUNWLEtBQUssbUJBQW1CLENBQUMsTUFBTTtnQkFDM0IsY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztnQkFDN0QsTUFBTTtZQUNWLEtBQUssbUJBQW1CLENBQUMsS0FBSztnQkFDMUIsY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQztnQkFDL0QsTUFBTTtZQUNWO2dCQUNJLE1BQU07U0FDYjtRQUVELFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRTtZQUNyQyxLQUFLLGlCQUFpQixDQUFDLEdBQUc7Z0JBQ3RCLGNBQWMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUM7Z0JBQzdELE1BQU07WUFDVixLQUFLLGlCQUFpQixDQUFDLE1BQU07Z0JBQ3pCLGNBQWMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7Z0JBQ3pELE1BQU07WUFDVixLQUFLLGlCQUFpQixDQUFDLE1BQU07Z0JBQ3pCLGNBQWMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7Z0JBQzNELE1BQU07WUFDVjtnQkFDSSxNQUFNO1NBQ2I7SUFDTCxDQUFDOzs7OztJQUdELEtBQUs7UUFDRCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQ0o7Ozs7OztJQXJERyxrREFRRTs7Ozs7SUFHRiwwQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJy4vSVBvc2l0aW9uU3RyYXRlZ3knO1xuaW1wb3J0IHsgUG9zaXRpb25TZXR0aW5ncywgSG9yaXpvbnRhbEFsaWdubWVudCwgVmVydGljYWxBbGlnbm1lbnQsIFNpemUsIGNsb25lSW5zdGFuY2UgfSBmcm9tICcuLy4uL3V0aWxpdGllcyc7XG5pbXBvcnQgeyBmYWRlSW4sIGZhZGVPdXQgfSBmcm9tICcuLi8uLi8uLi9hbmltYXRpb25zL21haW4nO1xuXG4vKipcbiAqIFBvc2l0aW9ucyB0aGUgZWxlbWVudCBiYXNlZCBvbiB0aGUgZGlyZWN0aW9ucyBwYXNzZWQgaW4gdHJvdWdoIFBvc2l0aW9uU2V0dGluZ3MuXG4gKiBUaGVzZSBhcmUgVG9wL01pZGRsZS9Cb3R0b20gZm9yIHZlcnRpY2FsRGlyZWN0aW9uIGFuZCBMZWZ0L0NlbnRlci9SaWdodCBmb3IgaG9yaXpvbnRhbERpcmVjdGlvblxuICovXG5leHBvcnQgY2xhc3MgR2xvYmFsUG9zaXRpb25TdHJhdGVneSBpbXBsZW1lbnRzIElQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICBwcml2YXRlIF9kZWZhdWx0U2V0dGluZ3M6IFBvc2l0aW9uU2V0dGluZ3MgPSB7XG4gICAgICAgIGhvcml6b250YWxEaXJlY3Rpb246IEhvcml6b250YWxBbGlnbm1lbnQuQ2VudGVyLFxuICAgICAgICB2ZXJ0aWNhbERpcmVjdGlvbjogVmVydGljYWxBbGlnbm1lbnQuTWlkZGxlLFxuICAgICAgICBob3Jpem9udGFsU3RhcnRQb2ludDogSG9yaXpvbnRhbEFsaWdubWVudC5DZW50ZXIsXG4gICAgICAgIHZlcnRpY2FsU3RhcnRQb2ludDogVmVydGljYWxBbGlnbm1lbnQuTWlkZGxlLFxuICAgICAgICBvcGVuQW5pbWF0aW9uOiBmYWRlSW4sXG4gICAgICAgIGNsb3NlQW5pbWF0aW9uOiBmYWRlT3V0LFxuICAgICAgICBtaW5TaXplOiB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfVxuICAgIH07XG5cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBwdWJsaWMgc2V0dGluZ3M6IFBvc2l0aW9uU2V0dGluZ3M7XG5cbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncz86IFBvc2l0aW9uU2V0dGluZ3MpIHtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX2RlZmF1bHRTZXR0aW5ncywgc2V0dGluZ3MpO1xuICAgIH1cblxuICAgIHBvc2l0aW9uKGNvbnRlbnRFbGVtZW50OiBIVE1MRWxlbWVudCwgc2l6ZT86IFNpemUsIGRvY3VtZW50PzogRG9jdW1lbnQsIGluaXRpYWxDYWxsPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb250ZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdpZ3gtb3ZlcmxheV9fY29udGVudC0tcmVsYXRpdmUnKTtcbiAgICAgICAgY29udGVudEVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdpZ3gtb3ZlcmxheV9fd3JhcHBlci0tZmxleCcpO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuc2V0dGluZ3MuaG9yaXpvbnRhbERpcmVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBIb3Jpem9udGFsQWxpZ25tZW50LkxlZnQ6XG4gICAgICAgICAgICAgICAgY29udGVudEVsZW1lbnQucGFyZW50RWxlbWVudC5zdHlsZS5qdXN0aWZ5Q29udGVudCA9ICdmbGV4LXN0YXJ0JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSG9yaXpvbnRhbEFsaWdubWVudC5DZW50ZXI6XG4gICAgICAgICAgICAgICAgY29udGVudEVsZW1lbnQucGFyZW50RWxlbWVudC5zdHlsZS5qdXN0aWZ5Q29udGVudCA9ICdjZW50ZXInO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBIb3Jpem9udGFsQWxpZ25tZW50LlJpZ2h0OlxuICAgICAgICAgICAgICAgIGNvbnRlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuc3R5bGUuanVzdGlmeUNvbnRlbnQgPSAnZmxleC1lbmQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodGhpcy5zZXR0aW5ncy52ZXJ0aWNhbERpcmVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWdubWVudC5Ub3A6XG4gICAgICAgICAgICAgICAgY29udGVudEVsZW1lbnQucGFyZW50RWxlbWVudC5zdHlsZS5hbGlnbkl0ZW1zID0gJ2ZsZXgtc3RhcnQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWdubWVudC5NaWRkbGU6XG4gICAgICAgICAgICAgICAgY29udGVudEVsZW1lbnQucGFyZW50RWxlbWVudC5zdHlsZS5hbGlnbkl0ZW1zID0gJ2NlbnRlcic7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFZlcnRpY2FsQWxpZ25tZW50LkJvdHRvbTpcbiAgICAgICAgICAgICAgICBjb250ZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnN0eWxlLmFsaWduSXRlbXMgPSAnZmxleC1lbmQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGNsb25lKCk6IElQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIGNsb25lSW5zdGFuY2UodGhpcyk7XG4gICAgfVxufVxuXG4iXX0=