@thecodeblogs/blog 0.20.5 → 0.20.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1419,10 +1419,19 @@ class EntryWysiwygComponent {
|
|
|
1419
1419
|
const savedEntry = localStorage.getItem(EntryCreatorComponent.CURRENT_ENTRY_KEY);
|
|
1420
1420
|
if (savedEntry) {
|
|
1421
1421
|
this.entry = new Entry(JSON.parse(savedEntry));
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1422
|
+
// Check if entry is already published, if it is, we'll remove it:
|
|
1423
|
+
this.entryService.getUnpublishedById(this.entry.id).subscribe(result => {
|
|
1424
|
+
const newValue = {
|
|
1425
|
+
'html': this.entryService.convertBlogToHtmlFormat(this.entry)
|
|
1426
|
+
};
|
|
1427
|
+
this.entry.slug = this.entryService.slugify(this.entry.title).toLowerCase();
|
|
1428
|
+
this.form.patchValue(newValue);
|
|
1429
|
+
}, error => {
|
|
1430
|
+
this.entry = null;
|
|
1431
|
+
localStorage.removeItem(EntryCreatorComponent.CURRENT_ENTRY_KEY);
|
|
1432
|
+
alert('The previously created post has been published and is no longer available.');
|
|
1433
|
+
this.seeEntries();
|
|
1434
|
+
});
|
|
1426
1435
|
}
|
|
1427
1436
|
else {
|
|
1428
1437
|
this.seeEntries();
|
|
@@ -1432,8 +1441,10 @@ class EntryWysiwygComponent {
|
|
|
1432
1441
|
.subscribe(value => {
|
|
1433
1442
|
var blogPost = value;
|
|
1434
1443
|
this.entry = this.entryService.convertHtmlToBlogFormat(this.entry, blogPost);
|
|
1435
|
-
this.entryService.
|
|
1444
|
+
this.entry.slug = this.entryService.slugify(this.entry.title).toLowerCase();
|
|
1445
|
+
this.entry.sort();
|
|
1436
1446
|
localStorage.setItem(EntryCreatorComponent.CURRENT_ENTRY_KEY, JSON.stringify(this.entry));
|
|
1447
|
+
this.entryService.currentlyEditedEntry.next(this.entry);
|
|
1437
1448
|
});
|
|
1438
1449
|
}
|
|
1439
1450
|
seeEntries() {
|
|
@@ -1969,7 +1980,7 @@ class SideNavigationComponent {
|
|
|
1969
1980
|
this.doSearch.emit(searchValue);
|
|
1970
1981
|
}
|
|
1971
1982
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: SideNavigationComponent, deps: [{ token: EntryService }, { token: i1$3.Router }, { token: IdentityService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1972
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: SideNavigationComponent, isStandalone: true, selector: "app-side-navigation", viewQueries: [{ propertyName: "divNav", first: true, predicate: ["navcontainer"], descendants: true }], ngImport: i0, template: "<div class=\"sidenav no-scrollbar\">\n <div style=\"margin-top: 20px;\">\n <mat-form-field style=\"width: 100%\">\n <mat-label>Search</mat-label>\n <input matInput [formControl]=\"searchControl\" (ngModelChange)=\"onSearchChange($event)\">\n </mat-form-field>\n </div>\n\n <div\n class=\"progress\"\n [hidden]=\"!loading\"\n >\n <mat-progress-spinner\n style=\"margin-left: 16px;\"\n [diameter]=20\n mode=\"indeterminate\"\n >\n </mat-progress-spinner>\n </div>\n\n <div #navcontainer class=\"navcontainer\"\n [@sideNavAnimation]=\"state\"\n >\n <mat-nav-list>\n @for(container of entriesByMonthAndYear; track container) {\n <h3>{{getMonthAndYearFromKey(container.month_year)}}</h3>\n @for(entry of container.entries; track entry.id) {\n <a mat-list-item href=\"javascript:void(0);\" (click)=\"routeTo(entry)\">{{entry.title}}</a>\n }\n }\n </mat-nav-list>\n\n <a\n class=\"sidelink\"\n *ngIf=\"this?.response?.next && !loading\"\n (click)=\"getMore()\"\n href=\"javascript:void(0);\">More...</a>\n </div>\n <ng-container *ngIf=\"identity?.id === 1\">\n <h2>Misc</h2>\n <mat-list>\n <a mat-list-item href=\"javascript:void(0);\" (click)=\"routeTo(null, 'create/v2(left-col:create//right-col:create)')\">Create</a>\n </mat-list>\n </ng-container>\n <h3 *ngIf=\"identity\">Logged in as {{identity?.email}}</h3>\n</div>\n\n", styles: [".progress{position:absolute;top:100px;left:0}.sidelink{padding-left:16px}.sidenav{position:relative;max-height:calc(100vh - 100px)}@media screen and (max-height: 560px){.sidenav{max-height:100vh}}h2,h3{margin-left:10px;justify-content:right}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i6$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i9$1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i9$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i9$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }], animations: [
|
|
1983
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: SideNavigationComponent, isStandalone: true, selector: "app-side-navigation", viewQueries: [{ propertyName: "divNav", first: true, predicate: ["navcontainer"], descendants: true }], ngImport: i0, template: "<div class=\"sidenav no-scrollbar\">\n <div style=\"margin-top: 20px;\">\n <mat-form-field style=\"width: 100%\">\n <mat-label>Search</mat-label>\n <input matInput [formControl]=\"searchControl\" (ngModelChange)=\"onSearchChange($event)\">\n </mat-form-field>\n </div>\n\n <div\n class=\"progress\"\n [hidden]=\"!loading\"\n >\n <mat-progress-spinner\n style=\"margin-left: 16px;\"\n [diameter]=20\n mode=\"indeterminate\"\n >\n </mat-progress-spinner>\n </div>\n\n <div #navcontainer class=\"navcontainer\"\n [@sideNavAnimation]=\"state\"\n >\n <mat-nav-list>\n @for(container of entriesByMonthAndYear; track container) {\n <h3 class=\"title\">{{getMonthAndYearFromKey(container.month_year)}}</h3>\n @for(entry of container.entries; track entry.id) {\n <a mat-list-item href=\"javascript:void(0);\" (click)=\"routeTo(entry)\">{{entry.title}}</a>\n }\n }\n </mat-nav-list>\n\n <a\n class=\"sidelink\"\n *ngIf=\"this?.response?.next && !loading\"\n (click)=\"getMore()\"\n href=\"javascript:void(0);\">More...</a>\n </div>\n <ng-container *ngIf=\"identity?.id === 1\">\n <h2 class=\"title\">Misc</h2>\n <mat-list>\n <a mat-list-item href=\"javascript:void(0);\" (click)=\"routeTo(null, 'create/v2(left-col:create//right-col:create)')\">Create</a>\n </mat-list>\n </ng-container>\n <h3 *ngIf=\"identity\">Logged in as {{identity?.email}}</h3>\n</div>\n\n", styles: [".progress{position:absolute;top:100px;left:0}.sidelink{padding-left:16px}.sidenav{position:relative;max-height:calc(100vh - 100px)}@media screen and (max-height: 560px){.sidenav{max-height:100vh}}.title{margin-top:10px}h2,h3{margin-left:10px;justify-content:right}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i6$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i9$1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i9$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i9$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }], animations: [
|
|
1973
1984
|
trigger('sideNavAnimation', [
|
|
1974
1985
|
state('in', style({ transform: 'translateX(0%)' })),
|
|
1975
1986
|
state('out', style({ transform: 'translateX(110%)' })),
|
|
@@ -2004,7 +2015,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImpor
|
|
|
2004
2015
|
animate('100ms ease-in', style({ transform: 'translateX(0%)' }))
|
|
2005
2016
|
])
|
|
2006
2017
|
]),
|
|
2007
|
-
], template: "<div class=\"sidenav no-scrollbar\">\n <div style=\"margin-top: 20px;\">\n <mat-form-field style=\"width: 100%\">\n <mat-label>Search</mat-label>\n <input matInput [formControl]=\"searchControl\" (ngModelChange)=\"onSearchChange($event)\">\n </mat-form-field>\n </div>\n\n <div\n class=\"progress\"\n [hidden]=\"!loading\"\n >\n <mat-progress-spinner\n style=\"margin-left: 16px;\"\n [diameter]=20\n mode=\"indeterminate\"\n >\n </mat-progress-spinner>\n </div>\n\n <div #navcontainer class=\"navcontainer\"\n [@sideNavAnimation]=\"state\"\n >\n <mat-nav-list>\n @for(container of entriesByMonthAndYear; track container) {\n <h3>{{getMonthAndYearFromKey(container.month_year)}}</h3>\n @for(entry of container.entries; track entry.id) {\n <a mat-list-item href=\"javascript:void(0);\" (click)=\"routeTo(entry)\">{{entry.title}}</a>\n }\n }\n </mat-nav-list>\n\n <a\n class=\"sidelink\"\n *ngIf=\"this?.response?.next && !loading\"\n (click)=\"getMore()\"\n href=\"javascript:void(0);\">More...</a>\n </div>\n <ng-container *ngIf=\"identity?.id === 1\">\n <h2>Misc</h2>\n <mat-list>\n <a mat-list-item href=\"javascript:void(0);\" (click)=\"routeTo(null, 'create/v2(left-col:create//right-col:create)')\">Create</a>\n </mat-list>\n </ng-container>\n <h3 *ngIf=\"identity\">Logged in as {{identity?.email}}</h3>\n</div>\n\n", styles: [".progress{position:absolute;top:100px;left:0}.sidelink{padding-left:16px}.sidenav{position:relative;max-height:calc(100vh - 100px)}@media screen and (max-height: 560px){.sidenav{max-height:100vh}}h2,h3{margin-left:10px;justify-content:right}\n"] }]
|
|
2018
|
+
], template: "<div class=\"sidenav no-scrollbar\">\n <div style=\"margin-top: 20px;\">\n <mat-form-field style=\"width: 100%\">\n <mat-label>Search</mat-label>\n <input matInput [formControl]=\"searchControl\" (ngModelChange)=\"onSearchChange($event)\">\n </mat-form-field>\n </div>\n\n <div\n class=\"progress\"\n [hidden]=\"!loading\"\n >\n <mat-progress-spinner\n style=\"margin-left: 16px;\"\n [diameter]=20\n mode=\"indeterminate\"\n >\n </mat-progress-spinner>\n </div>\n\n <div #navcontainer class=\"navcontainer\"\n [@sideNavAnimation]=\"state\"\n >\n <mat-nav-list>\n @for(container of entriesByMonthAndYear; track container) {\n <h3 class=\"title\">{{getMonthAndYearFromKey(container.month_year)}}</h3>\n @for(entry of container.entries; track entry.id) {\n <a mat-list-item href=\"javascript:void(0);\" (click)=\"routeTo(entry)\">{{entry.title}}</a>\n }\n }\n </mat-nav-list>\n\n <a\n class=\"sidelink\"\n *ngIf=\"this?.response?.next && !loading\"\n (click)=\"getMore()\"\n href=\"javascript:void(0);\">More...</a>\n </div>\n <ng-container *ngIf=\"identity?.id === 1\">\n <h2 class=\"title\">Misc</h2>\n <mat-list>\n <a mat-list-item href=\"javascript:void(0);\" (click)=\"routeTo(null, 'create/v2(left-col:create//right-col:create)')\">Create</a>\n </mat-list>\n </ng-container>\n <h3 *ngIf=\"identity\">Logged in as {{identity?.email}}</h3>\n</div>\n\n", styles: [".progress{position:absolute;top:100px;left:0}.sidelink{padding-left:16px}.sidenav{position:relative;max-height:calc(100vh - 100px)}@media screen and (max-height: 560px){.sidenav{max-height:100vh}}.title{margin-top:10px}h2,h3{margin-left:10px;justify-content:right}\n"] }]
|
|
2008
2019
|
}], ctorParameters: () => [{ type: EntryService }, { type: i1$3.Router }, { type: IdentityService }, { type: i0.Renderer2 }], propDecorators: { divNav: [{
|
|
2009
2020
|
type: ViewChild,
|
|
2010
2021
|
args: ['navcontainer', { static: false }]
|