@ngxs/form-plugin 3.8.1 → 3.8.2-dev.master-0fd1fe5

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,469 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@ngxs/store'), require('@angular/forms'), require('rxjs'), require('rxjs/operators')) :
3
- typeof define === 'function' && define.amd ? define('@ngxs/form-plugin', ['exports', '@angular/core', '@ngxs/store', '@angular/forms', 'rxjs', 'rxjs/operators'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.ngxs = global.ngxs || {}, global.ngxs["form-plugin"] = {}), global.ng.core, global["ngxs-store"], global.ng.forms, global.rxjs, global.rxjs.operators));
5
- })(this, (function (exports, i0, i1, i2, rxjs, operators) { 'use strict';
6
-
7
- function _interopNamespace(e) {
8
- if (e && e.__esModule) return e;
9
- var n = Object.create(null);
10
- if (e) {
11
- Object.keys(e).forEach(function (k) {
12
- if (k !== 'default') {
13
- var d = Object.getOwnPropertyDescriptor(e, k);
14
- Object.defineProperty(n, k, d.get ? d : {
15
- enumerable: true,
16
- get: function () { return e[k]; }
17
- });
18
- }
19
- });
20
- }
21
- n["default"] = e;
22
- return Object.freeze(n);
23
- }
24
-
25
- var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
26
- var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
27
- var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
28
-
29
- var UpdateFormStatus = /** @class */ (function () {
30
- function UpdateFormStatus(payload) {
31
- this.payload = payload;
32
- }
33
- Object.defineProperty(UpdateFormStatus, "type", {
34
- get: function () {
35
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
36
- return '[Forms] Update Form Status';
37
- },
38
- enumerable: false,
39
- configurable: true
40
- });
41
- return UpdateFormStatus;
42
- }());
43
- var UpdateFormValue = /** @class */ (function () {
44
- function UpdateFormValue(payload) {
45
- this.payload = payload;
46
- }
47
- Object.defineProperty(UpdateFormValue, "type", {
48
- get: function () {
49
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
50
- return '[Forms] Update Form Value';
51
- },
52
- enumerable: false,
53
- configurable: true
54
- });
55
- return UpdateFormValue;
56
- }());
57
- var UpdateForm = /** @class */ (function () {
58
- function UpdateForm(payload) {
59
- this.payload = payload;
60
- }
61
- Object.defineProperty(UpdateForm, "type", {
62
- get: function () {
63
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
64
- return '[Forms] Update Form';
65
- },
66
- enumerable: false,
67
- configurable: true
68
- });
69
- return UpdateForm;
70
- }());
71
- var UpdateFormDirty = /** @class */ (function () {
72
- function UpdateFormDirty(payload) {
73
- this.payload = payload;
74
- }
75
- Object.defineProperty(UpdateFormDirty, "type", {
76
- get: function () {
77
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
78
- return '[Forms] Update Form Dirty';
79
- },
80
- enumerable: false,
81
- configurable: true
82
- });
83
- return UpdateFormDirty;
84
- }());
85
- var SetFormDirty = /** @class */ (function () {
86
- function SetFormDirty(payload) {
87
- this.payload = payload;
88
- }
89
- Object.defineProperty(SetFormDirty, "type", {
90
- get: function () {
91
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
92
- return '[Forms] Set Form Dirty';
93
- },
94
- enumerable: false,
95
- configurable: true
96
- });
97
- return SetFormDirty;
98
- }());
99
- var SetFormPristine = /** @class */ (function () {
100
- function SetFormPristine(payload) {
101
- this.payload = payload;
102
- }
103
- Object.defineProperty(SetFormPristine, "type", {
104
- get: function () {
105
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
106
- return '[Forms] Set Form Pristine';
107
- },
108
- enumerable: false,
109
- configurable: true
110
- });
111
- return SetFormPristine;
112
- }());
113
- var UpdateFormErrors = /** @class */ (function () {
114
- function UpdateFormErrors(payload) {
115
- this.payload = payload;
116
- }
117
- Object.defineProperty(UpdateFormErrors, "type", {
118
- get: function () {
119
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
120
- return '[Forms] Update Form Errors';
121
- },
122
- enumerable: false,
123
- configurable: true
124
- });
125
- return UpdateFormErrors;
126
- }());
127
- var SetFormDisabled = /** @class */ (function () {
128
- function SetFormDisabled(payload) {
129
- this.payload = payload;
130
- }
131
- Object.defineProperty(SetFormDisabled, "type", {
132
- get: function () {
133
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
134
- return '[Forms] Set Form Disabled';
135
- },
136
- enumerable: false,
137
- configurable: true
138
- });
139
- return SetFormDisabled;
140
- }());
141
- var SetFormEnabled = /** @class */ (function () {
142
- function SetFormEnabled(payload) {
143
- this.payload = payload;
144
- }
145
- Object.defineProperty(SetFormEnabled, "type", {
146
- get: function () {
147
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
148
- return '[Forms] Set Form Enabled';
149
- },
150
- enumerable: false,
151
- configurable: true
152
- });
153
- return SetFormEnabled;
154
- }());
155
- var ResetForm = /** @class */ (function () {
156
- function ResetForm(payload) {
157
- this.payload = payload;
158
- }
159
- Object.defineProperty(ResetForm, "type", {
160
- get: function () {
161
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
162
- return '[Forms] Reset Form';
163
- },
164
- enumerable: false,
165
- configurable: true
166
- });
167
- return ResetForm;
168
- }());
169
-
170
- var NgxsFormPlugin = /** @class */ (function () {
171
- function NgxsFormPlugin() {
172
- }
173
- NgxsFormPlugin.prototype.handle = function (state, event, next) {
174
- var type = i1.getActionTypeFromInstance(event);
175
- var nextState = state;
176
- if (type === UpdateFormValue.type || type === UpdateForm.type || type === ResetForm.type) {
177
- var value = event.payload.value;
178
- var payloadValue = Array.isArray(value)
179
- ? value.slice()
180
- : isObjectLike(value)
181
- ? Object.assign({}, value) : value;
182
- var path = this.joinPathWithPropertyPath(event);
183
- nextState = i1.setValue(nextState, path, payloadValue);
184
- }
185
- if (type === ResetForm.type) {
186
- var model = i1.getValue(nextState, event.payload.path + ".model");
187
- nextState = i1.setValue(nextState, "" + event.payload.path, { model: model });
188
- }
189
- if (type === UpdateFormStatus.type || type === UpdateForm.type) {
190
- nextState = i1.setValue(nextState, event.payload.path + ".status", event.payload.status);
191
- }
192
- if (type === UpdateFormErrors.type || type === UpdateForm.type) {
193
- nextState = i1.setValue(nextState, event.payload.path + ".errors", Object.assign({}, event.payload.errors));
194
- }
195
- if (type === UpdateFormDirty.type || type === UpdateForm.type) {
196
- nextState = i1.setValue(nextState, event.payload.path + ".dirty", event.payload.dirty);
197
- }
198
- if (type === SetFormDirty.type) {
199
- nextState = i1.setValue(nextState, event.payload + ".dirty", true);
200
- }
201
- if (type === SetFormPristine.type) {
202
- nextState = i1.setValue(nextState, event.payload + ".dirty", false);
203
- }
204
- if (type === SetFormDisabled.type) {
205
- nextState = i1.setValue(nextState, event.payload + ".disabled", true);
206
- }
207
- if (type === SetFormEnabled.type) {
208
- nextState = i1.setValue(nextState, event.payload + ".disabled", false);
209
- }
210
- return next(nextState, event);
211
- };
212
- NgxsFormPlugin.prototype.joinPathWithPropertyPath = function (_a) {
213
- var payload = _a.payload;
214
- var path = payload.path + ".model";
215
- if (payload.propertyPath) {
216
- path += "." + payload.propertyPath;
217
- }
218
- return path;
219
- };
220
- return NgxsFormPlugin;
221
- }());
222
- /** @nocollapse */ NgxsFormPlugin.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsFormPlugin, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
223
- /** @nocollapse */ NgxsFormPlugin.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsFormPlugin });
224
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsFormPlugin, decorators: [{
225
- type: i0.Injectable
226
- }] });
227
- function isObjectLike(target) {
228
- return target !== null && typeof target === 'object';
229
- }
230
-
231
- var FormDirective = /** @class */ (function () {
232
- function FormDirective(_actions$, _store, _formGroupDirective, _cd) {
233
- this._actions$ = _actions$;
234
- this._store = _store;
235
- this._formGroupDirective = _formGroupDirective;
236
- this._cd = _cd;
237
- this.path = null;
238
- this._debounce = 100;
239
- this._clearDestroy = false;
240
- this._updating = false;
241
- this._destroy$ = new rxjs.Subject();
242
- }
243
- Object.defineProperty(FormDirective.prototype, "debounce", {
244
- get: function () {
245
- return this._debounce;
246
- },
247
- set: function (debounce) {
248
- this._debounce = Number(debounce);
249
- },
250
- enumerable: false,
251
- configurable: true
252
- });
253
- Object.defineProperty(FormDirective.prototype, "clearDestroy", {
254
- get: function () {
255
- return this._clearDestroy;
256
- },
257
- set: function (val) {
258
- this._clearDestroy = val != null && "" + val !== 'false';
259
- },
260
- enumerable: false,
261
- configurable: true
262
- });
263
- FormDirective.prototype.ngOnInit = function () {
264
- var _this = this;
265
- this._actions$
266
- .pipe(i1.ofActionDispatched(ResetForm), operators.filter(function (action) { return action.payload.path === _this.path; }), operators.takeUntil(this._destroy$))
267
- .subscribe(function (_a) {
268
- var value = _a.payload.value;
269
- _this.form.reset(value);
270
- _this.updateFormStateWithRawValue(true);
271
- _this._cd.markForCheck();
272
- });
273
- this.getStateStream(this.path + ".model").subscribe(function (model) {
274
- if (_this._updating || !model) {
275
- return;
276
- }
277
- _this.form.patchValue(model);
278
- _this._cd.markForCheck();
279
- });
280
- this.getStateStream(this.path + ".dirty").subscribe(function (dirty) {
281
- if (_this.form.dirty === dirty || typeof dirty !== 'boolean') {
282
- return;
283
- }
284
- if (dirty) {
285
- _this.form.markAsDirty();
286
- }
287
- else {
288
- _this.form.markAsPristine();
289
- }
290
- _this._cd.markForCheck();
291
- });
292
- // On first state change, sync form model, status and dirty with state
293
- this._store
294
- .selectOnce(function (state) { return i1.getValue(state, _this.path); })
295
- .subscribe(function () {
296
- _this._store.dispatch([
297
- new UpdateFormValue({
298
- path: _this.path,
299
- value: _this.form.getRawValue()
300
- }),
301
- new UpdateFormStatus({
302
- path: _this.path,
303
- status: _this.form.status
304
- }),
305
- new UpdateFormDirty({
306
- path: _this.path,
307
- dirty: _this.form.dirty
308
- })
309
- ]);
310
- });
311
- this.getStateStream(this.path + ".disabled").subscribe(function (disabled) {
312
- if (_this.form.disabled === disabled || typeof disabled !== 'boolean') {
313
- return;
314
- }
315
- if (disabled) {
316
- _this.form.disable();
317
- }
318
- else {
319
- _this.form.enable();
320
- }
321
- _this._cd.markForCheck();
322
- });
323
- this._formGroupDirective
324
- .valueChanges.pipe(operators.distinctUntilChanged(function (a, b) { return JSON.stringify(a) === JSON.stringify(b); }), this.debounceChange())
325
- .subscribe(function () {
326
- _this.updateFormStateWithRawValue();
327
- });
328
- this._formGroupDirective
329
- .statusChanges.pipe(operators.distinctUntilChanged(), this.debounceChange())
330
- .subscribe(function (status) {
331
- _this._store.dispatch(new UpdateFormStatus({
332
- status: status,
333
- path: _this.path
334
- }));
335
- });
336
- };
337
- FormDirective.prototype.updateFormStateWithRawValue = function (withFormStatus) {
338
- var _this = this;
339
- if (this._updating)
340
- return;
341
- var value = this._formGroupDirective.control.getRawValue();
342
- var actions = [
343
- new UpdateFormValue({
344
- path: this.path,
345
- value: value
346
- }),
347
- new UpdateFormDirty({
348
- path: this.path,
349
- dirty: this._formGroupDirective.dirty
350
- }),
351
- new UpdateFormErrors({
352
- path: this.path,
353
- errors: this._formGroupDirective.errors
354
- })
355
- ];
356
- if (withFormStatus) {
357
- actions.push(new UpdateFormStatus({
358
- path: this.path,
359
- status: this._formGroupDirective.status
360
- }));
361
- }
362
- this._updating = true;
363
- this._store.dispatch(actions).subscribe({
364
- error: function () { return (_this._updating = false); },
365
- complete: function () { return (_this._updating = false); }
366
- });
367
- };
368
- FormDirective.prototype.ngOnDestroy = function () {
369
- this._destroy$.next();
370
- if (this.clearDestroy) {
371
- this._store.dispatch(new UpdateForm({
372
- path: this.path,
373
- value: null,
374
- dirty: null,
375
- status: null,
376
- errors: null
377
- }));
378
- }
379
- };
380
- FormDirective.prototype.debounceChange = function () {
381
- var _this = this;
382
- var skipDebounceTime = this._formGroupDirective.control.updateOn !== 'change' || this._debounce < 0;
383
- return skipDebounceTime
384
- ? function (change) { return change.pipe(operators.takeUntil(_this._destroy$)); }
385
- : function (change) { return change.pipe(operators.debounceTime(_this._debounce), operators.takeUntil(_this._destroy$)); };
386
- };
387
- Object.defineProperty(FormDirective.prototype, "form", {
388
- get: function () {
389
- return this._formGroupDirective.form;
390
- },
391
- enumerable: false,
392
- configurable: true
393
- });
394
- FormDirective.prototype.getStateStream = function (path) {
395
- return this._store.select(function (state) { return i1.getValue(state, path); }).pipe(operators.takeUntil(this._destroy$));
396
- };
397
- return FormDirective;
398
- }());
399
- /** @nocollapse */ FormDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FormDirective, deps: [{ token: i1__namespace.Actions }, { token: i1__namespace.Store }, { token: i2__namespace.FormGroupDirective }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Directive });
400
- /** @nocollapse */ FormDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: FormDirective, selector: "[ngxsForm]", inputs: { path: ["ngxsForm", "path"], debounce: ["ngxsFormDebounce", "debounce"], clearDestroy: ["ngxsFormClearOnDestroy", "clearDestroy"] }, ngImport: i0__namespace });
401
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FormDirective, decorators: [{
402
- type: i0.Directive,
403
- args: [{ selector: '[ngxsForm]' }]
404
- }], ctorParameters: function () { return [{ type: i1__namespace.Actions }, { type: i1__namespace.Store }, { type: i2__namespace.FormGroupDirective }, { type: i0__namespace.ChangeDetectorRef }]; }, propDecorators: { path: [{
405
- type: i0.Input,
406
- args: ['ngxsForm']
407
- }], debounce: [{
408
- type: i0.Input,
409
- args: ['ngxsFormDebounce']
410
- }], clearDestroy: [{
411
- type: i0.Input,
412
- args: ['ngxsFormClearOnDestroy']
413
- }] } });
414
-
415
- var NgxsFormPluginModule = /** @class */ (function () {
416
- function NgxsFormPluginModule() {
417
- }
418
- NgxsFormPluginModule.forRoot = function () {
419
- return {
420
- ngModule: NgxsFormPluginModule,
421
- providers: [
422
- {
423
- provide: i1.NGXS_PLUGINS,
424
- useClass: NgxsFormPlugin,
425
- multi: true
426
- }
427
- ]
428
- };
429
- };
430
- return NgxsFormPluginModule;
431
- }());
432
- /** @nocollapse */ NgxsFormPluginModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsFormPluginModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
433
- /** @nocollapse */ NgxsFormPluginModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsFormPluginModule, declarations: [FormDirective], imports: [i2.ReactiveFormsModule], exports: [FormDirective] });
434
- /** @nocollapse */ NgxsFormPluginModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsFormPluginModule, imports: [[i2.ReactiveFormsModule]] });
435
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsFormPluginModule, decorators: [{
436
- type: i0.NgModule,
437
- args: [{
438
- imports: [i2.ReactiveFormsModule],
439
- declarations: [FormDirective],
440
- exports: [FormDirective]
441
- }]
442
- }] });
443
-
444
- /**
445
- * The public api for consumers of @ngxs/form-plugin
446
- */
447
-
448
- /**
449
- * Generated bundle index. Do not edit.
450
- */
451
-
452
- exports.NgxsFormPlugin = NgxsFormPlugin;
453
- exports.NgxsFormPluginModule = NgxsFormPluginModule;
454
- exports.ResetForm = ResetForm;
455
- exports.SetFormDirty = SetFormDirty;
456
- exports.SetFormDisabled = SetFormDisabled;
457
- exports.SetFormEnabled = SetFormEnabled;
458
- exports.SetFormPristine = SetFormPristine;
459
- exports.UpdateForm = UpdateForm;
460
- exports.UpdateFormDirty = UpdateFormDirty;
461
- exports.UpdateFormErrors = UpdateFormErrors;
462
- exports.UpdateFormStatus = UpdateFormStatus;
463
- exports.UpdateFormValue = UpdateFormValue;
464
- exports["ɵFormDirective"] = FormDirective;
465
-
466
- Object.defineProperty(exports, '__esModule', { value: true });
467
-
468
- }));
469
- //# sourceMappingURL=ngxs-form-plugin.umd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ngxs-form-plugin.umd.js","sources":["../../../packages/form-plugin/src/actions.ts","../../../packages/form-plugin/src/form.plugin.ts","../../../packages/form-plugin/src/directive.ts","../../../packages/form-plugin/src/form.module.ts","../../../packages/form-plugin/index.ts","../../../packages/form-plugin/ngxs-form-plugin.ts"],"sourcesContent":["export class UpdateFormStatus {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '[Forms] Update Form Status';\n }\n constructor(\n public payload: {\n status: string | null;\n path: string;\n }\n ) {}\n}\n\nexport class UpdateFormValue {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '[Forms] Update Form Value';\n }\n constructor(public payload: { value: any; path: string; propertyPath?: string }) {}\n}\n\nexport class UpdateForm {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '[Forms] Update Form';\n }\n constructor(\n public payload: {\n value: any;\n errors: { [k: string]: string } | null;\n dirty: boolean | null;\n status: string | null;\n path: string;\n }\n ) {}\n}\n\nexport class UpdateFormDirty {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '[Forms] Update Form Dirty';\n }\n constructor(public payload: { dirty: boolean | null; path: string }) {}\n}\n\nexport class SetFormDirty {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '[Forms] Set Form Dirty';\n }\n constructor(public payload: string) {}\n}\n\nexport class SetFormPristine {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '[Forms] Set Form Pristine';\n }\n constructor(public payload: string) {}\n}\n\nexport class UpdateFormErrors {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '[Forms] Update Form Errors';\n }\n constructor(public payload: { errors: { [k: string]: string } | null; path: string }) {}\n}\n\nexport class SetFormDisabled {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '[Forms] Set Form Disabled';\n }\n constructor(public payload: string) {}\n}\n\nexport class SetFormEnabled {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '[Forms] Set Form Enabled';\n }\n constructor(public payload: string) {}\n}\n\nexport class ResetForm {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '[Forms] Reset Form';\n }\n constructor(public payload: { path: string; value?: any }) {}\n}\n","import { Injectable } from '@angular/core';\nimport {\n getActionTypeFromInstance,\n getValue,\n NgxsNextPluginFn,\n NgxsPlugin,\n setValue\n} from '@ngxs/store';\nimport {\n ResetForm,\n SetFormDirty,\n SetFormDisabled,\n SetFormEnabled,\n SetFormPristine,\n UpdateForm,\n UpdateFormDirty,\n UpdateFormErrors,\n UpdateFormStatus,\n UpdateFormValue\n} from './actions';\n\n@Injectable()\nexport class NgxsFormPlugin implements NgxsPlugin {\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n const type = getActionTypeFromInstance(event);\n\n let nextState = state;\n\n if (type === UpdateFormValue.type || type === UpdateForm.type || type === ResetForm.type) {\n const { value } = event.payload;\n const payloadValue = Array.isArray(value)\n ? value.slice()\n : isObjectLike(value)\n ? { ...value }\n : value;\n const path = this.joinPathWithPropertyPath(event);\n nextState = setValue(nextState, path, payloadValue);\n }\n\n if (type === ResetForm.type) {\n const model = getValue(nextState, `${event.payload.path}.model`);\n nextState = setValue(nextState, `${event.payload.path}`, { model: model });\n }\n\n if (type === UpdateFormStatus.type || type === UpdateForm.type) {\n nextState = setValue(nextState, `${event.payload.path}.status`, event.payload.status);\n }\n\n if (type === UpdateFormErrors.type || type === UpdateForm.type) {\n nextState = setValue(nextState, `${event.payload.path}.errors`, {\n ...event.payload.errors\n });\n }\n\n if (type === UpdateFormDirty.type || type === UpdateForm.type) {\n nextState = setValue(nextState, `${event.payload.path}.dirty`, event.payload.dirty);\n }\n\n if (type === SetFormDirty.type) {\n nextState = setValue(nextState, `${event.payload}.dirty`, true);\n }\n\n if (type === SetFormPristine.type) {\n nextState = setValue(nextState, `${event.payload}.dirty`, false);\n }\n\n if (type === SetFormDisabled.type) {\n nextState = setValue(nextState, `${event.payload}.disabled`, true);\n }\n\n if (type === SetFormEnabled.type) {\n nextState = setValue(nextState, `${event.payload}.disabled`, false);\n }\n\n return next(nextState, event);\n }\n\n private joinPathWithPropertyPath({ payload }: UpdateFormValue): string {\n let path = `${payload.path}.model`;\n\n if (payload.propertyPath) {\n path += `.${payload.propertyPath}`;\n }\n\n return path;\n }\n}\n\nfunction isObjectLike(target: unknown): target is object {\n return target !== null && typeof target === 'object';\n}\n","import { ChangeDetectorRef, Directive, Input, OnDestroy, OnInit } from '@angular/core';\nimport { FormGroup, FormGroupDirective } from '@angular/forms';\nimport { Actions, getValue, ofActionDispatched, Store } from '@ngxs/store';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, takeUntil } from 'rxjs/operators';\nimport {\n ResetForm,\n UpdateForm,\n UpdateFormDirty,\n UpdateFormErrors,\n UpdateFormStatus,\n UpdateFormValue\n} from './actions';\n\n@Directive({ selector: '[ngxsForm]' })\nexport class FormDirective implements OnInit, OnDestroy {\n @Input('ngxsForm')\n path: string = null!;\n\n @Input('ngxsFormDebounce')\n set debounce(debounce: string | number) {\n this._debounce = Number(debounce);\n }\n get debounce() {\n return this._debounce;\n }\n private _debounce = 100;\n\n @Input('ngxsFormClearOnDestroy')\n set clearDestroy(val: boolean) {\n this._clearDestroy = val != null && `${val}` !== 'false';\n }\n get clearDestroy(): boolean {\n return this._clearDestroy;\n }\n private _clearDestroy = false;\n\n private _updating = false;\n\n private readonly _destroy$ = new Subject<void>();\n\n constructor(\n private _actions$: Actions,\n private _store: Store,\n private _formGroupDirective: FormGroupDirective,\n private _cd: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n this._actions$\n .pipe(\n ofActionDispatched(ResetForm),\n filter((action: ResetForm) => action.payload.path === this.path),\n takeUntil(this._destroy$)\n )\n .subscribe(({ payload: { value } }: ResetForm) => {\n this.form.reset(value);\n this.updateFormStateWithRawValue(true);\n this._cd.markForCheck();\n });\n\n this.getStateStream(`${this.path}.model`).subscribe(model => {\n if (this._updating || !model) {\n return;\n }\n\n this.form.patchValue(model);\n this._cd.markForCheck();\n });\n\n this.getStateStream(`${this.path}.dirty`).subscribe(dirty => {\n if (this.form.dirty === dirty || typeof dirty !== 'boolean') {\n return;\n }\n\n if (dirty) {\n this.form.markAsDirty();\n } else {\n this.form.markAsPristine();\n }\n\n this._cd.markForCheck();\n });\n\n // On first state change, sync form model, status and dirty with state\n this._store\n .selectOnce(state => getValue(state, this.path))\n .subscribe(() => {\n this._store.dispatch([\n new UpdateFormValue({\n path: this.path,\n value: this.form.getRawValue()\n }),\n new UpdateFormStatus({\n path: this.path,\n status: this.form.status\n }),\n new UpdateFormDirty({\n path: this.path,\n dirty: this.form.dirty\n })\n ]);\n });\n\n this.getStateStream(`${this.path}.disabled`).subscribe(disabled => {\n if (this.form.disabled === disabled || typeof disabled !== 'boolean') {\n return;\n }\n\n if (disabled) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n\n this._cd.markForCheck();\n });\n\n this._formGroupDirective\n .valueChanges!.pipe(\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n this.debounceChange()\n )\n .subscribe(() => {\n this.updateFormStateWithRawValue();\n });\n\n this._formGroupDirective\n .statusChanges!.pipe(distinctUntilChanged(), this.debounceChange())\n .subscribe((status: string) => {\n this._store.dispatch(\n new UpdateFormStatus({\n status,\n path: this.path\n })\n );\n });\n }\n\n updateFormStateWithRawValue(withFormStatus?: boolean) {\n if (this._updating) return;\n\n const value = this._formGroupDirective.control.getRawValue();\n\n const actions: any[] = [\n new UpdateFormValue({\n path: this.path,\n value\n }),\n new UpdateFormDirty({\n path: this.path,\n dirty: this._formGroupDirective.dirty\n }),\n new UpdateFormErrors({\n path: this.path,\n errors: this._formGroupDirective.errors\n })\n ];\n\n if (withFormStatus) {\n actions.push(\n new UpdateFormStatus({\n path: this.path,\n status: this._formGroupDirective.status\n })\n );\n }\n\n this._updating = true;\n this._store.dispatch(actions).subscribe({\n error: () => (this._updating = false),\n complete: () => (this._updating = false)\n });\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n\n if (this.clearDestroy) {\n this._store.dispatch(\n new UpdateForm({\n path: this.path,\n value: null,\n dirty: null,\n status: null,\n errors: null\n })\n );\n }\n }\n\n private debounceChange() {\n const skipDebounceTime =\n this._formGroupDirective.control.updateOn !== 'change' || this._debounce < 0;\n\n return skipDebounceTime\n ? (change: Observable<any>) => change.pipe(takeUntil(this._destroy$))\n : (change: Observable<any>) =>\n change.pipe(debounceTime(this._debounce), takeUntil(this._destroy$));\n }\n\n private get form(): FormGroup {\n return this._formGroupDirective.form;\n }\n\n private getStateStream(path: string) {\n return this._store.select(state => getValue(state, path)).pipe(takeUntil(this._destroy$));\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { NGXS_PLUGINS } from '@ngxs/store';\nimport { NgxsFormPlugin } from './form.plugin';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormDirective } from './directive';\n\n@NgModule({\n imports: [ReactiveFormsModule],\n declarations: [FormDirective],\n exports: [FormDirective]\n})\nexport class NgxsFormPluginModule {\n static forRoot(): ModuleWithProviders<NgxsFormPluginModule> {\n return {\n ngModule: NgxsFormPluginModule,\n providers: [\n {\n provide: NGXS_PLUGINS,\n useClass: NgxsFormPlugin,\n multi: true\n }\n ]\n };\n }\n}\n","/**\n * The public api for consumers of @ngxs/form-plugin\n */\nexport * from './src/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getActionTypeFromInstance","setValue","getValue","i0","Injectable","Subject","ofActionDispatched","filter","takeUntil","distinctUntilChanged","debounceTime","i1","i2","Directive","Input","NGXS_PLUGINS","ReactiveFormsModule","NgModule"],"mappings":"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"}
@@ -1,91 +0,0 @@
1
- export class UpdateFormStatus {
2
- constructor(payload) {
3
- this.payload = payload;
4
- }
5
- static get type() {
6
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
7
- return '[Forms] Update Form Status';
8
- }
9
- }
10
- export class UpdateFormValue {
11
- constructor(payload) {
12
- this.payload = payload;
13
- }
14
- static get type() {
15
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
16
- return '[Forms] Update Form Value';
17
- }
18
- }
19
- export class UpdateForm {
20
- constructor(payload) {
21
- this.payload = payload;
22
- }
23
- static get type() {
24
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
25
- return '[Forms] Update Form';
26
- }
27
- }
28
- export class UpdateFormDirty {
29
- constructor(payload) {
30
- this.payload = payload;
31
- }
32
- static get type() {
33
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
34
- return '[Forms] Update Form Dirty';
35
- }
36
- }
37
- export class SetFormDirty {
38
- constructor(payload) {
39
- this.payload = payload;
40
- }
41
- static get type() {
42
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
43
- return '[Forms] Set Form Dirty';
44
- }
45
- }
46
- export class SetFormPristine {
47
- constructor(payload) {
48
- this.payload = payload;
49
- }
50
- static get type() {
51
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
52
- return '[Forms] Set Form Pristine';
53
- }
54
- }
55
- export class UpdateFormErrors {
56
- constructor(payload) {
57
- this.payload = payload;
58
- }
59
- static get type() {
60
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
61
- return '[Forms] Update Form Errors';
62
- }
63
- }
64
- export class SetFormDisabled {
65
- constructor(payload) {
66
- this.payload = payload;
67
- }
68
- static get type() {
69
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
70
- return '[Forms] Set Form Disabled';
71
- }
72
- }
73
- export class SetFormEnabled {
74
- constructor(payload) {
75
- this.payload = payload;
76
- }
77
- static get type() {
78
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
79
- return '[Forms] Set Form Enabled';
80
- }
81
- }
82
- export class ResetForm {
83
- constructor(payload) {
84
- this.payload = payload;
85
- }
86
- static get type() {
87
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
88
- return '[Forms] Reset Form';
89
- }
90
- }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0tcGx1Z2luL3NyYy9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxnQkFBZ0I7SUFLM0IsWUFDUyxPQUdOO1FBSE0sWUFBTyxHQUFQLE9BQU8sQ0FHYjtJQUNBLENBQUM7SUFUSixNQUFNLEtBQUssSUFBSTtRQUNiLHNJQUFzSTtRQUN0SSxPQUFPLDRCQUE0QixDQUFDO0lBQ3RDLENBQUM7Q0FPRjtBQUVELE1BQU0sT0FBTyxlQUFlO0lBSzFCLFlBQW1CLE9BQTREO1FBQTVELFlBQU8sR0FBUCxPQUFPLENBQXFEO0lBQUcsQ0FBQztJQUpuRixNQUFNLEtBQUssSUFBSTtRQUNiLHNJQUFzSTtRQUN0SSxPQUFPLDJCQUEyQixDQUFDO0lBQ3JDLENBQUM7Q0FFRjtBQUVELE1BQU0sT0FBTyxVQUFVO0lBS3JCLFlBQ1MsT0FNTjtRQU5NLFlBQU8sR0FBUCxPQUFPLENBTWI7SUFDQSxDQUFDO0lBWkosTUFBTSxLQUFLLElBQUk7UUFDYixzSUFBc0k7UUFDdEksT0FBTyxxQkFBcUIsQ0FBQztJQUMvQixDQUFDO0NBVUY7QUFFRCxNQUFNLE9BQU8sZUFBZTtJQUsxQixZQUFtQixPQUFnRDtRQUFoRCxZQUFPLEdBQVAsT0FBTyxDQUF5QztJQUFHLENBQUM7SUFKdkUsTUFBTSxLQUFLLElBQUk7UUFDYixzSUFBc0k7UUFDdEksT0FBTywyQkFBMkIsQ0FBQztJQUNyQyxDQUFDO0NBRUY7QUFFRCxNQUFNLE9BQU8sWUFBWTtJQUt2QixZQUFtQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUFHLENBQUM7SUFKdEMsTUFBTSxLQUFLLElBQUk7UUFDYixzSUFBc0k7UUFDdEksT0FBTyx3QkFBd0IsQ0FBQztJQUNsQyxDQUFDO0NBRUY7QUFFRCxNQUFNLE9BQU8sZUFBZTtJQUsxQixZQUFtQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUFHLENBQUM7SUFKdEMsTUFBTSxLQUFLLElBQUk7UUFDYixzSUFBc0k7UUFDdEksT0FBTywyQkFBMkIsQ0FBQztJQUNyQyxDQUFDO0NBRUY7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0lBSzNCLFlBQW1CLE9BQWlFO1FBQWpFLFlBQU8sR0FBUCxPQUFPLENBQTBEO0lBQUcsQ0FBQztJQUp4RixNQUFNLEtBQUssSUFBSTtRQUNiLHNJQUFzSTtRQUN0SSxPQUFPLDRCQUE0QixDQUFDO0lBQ3RDLENBQUM7Q0FFRjtBQUVELE1BQU0sT0FBTyxlQUFlO0lBSzFCLFlBQW1CLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQUcsQ0FBQztJQUp0QyxNQUFNLEtBQUssSUFBSTtRQUNiLHNJQUFzSTtRQUN0SSxPQUFPLDJCQUEyQixDQUFDO0lBQ3JDLENBQUM7Q0FFRjtBQUVELE1BQU0sT0FBTyxjQUFjO0lBS3pCLFlBQW1CLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQUcsQ0FBQztJQUp0QyxNQUFNLEtBQUssSUFBSTtRQUNiLHNJQUFzSTtRQUN0SSxPQUFPLDBCQUEwQixDQUFDO0lBQ3BDLENBQUM7Q0FFRjtBQUVELE1BQU0sT0FBTyxTQUFTO0lBS3BCLFlBQW1CLE9BQXNDO1FBQXRDLFlBQU8sR0FBUCxPQUFPLENBQStCO0lBQUcsQ0FBQztJQUo3RCxNQUFNLEtBQUssSUFBSTtRQUNiLHNJQUFzSTtRQUN0SSxPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVcGRhdGVGb3JtU3RhdHVzIHtcbiAgc3RhdGljIGdldCB0eXBlKCkge1xuICAgIC8vIE5PVEU6IE5vdCBuZWNlc3NhcnkgdG8gZGVjbGFyZSB0aGUgdHlwZSBpbiB0aGlzIHdheSBpbiB5b3VyIGNvZGUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9wdWxsLzY0NCNpc3N1ZWNvbW1lbnQtNDM2MDAzMTM4XG4gICAgcmV0dXJuICdbRm9ybXNdIFVwZGF0ZSBGb3JtIFN0YXR1cyc7XG4gIH1cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBheWxvYWQ6IHtcbiAgICAgIHN0YXR1czogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHBhdGg6IHN0cmluZztcbiAgICB9XG4gICkge31cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZUZvcm1WYWx1ZSB7XG4gIHN0YXRpYyBnZXQgdHlwZSgpIHtcbiAgICAvLyBOT1RFOiBOb3QgbmVjZXNzYXJ5IHRvIGRlY2xhcmUgdGhlIHR5cGUgaW4gdGhpcyB3YXkgaW4geW91ciBjb2RlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25neHMvc3RvcmUvcHVsbC82NDQjaXNzdWVjb21tZW50LTQzNjAwMzEzOFxuICAgIHJldHVybiAnW0Zvcm1zXSBVcGRhdGUgRm9ybSBWYWx1ZSc7XG4gIH1cbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IHsgdmFsdWU6IGFueTsgcGF0aDogc3RyaW5nOyBwcm9wZXJ0eVBhdGg/OiBzdHJpbmcgfSkge31cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZUZvcm0ge1xuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgLy8gTk9URTogTm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIHRoZSB0eXBlIGluIHRoaXMgd2F5IGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL3B1bGwvNjQ0I2lzc3VlY29tbWVudC00MzYwMDMxMzhcbiAgICByZXR1cm4gJ1tGb3Jtc10gVXBkYXRlIEZvcm0nO1xuICB9XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwYXlsb2FkOiB7XG4gICAgICB2YWx1ZTogYW55O1xuICAgICAgZXJyb3JzOiB7IFtrOiBzdHJpbmddOiBzdHJpbmcgfSB8IG51bGw7XG4gICAgICBkaXJ0eTogYm9vbGVhbiB8IG51bGw7XG4gICAgICBzdGF0dXM6IHN0cmluZyB8IG51bGw7XG4gICAgICBwYXRoOiBzdHJpbmc7XG4gICAgfVxuICApIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVGb3JtRGlydHkge1xuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgLy8gTk9URTogTm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIHRoZSB0eXBlIGluIHRoaXMgd2F5IGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL3B1bGwvNjQ0I2lzc3VlY29tbWVudC00MzYwMDMxMzhcbiAgICByZXR1cm4gJ1tGb3Jtc10gVXBkYXRlIEZvcm0gRGlydHknO1xuICB9XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiB7IGRpcnR5OiBib29sZWFuIHwgbnVsbDsgcGF0aDogc3RyaW5nIH0pIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRGb3JtRGlydHkge1xuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgLy8gTk9URTogTm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIHRoZSB0eXBlIGluIHRoaXMgd2F5IGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL3B1bGwvNjQ0I2lzc3VlY29tbWVudC00MzYwMDMxMzhcbiAgICByZXR1cm4gJ1tGb3Jtc10gU2V0IEZvcm0gRGlydHknO1xuICB9XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBzdHJpbmcpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRGb3JtUHJpc3RpbmUge1xuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgLy8gTk9URTogTm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIHRoZSB0eXBlIGluIHRoaXMgd2F5IGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL3B1bGwvNjQ0I2lzc3VlY29tbWVudC00MzYwMDMxMzhcbiAgICByZXR1cm4gJ1tGb3Jtc10gU2V0IEZvcm0gUHJpc3RpbmUnO1xuICB9XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBzdHJpbmcpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVGb3JtRXJyb3JzIHtcbiAgc3RhdGljIGdldCB0eXBlKCkge1xuICAgIC8vIE5PVEU6IE5vdCBuZWNlc3NhcnkgdG8gZGVjbGFyZSB0aGUgdHlwZSBpbiB0aGlzIHdheSBpbiB5b3VyIGNvZGUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9wdWxsLzY0NCNpc3N1ZWNvbW1lbnQtNDM2MDAzMTM4XG4gICAgcmV0dXJuICdbRm9ybXNdIFVwZGF0ZSBGb3JtIEVycm9ycyc7XG4gIH1cbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IHsgZXJyb3JzOiB7IFtrOiBzdHJpbmddOiBzdHJpbmcgfSB8IG51bGw7IHBhdGg6IHN0cmluZyB9KSB7fVxufVxuXG5leHBvcnQgY2xhc3MgU2V0Rm9ybURpc2FibGVkIHtcbiAgc3RhdGljIGdldCB0eXBlKCkge1xuICAgIC8vIE5PVEU6IE5vdCBuZWNlc3NhcnkgdG8gZGVjbGFyZSB0aGUgdHlwZSBpbiB0aGlzIHdheSBpbiB5b3VyIGNvZGUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9wdWxsLzY0NCNpc3N1ZWNvbW1lbnQtNDM2MDAzMTM4XG4gICAgcmV0dXJuICdbRm9ybXNdIFNldCBGb3JtIERpc2FibGVkJztcbiAgfVxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogc3RyaW5nKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgU2V0Rm9ybUVuYWJsZWQge1xuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgLy8gTk9URTogTm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIHRoZSB0eXBlIGluIHRoaXMgd2F5IGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL3B1bGwvNjQ0I2lzc3VlY29tbWVudC00MzYwMDMxMzhcbiAgICByZXR1cm4gJ1tGb3Jtc10gU2V0IEZvcm0gRW5hYmxlZCc7XG4gIH1cbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IHN0cmluZykge31cbn1cblxuZXhwb3J0IGNsYXNzIFJlc2V0Rm9ybSB7XG4gIHN0YXRpYyBnZXQgdHlwZSgpIHtcbiAgICAvLyBOT1RFOiBOb3QgbmVjZXNzYXJ5IHRvIGRlY2xhcmUgdGhlIHR5cGUgaW4gdGhpcyB3YXkgaW4geW91ciBjb2RlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25neHMvc3RvcmUvcHVsbC82NDQjaXNzdWVjb21tZW50LTQzNjAwMzEzOFxuICAgIHJldHVybiAnW0Zvcm1zXSBSZXNldCBGb3JtJztcbiAgfVxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogeyBwYXRoOiBzdHJpbmc7IHZhbHVlPzogYW55IH0pIHt9XG59XG4iXX0=