ngx-firebase-cms
Version:
Angular Content Management System using Google Firebase (Authentication, Storage & Firestore)
192 lines • 13.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component } from '@angular/core';
import { UnsubscriptionService } from '../../service/unsubscription.service';
import { FormBuilder, FormControl } from '@angular/forms';
import { AuthService } from '../../service/auth.service';
import { AngularFirestore } from '@angular/fire/firestore';
import { HelperService } from '../../service/helper.service';
import { mergeMap, map } from 'rxjs/operators';
var PostsComponent = /** @class */ (function () {
function PostsComponent(fb, unsubscription, auth, afs, helper) {
this.fb = fb;
this.unsubscription = unsubscription;
this.auth = auth;
this.afs = afs;
this.helper = helper;
this.header = [
{
label: "Title",
key: "title",
canFilter: true,
routerLink: "../posts/${$key}"
},
{
label: "Author",
key: "author",
pipe: "user",
pipeParameter: {
"keys": ["displayName"],
"separator": ","
},
canSort: false
},
{
label: "Last Update",
key: "updatedTime",
pipe: "date",
pipeParameter: "medium",
canSort: true,
}
];
this.showNewModal = false;
this.titlebar = {
title: "Pages",
description: "Page are building block of website",
breadcrumbs: [
{
title: "Pages",
icon: 'form'
}
]
};
this.form = this.fb.group({
'htmlContent': new FormControl('', [])
});
this.editorConfig = {
editable: true,
spellcheck: true,
height: '25rem',
minHeight: '5rem',
placeholder: 'Enter text here...',
translate: 'no',
uploadUrl: 'v1/images',
customClasses: [
{
name: "quote",
class: "quote",
},
{
name: 'redText',
class: 'redText'
},
{
name: "titleText",
class: "titleText",
tag: "h1",
},
]
};
}
/**
* @return {?}
*/
PostsComponent.prototype.submit = /**
* @return {?}
*/
function () {
console.log(this.form.value);
};
/**
* @return {?}
*/
PostsComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
this.items = this.auth.user$.pipe(mergeMap((/**
* @param {?} user
* @return {?}
*/
function (user) { return _this.afs.collection("posts", (/**
* @param {?} ref
* @return {?}
*/
function (ref) { return _this.helper.roleFilter(ref, user['roles'], user['uid'], "post"); })).snapshotChanges(); })), map((/**
* @param {?} actions
* @return {?}
*/
function (actions) { return actions.map((/**
* @param {?} action
* @return {?}
*/
function (action) { return (tslib_1.__assign({ $key: action.payload.doc.id }, action.payload.doc.data())); })); })));
};
/**
* @return {?}
*/
PostsComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () { };
/**
* @return {?}
*/
PostsComponent.prototype.openForm = /**
* @return {?}
*/
function () {
this.showNewModal = !this.showNewModal;
};
PostsComponent.decorators = [
{ type: Component, args: [{
selector: 'aq-posts',
template: "<aq-title-bar [data]=\"titlebar\"></aq-title-bar>\n<aq-table [data]=\"(items | async) || []\" [headers]=\"header\"></aq-table>\n\n<div class=\"container\">\n <nz-button-group>\n <button nz-button (click)=\"openForm()\"><i nz-icon nzType=\"plus\" nzTheme=\"outline\"></i> New</button>\n </nz-button-group>\n</div>\n\n\n<nz-drawer nzWidth=\"100%\" [nzVisible]=\"showNewModal\" nzTitle=\"New\" (nzOnClose)=\"showNewModal = !showNewModal\">\n\n<form nz-form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <aq-editor formControlName=\"htmlContent\" [config]=\"editorConfig\"></aq-editor>\n</form>\n\n\n{{ form.value.htmlContent }}\n\n</nz-drawer>\n\n",
styles: [""]
}] }
];
/** @nocollapse */
PostsComponent.ctorParameters = function () { return [
{ type: FormBuilder },
{ type: UnsubscriptionService },
{ type: AuthService },
{ type: AngularFirestore },
{ type: HelperService }
]; };
return PostsComponent;
}());
export { PostsComponent };
if (false) {
/** @type {?} */
PostsComponent.prototype.items;
/** @type {?} */
PostsComponent.prototype.header;
/** @type {?} */
PostsComponent.prototype.showNewModal;
/** @type {?} */
PostsComponent.prototype.titlebar;
/** @type {?} */
PostsComponent.prototype.form;
/** @type {?} */
PostsComponent.prototype.editorConfig;
/**
* @type {?}
* @private
*/
PostsComponent.prototype.fb;
/**
* @type {?}
* @private
*/
PostsComponent.prototype.unsubscription;
/**
* @type {?}
* @private
*/
PostsComponent.prototype.auth;
/**
* @type {?}
* @private
*/
PostsComponent.prototype.afs;
/**
* @type {?}
* @private
*/
PostsComponent.prototype.helper;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWZpcmViYXNlLWNtcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvcG9zdHMvcG9zdHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUsxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0M7SUE4RUUsd0JBQ1UsRUFBZSxFQUNmLGNBQXFDLEVBQ3JDLElBQWlCLEVBQ2pCLEdBQXFCLEVBQ3JCLE1BQXFCO1FBSnJCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBNUUvQixXQUFNLEdBQXVCO1lBQzNCO2dCQUNFLEtBQUssRUFBRSxPQUFPO2dCQUNkLEdBQUcsRUFBRSxPQUFPO2dCQUNaLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFVBQVUsRUFBRSxrQkFBa0I7YUFDL0I7WUFDRDtnQkFDRSxLQUFLLEVBQUUsUUFBUTtnQkFDZixHQUFHLEVBQUUsUUFBUTtnQkFDYixJQUFJLEVBQUUsTUFBTTtnQkFDWixhQUFhLEVBQUU7b0JBQ2IsTUFBTSxFQUFF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O0NBQUEsQUFwR0QsSUFvR0M7U0EvRlksY0FBYzs7O0lBQ3pCLCtCQUE4Qzs7SUFDOUMsZ0NBd0JDOztJQUVELHNDQUFvQjs7SUFDcEIsa0NBU0M7O0lBRUQsOEJBRUU7O0lBTUYsc0NBdUJFOzs7OztJQUdBLDRCQUF1Qjs7Ozs7SUFDdkIsd0NBQTZDOzs7OztJQUM3Qyw4QkFBeUI7Ozs7O0lBQ3pCLDZCQUE2Qjs7Ozs7SUFDN0IsZ0NBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZS9icmVhZGNydW1iJztcbmltcG9ydCB7IFVuc3Vic2NyaXB0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvdW5zdWJzY3JpcHRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUaXRsZWJhciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZS90aXRsZWJhcic7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL2VkaXRvcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQb3N0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL3Bvc3QnO1xuaW1wb3J0IHsgVGFibGVIZWFkZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UvdGFibGUnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZXN0b3JlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9maXJlc3RvcmUnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWVyZ2VNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXEtcG9zdHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG9zdHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wb3N0cy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUG9zdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGl0ZW1zOiBPYnNlcnZhYmxlPFBvc3RbXSB8IHsgJGtleTogc3RyaW5nIH1bXT5cbiAgaGVhZGVyOiBBcnJheTxUYWJsZUhlYWRlcj4gPSBbXG4gICAge1xuICAgICAgbGFiZWw6IFwiVGl0bGVcIixcbiAgICAgIGtleTogXCJ0aXRsZVwiLFxuICAgICAgY2FuRmlsdGVyOiB0cnVlLFxuICAgICAgcm91dGVyTGluazogXCIuLi9wb3N0cy8keyRrZXl9XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiBcIkF1dGhvclwiLFxuICAgICAga2V5OiBcImF1dGhvclwiLFxuICAgICAgcGlwZTogXCJ1c2VyXCIsXG4gICAgICBwaXBlUGFyYW1ldGVyOiB7XG4gICAgICAgIFwia2V5c1wiOiBbXCJkaXNwbGF5TmFtZVwiXSxcbiAgICAgICAgXCJzZXBhcmF0b3JcIjogXCIsXCJcbiAgICAgIH0sXG4gICAgICBjYW5Tb3J0OiBmYWxzZVxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6IFwiTGFzdCBVcGRhdGVcIixcbiAgICAgIGtleTogXCJ1cGRhdGVkVGltZVwiLFxuICAgICAgcGlwZTogXCJkYXRlXCIsXG4gICAgICBwaXBlUGFyYW1ldGVyOiBcIm1lZGl1bVwiLFxuICAgICAgY2FuU29ydDogdHJ1ZSxcbiAgICB9XG4gIF1cblxuICBzaG93TmV3TW9kYWwgPSBmYWxzZVxuICB0aXRsZWJhcjogVGl0bGViYXIgPSB7XG4gICAgdGl0bGU6IFwiUGFnZXNcIixcbiAgICBkZXNjcmlwdGlvbjogXCJQYWdlIGFyZSBidWlsZGluZyBibG9jayBvZiB3ZWJzaXRlXCIsXG4gICAgYnJlYWRjcnVtYnM6IFtcbiAgICAgIHtcbiAgICAgICAgdGl0bGU6IFwiUGFnZXNcIixcbiAgICAgICAgaWNvbjogJ2Zvcm0nXG4gICAgICB9XG4gICAgXVxuICB9XG5cbiAgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICdodG1sQ29udGVudCc6IG5ldyBGb3JtQ29udHJvbCgnJywgW10pXG4gIH0pXG5cbiAgc3VibWl0KCkge1xuICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybS52YWx1ZSlcbiAgfVxuXG4gIGVkaXRvckNvbmZpZzogQW5ndWxhckVkaXRvckNvbmZpZyA9IHtcbiAgICBlZGl0YWJsZTogdHJ1ZSxcbiAgICBzcGVsbGNoZWNrOiB0cnVlLFxuICAgIGhlaWdodDogJzI1cmVtJyxcbiAgICBtaW5IZWlnaHQ6ICc1cmVtJyxcbiAgICBwbGFjZWhvbGRlcjogJ0VudGVyIHRleHQgaGVyZS4uLicsXG4gICAgdHJhbnNsYXRlOiAnbm8nLFxuICAgIHVwbG9hZFVybDogJ3YxL2ltYWdlcycsXG4gICAgY3VzdG9tQ2xhc3NlczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcInF1b3RlXCIsXG4gICAgICAgIGNsYXNzOiBcInF1b3RlXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAncmVkVGV4dCcsXG4gICAgICAgIGNsYXNzOiAncmVkVGV4dCdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwidGl0bGVUZXh0XCIsXG4gICAgICAgIGNsYXNzOiBcInRpdGxlVGV4dFwiLFxuICAgICAgICB0YWc6IFwiaDFcIixcbiAgICAgIH0sXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgdW5zdWJzY3JpcHRpb246IFVuc3Vic2NyaXB0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWZzOiBBbmd1bGFyRmlyZXN0b3JlLFxuICAgIHByaXZhdGUgaGVscGVyOiBIZWxwZXJTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pdGVtcyA9IHRoaXMuYXV0aC51c2VyJC5waXBlKFxuICAgICAgbWVyZ2VNYXAodXNlciA9PiB0aGlzLmFmcy5jb2xsZWN0aW9uKGBwb3N0c2AsIHJlZiA9PiB0aGlzLmhlbHBlci5yb2xlRmlsdGVyKHJlZiwgdXNlclsncm9sZXMnXSwgdXNlclsndWlkJ10sIFwicG9zdFwiKSkuc25hcHNob3RDaGFuZ2VzKCkpLFxuICAgICAgbWFwKGFjdGlvbnMgPT4gYWN0aW9ucy5tYXAoYWN0aW9uID0+ICh7ICRrZXk6IGFjdGlvbi5wYXlsb2FkLmRvYy5pZCwgLi4uYWN0aW9uLnBheWxvYWQuZG9jLmRhdGEoKSB9KSkpLFxuICAgIClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkgeyB9XG5cbiAgb3BlbkZvcm0oKSB7XG4gICAgdGhpcy5zaG93TmV3TW9kYWwgPSAhdGhpcy5zaG93TmV3TW9kYWxcbiAgfVxuXG59XG4iXX0=