ngx-form-draft 2.2.9 → 2.2.11

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.
@@ -1,67 +1,92 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class FormDraftService {
4
- constructor() {
5
- this.STORAGE_PREFIX = 'form_draft_';
6
- this.MAX_AGE_MS = 7 * 24 * 60 * 60 * 1000;
7
- }
8
- buildKey(formId) {
9
- return `${this.STORAGE_PREFIX}${formId}`;
10
- }
11
- save(formId, values) {
12
- try {
13
- const draft = { values, savedAt: Date.now(), formId };
14
- localStorage.setItem(this.buildKey(formId), JSON.stringify(draft));
15
- }
16
- catch (e) {
17
- console.warn('[FormDraft] Could not save draft:', e);
18
- }
19
- }
20
- load(formId) {
21
- try {
22
- const raw = localStorage.getItem(this.buildKey(formId));
23
- if (!raw)
24
- return null;
25
- const draft = JSON.parse(raw);
26
- if (Date.now() - draft.savedAt > this.MAX_AGE_MS) {
27
- this.clear(formId);
28
- return null;
29
- }
30
- return draft;
31
- }
32
- catch (e) {
33
- console.warn('[FormDraft] Could not load draft:', e);
34
- return null;
35
- }
36
- }
37
- clear(formId) {
38
- try {
39
- localStorage.removeItem(this.buildKey(formId));
40
- }
41
- catch (e) {
42
- console.warn('[FormDraft] Could not clear draft:', e);
43
- }
44
- }
45
- formatTimestamp(timestamp) {
46
- const seconds = Math.floor((Date.now() - timestamp) / 1000);
47
- if (seconds < 60)
48
- return 'just now';
49
- const minutes = Math.floor(seconds / 60);
50
- if (minutes < 60)
51
- return `${minutes}m ago`;
52
- const hours = Math.floor(minutes / 60);
53
- if (hours < 24)
54
- return `${hours}h ago`;
55
- const days = Math.floor(hours / 24);
56
- return `${days}d ago`;
57
- }
58
- }
59
- FormDraftService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormDraftService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
60
- FormDraftService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormDraftService, providedIn: 'root' });
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormDraftService, decorators: [{
62
- type: Injectable,
63
- args: [{
64
- providedIn: 'root'
65
- }]
66
- }] });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kcmFmdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm0tZHJhZnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVczQyxNQUFNLE9BQU8sZ0JBQWdCO0lBSDdCO1FBSW1CLG1CQUFjLEdBQUcsYUFBYSxDQUFDO1FBQy9CLGVBQVUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0tBa0R2RDtJQWhEUyxRQUFRLENBQUMsTUFBYztRQUM3QixPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQWMsRUFBRSxNQUEyQjtRQUM5QyxJQUFJO1lBQ0YsTUFBTSxLQUFLLEdBQWtCLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDckUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNwRTtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsTUFBYztRQUNqQixJQUFJO1lBQ0YsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLEdBQUc7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFFdEIsTUFBTSxLQUFLLEdBQWtCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0MsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNuQixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyRCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFjO1FBQ2xCLElBQUk7WUFDRixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUNoRDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsU0FBaUI7UUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1RCxJQUFJLE9BQU8sR0FBRyxFQUFFO1lBQUUsT0FBTyxVQUFVLENBQUM7UUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxPQUFPLEdBQUcsRUFBRTtZQUFFLE9BQU8sR0FBRyxPQUFPLE9BQU8sQ0FBQztRQUMzQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN2QyxJQUFJLEtBQUssR0FBRyxFQUFFO1lBQUUsT0FBTyxHQUFHLEtBQUssT0FBTyxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQztJQUN4QixDQUFDOzs2R0FuRFUsZ0JBQWdCO2lIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybURyYWZ0RGF0YSB7XG4gIHZhbHVlczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgc2F2ZWRBdDogbnVtYmVyO1xuICBmb3JtSWQ6IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRm9ybURyYWZ0U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgU1RPUkFHRV9QUkVGSVggPSAnZm9ybV9kcmFmdF8nO1xuICBwcml2YXRlIHJlYWRvbmx5IE1BWF9BR0VfTVMgPSA3ICogMjQgKiA2MCAqIDYwICogMTAwMDtcblxuICBwcml2YXRlIGJ1aWxkS2V5KGZvcm1JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5TVE9SQUdFX1BSRUZJWH0ke2Zvcm1JZH1gO1xuICB9XG5cbiAgc2F2ZShmb3JtSWQ6IHN0cmluZywgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRyYWZ0OiBGb3JtRHJhZnREYXRhID0geyB2YWx1ZXMsIHNhdmVkQXQ6IERhdGUubm93KCksIGZvcm1JZCB9O1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5idWlsZEtleShmb3JtSWQpLCBKU09OLnN0cmluZ2lmeShkcmFmdCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW0Zvcm1EcmFmdF0gQ291bGQgbm90IHNhdmUgZHJhZnQ6JywgZSk7XG4gICAgfVxuICB9XG5cbiAgbG9hZChmb3JtSWQ6IHN0cmluZyk6IEZvcm1EcmFmdERhdGEgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmF3ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5idWlsZEtleShmb3JtSWQpKTtcbiAgICAgIGlmICghcmF3KSByZXR1cm4gbnVsbDtcblxuICAgICAgY29uc3QgZHJhZnQ6IEZvcm1EcmFmdERhdGEgPSBKU09OLnBhcnNlKHJhdyk7XG4gICAgICBpZiAoRGF0ZS5ub3coKSAtIGRyYWZ0LnNhdmVkQXQgPiB0aGlzLk1BWF9BR0VfTVMpIHtcbiAgICAgICAgdGhpcy5jbGVhcihmb3JtSWQpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkcmFmdDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tGb3JtRHJhZnRdIENvdWxkIG5vdCBsb2FkIGRyYWZ0OicsIGUpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgY2xlYXIoZm9ybUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5idWlsZEtleShmb3JtSWQpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tGb3JtRHJhZnRdIENvdWxkIG5vdCBjbGVhciBkcmFmdDonLCBlKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXRUaW1lc3RhbXAodGltZXN0YW1wOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlY29uZHMgPSBNYXRoLmZsb29yKChEYXRlLm5vdygpIC0gdGltZXN0YW1wKSAvIDEwMDApO1xuICAgIGlmIChzZWNvbmRzIDwgNjApIHJldHVybiAnanVzdCBub3cnO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKHNlY29uZHMgLyA2MCk7XG4gICAgaWYgKG1pbnV0ZXMgPCA2MCkgcmV0dXJuIGAke21pbnV0ZXN9bSBhZ29gO1xuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihtaW51dGVzIC8gNjApO1xuICAgIGlmIChob3VycyA8IDI0KSByZXR1cm4gYCR7aG91cnN9aCBhZ29gO1xuICAgIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKGhvdXJzIC8gMjQpO1xuICAgIHJldHVybiBgJHtkYXlzfWQgYWdvYDtcbiAgfVxufVxuIl19
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FormDraftService {
4
+ constructor() {
5
+ this.STORAGE_PREFIX = 'form_draft_';
6
+ this.MAX_AGE_MS = 7 * 24 * 60 * 60 * 1000;
7
+ /** Registry of formId -> reset callback (used by directive to reset form + banner) */
8
+ this.resetRegistry = new Map();
9
+ }
10
+ /**
11
+ * Register a callback to reset the form and draft UI for the given formId.
12
+ * Called by the directive; apps should use clearAndReset(formId) instead.
13
+ */
14
+ registerReset(formId, resetFn) {
15
+ this.resetRegistry.set(formId, resetFn);
16
+ }
17
+ /**
18
+ * Unregister the reset callback for the given formId.
19
+ * Called by the directive on destroy.
20
+ */
21
+ unregisterReset(formId) {
22
+ this.resetRegistry.delete(formId);
23
+ }
24
+ /**
25
+ * Clear the draft from storage and, if a directive is registered for this formId,
26
+ * reset the form and dismiss the draft banner in one call.
27
+ * Use this on form submit to clear local storage and reset the form in one line.
28
+ */
29
+ clearAndReset(formId) {
30
+ this.clear(formId);
31
+ this.resetRegistry.get(formId)?.();
32
+ }
33
+ buildKey(formId) {
34
+ return `${this.STORAGE_PREFIX}${formId}`;
35
+ }
36
+ save(formId, values) {
37
+ try {
38
+ const draft = { values, savedAt: Date.now(), formId };
39
+ localStorage.setItem(this.buildKey(formId), JSON.stringify(draft));
40
+ }
41
+ catch (e) {
42
+ console.warn('[FormDraft] Could not save draft:', e);
43
+ }
44
+ }
45
+ load(formId) {
46
+ try {
47
+ const raw = localStorage.getItem(this.buildKey(formId));
48
+ if (!raw)
49
+ return null;
50
+ const draft = JSON.parse(raw);
51
+ if (Date.now() - draft.savedAt > this.MAX_AGE_MS) {
52
+ this.clear(formId);
53
+ return null;
54
+ }
55
+ return draft;
56
+ }
57
+ catch (e) {
58
+ console.warn('[FormDraft] Could not load draft:', e);
59
+ return null;
60
+ }
61
+ }
62
+ clear(formId) {
63
+ try {
64
+ localStorage.removeItem(this.buildKey(formId));
65
+ }
66
+ catch (e) {
67
+ console.warn('[FormDraft] Could not clear draft:', e);
68
+ }
69
+ }
70
+ formatTimestamp(timestamp) {
71
+ const seconds = Math.floor((Date.now() - timestamp) / 1000);
72
+ if (seconds < 60)
73
+ return 'just now';
74
+ const minutes = Math.floor(seconds / 60);
75
+ if (minutes < 60)
76
+ return `${minutes}m ago`;
77
+ const hours = Math.floor(minutes / 60);
78
+ if (hours < 24)
79
+ return `${hours}h ago`;
80
+ const days = Math.floor(hours / 24);
81
+ return `${days}d ago`;
82
+ }
83
+ }
84
+ FormDraftService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormDraftService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
85
+ FormDraftService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormDraftService, providedIn: 'root' });
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormDraftService, decorators: [{
87
+ type: Injectable,
88
+ args: [{
89
+ providedIn: 'root'
90
+ }]
91
+ }] });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kcmFmdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm0tZHJhZnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVczQyxNQUFNLE9BQU8sZ0JBQWdCO0lBSDdCO1FBSW1CLG1CQUFjLEdBQUcsYUFBYSxDQUFDO1FBQy9CLGVBQVUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRXRELHNGQUFzRjtRQUM5RSxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFzQixDQUFDO0tBNEV2RDtJQTFFQzs7O09BR0c7SUFDSCxhQUFhLENBQUMsTUFBYyxFQUFFLE9BQW1CO1FBQy9DLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLE1BQWM7UUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxhQUFhLENBQUMsTUFBYztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8sUUFBUSxDQUFDLE1BQWM7UUFDN0IsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFjLEVBQUUsTUFBMkI7UUFDOUMsSUFBSTtZQUNGLE1BQU0sS0FBSyxHQUFrQixFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3JFLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDcEU7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUNBQW1DLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQWM7UUFDakIsSUFBSTtZQUNGLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxHQUFHO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBRXRCLE1BQU0sS0FBSyxHQUFrQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkIsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUNBQW1DLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsTUFBYztRQUNsQixJQUFJO1lBQ0YsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDaEQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0NBQW9DLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDdkQ7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQWlCO1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDNUQsSUFBSSxPQUFPLEdBQUcsRUFBRTtZQUFFLE9BQU8sVUFBVSxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksT0FBTyxHQUFHLEVBQUU7WUFBRSxPQUFPLEdBQUcsT0FBTyxPQUFPLENBQUM7UUFDM0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdkMsSUFBSSxLQUFLLEdBQUcsRUFBRTtZQUFFLE9BQU8sR0FBRyxLQUFLLE9BQU8sQ0FBQztRQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNwQyxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7NkdBaEZVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtRHJhZnREYXRhIHtcclxuICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbiAgc2F2ZWRBdDogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtRHJhZnRTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IFNUT1JBR0VfUFJFRklYID0gJ2Zvcm1fZHJhZnRfJztcclxuICBwcml2YXRlIHJlYWRvbmx5IE1BWF9BR0VfTVMgPSA3ICogMjQgKiA2MCAqIDYwICogMTAwMDtcclxuXHJcbiAgLyoqIFJlZ2lzdHJ5IG9mIGZvcm1JZCAtPiByZXNldCBjYWxsYmFjayAodXNlZCBieSBkaXJlY3RpdmUgdG8gcmVzZXQgZm9ybSArIGJhbm5lcikgKi9cclxuICBwcml2YXRlIHJlc2V0UmVnaXN0cnkgPSBuZXcgTWFwPHN0cmluZywgKCkgPT4gdm9pZD4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXIgYSBjYWxsYmFjayB0byByZXNldCB0aGUgZm9ybSBhbmQgZHJhZnQgVUkgZm9yIHRoZSBnaXZlbiBmb3JtSWQuXHJcbiAgICogQ2FsbGVkIGJ5IHRoZSBkaXJlY3RpdmU7IGFwcHMgc2hvdWxkIHVzZSBjbGVhckFuZFJlc2V0KGZvcm1JZCkgaW5zdGVhZC5cclxuICAgKi9cclxuICByZWdpc3RlclJlc2V0KGZvcm1JZDogc3RyaW5nLCByZXNldEZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlc2V0UmVnaXN0cnkuc2V0KGZvcm1JZCwgcmVzZXRGbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbnJlZ2lzdGVyIHRoZSByZXNldCBjYWxsYmFjayBmb3IgdGhlIGdpdmVuIGZvcm1JZC5cclxuICAgKiBDYWxsZWQgYnkgdGhlIGRpcmVjdGl2ZSBvbiBkZXN0cm95LlxyXG4gICAqL1xyXG4gIHVucmVnaXN0ZXJSZXNldChmb3JtSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXNldFJlZ2lzdHJ5LmRlbGV0ZShmb3JtSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgdGhlIGRyYWZ0IGZyb20gc3RvcmFnZSBhbmQsIGlmIGEgZGlyZWN0aXZlIGlzIHJlZ2lzdGVyZWQgZm9yIHRoaXMgZm9ybUlkLFxyXG4gICAqIHJlc2V0IHRoZSBmb3JtIGFuZCBkaXNtaXNzIHRoZSBkcmFmdCBiYW5uZXIgaW4gb25lIGNhbGwuXHJcbiAgICogVXNlIHRoaXMgb24gZm9ybSBzdWJtaXQgdG8gY2xlYXIgbG9jYWwgc3RvcmFnZSBhbmQgcmVzZXQgdGhlIGZvcm0gaW4gb25lIGxpbmUuXHJcbiAgICovXHJcbiAgY2xlYXJBbmRSZXNldChmb3JtSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhcihmb3JtSWQpO1xyXG4gICAgdGhpcy5yZXNldFJlZ2lzdHJ5LmdldChmb3JtSWQpPy4oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRLZXkoZm9ybUlkOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuU1RPUkFHRV9QUkVGSVh9JHtmb3JtSWR9YDtcclxuICB9XHJcblxyXG4gIHNhdmUoZm9ybUlkOiBzdHJpbmcsIHZhbHVlczogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgZHJhZnQ6IEZvcm1EcmFmdERhdGEgPSB7IHZhbHVlcywgc2F2ZWRBdDogRGF0ZS5ub3coKSwgZm9ybUlkIH07XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuYnVpbGRLZXkoZm9ybUlkKSwgSlNPTi5zdHJpbmdpZnkoZHJhZnQpKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdbRm9ybURyYWZ0XSBDb3VsZCBub3Qgc2F2ZSBkcmFmdDonLCBlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWQoZm9ybUlkOiBzdHJpbmcpOiBGb3JtRHJhZnREYXRhIHwgbnVsbCB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByYXcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmJ1aWxkS2V5KGZvcm1JZCkpO1xyXG4gICAgICBpZiAoIXJhdykgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICBjb25zdCBkcmFmdDogRm9ybURyYWZ0RGF0YSA9IEpTT04ucGFyc2UocmF3KTtcclxuICAgICAgaWYgKERhdGUubm93KCkgLSBkcmFmdC5zYXZlZEF0ID4gdGhpcy5NQVhfQUdFX01TKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhcihmb3JtSWQpO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBkcmFmdDtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdbRm9ybURyYWZ0XSBDb3VsZCBub3QgbG9hZCBkcmFmdDonLCBlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhcihmb3JtSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5idWlsZEtleShmb3JtSWQpKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdbRm9ybURyYWZ0XSBDb3VsZCBub3QgY2xlYXIgZHJhZnQ6JywgZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JtYXRUaW1lc3RhbXAodGltZXN0YW1wOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoKERhdGUubm93KCkgLSB0aW1lc3RhbXApIC8gMTAwMCk7XHJcbiAgICBpZiAoc2Vjb25kcyA8IDYwKSByZXR1cm4gJ2p1c3Qgbm93JztcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKHNlY29uZHMgLyA2MCk7XHJcbiAgICBpZiAobWludXRlcyA8IDYwKSByZXR1cm4gYCR7bWludXRlc31tIGFnb2A7XHJcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IobWludXRlcyAvIDYwKTtcclxuICAgIGlmIChob3VycyA8IDI0KSByZXR1cm4gYCR7aG91cnN9aCBhZ29gO1xyXG4gICAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IoaG91cnMgLyAyNCk7XHJcbiAgICByZXR1cm4gYCR7ZGF5c31kIGFnb2A7XHJcbiAgfVxyXG59XHJcbiJdfQ==
package/esm2020/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- export * from './form-draft.directive';
2
- export * from './form-draft-banner.component';
3
- export * from './form-draft.service';
4
- export * from './ngx-form-draft.module';
1
+ export * from './form-draft.directive';
2
+ export * from './form-draft-banner.component';
3
+ export * from './form-draft.service';
4
+ export * from './ngx-form-draft.module';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9ybS1kcmFmdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWRyYWZ0LWJhbm5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWRyYWZ0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9uZ3gtZm9ybS1kcmFmdC5tb2R1bGUnO1xuIl19
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZvcm0tZHJhZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmd4LWZvcm0tZHJhZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -1,19 +1,19 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormDraftDirective } from './form-draft.directive';
4
- import { FormDraftBannerComponent } from './form-draft-banner.component';
5
- import * as i0 from "@angular/core";
6
- export class NgxFormDraftModule {
7
- }
8
- NgxFormDraftModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxFormDraftModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- NgxFormDraftModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NgxFormDraftModule, declarations: [FormDraftDirective, FormDraftBannerComponent], imports: [CommonModule], exports: [FormDraftDirective, FormDraftBannerComponent] });
10
- NgxFormDraftModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxFormDraftModule, imports: [CommonModule] });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxFormDraftModule, decorators: [{
12
- type: NgModule,
13
- args: [{
14
- declarations: [FormDraftDirective, FormDraftBannerComponent],
15
- imports: [CommonModule],
16
- exports: [FormDraftDirective, FormDraftBannerComponent],
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZvcm0tZHJhZnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25neC1mb3JtLWRyYWZ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFPekUsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQUpkLGtCQUFrQixFQUFFLHdCQUF3QixhQUNqRCxZQUFZLGFBQ1osa0JBQWtCLEVBQUUsd0JBQXdCO2dIQUUzQyxrQkFBa0IsWUFIbkIsWUFBWTsyRkFHWCxrQkFBa0I7a0JBTDlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsd0JBQXdCLENBQUM7b0JBQzVELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsd0JBQXdCLENBQUM7aUJBQ3hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtRHJhZnREaXJlY3RpdmUgfSBmcm9tICcuL2Zvcm0tZHJhZnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1EcmFmdEJhbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1kcmFmdC1iYW5uZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRm9ybURyYWZ0RGlyZWN0aXZlLCBGb3JtRHJhZnRCYW5uZXJDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0Zvcm1EcmFmdERpcmVjdGl2ZSwgRm9ybURyYWZ0QmFubmVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4Rm9ybURyYWZ0TW9kdWxlIHt9XG4iXX0=
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormDraftDirective } from './form-draft.directive';
4
+ import { FormDraftBannerComponent } from './form-draft-banner.component';
5
+ import * as i0 from "@angular/core";
6
+ export class NgxFormDraftModule {
7
+ }
8
+ NgxFormDraftModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxFormDraftModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ NgxFormDraftModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NgxFormDraftModule, declarations: [FormDraftDirective, FormDraftBannerComponent], imports: [CommonModule], exports: [FormDraftDirective, FormDraftBannerComponent] });
10
+ NgxFormDraftModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxFormDraftModule, imports: [CommonModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxFormDraftModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [FormDraftDirective, FormDraftBannerComponent],
15
+ imports: [CommonModule],
16
+ exports: [FormDraftDirective, FormDraftBannerComponent],
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZvcm0tZHJhZnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25neC1mb3JtLWRyYWZ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFPekUsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQUpkLGtCQUFrQixFQUFFLHdCQUF3QixhQUNqRCxZQUFZLGFBQ1osa0JBQWtCLEVBQUUsd0JBQXdCO2dIQUUzQyxrQkFBa0IsWUFIbkIsWUFBWTsyRkFHWCxrQkFBa0I7a0JBTDlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsd0JBQXdCLENBQUM7b0JBQzVELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsd0JBQXdCLENBQUM7aUJBQ3hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybURyYWZ0RGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLWRyYWZ0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEZvcm1EcmFmdEJhbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1kcmFmdC1iYW5uZXIuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbRm9ybURyYWZ0RGlyZWN0aXZlLCBGb3JtRHJhZnRCYW5uZXJDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtGb3JtRHJhZnREaXJlY3RpdmUsIEZvcm1EcmFmdEJhbm5lckNvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hGb3JtRHJhZnRNb2R1bGUge31cclxuIl19