UNPKG

ngx-firebase-cms

Version:

Angular Content Management System using Google Firebase (Authentication, Storage & Firestore)

192 lines 13.9 kB
/** * @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=