theme-lib
Version:
This is a simple example Angular Library published to npm.
198 lines • 16.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { NbLayoutDirectionService } from '../../../services/direction.service';
/** @enum {string} */
var NbGlobalLogicalPosition = {
TOP_START: 'top-start',
TOP_END: 'top-end',
BOTTOM_START: 'bottom-start',
BOTTOM_END: 'bottom-end',
};
export { NbGlobalLogicalPosition };
/** @enum {string} */
var NbGlobalPhysicalPosition = {
TOP_RIGHT: 'top-right',
TOP_LEFT: 'top-left',
BOTTOM_RIGHT: 'bottom-right',
BOTTOM_LEFT: 'bottom-left',
};
export { NbGlobalPhysicalPosition };
var NbPositionHelper = /** @class */ (function () {
function NbPositionHelper(layoutDirection) {
this.layoutDirection = layoutDirection;
}
/**
* @param {?} position
* @return {?}
*/
NbPositionHelper.prototype.toLogicalPosition = /**
* @param {?} position
* @return {?}
*/
function (position) {
if (Object.values(NbGlobalLogicalPosition).includes(position)) {
return (/** @type {?} */ (position));
}
if (this.layoutDirection.isLtr()) {
return this.toLogicalPositionWhenLtr((/** @type {?} */ (position)));
}
else {
return this.toLogicalPositionWhenRtl((/** @type {?} */ (position)));
}
};
/**
* @param {?} position
* @return {?}
*/
NbPositionHelper.prototype.toPhysicalPosition = /**
* @param {?} position
* @return {?}
*/
function (position) {
if (Object.values(NbGlobalPhysicalPosition).includes(position)) {
return (/** @type {?} */ (position));
}
if (this.layoutDirection.isLtr()) {
return this.toPhysicalPositionWhenLtr((/** @type {?} */ (position)));
}
else {
return this.toPhysicalPositionWhenRtl((/** @type {?} */ (position)));
}
};
/**
* @param {?} position
* @return {?}
*/
NbPositionHelper.prototype.isTopPosition = /**
* @param {?} position
* @return {?}
*/
function (position) {
/** @type {?} */
var logicalPosition = this.toLogicalPosition(position);
return logicalPosition === NbGlobalLogicalPosition.TOP_END
|| logicalPosition === NbGlobalLogicalPosition.TOP_START;
};
/**
* @param {?} position
* @return {?}
*/
NbPositionHelper.prototype.isRightPosition = /**
* @param {?} position
* @return {?}
*/
function (position) {
/** @type {?} */
var physicalPosition = this.toPhysicalPosition(position);
return physicalPosition === NbGlobalPhysicalPosition.TOP_RIGHT
|| physicalPosition === NbGlobalPhysicalPosition.BOTTOM_RIGHT;
};
/**
* @protected
* @param {?} position
* @return {?}
*/
NbPositionHelper.prototype.toLogicalPositionWhenLtr = /**
* @protected
* @param {?} position
* @return {?}
*/
function (position) {
switch (position) {
case NbGlobalPhysicalPosition.TOP_RIGHT:
return NbGlobalLogicalPosition.TOP_END;
case NbGlobalPhysicalPosition.TOP_LEFT:
return NbGlobalLogicalPosition.TOP_START;
case NbGlobalPhysicalPosition.BOTTOM_RIGHT:
return NbGlobalLogicalPosition.BOTTOM_END;
case NbGlobalPhysicalPosition.BOTTOM_LEFT:
return NbGlobalLogicalPosition.BOTTOM_START;
}
};
/**
* @protected
* @param {?} position
* @return {?}
*/
NbPositionHelper.prototype.toLogicalPositionWhenRtl = /**
* @protected
* @param {?} position
* @return {?}
*/
function (position) {
switch (position) {
case NbGlobalPhysicalPosition.TOP_RIGHT:
return NbGlobalLogicalPosition.TOP_START;
case NbGlobalPhysicalPosition.TOP_LEFT:
return NbGlobalLogicalPosition.TOP_END;
case NbGlobalPhysicalPosition.BOTTOM_RIGHT:
return NbGlobalLogicalPosition.BOTTOM_START;
case NbGlobalPhysicalPosition.BOTTOM_LEFT:
return NbGlobalLogicalPosition.BOTTOM_END;
}
};
/**
* @protected
* @param {?} position
* @return {?}
*/
NbPositionHelper.prototype.toPhysicalPositionWhenLtr = /**
* @protected
* @param {?} position
* @return {?}
*/
function (position) {
switch (position) {
case NbGlobalLogicalPosition.TOP_START:
return NbGlobalPhysicalPosition.TOP_LEFT;
case NbGlobalLogicalPosition.TOP_END:
return NbGlobalPhysicalPosition.TOP_RIGHT;
case NbGlobalLogicalPosition.BOTTOM_START:
return NbGlobalPhysicalPosition.BOTTOM_LEFT;
case NbGlobalLogicalPosition.BOTTOM_END:
return NbGlobalPhysicalPosition.BOTTOM_RIGHT;
}
};
/**
* @protected
* @param {?} position
* @return {?}
*/
NbPositionHelper.prototype.toPhysicalPositionWhenRtl = /**
* @protected
* @param {?} position
* @return {?}
*/
function (position) {
switch (position) {
case NbGlobalLogicalPosition.TOP_START:
return NbGlobalPhysicalPosition.TOP_RIGHT;
case NbGlobalLogicalPosition.TOP_END:
return NbGlobalPhysicalPosition.TOP_LEFT;
case NbGlobalLogicalPosition.BOTTOM_START:
return NbGlobalPhysicalPosition.BOTTOM_RIGHT;
case NbGlobalLogicalPosition.BOTTOM_END:
return NbGlobalPhysicalPosition.BOTTOM_LEFT;
}
};
NbPositionHelper.decorators = [
{ type: Injectable }
];
/** @nocollapse */
NbPositionHelper.ctorParameters = function () { return [
{ type: NbLayoutDirectionService }
]; };
return NbPositionHelper;
}());
export { NbPositionHelper };
if (false) {
/**
* @type {?}
* @protected
*/
NbPositionHelper.prototype.layoutDirection;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24taGVscGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGhlbWUtbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY2RrL292ZXJsYXkvcG9zaXRpb24taGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7SUFJN0UsV0FBWSxXQUFXO0lBQ3ZCLFNBQVUsU0FBUztJQUNuQixjQUFlLGNBQWM7SUFDN0IsWUFBYSxZQUFZOzs7OztJQUl6QixXQUFZLFdBQVc7SUFDdkIsVUFBVyxVQUFVO0lBQ3JCLGNBQWUsY0FBYztJQUM3QixhQUFjLGFBQWE7OztBQUs3QjtJQUVFLDBCQUFzQixlQUF5QztRQUF6QyxvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7SUFDL0QsQ0FBQzs7Ozs7SUFFRCw0Q0FBaUI7Ozs7SUFBakIsVUFBa0IsUUFBMEI7UUFDMUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzdELE9BQU8sbUJBQUEsUUFBUSxFQUEyQixDQUFDO1NBQzVDO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLG1CQUFBLFFBQVEsRUFBNEIsQ0FBQyxDQUFDO1NBQzVFO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxtQkFBQSxRQUFRLEVBQTRCLENBQUMsQ0FBQztTQUM1RTtJQUNILENBQUM7Ozs7O0lBRUQsNkNBQWtCOzs7O0lBQWxCLFVBQW1CLFFBQTBCO1FBQzNDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM5RCxP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QkFBdUIsQ0FBQyxVQUFVO2dCQUNyQyxPQUFPLHdCQUF3QixDQUFDLFdBQVcsQ0FBQztTQUMvQztJQUNILENBQUM7O2dCQTdGRixVQUFVOzs7O2dCQW5CRix3QkFBd0I7O0lBaUhqQyx1QkFBQztDQUFBLEFBOUZELElBOEZDO1NBN0ZZLGdCQUFnQjs7Ozs7O0lBQ2YsMkNBQW1EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTmJMYXlvdXREaXJlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZGlyZWN0aW9uLnNlcnZpY2UnO1xyXG5cclxuXHJcbmV4cG9ydCBlbnVtIE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uIHtcclxuICBUT1BfU1RBUlQgPSAndG9wLXN0YXJ0JyxcclxuICBUT1BfRU5EID0gJ3RvcC1lbmQnLFxyXG4gIEJPVFRPTV9TVEFSVCA9ICdib3R0b20tc3RhcnQnLFxyXG4gIEJPVFRPTV9FTkQgPSAnYm90dG9tLWVuZCcsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIE5iR2xvYmFsUGh5c2ljYWxQb3NpdGlvbiB7XHJcbiAgVE9QX1JJR0hUID0gJ3RvcC1yaWdodCcsXHJcbiAgVE9QX0xFRlQgPSAndG9wLWxlZnQnLFxyXG4gIEJPVFRPTV9SSUdIVCA9ICdib3R0b20tcmlnaHQnLFxyXG4gIEJPVFRPTV9MRUZUID0gJ2JvdHRvbS1sZWZ0JyxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTmJHbG9iYWxQb3NpdGlvbiA9IE5iR2xvYmFsUGh5c2ljYWxQb3NpdGlvbiB8IE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTmJQb3NpdGlvbkhlbHBlciB7XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGxheW91dERpcmVjdGlvbjogTmJMYXlvdXREaXJlY3Rpb25TZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICB0b0xvZ2ljYWxQb3NpdGlvbihwb3NpdGlvbjogTmJHbG9iYWxQb3NpdGlvbik6IE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uIHtcclxuICAgIGlmIChPYmplY3QudmFsdWVzKE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uKS5pbmNsdWRlcyhwb3NpdGlvbikpIHtcclxuICAgICAgcmV0dXJuIHBvc2l0aW9uIGFzIE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmxheW91dERpcmVjdGlvbi5pc0x0cigpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvTG9naWNhbFBvc2l0aW9uV2hlbkx0cihwb3NpdGlvbiBhcyBOYkdsb2JhbFBoeXNpY2FsUG9zaXRpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMudG9Mb2dpY2FsUG9zaXRpb25XaGVuUnRsKHBvc2l0aW9uIGFzIE5iR2xvYmFsUGh5c2ljYWxQb3NpdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0b1BoeXNpY2FsUG9zaXRpb24ocG9zaXRpb246IE5iR2xvYmFsUG9zaXRpb24pOiBOYkdsb2JhbFBoeXNpY2FsUG9zaXRpb24ge1xyXG4gICAgaWYgKE9iamVjdC52YWx1ZXMoTmJHbG9iYWxQaHlzaWNhbFBvc2l0aW9uKS5pbmNsdWRlcyhwb3NpdGlvbikpIHtcclxuICAgICAgcmV0dXJuIHBvc2l0aW9uIGFzIE5iR2xvYmFsUGh5c2ljYWxQb3NpdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5sYXlvdXREaXJlY3Rpb24uaXNMdHIoKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy50b1BoeXNpY2FsUG9zaXRpb25XaGVuTHRyKHBvc2l0aW9uIGFzIE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvUGh5c2ljYWxQb3NpdGlvbldoZW5SdGwocG9zaXRpb24gYXMgTmJHbG9iYWxMb2dpY2FsUG9zaXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNUb3BQb3NpdGlvbihwb3NpdGlvbjogTmJHbG9iYWxQb3NpdGlvbikge1xyXG4gICAgY29uc3QgbG9naWNhbFBvc2l0aW9uID0gdGhpcy50b0xvZ2ljYWxQb3NpdGlvbihwb3NpdGlvbik7XHJcblxyXG4gICAgcmV0dXJuIGxvZ2ljYWxQb3NpdGlvbiA9PT0gTmJHbG9iYWxMb2dpY2FsUG9zaXRpb24uVE9QX0VORFxyXG4gICAgICB8fCBsb2dpY2FsUG9zaXRpb24gPT09IE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uLlRPUF9TVEFSVDtcclxuICB9XHJcblxyXG4gIGlzUmlnaHRQb3NpdGlvbihwb3NpdGlvbjogTmJHbG9iYWxQb3NpdGlvbikge1xyXG4gICAgY29uc3QgcGh5c2ljYWxQb3NpdGlvbiA9IHRoaXMudG9QaHlzaWNhbFBvc2l0aW9uKHBvc2l0aW9uKTtcclxuXHJcbiAgICByZXR1cm4gcGh5c2ljYWxQb3NpdGlvbiA9PT0gTmJHbG9iYWxQaHlzaWNhbFBvc2l0aW9uLlRPUF9SSUdIVFxyXG4gICAgICB8fCBwaHlzaWNhbFBvc2l0aW9uID09PSBOYkdsb2JhbFBoeXNpY2FsUG9zaXRpb24uQk9UVE9NX1JJR0hUO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHRvTG9naWNhbFBvc2l0aW9uV2hlbkx0cihwb3NpdGlvbjogTmJHbG9iYWxQaHlzaWNhbFBvc2l0aW9uKTogTmJHbG9iYWxMb2dpY2FsUG9zaXRpb24ge1xyXG4gICAgc3dpdGNoIChwb3NpdGlvbikge1xyXG4gICAgICBjYXNlIE5iR2xvYmFsUGh5c2ljYWxQb3NpdGlvbi5UT1BfUklHSFQ6XHJcbiAgICAgICAgcmV0dXJuIE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uLlRPUF9FTkQ7XHJcbiAgICAgIGNhc2UgTmJHbG9iYWxQaHlzaWNhbFBvc2l0aW9uLlRPUF9MRUZUOlxyXG4gICAgICAgIHJldHVybiBOYkdsb2JhbExvZ2ljYWxQb3NpdGlvbi5UT1BfU1RBUlQ7XHJcbiAgICAgIGNhc2UgTmJHbG9iYWxQaHlzaWNhbFBvc2l0aW9uLkJPVFRPTV9SSUdIVDpcclxuICAgICAgICByZXR1cm4gTmJHbG9iYWxMb2dpY2FsUG9zaXRpb24uQk9UVE9NX0VORDtcclxuICAgICAgY2FzZSBOYkdsb2JhbFBoeXNpY2FsUG9zaXRpb24uQk9UVE9NX0xFRlQ6XHJcbiAgICAgICAgcmV0dXJuIE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uLkJPVFRPTV9TVEFSVDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0b0xvZ2ljYWxQb3NpdGlvbldoZW5SdGwocG9zaXRpb246IE5iR2xvYmFsUGh5c2ljYWxQb3NpdGlvbik6IE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uIHtcclxuICAgIHN3aXRjaCAocG9zaXRpb24pIHtcclxuICAgICAgY2FzZSBOYkdsb2JhbFBoeXNpY2FsUG9zaXRpb24uVE9QX1JJR0hUOlxyXG4gICAgICAgIHJldHVybiBOYkdsb2JhbExvZ2ljYWxQb3NpdGlvbi5UT1BfU1RBUlQ7XHJcbiAgICAgIGNhc2UgTmJHbG9iYWxQaHlzaWNhbFBvc2l0aW9uLlRPUF9MRUZUOlxyXG4gICAgICAgIHJldHVybiBOYkdsb2JhbExvZ2ljYWxQb3NpdGlvbi5UT1BfRU5EO1xyXG4gICAgICBjYXNlIE5iR2xvYmFsUGh5c2ljYWxQb3NpdGlvbi5CT1RUT01fUklHSFQ6XHJcbiAgICAgICAgcmV0dXJuIE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uLkJPVFRPTV9TVEFSVDtcclxuICAgICAgY2FzZSBOYkdsb2JhbFBoeXNpY2FsUG9zaXRpb24uQk9UVE9NX0xFRlQ6XHJcbiAgICAgICAgcmV0dXJuIE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uLkJPVFRPTV9FTkQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdG9QaHlzaWNhbFBvc2l0aW9uV2hlbkx0cihwb3NpdGlvbjogTmJHbG9iYWxMb2dpY2FsUG9zaXRpb24pOiBOYkdsb2JhbFBoeXNpY2FsUG9zaXRpb24ge1xyXG4gICAgc3dpdGNoIChwb3NpdGlvbikge1xyXG4gICAgICBjYXNlIE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uLlRPUF9TVEFSVDpcclxuICAgICAgICByZXR1cm4gTmJHbG9iYWxQaHlzaWNhbFBvc2l0aW9uLlRPUF9MRUZUO1xyXG4gICAgICBjYXNlIE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uLlRPUF9FTkQ6XHJcbiAgICAgICAgcmV0dXJuIE5iR2xvYmFsUGh5c2ljYWxQb3NpdGlvbi5UT1BfUklHSFQ7XHJcbiAgICAgIGNhc2UgTmJHbG9iYWxMb2dpY2FsUG9zaXRpb24uQk9UVE9NX1NUQVJUOlxyXG4gICAgICAgIHJldHVybiBOYkdsb2JhbFBoeXNpY2FsUG9zaXRpb24uQk9UVE9NX0xFRlQ7XHJcbiAgICAgIGNhc2UgTmJHbG9iYWxMb2dpY2FsUG9zaXRpb24uQk9UVE9NX0VORDpcclxuICAgICAgICByZXR1cm4gTmJHbG9iYWxQaHlzaWNhbFBvc2l0aW9uLkJPVFRPTV9SSUdIVDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0b1BoeXNpY2FsUG9zaXRpb25XaGVuUnRsKHBvc2l0aW9uOiBOYkdsb2JhbExvZ2ljYWxQb3NpdGlvbik6IE5iR2xvYmFsUGh5c2ljYWxQb3NpdGlvbiB7XHJcbiAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7XHJcbiAgICAgIGNhc2UgTmJHbG9iYWxMb2dpY2FsUG9zaXRpb24uVE9QX1NUQVJUOlxyXG4gICAgICAgIHJldHVybiBOYkdsb2JhbFBoeXNpY2FsUG9zaXRpb24uVE9QX1JJR0hUO1xyXG4gICAgICBjYXNlIE5iR2xvYmFsTG9naWNhbFBvc2l0aW9uLlRPUF9FTkQ6XHJcbiAgICAgICAgcmV0dXJuIE5iR2xvYmFsUGh5c2ljYWxQb3NpdGlvbi5UT1BfTEVGVDtcclxuICAgICAgY2FzZSBOYkdsb2JhbExvZ2ljYWxQb3NpdGlvbi5CT1RUT01fU1RBUlQ6XHJcbiAgICAgICAgcmV0dXJuIE5iR2xvYmFsUGh5c2ljYWxQb3NpdGlvbi5CT1RUT01fUklHSFQ7XHJcbiAgICAgIGNhc2UgTmJHbG9iYWxMb2dpY2FsUG9zaXRpb24uQk9UVE9NX0VORDpcclxuICAgICAgICByZXR1cm4gTmJHbG9iYWxQaHlzaWNhbFBvc2l0aW9uLkJPVFRPTV9MRUZUO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=