@peckadesign/pd-naja 1.0.1 → 1.2.0

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.
package/README.md CHANGED
@@ -21,13 +21,13 @@ naja.registerExtension(new ExtensionName())
21
21
  ```typescript
22
22
  import { controlManager } from '@peckadesign/pd-naja'
23
23
  import SomeControl from '@/js/Controls/SomeControl' // `SomeControl` must implement `Control` interface
24
- import SomeAnotherControl from '@/js/Controls/SomeControl'
24
+ import SomeAnotherControl from '@/js/Controls/SomeAnotherControl'
25
25
 
26
26
  // This control is only initialized on page load
27
27
  controlManager.addControlOnLoad(SomeControl)
28
28
 
29
29
  // This control will also get initialized after Naja requests
30
- controlManager.addControlOnLive(SomeControl)
30
+ controlManager.addControlOnLive(SomeAnotherControl)
31
31
 
32
32
  ```
33
33
 
@@ -5,7 +5,7 @@
5
5
  * @author PeckaDesign, s.r.o <support@peckadesign.cz>
6
6
  * @license MIT
7
7
  *
8
- * @version 1.0.1
8
+ * @version 1.2.0
9
9
  */
10
10
 
11
11
  import naja from 'naja';
@@ -18,6 +18,7 @@ class ControlManager {
18
18
  if (instance === null) {
19
19
  // eslint-disable-next-line @typescript-eslint/no-this-alias
20
20
  instance = this;
21
+ naja.snippetHandler.addEventListener('beforeUpdate', this.onBeforeSnippetUpdate.bind(this));
21
22
  naja.snippetHandler.addEventListener('afterUpdate', this.onSnippetUpdate.bind(this));
22
23
  }
23
24
  return instance;
@@ -26,6 +27,13 @@ class ControlManager {
26
27
  this.initialize(this.onLoadControl);
27
28
  this.initialize(this.onLiveControl);
28
29
  }
30
+ onBeforeSnippetUpdate(event) {
31
+ if (event.detail.operation === naja.snippetHandler.op.append ||
32
+ event.detail.operation === naja.snippetHandler.op.prepend) {
33
+ return;
34
+ }
35
+ this.destroy(this.onLiveControl, event.detail.snippet);
36
+ }
29
37
  onSnippetUpdate(event) {
30
38
  this.initialize(this.onLiveControl, event.detail.snippet);
31
39
  }
@@ -34,6 +42,13 @@ class ControlManager {
34
42
  control.initialize(snippet || document);
35
43
  });
36
44
  }
45
+ destroy(controls, snippet) {
46
+ controls.forEach((control) => {
47
+ if (control.destroy !== undefined) {
48
+ control.destroy(snippet);
49
+ }
50
+ });
51
+ }
37
52
  addControlOnLoad(control) {
38
53
  this.onLoadControl.push(control);
39
54
  }
@@ -49,6 +64,7 @@ class AjaxModalExtension {
49
64
  this.hidePopstateFlag = false;
50
65
  this.historyEnabled = false; // (dis)allows `pushState` after hiding the modal when going back in history (popstate), we don't want to push new state into history same is true also when the history is disabled for request altogether
51
66
  this.historyDirection = 'backwards';
67
+ this.shouldPreventSnippetFetch = false;
52
68
  this.modalOptions = {};
53
69
  this.original = []; // stack of states under the modal after hiding the modal with `forwards` history mode, we need to push the previous state
54
70
  this.lastState = null;
@@ -56,8 +72,11 @@ class AjaxModalExtension {
56
72
  this.isRequestWithHistory = (options) => {
57
73
  return options.history !== false;
58
74
  };
75
+ this.isPdModalRequest = (options) => {
76
+ return Boolean(options.pdModal);
77
+ };
59
78
  this.isPdModalState = (state) => {
60
- return 'pdModal' in state && state.pdModal?.isShown;
79
+ return 'pdModal' in state;
61
80
  };
62
81
  this.restoreExtensionPropertiesFromState = (state) => {
63
82
  this.historyEnabled = true; // Called from popstateHandler means the history is enabled
@@ -91,9 +110,7 @@ class AjaxModalExtension {
91
110
  this.modal.isShown() ||
92
111
  element.hasAttribute('data-naja-modal') ||
93
112
  element.form?.hasAttribute('data-naja-modal');
94
- // If the extension is enabled and modal is not opened, we detect and store history mode. History mode cannot
95
- // change when traversing ajax link inside modal.
96
- if (!options.pdModal) {
113
+ if (!this.isPdModalRequest(options)) {
97
114
  return;
98
115
  }
99
116
  // `modalOptions` will be stored in state, therefore no `Element` is allowed. These options are also forwarded
@@ -101,13 +118,26 @@ class AjaxModalExtension {
101
118
  this.modalOptions = this.modal.getOptions(element);
102
119
  options.modalOptions = this.modalOptions;
103
120
  options.modalOpener = element;
104
- // History direction can only be set before opening the modal, then it stays the same until modal is hidden.
121
+ // If the extension is enabled and modal is not opened, we detect and store history mode. History mode cannot
122
+ // change when traversing ajax link inside modal, it stays the same until modal is hidden.
105
123
  if (!this.modal.isShown()) {
106
124
  this.historyDirection = element.getAttribute('data-naja-modal-history') === 'forwards' ? 'forwards' : 'backwards';
107
125
  }
108
126
  }
109
127
  onSnippetFetch(event) {
110
- event.detail.options.pdModal = 'pdModal' in event.detail.state;
128
+ // When snippet cache is off, this method is called to construct Naja request options. We retrieve modal
129
+ // `options` from original state in history if neccessary. Also, when closing the modal from `PopstateEvent`, we
130
+ // don't need to make a new request, so we call `event.preventDefault()` in that case.
131
+ const { state } = event.detail;
132
+ if (this.isPdModalState(state)) {
133
+ event.detail.options.pdModal = true;
134
+ event.detail.options.modalOpener = this.getElementFromString(state.pdModal.opener);
135
+ event.detail.options.modalOptions = state.pdModal.options;
136
+ }
137
+ if (this.shouldPreventSnippetFetch) {
138
+ event.preventDefault();
139
+ this.shouldPreventSnippetFetch = false;
140
+ }
111
141
  }
112
142
  removeModalSnippetsIds() {
113
143
  // When closing the modal, we don't want to update any snippets inside it, when other requests finishes. This
@@ -123,7 +153,7 @@ class AjaxModalExtension {
123
153
  }
124
154
  abortPreviousRequest(event) {
125
155
  const { abortController, options } = event.detail;
126
- if (options.pdModal) {
156
+ if (this.isPdModalRequest(options)) {
127
157
  this.abortControllers.get(this.uniqueExtKey)?.abort();
128
158
  this.abortControllers.set(this.uniqueExtKey, abortController);
129
159
  }
@@ -136,22 +166,28 @@ class AjaxModalExtension {
136
166
  }
137
167
  buildState(event) {
138
168
  const { options, state } = event.detail;
139
- // Every time naja builds the state, we extend it with `pdModal` object containing information about modal being
140
- // opened and what history mode is in use. When options.forceRedirect is set, modal might be open but the new
141
- // state will be redirected outside it.
169
+ // Every time naja builds the state, and we have the modal opened, we extend the state with `pdModal` object
170
+ // containing information about modal being opened and what history mode is in use. When `options.forceRedirect`
171
+ // is set, modal might be open but the new state will be redirected outside of it.
172
+ //
173
+ // We must check this.modal.isShown instead of this.isPdModalRequest, because of initial replace state from
174
+ // Naja - in that case, options already contains information about request to be made, but we have to build the
175
+ // "previous" state yet.
142
176
  const isShown = this.modal.isShown() && !options.forceRedirect;
143
- state.pdModal = {
144
- isShown,
145
- historyDirection: isShown ? this.historyDirection : null,
146
- options: isShown ? this.modalOptions : null
147
- };
177
+ if (isShown) {
178
+ state.pdModal = {
179
+ historyDirection: this.historyDirection,
180
+ opener: options.modalOpener.outerHTML,
181
+ options: this.modalOptions
182
+ };
183
+ }
148
184
  // If the state is build, the history is enabled. This information is needed inside modal callback where the
149
185
  // options are not available, so we store this internally in extension.
150
186
  this.historyEnabled = true;
151
187
  }
152
188
  before(event) {
153
189
  const { options, request } = event.detail;
154
- if (!options.pdModal) {
190
+ if (!this.isPdModalRequest(options)) {
155
191
  return;
156
192
  }
157
193
  this.modal.show(options.modalOpener, options.modalOptions, event);
@@ -165,7 +201,7 @@ class AjaxModalExtension {
165
201
  state: history.state,
166
202
  title: document.title
167
203
  };
168
- if (!options.pdModal) {
204
+ if (!this.isPdModalRequest(options)) {
169
205
  return;
170
206
  }
171
207
  const requestHistory = this.isRequestWithHistory(options);
@@ -248,6 +284,7 @@ class AjaxModalExtension {
248
284
  }
249
285
  const isCurrentStatePdModal = this.isPdModalState(state);
250
286
  this.popstateFlag = true;
287
+ this.shouldPreventSnippetFetch = false;
251
288
  // We don't know how many states we go back. So we go one by one until the new state is not modal state
252
289
  // (`isPdModalState` is `false`).
253
290
  if (this.hidePopstateFlag) {
@@ -265,16 +302,16 @@ class AjaxModalExtension {
265
302
  }
266
303
  this.hidePopstateFlag = false;
267
304
  }
268
- // We check if the state has pdModal object present on popstate. If so (and the pdModal.isShown is true), we proceed
269
- // to open the modal. Content of the modal is restored by naja itself (either from cache or by new request).
305
+ // We check if the state has `pdModal` object present on popstate. If so , we proceed to open the modal. Content
306
+ // of the modal is restored by naja itself (either from cache or by new request).
270
307
  //
271
- // If the initial state is also detected as pdModal state, we returned to some pdModal state using reload. In that
272
- // case, we don't want to open the modal, because we might be missing some snippets. Effectively this means that the
273
- // modal will never be opened by forward / back button if there has been some other site loaded outside the modal
274
- // (e.g. some non-ajax link leading from modal).
308
+ // If the initial state is also detected as pdModal state, we returned to some pdModal state using reload. In
309
+ // that case, we don't want to open the modal, because we might be missing some snippets. Effectively this means
310
+ // that the modal will never be opened by forward / back button if there has been some other site loaded outside
311
+ // the modal (e.g. some non-ajax link leading from modal).
275
312
  if (isCurrentStatePdModal && !this.isPdModalState(this.initialState)) {
276
313
  this.restoreExtensionPropertiesFromState(state);
277
- this.modal.show(undefined, state.pdModal.options, event);
314
+ this.modal.show(this.getElementFromString(state.pdModal.opener), state.pdModal.options, event);
278
315
  // If there is some snippet cache, we might restore modal options. If not, options will be restored based on
279
316
  // options after the ajax request. Same applies to dispatching load event - if cache is on, we dispatch the
280
317
  // event immediately, otherwise it will be dispatched after ajax request.
@@ -287,14 +324,17 @@ class AjaxModalExtension {
287
324
  }
288
325
  else {
289
326
  this.historyEnabled = false; // Hiding modal using forward / back button, we disable the history to prevent state duplication
290
- // Reload the page if the initial state has been inside modal. This prevents snippets loss e.g. during layout changes.
327
+ // Reload the page if the initial state has been inside modal. This prevents snippets loss e.g. during
328
+ // layout changes.
291
329
  if (this.isPdModalState(this.initialState)) {
292
330
  window.location.reload();
293
331
  }
294
- // Non-modal state and non-modal initial state, we just hide the current modal.
295
- this.modal.hide(event);
296
- // We don't want the naja popstate callback to be executed (or any other popstate handler).
297
- event.stopImmediatePropagation();
332
+ // Non-modal state and non-modal initial state we just hide the current modal and prevent snippet fetch
333
+ // (if snippet cache is off).
334
+ if (this.modal.isShown()) {
335
+ this.modal.hide(event);
336
+ this.shouldPreventSnippetFetch = true;
337
+ }
298
338
  }
299
339
  // Keep track of current state. When `backwards` history mode is used, we eventually push this state into
300
340
  // `this.original`.
@@ -309,6 +349,9 @@ class AjaxModalExtension {
309
349
  this.historyDirection = 'backwards';
310
350
  this.modalOptions = null;
311
351
  }
352
+ getElementFromString(stringElement) {
353
+ return new DOMParser().parseFromString(stringElement, 'text/html').body.firstElementChild;
354
+ }
312
355
  }
313
356
 
314
357
  class SpinnerExtension {
@@ -1 +1 @@
1
- {"version":3,"file":"PdNaja.esm.js","sources":["../src/utils/ControlManager.ts","../src/extensions/AjaxModalExtension.ts","../src/extensions/SpinnerExtension.ts","../src/index.esm.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PdNaja.esm.js","sources":["../src/utils/ControlManager.ts","../src/extensions/AjaxModalExtension.ts","../src/extensions/SpinnerExtension.ts","../src/index.esm.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ type CallbackFn = (callback: EventListener) => void;
13
13
  export interface AjaxModal {
14
14
  element: Element;
15
15
  reservedSnippetIds: string[];
16
- show(opener: Element | undefined, options: any, event: BeforeEvent | PopStateEvent): void;
16
+ show(opener: Element, options: any, event: BeforeEvent | PopStateEvent): void;
17
17
  hide(event: SuccessEvent | PopStateEvent): void;
18
18
  isShown(): boolean;
19
19
  onShow: CallbackFn;
@@ -30,6 +30,7 @@ export declare class AjaxModalExtension implements Extension {
30
30
  private hidePopstateFlag;
31
31
  private historyEnabled;
32
32
  private historyDirection;
33
+ private shouldPreventSnippetFetch;
33
34
  private modalOptions;
34
35
  private original;
35
36
  private lastState;
@@ -38,6 +39,7 @@ export declare class AjaxModalExtension implements Extension {
38
39
  constructor(modal: AjaxModal);
39
40
  initialize(naja: Naja): void;
40
41
  private isRequestWithHistory;
42
+ private isPdModalRequest;
41
43
  private isPdModalState;
42
44
  private restoreExtensionPropertiesFromState;
43
45
  private checkExtensionEnabled;
@@ -52,5 +54,6 @@ export declare class AjaxModalExtension implements Extension {
52
54
  private hiddenHandler;
53
55
  private popstateHandler;
54
56
  private cleanData;
57
+ private getElementFromString;
55
58
  }
56
59
  export {};
package/dist/index.esm.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * @author PeckaDesign, s.r.o <support@peckadesign.cz>
6
6
  * @license MIT
7
7
  *
8
- * @version 1.0.1
8
+ * @version 1.2.0
9
9
  */
10
10
 
11
11
  import naja from 'naja';
@@ -18,6 +18,7 @@ class ControlManager {
18
18
  if (instance === null) {
19
19
  // eslint-disable-next-line @typescript-eslint/no-this-alias
20
20
  instance = this;
21
+ naja.snippetHandler.addEventListener('beforeUpdate', this.onBeforeSnippetUpdate.bind(this));
21
22
  naja.snippetHandler.addEventListener('afterUpdate', this.onSnippetUpdate.bind(this));
22
23
  }
23
24
  return instance;
@@ -26,6 +27,13 @@ class ControlManager {
26
27
  this.initialize(this.onLoadControl);
27
28
  this.initialize(this.onLiveControl);
28
29
  }
30
+ onBeforeSnippetUpdate(event) {
31
+ if (event.detail.operation === naja.snippetHandler.op.append ||
32
+ event.detail.operation === naja.snippetHandler.op.prepend) {
33
+ return;
34
+ }
35
+ this.destroy(this.onLiveControl, event.detail.snippet);
36
+ }
29
37
  onSnippetUpdate(event) {
30
38
  this.initialize(this.onLiveControl, event.detail.snippet);
31
39
  }
@@ -34,6 +42,13 @@ class ControlManager {
34
42
  control.initialize(snippet || document);
35
43
  });
36
44
  }
45
+ destroy(controls, snippet) {
46
+ controls.forEach((control) => {
47
+ if (control.destroy !== undefined) {
48
+ control.destroy(snippet);
49
+ }
50
+ });
51
+ }
37
52
  addControlOnLoad(control) {
38
53
  this.onLoadControl.push(control);
39
54
  }
@@ -49,6 +64,7 @@ class AjaxModalExtension {
49
64
  this.hidePopstateFlag = false;
50
65
  this.historyEnabled = false; // (dis)allows `pushState` after hiding the modal when going back in history (popstate), we don't want to push new state into history same is true also when the history is disabled for request altogether
51
66
  this.historyDirection = 'backwards';
67
+ this.shouldPreventSnippetFetch = false;
52
68
  this.modalOptions = {};
53
69
  this.original = []; // stack of states under the modal after hiding the modal with `forwards` history mode, we need to push the previous state
54
70
  this.lastState = null;
@@ -56,8 +72,11 @@ class AjaxModalExtension {
56
72
  this.isRequestWithHistory = (options) => {
57
73
  return options.history !== false;
58
74
  };
75
+ this.isPdModalRequest = (options) => {
76
+ return Boolean(options.pdModal);
77
+ };
59
78
  this.isPdModalState = (state) => {
60
- return 'pdModal' in state && state.pdModal?.isShown;
79
+ return 'pdModal' in state;
61
80
  };
62
81
  this.restoreExtensionPropertiesFromState = (state) => {
63
82
  this.historyEnabled = true; // Called from popstateHandler means the history is enabled
@@ -91,9 +110,7 @@ class AjaxModalExtension {
91
110
  this.modal.isShown() ||
92
111
  element.hasAttribute('data-naja-modal') ||
93
112
  element.form?.hasAttribute('data-naja-modal');
94
- // If the extension is enabled and modal is not opened, we detect and store history mode. History mode cannot
95
- // change when traversing ajax link inside modal.
96
- if (!options.pdModal) {
113
+ if (!this.isPdModalRequest(options)) {
97
114
  return;
98
115
  }
99
116
  // `modalOptions` will be stored in state, therefore no `Element` is allowed. These options are also forwarded
@@ -101,13 +118,26 @@ class AjaxModalExtension {
101
118
  this.modalOptions = this.modal.getOptions(element);
102
119
  options.modalOptions = this.modalOptions;
103
120
  options.modalOpener = element;
104
- // History direction can only be set before opening the modal, then it stays the same until modal is hidden.
121
+ // If the extension is enabled and modal is not opened, we detect and store history mode. History mode cannot
122
+ // change when traversing ajax link inside modal, it stays the same until modal is hidden.
105
123
  if (!this.modal.isShown()) {
106
124
  this.historyDirection = element.getAttribute('data-naja-modal-history') === 'forwards' ? 'forwards' : 'backwards';
107
125
  }
108
126
  }
109
127
  onSnippetFetch(event) {
110
- event.detail.options.pdModal = 'pdModal' in event.detail.state;
128
+ // When snippet cache is off, this method is called to construct Naja request options. We retrieve modal
129
+ // `options` from original state in history if neccessary. Also, when closing the modal from `PopstateEvent`, we
130
+ // don't need to make a new request, so we call `event.preventDefault()` in that case.
131
+ const { state } = event.detail;
132
+ if (this.isPdModalState(state)) {
133
+ event.detail.options.pdModal = true;
134
+ event.detail.options.modalOpener = this.getElementFromString(state.pdModal.opener);
135
+ event.detail.options.modalOptions = state.pdModal.options;
136
+ }
137
+ if (this.shouldPreventSnippetFetch) {
138
+ event.preventDefault();
139
+ this.shouldPreventSnippetFetch = false;
140
+ }
111
141
  }
112
142
  removeModalSnippetsIds() {
113
143
  // When closing the modal, we don't want to update any snippets inside it, when other requests finishes. This
@@ -123,7 +153,7 @@ class AjaxModalExtension {
123
153
  }
124
154
  abortPreviousRequest(event) {
125
155
  const { abortController, options } = event.detail;
126
- if (options.pdModal) {
156
+ if (this.isPdModalRequest(options)) {
127
157
  this.abortControllers.get(this.uniqueExtKey)?.abort();
128
158
  this.abortControllers.set(this.uniqueExtKey, abortController);
129
159
  }
@@ -136,22 +166,28 @@ class AjaxModalExtension {
136
166
  }
137
167
  buildState(event) {
138
168
  const { options, state } = event.detail;
139
- // Every time naja builds the state, we extend it with `pdModal` object containing information about modal being
140
- // opened and what history mode is in use. When options.forceRedirect is set, modal might be open but the new
141
- // state will be redirected outside it.
169
+ // Every time naja builds the state, and we have the modal opened, we extend the state with `pdModal` object
170
+ // containing information about modal being opened and what history mode is in use. When `options.forceRedirect`
171
+ // is set, modal might be open but the new state will be redirected outside of it.
172
+ //
173
+ // We must check this.modal.isShown instead of this.isPdModalRequest, because of initial replace state from
174
+ // Naja - in that case, options already contains information about request to be made, but we have to build the
175
+ // "previous" state yet.
142
176
  const isShown = this.modal.isShown() && !options.forceRedirect;
143
- state.pdModal = {
144
- isShown,
145
- historyDirection: isShown ? this.historyDirection : null,
146
- options: isShown ? this.modalOptions : null
147
- };
177
+ if (isShown) {
178
+ state.pdModal = {
179
+ historyDirection: this.historyDirection,
180
+ opener: options.modalOpener.outerHTML,
181
+ options: this.modalOptions
182
+ };
183
+ }
148
184
  // If the state is build, the history is enabled. This information is needed inside modal callback where the
149
185
  // options are not available, so we store this internally in extension.
150
186
  this.historyEnabled = true;
151
187
  }
152
188
  before(event) {
153
189
  const { options, request } = event.detail;
154
- if (!options.pdModal) {
190
+ if (!this.isPdModalRequest(options)) {
155
191
  return;
156
192
  }
157
193
  this.modal.show(options.modalOpener, options.modalOptions, event);
@@ -165,7 +201,7 @@ class AjaxModalExtension {
165
201
  state: history.state,
166
202
  title: document.title
167
203
  };
168
- if (!options.pdModal) {
204
+ if (!this.isPdModalRequest(options)) {
169
205
  return;
170
206
  }
171
207
  const requestHistory = this.isRequestWithHistory(options);
@@ -248,6 +284,7 @@ class AjaxModalExtension {
248
284
  }
249
285
  const isCurrentStatePdModal = this.isPdModalState(state);
250
286
  this.popstateFlag = true;
287
+ this.shouldPreventSnippetFetch = false;
251
288
  // We don't know how many states we go back. So we go one by one until the new state is not modal state
252
289
  // (`isPdModalState` is `false`).
253
290
  if (this.hidePopstateFlag) {
@@ -265,16 +302,16 @@ class AjaxModalExtension {
265
302
  }
266
303
  this.hidePopstateFlag = false;
267
304
  }
268
- // We check if the state has pdModal object present on popstate. If so (and the pdModal.isShown is true), we proceed
269
- // to open the modal. Content of the modal is restored by naja itself (either from cache or by new request).
305
+ // We check if the state has `pdModal` object present on popstate. If so , we proceed to open the modal. Content
306
+ // of the modal is restored by naja itself (either from cache or by new request).
270
307
  //
271
- // If the initial state is also detected as pdModal state, we returned to some pdModal state using reload. In that
272
- // case, we don't want to open the modal, because we might be missing some snippets. Effectively this means that the
273
- // modal will never be opened by forward / back button if there has been some other site loaded outside the modal
274
- // (e.g. some non-ajax link leading from modal).
308
+ // If the initial state is also detected as pdModal state, we returned to some pdModal state using reload. In
309
+ // that case, we don't want to open the modal, because we might be missing some snippets. Effectively this means
310
+ // that the modal will never be opened by forward / back button if there has been some other site loaded outside
311
+ // the modal (e.g. some non-ajax link leading from modal).
275
312
  if (isCurrentStatePdModal && !this.isPdModalState(this.initialState)) {
276
313
  this.restoreExtensionPropertiesFromState(state);
277
- this.modal.show(undefined, state.pdModal.options, event);
314
+ this.modal.show(this.getElementFromString(state.pdModal.opener), state.pdModal.options, event);
278
315
  // If there is some snippet cache, we might restore modal options. If not, options will be restored based on
279
316
  // options after the ajax request. Same applies to dispatching load event - if cache is on, we dispatch the
280
317
  // event immediately, otherwise it will be dispatched after ajax request.
@@ -287,14 +324,17 @@ class AjaxModalExtension {
287
324
  }
288
325
  else {
289
326
  this.historyEnabled = false; // Hiding modal using forward / back button, we disable the history to prevent state duplication
290
- // Reload the page if the initial state has been inside modal. This prevents snippets loss e.g. during layout changes.
327
+ // Reload the page if the initial state has been inside modal. This prevents snippets loss e.g. during
328
+ // layout changes.
291
329
  if (this.isPdModalState(this.initialState)) {
292
330
  window.location.reload();
293
331
  }
294
- // Non-modal state and non-modal initial state, we just hide the current modal.
295
- this.modal.hide(event);
296
- // We don't want the naja popstate callback to be executed (or any other popstate handler).
297
- event.stopImmediatePropagation();
332
+ // Non-modal state and non-modal initial state we just hide the current modal and prevent snippet fetch
333
+ // (if snippet cache is off).
334
+ if (this.modal.isShown()) {
335
+ this.modal.hide(event);
336
+ this.shouldPreventSnippetFetch = true;
337
+ }
298
338
  }
299
339
  // Keep track of current state. When `backwards` history mode is used, we eventually push this state into
300
340
  // `this.original`.
@@ -309,6 +349,9 @@ class AjaxModalExtension {
309
349
  this.historyDirection = 'backwards';
310
350
  this.modalOptions = null;
311
351
  }
352
+ getElementFromString(stringElement) {
353
+ return new DOMParser().parseFromString(stringElement, 'text/html').body.firstElementChild;
354
+ }
312
355
  }
313
356
 
314
357
  class SpinnerExtension {
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/utils/ControlManager.ts","../src/extensions/AjaxModalExtension.ts","../src/extensions/SpinnerExtension.ts","../src/index.esm.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/utils/ControlManager.ts","../src/extensions/AjaxModalExtension.ts","../src/extensions/SpinnerExtension.ts","../src/index.esm.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;AAIA,IAAI,QAAQ,GAA0B,IAAI,CAAA;AAE5B,MAAO,cAAc,CAAA;AAIlC,IAAA,WAAA,GAAA;QAHQ,IAAa,CAAA,aAAA,GAAc,EAAE,CAAA;QAC7B,IAAa,CAAA,aAAA,GAAc,EAAE,CAAA;QAGpC,IAAI,QAAQ,KAAK,IAAI,EAAE;;YAEtB,QAAQ,GAAG,IAAI,CAAA;AACf,YAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAC3F,YAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACpF,SAAA;AACD,QAAA,OAAO,QAAQ,CAAA;KACf;IAEM,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACnC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;KACnC;AAEO,IAAA,qBAAqB,CAAC,KAAwB,EAAA;AACrD,QAAA,IACC,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM;AACxD,YAAA,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EACxD;YACD,OAAM;AACN,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;KACtD;AAEO,IAAA,eAAe,CAAC,KAAuB,EAAA;AAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;KACzD;IAEO,UAAU,CAAC,QAAmB,EAAE,OAA4B,EAAA;AACnE,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAC5B,YAAA,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAA;AACxC,SAAC,CAAC,CAAA;KACF;IAEO,OAAO,CAAC,QAAmB,EAAE,OAAgB,EAAA;AACpD,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAC5B,YAAA,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;AAClC,gBAAA,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AACxB,aAAA;AACF,SAAC,CAAC,CAAA;KACF;AAEM,IAAA,gBAAgB,CAAC,OAAgB,EAAA;AACvC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KAChC;AAEM,IAAA,gBAAgB,CAAC,OAAgB,EAAA;AACvC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KAChC;AACD;;MCEY,kBAAkB,CAAA;AAoB9B,IAAA,WAAA,CAAmB,KAAgB,EAAA;QAlBlB,IAAY,CAAA,YAAA,GAAW,OAAO,CAAA;QAEvC,IAAY,CAAA,YAAA,GAAG,KAAK,CAAA;QACpB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAA;AAExB,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAA;QACtB,IAAgB,CAAA,gBAAA,GAAqB,WAAW,CAAA;QAEhD,IAAyB,CAAA,yBAAA,GAAG,KAAK,CAAA;QAEjC,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAA;AAEtB,QAAA,IAAA,CAAA,QAAQ,GAA0B,EAAE,CAAA;QACpC,IAAS,CAAA,SAAA,GAA+B,IAAI,CAAA;AAGnC,QAAA,IAAA,CAAA,gBAAgB,GAAiC,IAAI,GAAG,EAAE,CAAA;AA+BnE,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,OAAgB,KAAa;AAC5D,YAAA,OAAO,OAAO,CAAC,OAAO,KAAK,KAAK,CAAA;AACjC,SAAC,CAAA;AAEO,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,OAAgB,KAAmC;AAC9E,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAChC,SAAC,CAAA;AAEO,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,KAA2C,KAAkC;YACtG,OAAO,SAAS,IAAI,KAAK,CAAA;AAC1B,SAAC,CAAA;AAEO,QAAA,IAAA,CAAA,mCAAmC,GAAG,CAAC,KAA0B,KAAU;AAClF,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;YAC1B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAA;YACtD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAA;AAC1C,SAAC,CAAA;;;AA1CA,QAAA,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAEpE,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;KACvC;AAEM,IAAA,UAAU,CAAC,IAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAErF,QAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAE9E,QAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAE3E,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACvD,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACpE,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACzD,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAE/D,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAC9C,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAK;YACtB,IAAI,CAAC,sBAAsB,EAAE,CAAA;YAC7B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAA;AAC5C,SAAC,CAAC,CAAA;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;KAClD;AAoBO,IAAA,qBAAqB,CAAC,KAAuB,EAAA;QACpD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;AAEzC,QAAA,OAAO,CAAC,OAAO;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,gBAAA,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC;AACtC,gBAAA,OAA4B,CAAC,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAA;AAEpE,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;YACpC,OAAM;AACN,SAAA;;;QAID,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AAElD,QAAA,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;AACxC,QAAA,OAAO,CAAC,WAAW,GAAG,OAAO,CAAA;;;AAI7B,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;AAC1B,YAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,yBAAyB,CAAC,KAAK,UAAU,GAAG,UAAU,GAAG,WAAW,CAAA;AACjH,SAAA;KACD;AAEO,IAAA,cAAc,CAAC,KAAiB,EAAA;;;;AAIvC,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;AAE9B,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAC/B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;AACnC,YAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAClF,YAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAA;AACzD,SAAA;QAED,IAAI,IAAI,CAAC,yBAAyB,EAAE;YACnC,KAAK,CAAC,cAAc,EAAE,CAAA;AACtB,YAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAA;AACtC,SAAA;KACD;IAEO,sBAAsB,GAAA;;;;;;AAM7B,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAC3E,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AACxD,gBAAA,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;AAC7B,aAAA;AACF,SAAC,CAAC,CAAA;KACF;AAEO,IAAA,oBAAoB,CAAC,KAAiB,EAAA;QAC7C,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;AACjD,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,CAAA;YACrD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;AAC7D,SAAA;KACD;AAEO,IAAA,YAAY,CAAC,KAAoB,EAAA;AACxC,QAAA,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;YAC5B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAC/C,SAAA;KACD;AAEO,IAAA,UAAU,CAAC,KAAsB,EAAA;QACxC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;;;;;;;;AASvC,QAAA,MAAM,OAAO,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAA;AAEvE,QAAA,IAAI,OAAO,EAAE;YACZ,KAAK,CAAC,OAAO,GAAG;gBACf,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;AACvC,gBAAA,MAAM,EAAG,OAAO,CAAC,WAAuB,CAAC,SAAS;gBAClD,OAAO,EAAE,IAAI,CAAC,YAAY;aAC1B,CAAA;AACD,SAAA;;;AAID,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;KAC1B;AAEO,IAAA,MAAM,CAAC,KAAkB,EAAA;QAChC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;YACpC,OAAM;AACN,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;QAEjE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;KAC/E;AAEO,IAAA,OAAO,CAAC,KAAmB,EAAA;QAClC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;AAEzC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QACzB,IAAI,CAAC,SAAS,GAAG;YAChB,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,QAAQ,CAAC,KAAK;SACrB,CAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;YACpC,OAAM;AACN,SAAA;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;;AAGzD,QAAA,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,EAAE;AACpC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAe,KAAK,CAAC,MAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AAE9G,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,OAAoB,KAAI;AAC1C,gBAAA,OAAO,CAAC,YAAY,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;AACjD,aAAC,CAAC,CAAA;AACF,SAAA;QAED,IAAI,OAAO,CAAC,UAAU,EAAE;AACvB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACtB,SAAA;AAAM,aAAA;YACN,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAExC,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;AACjD,aAAA;AACD,SAAA;KACD;IAEO,WAAW,GAAA;QAClB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;;;AAIxC,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,UAAU,EAAE;AACzC,YAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE;gBACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAClC,aAAA;AAAM,iBAAA;AACN,gBAAA,MAAM,KAAK,GAAwB;oBAClC,QAAQ,EAAE,QAAQ,CAAC,IAAI;oBACvB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,KAAK,EAAE,QAAQ,CAAC,KAAK;iBACrB,CAAA;AACD,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACzB,aAAA;AACD,SAAA;KACD;IAEO,aAAa,GAAA;;;;;;AAMpB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACzB,OAAM;AACN,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,EAAE;;;AAG1C,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;YAC5B,IAAI,CAAC,SAAS,EAAE,CAAA;AAChB,YAAA,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;AACrB,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,UAAU,EAAE;YAChD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;AACjC,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;AAElB,YAAA,IAAI,KAAK,EAAE;;;;AAIV,gBAAA,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,EAAE;AACzE,oBAAA,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;AAC3D,oBAAA,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;AAE5B,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;oBACzB,IAAI,CAAC,SAAS,GAAG;wBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;qBAClB,CAAA;AACD,iBAAA;AACD,aAAA;YAED,IAAI,CAAC,SAAS,EAAE,CAAA;AAChB,SAAA;KACD;AAEO,IAAA,eAAe,CAAC,KAAoB,EAAA;QAC3C,MAAM,KAAK,GAAiB,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAA;QAE5D,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAChD,OAAM;AACN,SAAA;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AACxD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;AACxB,QAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAA;;;QAItC,IAAI,IAAI,CAAC,gBAAgB,EAAE;;YAE1B,KAAK,CAAC,wBAAwB,EAAE,CAAA;AAEhC,YAAA,IAAI,qBAAqB,EAAE;AAC1B,gBAAA,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;gBAErB,OAAM;AACN,aAAA;AAAM,iBAAA;;gBAEN,IAAI,KAAK,CAAC,KAAK,EAAE;AAChB,oBAAA,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;AAC5B,iBAAA;AACD,aAAA;AAED,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;AAC7B,SAAA;;;;;;;;QASD,IAAI,qBAAqB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACrE,YAAA,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC,CAAA;YAE/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;;;;AAK9F,YAAA,IAAI,KAAK,CAAC,QAAQ,EAAE,OAAO,KAAK,KAAK,EAAE;gBACtC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAE5C,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;oBAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;AACjD,iBAAA;AACD,aAAA;AACD,SAAA;AAAM,aAAA;AACN,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAA;;;YAI3B,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AAC3C,gBAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;AACxB,aAAA;;;AAID,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;AACzB,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACtB,gBAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAA;AACrC,aAAA;AACD,SAAA;;;QAID,IAAI,CAAC,SAAS,GAAG;YAChB,QAAQ,EAAE,QAAQ,CAAC,IAAI;AACvB,YAAA,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,QAAQ,CAAC,KAAK;SACrB,CAAA;KACD;IAEO,SAAS,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAA;AACnC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;KACxB;AAEO,IAAA,oBAAoB,CAAC,aAAqB,EAAA;AACjD,QAAA,OAAO,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,iBAA4B,CAAA;KACpG;AACD;;MC/YY,gBAAgB,CAAA;IAO5B,WACC,CAAA,OAAoB,EACpB,eAAA,GAAkC,SAAS,EAC3C,uBAAuB,GAAG,YAAY,EACtC,8BAA8B,GAAG,eAAe,EAAA;AAEhD,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;AAEtC,QAAA,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;AACtD,QAAA,IAAI,CAAC,8BAA8B,GAAG,8BAA8B,CAAA;KACpE;AAEM,IAAA,UAAU,CAAC,IAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAEnF,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAC5D,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;KAC/D;AAEO,IAAA,mBAAmB,CAAC,KAAuB,EAAA;AAClD,QAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAA;KAC5D;AAEO,IAAA,YAAY,CAAC,KAAiB,EAAA;AACrC,QAAA,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;AAEhC,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;YAC9B,OAAM;AACN,SAAA;AAED,QAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAA;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAA;AAE3D,QAAA,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAM;AACN,SAAA;AAAM,aAAA;YACN,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAA;AAEjD,YAAA,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,KAAI;AACpC,gBAAA,IAAI,OAAgB,CAAA;AAEpB,gBAAA,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;oBACvC,OAAO,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;AACtG,iBAAA;AAAM,qBAAA;AACN,oBAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;AACtB,iBAAA;AAED,gBAAA,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAChC,gBAAA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAElC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;AACrE,aAAC,CAAC,CAAA;AACF,SAAA;KACD;AAEO,IAAA,YAAY,CAAC,KAAoB,EAAA;AACxC,QAAA,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;QAEhC,IAAI,OAAO,CAAC,aAAa,EAAE;YAC1B,OAAM;AACN,SAAA;QAED,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,OAAgB,KAAI;AAClD,YAAA,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;AACpE,YAAA,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;AAChD,SAAC,CAAC,CAAA;KACF;AAEO,IAAA,eAAe,CAAC,OAAgB,EAAA;QACvC,IAAI,CAAC,OAAO,EAAE;AACb,YAAA,OAAO,EAAE,CAAA;AACT,SAAA;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAA;QACjE,IAAI,YAAY,GAAc,EAAE,CAAA;QAEhC,IAAI,OAAO,KAAK,KAAK,EAAE;AACtB,YAAA,OAAO,EAAE,CAAA;AACT,SAAA;AAED,QAAA,YAAY,GAAG,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAA;AAE3D,QAAA,OAAO,YAAY,CAAC,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;KAC9E;AAEO,IAAA,8BAA8B,CAAC,QAAuB,EAAA;AAC7D,QAAA,OAAO,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAA;KACtE;AAEO,IAAA,oBAAoB,CAAC,OAAgB,EAAA;QAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAE1D,IAAI,IAAI,KAAK,IAAI,EAAE;AAClB,YAAA,OAAO,EAAE,CAAA;AACT,SAAA;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;AAE/E,QAAA,OAAO,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;KAC9D;AACD;;AC9HY,MAAA,cAAc,GAAG,IAAI,cAAc;;;;"}
@@ -1,3 +1,4 @@
1
1
  export default interface Control {
2
2
  initialize(context: Element | Document): void;
3
+ destroy?(context: Element): void;
3
4
  }
@@ -4,8 +4,10 @@ export default class ControlManager {
4
4
  private onLiveControl;
5
5
  constructor();
6
6
  onLoad(): void;
7
+ private onBeforeSnippetUpdate;
7
8
  private onSnippetUpdate;
8
9
  private initialize;
10
+ private destroy;
9
11
  addControlOnLoad(control: Control): void;
10
12
  addControlOnLive(control: Control): void;
11
13
  }
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@peckadesign/pd-naja",
3
3
  "title": "PD Naja utils & extensions",
4
- "version": "1.0.1",
4
+ "version": "1.2.0",
5
5
  "private": false,
6
6
  "description": "Utilities and extensions created for use with Naja library.",
7
+ "main": "dist/PdNaja.esm.js",
7
8
  "module": "dist/PdNaja.esm.js",
8
9
  "types": "dist/index.esm.d.ts",
9
10
  "repository": {
@@ -15,6 +15,15 @@ declare module 'naja/dist/Naja' {
15
15
  }
16
16
  }
17
17
 
18
+ interface OptionsWithPdModal extends Options {
19
+ modalOpener: Element
20
+ modalOptions: any
21
+ }
22
+
23
+ interface PdModalHistoryState extends HistoryState {
24
+ pdModal: PdModalState
25
+ }
26
+
18
27
  type CallbackFn = (callback: EventListener) => void
19
28
 
20
29
  export interface AjaxModal {
@@ -24,7 +33,7 @@ export interface AjaxModal {
24
33
  // id's of snippets, that are necessary for modal function
25
34
  reservedSnippetIds: string[]
26
35
 
27
- show(opener: Element | undefined, options: any, event: BeforeEvent | PopStateEvent): void
36
+ show(opener: Element, options: any, event: BeforeEvent | PopStateEvent): void
28
37
  hide(event: SuccessEvent | PopStateEvent): void
29
38
  isShown(): boolean
30
39
 
@@ -46,6 +55,12 @@ interface HistoryStateWrapper extends Record<string, any> {
46
55
 
47
56
  type HistoryDirection = 'forwards' | 'backwards'
48
57
 
58
+ interface PdModalState {
59
+ historyDirection: HistoryDirection
60
+ opener: string // stringified Element
61
+ options: any
62
+ }
63
+
49
64
  export class AjaxModalExtension implements Extension {
50
65
  private readonly modal: AjaxModal
51
66
  private readonly uniqueExtKey: string = 'modal'
@@ -56,6 +71,8 @@ export class AjaxModalExtension implements Extension {
56
71
  private historyEnabled = false // (dis)allows `pushState` after hiding the modal when going back in history (popstate), we don't want to push new state into history same is true also when the history is disabled for request altogether
57
72
  private historyDirection: HistoryDirection = 'backwards'
58
73
 
74
+ private shouldPreventSnippetFetch = false
75
+
59
76
  private modalOptions: any = {}
60
77
 
61
78
  private original: HistoryStateWrapper[] = [] // stack of states under the modal after hiding the modal with `forwards` history mode, we need to push the previous state
@@ -97,11 +114,15 @@ export class AjaxModalExtension implements Extension {
97
114
  return options.history !== false
98
115
  }
99
116
 
100
- private isPdModalState = (state: HistoryState | Record<string, never>): boolean => {
101
- return 'pdModal' in state && state.pdModal?.isShown
117
+ private isPdModalRequest = (options: Options): options is OptionsWithPdModal => {
118
+ return Boolean(options.pdModal)
119
+ }
120
+
121
+ private isPdModalState = (state: HistoryState | Record<string, never>): state is PdModalHistoryState => {
122
+ return 'pdModal' in state
102
123
  }
103
124
 
104
- private restoreExtensionPropertiesFromState = (state: HistoryState): void => {
125
+ private restoreExtensionPropertiesFromState = (state: PdModalHistoryState): void => {
105
126
  this.historyEnabled = true // Called from popstateHandler means the history is enabled
106
127
  this.historyDirection = state.pdModal.historyDirection
107
128
  this.modalOptions = state.pdModal.options
@@ -115,9 +136,7 @@ export class AjaxModalExtension implements Extension {
115
136
  element.hasAttribute('data-naja-modal') ||
116
137
  (element as HTMLInputElement).form?.hasAttribute('data-naja-modal')
117
138
 
118
- // If the extension is enabled and modal is not opened, we detect and store history mode. History mode cannot
119
- // change when traversing ajax link inside modal.
120
- if (!options.pdModal) {
139
+ if (!this.isPdModalRequest(options)) {
121
140
  return
122
141
  }
123
142
 
@@ -128,14 +147,29 @@ export class AjaxModalExtension implements Extension {
128
147
  options.modalOptions = this.modalOptions
129
148
  options.modalOpener = element
130
149
 
131
- // History direction can only be set before opening the modal, then it stays the same until modal is hidden.
150
+ // If the extension is enabled and modal is not opened, we detect and store history mode. History mode cannot
151
+ // change when traversing ajax link inside modal, it stays the same until modal is hidden.
132
152
  if (!this.modal.isShown()) {
133
153
  this.historyDirection = element.getAttribute('data-naja-modal-history') === 'forwards' ? 'forwards' : 'backwards'
134
154
  }
135
155
  }
136
156
 
137
157
  private onSnippetFetch(event: FetchEvent): void {
138
- event.detail.options.pdModal = 'pdModal' in event.detail.state
158
+ // When snippet cache is off, this method is called to construct Naja request options. We retrieve modal
159
+ // `options` from original state in history if neccessary. Also, when closing the modal from `PopstateEvent`, we
160
+ // don't need to make a new request, so we call `event.preventDefault()` in that case.
161
+ const { state } = event.detail
162
+
163
+ if (this.isPdModalState(state)) {
164
+ event.detail.options.pdModal = true
165
+ event.detail.options.modalOpener = this.getElementFromString(state.pdModal.opener)
166
+ event.detail.options.modalOptions = state.pdModal.options
167
+ }
168
+
169
+ if (this.shouldPreventSnippetFetch) {
170
+ event.preventDefault()
171
+ this.shouldPreventSnippetFetch = false
172
+ }
139
173
  }
140
174
 
141
175
  private removeModalSnippetsIds(): void {
@@ -153,7 +187,7 @@ export class AjaxModalExtension implements Extension {
153
187
 
154
188
  private abortPreviousRequest(event: StartEvent): void {
155
189
  const { abortController, options } = event.detail
156
- if (options.pdModal) {
190
+ if (this.isPdModalRequest(options)) {
157
191
  this.abortControllers.get(this.uniqueExtKey)?.abort()
158
192
  this.abortControllers.set(this.uniqueExtKey, abortController)
159
193
  }
@@ -169,14 +203,21 @@ export class AjaxModalExtension implements Extension {
169
203
  private buildState(event: BuildStateEvent): void {
170
204
  const { options, state } = event.detail
171
205
 
172
- // Every time naja builds the state, we extend it with `pdModal` object containing information about modal being
173
- // opened and what history mode is in use. When options.forceRedirect is set, modal might be open but the new
174
- // state will be redirected outside it.
206
+ // Every time naja builds the state, and we have the modal opened, we extend the state with `pdModal` object
207
+ // containing information about modal being opened and what history mode is in use. When `options.forceRedirect`
208
+ // is set, modal might be open but the new state will be redirected outside of it.
209
+ //
210
+ // We must check this.modal.isShown instead of this.isPdModalRequest, because of initial replace state from
211
+ // Naja - in that case, options already contains information about request to be made, but we have to build the
212
+ // "previous" state yet.
175
213
  const isShown: boolean = this.modal.isShown() && !options.forceRedirect
176
- state.pdModal = {
177
- isShown,
178
- historyDirection: isShown ? this.historyDirection : null,
179
- options: isShown ? this.modalOptions : null
214
+
215
+ if (isShown) {
216
+ state.pdModal = {
217
+ historyDirection: this.historyDirection,
218
+ opener: (options.modalOpener as Element).outerHTML, // if `this.modal.isShown()` is true, the `modalOpener` has been stored
219
+ options: this.modalOptions
220
+ }
180
221
  }
181
222
 
182
223
  // If the state is build, the history is enabled. This information is needed inside modal callback where the
@@ -186,7 +227,7 @@ export class AjaxModalExtension implements Extension {
186
227
 
187
228
  private before(event: BeforeEvent) {
188
229
  const { options, request } = event.detail
189
- if (!options.pdModal) {
230
+ if (!this.isPdModalRequest(options)) {
190
231
  return
191
232
  }
192
233
 
@@ -205,7 +246,7 @@ export class AjaxModalExtension implements Extension {
205
246
  title: document.title
206
247
  }
207
248
 
208
- if (!options.pdModal) {
249
+ if (!this.isPdModalRequest(options)) {
209
250
  return
210
251
  }
211
252
 
@@ -300,6 +341,7 @@ export class AjaxModalExtension implements Extension {
300
341
 
301
342
  const isCurrentStatePdModal = this.isPdModalState(state)
302
343
  this.popstateFlag = true
344
+ this.shouldPreventSnippetFetch = false
303
345
 
304
346
  // We don't know how many states we go back. So we go one by one until the new state is not modal state
305
347
  // (`isPdModalState` is `false`).
@@ -321,17 +363,17 @@ export class AjaxModalExtension implements Extension {
321
363
  this.hidePopstateFlag = false
322
364
  }
323
365
 
324
- // We check if the state has pdModal object present on popstate. If so (and the pdModal.isShown is true), we proceed
325
- // to open the modal. Content of the modal is restored by naja itself (either from cache or by new request).
366
+ // We check if the state has `pdModal` object present on popstate. If so , we proceed to open the modal. Content
367
+ // of the modal is restored by naja itself (either from cache or by new request).
326
368
  //
327
- // If the initial state is also detected as pdModal state, we returned to some pdModal state using reload. In that
328
- // case, we don't want to open the modal, because we might be missing some snippets. Effectively this means that the
329
- // modal will never be opened by forward / back button if there has been some other site loaded outside the modal
330
- // (e.g. some non-ajax link leading from modal).
369
+ // If the initial state is also detected as pdModal state, we returned to some pdModal state using reload. In
370
+ // that case, we don't want to open the modal, because we might be missing some snippets. Effectively this means
371
+ // that the modal will never be opened by forward / back button if there has been some other site loaded outside
372
+ // the modal (e.g. some non-ajax link leading from modal).
331
373
  if (isCurrentStatePdModal && !this.isPdModalState(this.initialState)) {
332
374
  this.restoreExtensionPropertiesFromState(state)
333
375
 
334
- this.modal.show(undefined, state.pdModal.options, event)
376
+ this.modal.show(this.getElementFromString(state.pdModal.opener), state.pdModal.options, event)
335
377
 
336
378
  // If there is some snippet cache, we might restore modal options. If not, options will be restored based on
337
379
  // options after the ajax request. Same applies to dispatching load event - if cache is on, we dispatch the
@@ -346,16 +388,18 @@ export class AjaxModalExtension implements Extension {
346
388
  } else {
347
389
  this.historyEnabled = false // Hiding modal using forward / back button, we disable the history to prevent state duplication
348
390
 
349
- // Reload the page if the initial state has been inside modal. This prevents snippets loss e.g. during layout changes.
391
+ // Reload the page if the initial state has been inside modal. This prevents snippets loss e.g. during
392
+ // layout changes.
350
393
  if (this.isPdModalState(this.initialState)) {
351
394
  window.location.reload()
352
395
  }
353
396
 
354
- // Non-modal state and non-modal initial state, we just hide the current modal.
355
- this.modal.hide(event)
356
-
357
- // We don't want the naja popstate callback to be executed (or any other popstate handler).
358
- event.stopImmediatePropagation()
397
+ // Non-modal state and non-modal initial state we just hide the current modal and prevent snippet fetch
398
+ // (if snippet cache is off).
399
+ if (this.modal.isShown()) {
400
+ this.modal.hide(event)
401
+ this.shouldPreventSnippetFetch = true
402
+ }
359
403
  }
360
404
 
361
405
  // Keep track of current state. When `backwards` history mode is used, we eventually push this state into
@@ -372,4 +416,8 @@ export class AjaxModalExtension implements Extension {
372
416
  this.historyDirection = 'backwards'
373
417
  this.modalOptions = null
374
418
  }
419
+
420
+ private getElementFromString(stringElement: string): Element {
421
+ return new DOMParser().parseFromString(stringElement, 'text/html').body.firstElementChild as Element
422
+ }
375
423
  }
@@ -13,6 +13,10 @@
13
13
  // 3. In case of `addControlOnLive` used, the `initialize` method is also called for each success ajax request. The
14
14
  // `context` argument is equal to modified nette snippet.
15
15
  //
16
+ // There is also optional method `destroy`. This method is called for each snippet before its content is being replaced.
17
+ // It is only called on snippets where operation is equal to naja.snippetHandler.
16
18
  export default interface Control {
17
19
  initialize(context: Element | Document): void
20
+
21
+ destroy?(context: Element): void
18
22
  }
@@ -1,5 +1,5 @@
1
1
  import naja from 'naja'
2
- import { AfterUpdateEvent } from 'naja/dist/core/SnippetHandler'
2
+ import { AfterUpdateEvent, BeforeUpdateEvent } from 'naja/dist/core/SnippetHandler'
3
3
  import Control from './Control'
4
4
 
5
5
  let instance: ControlManager | null = null
@@ -12,6 +12,7 @@ export default class ControlManager {
12
12
  if (instance === null) {
13
13
  // eslint-disable-next-line @typescript-eslint/no-this-alias
14
14
  instance = this
15
+ naja.snippetHandler.addEventListener('beforeUpdate', this.onBeforeSnippetUpdate.bind(this))
15
16
  naja.snippetHandler.addEventListener('afterUpdate', this.onSnippetUpdate.bind(this))
16
17
  }
17
18
  return instance
@@ -22,6 +23,17 @@ export default class ControlManager {
22
23
  this.initialize(this.onLiveControl)
23
24
  }
24
25
 
26
+ private onBeforeSnippetUpdate(event: BeforeUpdateEvent): void {
27
+ if (
28
+ event.detail.operation === naja.snippetHandler.op.append ||
29
+ event.detail.operation === naja.snippetHandler.op.prepend
30
+ ) {
31
+ return
32
+ }
33
+
34
+ this.destroy(this.onLiveControl, event.detail.snippet)
35
+ }
36
+
25
37
  private onSnippetUpdate(event: AfterUpdateEvent): void {
26
38
  this.initialize(this.onLiveControl, event.detail.snippet)
27
39
  }
@@ -32,6 +44,14 @@ export default class ControlManager {
32
44
  })
33
45
  }
34
46
 
47
+ private destroy(controls: Control[], snippet: Element): void {
48
+ controls.forEach((control) => {
49
+ if (control.destroy !== undefined) {
50
+ control.destroy(snippet)
51
+ }
52
+ })
53
+ }
54
+
35
55
  public addControlOnLoad(control: Control): void {
36
56
  this.onLoadControl.push(control)
37
57
  }