@greg-md/ng-flex-css-layout
Version:
Flex-CSS-Layout is an alternative behaviour of Flex-Layout directives, that will still work with Angular Universal and App Shell.
261 lines (260 loc) • 17.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Directive, ElementRef, Input, Renderer2, Optional, Host, SkipSelf } from '@angular/core';
import { ReplaySubject } from 'rxjs';
import { FlexCssService } from './flex-css.service';
import { BaseDirective } from './directive';
import { LayoutDirective } from './layout.directive';
var FlexOrderDirective = /** @class */ (function (_super) {
tslib_1.__extends(FlexOrderDirective, _super);
function FlexOrderDirective(elementRef, renderer, service, layout) {
var _this = _super.call(this, elementRef, renderer) || this;
_this.service = service;
_this.fcValues = {};
_this.observer$ = new ReplaySubject(1);
if (layout && layout.elementRef.nativeElement === _this.parentElement) {
_this.layout = layout;
}
return _this;
}
Object.defineProperty(FlexOrderDirective.prototype, "order", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['all'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "orderXs", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['xs'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "orderSm", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['sm'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "orderMd", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['md'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "orderLg", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['lg'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "orderXl", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['xl'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "orderGtXs", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['gt-xs'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "orderGtSm", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['gt-sm'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "orderGtMd", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['gt-md'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "orderGtLg", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['gt-lg'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "orderLtSm", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['lt-sm'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "orderLtMd", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['lt-md'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "orderLtLg", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['lt-lg'] = val; },
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "orderLtXl", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) { this.fcValues['lt-xl'] = val; },
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
FlexOrderDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.dependsOnParentLayout();
};
/**
* @return {?}
*/
FlexOrderDirective.prototype.ngOnChanges = /**
* @return {?}
*/
function () {
this.reload();
};
/**
* @return {?}
*/
FlexOrderDirective.prototype.reload = /**
* @return {?}
*/
function () {
var _this = this;
var /** @type {?} */ classNames = [];
this.breakpoints.forEach(function (breakpoint) {
classNames.push(_this.service.addFlexOrder(_this.fcValues[breakpoint], breakpoint));
});
this.setClassNames(classNames);
this.observer$.next(this.fcValues);
};
/**
* @return {?}
*/
FlexOrderDirective.prototype.dependsOnParentLayout = /**
* @return {?}
*/
function () {
var _this = this;
if (this.layout) {
this.layout.addNewBreakpoints(this.breakpoints, 'row');
}
else {
this.breakpoints.forEach(function (breakpoint) {
_this.renderer.addClass(_this.parentElement, _this.service.addLayout('row', breakpoint));
});
}
};
Object.defineProperty(FlexOrderDirective.prototype, "parentElement", {
get: /**
* @return {?}
*/
function () {
return this.renderer.parentNode(this.elementRef.nativeElement);
},
enumerable: true,
configurable: true
});
Object.defineProperty(FlexOrderDirective.prototype, "breakpoints", {
get: /**
* @return {?}
*/
function () {
return Object.keys(this.fcValues);
},
enumerable: true,
configurable: true
});
FlexOrderDirective.decorators = [
{ type: Directive, args: [{
selector: "\n [fcFlexOrder],\n [fcFlexOrder.xs], [fcFlexOrder.sm], [fcFlexOrder.md], [fcFlexOrder.lg], [fcFlexOrder.xl],\n [fcFlexOrder.lt-sm], [fcFlexOrder.lt-md], [fcFlexOrder.lt-lg], [fcFlexOrder.lt-xl],\n [fcFlexOrder.gt-xs], [fcFlexOrder.gt-sm], [fcFlexOrder.gt-md], [fcFlexOrder.gt-lg]\n ",
},] },
];
/** @nocollapse */
FlexOrderDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 },
{ type: FlexCssService },
{ type: LayoutDirective, decorators: [{ type: Optional }, { type: Host }, { type: SkipSelf }] }
]; };
FlexOrderDirective.propDecorators = {
order: [{ type: Input, args: ['fcFlexOrder',] }],
orderXs: [{ type: Input, args: ['fcFlexOrder.xs',] }],
orderSm: [{ type: Input, args: ['fcFlexOrder.sm',] }],
orderMd: [{ type: Input, args: ['fcFlexOrder.md',] }],
orderLg: [{ type: Input, args: ['fcFlexOrder.lg',] }],
orderXl: [{ type: Input, args: ['fcFlexOrder.xl',] }],
orderGtXs: [{ type: Input, args: ['fcFlexOrder.gt-xs',] }],
orderGtSm: [{ type: Input, args: ['fcFlexOrder.gt-sm',] }],
orderGtMd: [{ type: Input, args: ['fcFlexOrder.gt-md',] }],
orderGtLg: [{ type: Input, args: ['fcFlexOrder.gt-lg',] }],
orderLtSm: [{ type: Input, args: ['fcFlexOrder.lt-sm',] }],
orderLtMd: [{ type: Input, args: ['fcFlexOrder.lt-md',] }],
orderLtLg: [{ type: Input, args: ['fcFlexOrder.lt-lg',] }],
orderLtXl: [{ type: Input, args: ['fcFlexOrder.lt-xl',] }]
};
return FlexOrderDirective;
}(BaseDirective));
export { FlexOrderDirective };
function FlexOrderDirective_tsickle_Closure_declarations() {
/** @type {?} */
FlexOrderDirective.prototype.fcValues;
/** @type {?} */
FlexOrderDirective.prototype.observer$;
/** @type {?} */
FlexOrderDirective.prototype.layout;
/** @type {?} */
FlexOrderDirective.prototype.service;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleC1vcmRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JlZy1tZC9uZy1mbGV4LWNzcy1sYXlvdXQvIiwic291cmNlcyI6WyJsaWIvZmxleC1vcmRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztJQVViLDhDQUFhO0lBd0JuRCw0QkFDRSxVQUFzQixFQUN0QixRQUFtQixFQUNYLFNBQ3dCLE1BQXVCO1FBSnpELFlBTUUsa0JBQU0sVUFBVSxFQUFFLFFBQVEsQ0FBQyxTQUs1QjtRQVJTLGFBQU8sR0FBUCxPQUFPO3lCQTFCTixFQUFFOzBCQUVELElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQztRQTZCOUIsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsYUFBYSxLQUFLLEtBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLEtBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQ3RCOztLQUNGO0lBNUJELHNCQUFnQyxxQ0FBSzs7Ozs7UUFBckMsVUFBc0MsR0FBRyxJQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7OztPQUFBO0lBQzlFLHNCQUFnQyx1Q0FBTzs7Ozs7UUFBdkMsVUFBd0MsR0FBRyxJQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7OztPQUFBO0lBQzdFLHNCQUFnQyx1Q0FBTzs7Ozs7UUFBdkMsVUFBd0MsR0FBRyxJQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7OztPQUFBO0lBQzdFLHNCQUFnQyx1Q0FBTzs7Ozs7UUFBdkMsVUFBd0MsR0FBRyxJQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7OztPQUFBO0lBQzdFLHNCQUFnQyx1Q0FBTzs7Ozs7UUFBdkMsVUFBd0MsR0FBRyxJQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7OztPQUFBO0lBQzdFLHNCQUFnQyx1Q0FBTzs7Ozs7UUFBdkMsVUFBd0MsR0FBRyxJQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7OztPQUFBO0lBRTdFLHNCQUFnQyx5Q0FBUzs7Ozs7UUFBekMsVUFBMEMsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7OztPQUFBO0lBQ2hGLHNCQUFnQyx5Q0FBUzs7Ozs7UUFBekMsVUFBMEMsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7OztPQUFBO0lBQ2hGLHNCQUFnQyx5Q0FBUzs7Ozs7UUFBekMsVUFBMEMsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7OztPQUFBO0lBQ2hGLHNCQUFnQyx5Q0FBUzs7Ozs7UUFBekMsVUFBMEMsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7OztPQUFBO0lBRWhGLHNCQUFnQyx5Q0FBUzs7Ozs7UUFBekMsVUFBMEMsR0FBRyxJ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LG1CQUFtQjs0QkFDekIsS0FBSyxTQUFDLG1CQUFtQjs0QkFDekIsS0FBSyxTQUFDLG1CQUFtQjs0QkFDekIsS0FBSyxTQUFDLG1CQUFtQjs7NkJBckM1QjtFQWV3QyxhQUFhO1NBQXhDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25Jbml0LCBJbnB1dCwgUmVuZGVyZXIyLCBPcHRpb25hbCwgSG9zdCwgT25DaGFuZ2VzLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGbGV4Q3NzU2VydmljZSB9IGZyb20gJy4vZmxleC1jc3Muc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi9sYXlvdXQuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgXG4gICAgW2ZjRmxleE9yZGVyXSxcbiAgICBbZmNGbGV4T3JkZXIueHNdLCBbZmNGbGV4T3JkZXIuc21dLCBbZmNGbGV4T3JkZXIubWRdLCBbZmNGbGV4T3JkZXIubGddLCBbZmNGbGV4T3JkZXIueGxdLFxuICAgIFtmY0ZsZXhPcmRlci5sdC1zbV0sIFtmY0ZsZXhPcmRlci5sdC1tZF0sIFtmY0ZsZXhPcmRlci5sdC1sZ10sIFtmY0ZsZXhPcmRlci5sdC14bF0sXG4gICAgW2ZjRmxleE9yZGVyLmd0LXhzXSwgW2ZjRmxleE9yZGVyLmd0LXNtXSwgW2ZjRmxleE9yZGVyLmd0LW1kXSwgW2ZjRmxleE9yZGVyLmd0LWxnXVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBGbGV4T3JkZXJEaXJlY3RpdmUgZXh0ZW5kcyBCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBmY1ZhbHVlcyA9IHt9O1xuXG4gIG9ic2VydmVyJCA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuXG4gIHByaXZhdGUgbGF5b3V0OiBMYXlvdXREaXJlY3RpdmU7XG5cbiAgQElucHV0KCdmY0ZsZXhPcmRlcicpICAgICAgIHNldCBvcmRlcih2YWwpICAgICB7IHRoaXMuZmNWYWx1ZXNbJ2FsbCddID0gdmFsOyB9XG4gIEBJbnB1dCgnZmNGbGV4T3JkZXIueHMnKSAgICBzZXQgb3JkZXJYcyh2YWwpICAgeyB0aGlzLmZjVmFsdWVzWyd4cyddID0gdmFsOyB9XG4gIEBJbnB1dCgnZmNGbGV4T3JkZXIuc20nKSAgICBzZXQgb3JkZXJTbSh2YWwpICAgeyB0aGlzLmZjVmFsdWVzWydzbSddID0gdmFsOyB9XG4gIEBJbnB1dCgnZmNGbGV4T3JkZXIubWQnKSAgICBzZXQgb3JkZXJNZCh2YWwpICAgeyB0aGlzLmZjVmFsdWVzWydtZCddID0gdmFsOyB9XG4gIEBJbnB1dCgnZmNGbGV4T3JkZXIubGcnKSAgICBzZXQgb3JkZXJMZyh2YWwpICAgeyB0aGlzLmZjVmFsdWVzWydsZyddID0gdmFsOyB9XG4gIEBJbnB1dCgnZmNGbGV4T3JkZXIueGwnKSAgICBzZXQgb3JkZXJYbCh2YWwpICAgeyB0aGlzLmZjVmFsdWVzWyd4bCddID0gdmFsOyB9XG5cbiAgQElucHV0KCdmY0ZsZXhPcmRlci5ndC14cycpIHNldCBvcmRlckd0WHModmFsKSB7IHRoaXMuZmNWYWx1ZXNbJ2d0LXhzJ10gPSB2YWw7IH1cbiAgQElucHV0KCdmY0ZsZXhPcmRlci5ndC1zbScpIHNldCBvcmRlckd0U20odmFsKSB7IHRoaXMuZmNWYWx1ZXNbJ2d0LXNtJ10gPSB2YWw7IH1cbiAgQElucHV0KCdmY0ZsZXhPcmRlci5ndC1tZCcpIHNldCBvcmRlckd0TWQodmFsKSB7IHRoaXMuZmNWYWx1ZXNbJ2d0LW1kJ10gPSB2YWw7IH1cbiAgQElucHV0KCdmY0ZsZXhPcmRlci5ndC1sZycpIHNldCBvcmRlckd0TGcodmFsKSB7IHRoaXMuZmNWYWx1ZXNbJ2d0LWxnJ10gPSB2YWw7IH1cblxuICBASW5wdXQoJ2ZjRmxleE9yZGVyLmx0LXNtJykgc2V0IG9yZGVyTHRTbSh2YWwpIHsgdGhpcy5mY1ZhbHVlc1snbHQtc20nXSA9IHZhbDsgfVxuICBASW5wdXQoJ2ZjRmxleE9yZGVyLmx0LW1kJykgc2V0IG9yZGVyTHRNZCh2YWwpIHsgdGhpcy5mY1ZhbHVlc1snbHQtbWQnXSA9IHZhbDsgfVxuICBASW5wdXQoJ2ZjRmxleE9yZGVyLmx0LWxnJykgc2V0IG9yZGVyTHRMZyh2YWwpIHsgdGhpcy5mY1ZhbHVlc1snbHQtbGcnXSA9IHZhbDsgfVxuICBASW5wdXQoJ2ZjRmxleE9yZGVyLmx0LXhsJykgc2V0IG9yZGVyTHRYbCh2YWwpIHsgdGhpcy5mY1ZhbHVlc1snbHQteGwnXSA9IHZhbDsgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHNlcnZpY2U6IEZsZXhDc3NTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgQFNraXBTZWxmKCkgbGF5b3V0OiBMYXlvdXREaXJlY3RpdmUsXG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYsIHJlbmRlcmVyKTtcblxuICAgIGlmIChsYXlvdXQgJiYgbGF5b3V0LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCA9PT0gdGhpcy5wYXJlbnRFbGVtZW50KSB7XG4gICAgICB0aGlzLmxheW91dCA9IGxheW91dDtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRlcGVuZHNPblBhcmVudExheW91dCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5yZWxvYWQoKTtcbiAgfVxuXG4gIHJlbG9hZCgpIHtcbiAgICBjb25zdCBjbGFzc05hbWVzID0gW107XG5cbiAgICB0aGlzLmJyZWFrcG9pbnRzLmZvckVhY2goYnJlYWtwb2ludCA9PiB7XG4gICAgICBjbGFzc05hbWVzLnB1c2goXG4gICAgICAgIHRoaXMuc2VydmljZS5hZGRGbGV4T3JkZXIodGhpcy5mY1ZhbHVlc1ticmVha3BvaW50XSwgYnJlYWtwb2ludClcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNldENsYXNzTmFtZXMoY2xhc3NOYW1lcyk7XG5cbiAgICB0aGlzLm9ic2VydmVyJC5uZXh0KHRoaXMuZmNWYWx1ZXMpO1xuICB9XG5cbiAgZGVwZW5kc09uUGFyZW50TGF5b3V0KCkge1xuICAgIGlmICh0aGlzLmxheW91dCkge1xuICAgICAgdGhpcy5sYXlvdXQuYWRkTmV3QnJlYWtwb2ludHModGhpcy5icmVha3BvaW50cywgJ3JvdycpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJyZWFrcG9pbnRzLmZvckVhY2goYnJlYWtwb2ludCA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5wYXJlbnRFbGVtZW50LCB0aGlzLnNlcnZpY2UuYWRkTGF5b3V0KCdyb3cnLCBicmVha3BvaW50KSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgcGFyZW50RWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIGdldCBicmVha3BvaW50cygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5mY1ZhbHVlcyk7XG4gIH1cbn1cbiJdfQ==