@elementor/editor-responsive 0.10.4 → 0.10.6

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/CHANGELOG.md CHANGED
@@ -3,433 +3,234 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [0.10.4](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.10.3...@elementor/editor-responsive@0.10.4) (2024-07-08)
6
+ ## [0.10.6](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.10.5...@elementor/editor-responsive@0.10.6) (2024-07-16)
7
7
 
8
8
  **Note:** Version bump only for package @elementor/editor-responsive
9
9
 
10
+ ## [0.10.5](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.10.4...@elementor/editor-responsive@0.10.5) (2024-07-16)
10
11
 
12
+ **Note:** Version bump only for package @elementor/editor-responsive
11
13
 
14
+ ## [0.10.4](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.10.3...@elementor/editor-responsive@0.10.4) (2024-07-08)
12
15
 
16
+ **Note:** Version bump only for package @elementor/editor-responsive
13
17
 
14
18
  ## [0.10.3](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.10.2...@elementor/editor-responsive@0.10.3) (2024-07-03)
15
19
 
16
20
  **Note:** Version bump only for package @elementor/editor-responsive
17
21
 
18
-
19
-
20
-
21
-
22
22
  ## [0.10.2](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.10.1...@elementor/editor-responsive@0.10.2) (2024-07-03)
23
23
 
24
24
  **Note:** Version bump only for package @elementor/editor-responsive
25
25
 
26
-
27
-
28
-
29
-
30
26
  ## [0.10.1](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.10.0...@elementor/editor-responsive@0.10.1) (2024-07-02)
31
27
 
32
28
  **Note:** Version bump only for package @elementor/editor-responsive
33
29
 
34
-
35
-
36
-
37
-
38
30
  # [0.10.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.9.0...@elementor/editor-responsive@0.10.0) (2024-06-16)
39
31
 
40
-
41
32
  ### Features
42
33
 
43
- * **editor-app-bar:** add value to each responsive device switcher [ED-14367] ([#185](https://github.com/elementor/elementor-packages/issues/185)) ([4df9deb](https://github.com/elementor/elementor-packages/commit/4df9deb57d71e43aadbcd311be178bf395ac1cdc))
44
-
45
-
46
-
47
-
34
+ - **editor-app-bar:** add value to each responsive device switcher [ED-14367] ([#185](https://github.com/elementor/elementor-packages/issues/185)) ([4df9deb](https://github.com/elementor/elementor-packages/commit/4df9deb57d71e43aadbcd311be178bf395ac1cdc))
48
35
 
49
36
  # [0.9.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.21...@elementor/editor-responsive@0.9.0) (2024-06-04)
50
37
 
51
-
52
38
  ### Features
53
39
 
54
- * internal create a top bar data events collection working with mixpanel [ED-14684] ([#184](https://github.com/elementor/elementor-packages/issues/184)) ([9d25189](https://github.com/elementor/elementor-packages/commit/9d25189173a65d535347f9b2f32d377bcffb6c52))
55
-
56
-
57
-
58
-
40
+ - internal create a top bar data events collection working with mixpanel [ED-14684] ([#184](https://github.com/elementor/elementor-packages/issues/184)) ([9d25189](https://github.com/elementor/elementor-packages/commit/9d25189173a65d535347f9b2f32d377bcffb6c52))
59
41
 
60
42
  ## [0.8.21](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.20...@elementor/editor-responsive@0.8.21) (2024-06-02)
61
43
 
62
44
  **Note:** Version bump only for package @elementor/editor-responsive
63
45
 
64
-
65
-
66
-
67
-
68
46
  ## [0.8.20](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.19...@elementor/editor-responsive@0.8.20) (2024-05-09)
69
47
 
70
48
  **Note:** Version bump only for package @elementor/editor-responsive
71
49
 
72
-
73
-
74
-
75
-
76
50
  ## [0.8.19](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.18...@elementor/editor-responsive@0.8.19) (2024-05-08)
77
51
 
78
52
  **Note:** Version bump only for package @elementor/editor-responsive
79
53
 
80
-
81
-
82
-
83
-
84
54
  ## [0.8.18](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.17...@elementor/editor-responsive@0.8.18) (2024-05-07)
85
55
 
86
56
  **Note:** Version bump only for package @elementor/editor-responsive
87
57
 
88
-
89
-
90
-
91
-
92
58
  ## [0.8.17](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.16...@elementor/editor-responsive@0.8.17) (2024-04-16)
93
59
 
94
60
  **Note:** Version bump only for package @elementor/editor-responsive
95
61
 
96
-
97
-
98
-
99
-
100
62
  ## [0.8.16](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.15...@elementor/editor-responsive@0.8.16) (2024-04-16)
101
63
 
102
64
  **Note:** Version bump only for package @elementor/editor-responsive
103
65
 
104
-
105
-
106
-
107
-
108
66
  ## [0.8.15](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.14...@elementor/editor-responsive@0.8.15) (2024-04-04)
109
67
 
110
68
  **Note:** Version bump only for package @elementor/editor-responsive
111
69
 
112
-
113
-
114
-
115
-
116
70
  ## [0.8.14](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.13...@elementor/editor-responsive@0.8.14) (2024-03-24)
117
71
 
118
72
  **Note:** Version bump only for package @elementor/editor-responsive
119
73
 
120
-
121
-
122
-
123
-
124
74
  ## [0.8.13](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.12...@elementor/editor-responsive@0.8.13) (2024-03-05)
125
75
 
126
76
  **Note:** Version bump only for package @elementor/editor-responsive
127
77
 
128
-
129
-
130
-
131
-
132
78
  ## [0.8.12](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.11...@elementor/editor-responsive@0.8.12) (2024-02-28)
133
79
 
134
80
  **Note:** Version bump only for package @elementor/editor-responsive
135
81
 
136
-
137
-
138
-
139
-
140
82
  ## [0.8.11](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.10...@elementor/editor-responsive@0.8.11) (2024-02-22)
141
83
 
142
84
  **Note:** Version bump only for package @elementor/editor-responsive
143
85
 
144
-
145
-
146
-
147
-
148
86
  ## [0.8.10](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.9...@elementor/editor-responsive@0.8.10) (2024-02-15)
149
87
 
150
88
  **Note:** Version bump only for package @elementor/editor-responsive
151
89
 
152
-
153
-
154
-
155
-
156
90
  ## [0.8.9](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.8...@elementor/editor-responsive@0.8.9) (2024-02-15)
157
91
 
158
92
  **Note:** Version bump only for package @elementor/editor-responsive
159
93
 
160
-
161
-
162
-
163
-
164
94
  ## [0.8.8](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.7...@elementor/editor-responsive@0.8.8) (2024-01-29)
165
95
 
166
96
  **Note:** Version bump only for package @elementor/editor-responsive
167
97
 
168
-
169
-
170
-
171
-
172
98
  ## [0.8.7](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.6...@elementor/editor-responsive@0.8.7) (2023-11-07)
173
99
 
174
100
  **Note:** Version bump only for package @elementor/editor-responsive
175
101
 
176
-
177
-
178
-
179
-
180
102
  ## [0.8.6](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.5...@elementor/editor-responsive@0.8.6) (2023-11-02)
181
103
 
182
104
  **Note:** Version bump only for package @elementor/editor-responsive
183
105
 
184
-
185
-
186
-
187
-
188
106
  ## [0.8.5](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.4...@elementor/editor-responsive@0.8.5) (2023-10-19)
189
107
 
190
108
  **Note:** Version bump only for package @elementor/editor-responsive
191
109
 
192
-
193
-
194
-
195
-
196
110
  ## [0.8.4](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.3...@elementor/editor-responsive@0.8.4) (2023-10-19)
197
111
 
198
112
  **Note:** Version bump only for package @elementor/editor-responsive
199
113
 
200
-
201
-
202
-
203
-
204
114
  ## [0.8.3](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.2...@elementor/editor-responsive@0.8.3) (2023-09-27)
205
115
 
206
116
  **Note:** Version bump only for package @elementor/editor-responsive
207
117
 
208
-
209
-
210
-
211
-
212
118
  ## [0.8.2](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.1...@elementor/editor-responsive@0.8.2) (2023-09-26)
213
119
 
214
120
  **Note:** Version bump only for package @elementor/editor-responsive
215
121
 
216
-
217
-
218
-
219
-
220
122
  ## [0.8.1](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.8.0...@elementor/editor-responsive@0.8.1) (2023-09-26)
221
123
 
222
124
  **Note:** Version bump only for package @elementor/editor-responsive
223
125
 
224
-
225
-
226
-
227
-
228
126
  # [0.8.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.7.0...@elementor/editor-responsive@0.8.0) (2023-09-14)
229
127
 
230
-
231
128
  ### Features
232
129
 
233
- * **v1-adapters:** mark private functions [ED-12029] ([#122](https://github.com/elementor/elementor-packages/issues/122)) ([2e79ccc](https://github.com/elementor/elementor-packages/commit/2e79ccc87add5f0508b5a142f9f6d832b4657062))
234
-
235
-
236
-
237
-
130
+ - **v1-adapters:** mark private functions [ED-12029] ([#122](https://github.com/elementor/elementor-packages/issues/122)) ([2e79ccc](https://github.com/elementor/elementor-packages/commit/2e79ccc87add5f0508b5a142f9f6d832b4657062))
238
131
 
239
132
  # [0.7.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.13...@elementor/editor-responsive@0.7.0) (2023-09-11)
240
133
 
241
-
242
134
  ### Bug Fixes
243
135
 
244
- * ui adaptations [ED-11933] ([#107](https://github.com/elementor/elementor-packages/issues/107)) ([18ef329](https://github.com/elementor/elementor-packages/commit/18ef32928cbe921d7f5340c37c3c965b117d8d63))
245
-
136
+ - ui adaptations [ED-11933] ([#107](https://github.com/elementor/elementor-packages/issues/107)) ([18ef329](https://github.com/elementor/elementor-packages/commit/18ef32928cbe921d7f5340c37c3c965b117d8d63))
246
137
 
247
138
  ### Features
248
139
 
249
- * **store:** mark experimental functions [ED-12070] ([#114](https://github.com/elementor/elementor-packages/issues/114)) ([d790829](https://github.com/elementor/elementor-packages/commit/d79082911195c75f6d3a89a5619b234e2f5ce158))
250
-
251
-
252
-
253
-
140
+ - **store:** mark experimental functions [ED-12070] ([#114](https://github.com/elementor/elementor-packages/issues/114)) ([d790829](https://github.com/elementor/elementor-packages/commit/d79082911195c75f6d3a89a5619b234e2f5ce158))
254
141
 
255
142
  ## [0.6.13](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.12...@elementor/editor-responsive@0.6.13) (2023-08-22)
256
143
 
257
144
  **Note:** Version bump only for package @elementor/editor-responsive
258
145
 
259
-
260
-
261
-
262
-
263
146
  ## [0.6.12](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.11...@elementor/editor-responsive@0.6.12) (2023-08-20)
264
147
 
265
148
  **Note:** Version bump only for package @elementor/editor-responsive
266
149
 
267
-
268
-
269
-
270
-
271
150
  ## [0.6.11](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.10...@elementor/editor-responsive@0.6.11) (2023-08-02)
272
151
 
273
152
  **Note:** Version bump only for package @elementor/editor-responsive
274
153
 
275
-
276
-
277
-
278
-
279
154
  ## [0.6.10](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.9...@elementor/editor-responsive@0.6.10) (2023-08-01)
280
155
 
281
156
  **Note:** Version bump only for package @elementor/editor-responsive
282
157
 
283
-
284
-
285
-
286
-
287
158
  ## [0.6.9](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.8...@elementor/editor-responsive@0.6.9) (2023-07-17)
288
159
 
289
160
  **Note:** Version bump only for package @elementor/editor-responsive
290
161
 
291
-
292
-
293
-
294
-
295
162
  ## [0.6.8](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.7...@elementor/editor-responsive@0.6.8) (2023-07-17)
296
163
 
297
164
  **Note:** Version bump only for package @elementor/editor-responsive
298
165
 
299
-
300
-
301
-
302
-
303
166
  ## [0.6.7](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.6...@elementor/editor-responsive@0.6.7) (2023-07-16)
304
167
 
305
168
  **Note:** Version bump only for package @elementor/editor-responsive
306
169
 
307
-
308
-
309
-
310
-
311
170
  ## [0.6.6](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.5...@elementor/editor-responsive@0.6.6) (2023-06-29)
312
171
 
313
172
  **Note:** Version bump only for package @elementor/editor-responsive
314
173
 
315
-
316
-
317
-
318
-
319
174
  ## [0.6.5](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.4...@elementor/editor-responsive@0.6.5) (2023-06-28)
320
175
 
321
176
  **Note:** Version bump only for package @elementor/editor-responsive
322
177
 
323
-
324
-
325
-
326
-
327
178
  ## [0.6.4](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.3...@elementor/editor-responsive@0.6.4) (2023-06-26)
328
179
 
329
180
  **Note:** Version bump only for package @elementor/editor-responsive
330
181
 
331
-
332
-
333
-
334
-
335
182
  ## [0.6.3](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.2...@elementor/editor-responsive@0.6.3) (2023-06-25)
336
183
 
337
184
  **Note:** Version bump only for package @elementor/editor-responsive
338
185
 
339
-
340
-
341
-
342
-
343
186
  ## [0.6.2](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.1...@elementor/editor-responsive@0.6.2) (2023-06-25)
344
187
 
345
188
  **Note:** Version bump only for package @elementor/editor-responsive
346
189
 
347
-
348
-
349
-
350
-
351
190
  ## [0.6.1](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.6.0...@elementor/editor-responsive@0.6.1) (2023-06-11)
352
191
 
353
192
  **Note:** Version bump only for package @elementor/editor-responsive
354
193
 
355
-
356
-
357
-
358
-
359
194
  # [0.6.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.5.0...@elementor/editor-responsive@0.6.0) (2023-06-06)
360
195
 
361
-
362
196
  ### Features
363
197
 
364
- * drop support for React 17 [ED-10982] ([#50](https://github.com/elementor/elementor-packages/issues/50)) ([59c576c](https://github.com/elementor/elementor-packages/commit/59c576ca218947dc0992616311d4d399a20e91a6))
365
-
366
-
367
-
368
-
198
+ - drop support for React 17 [ED-10982] ([#50](https://github.com/elementor/elementor-packages/issues/50)) ([59c576c](https://github.com/elementor/elementor-packages/commit/59c576ca218947dc0992616311d4d399a20e91a6))
369
199
 
370
200
  # [0.5.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.4.0...@elementor/editor-responsive@0.5.0) (2023-06-05)
371
201
 
372
-
373
202
  ### Features
374
203
 
375
- * **store:** support creating & registering a slice independently [ED-10914] ([#47](https://github.com/elementor/elementor-packages/issues/47)) ([3cac551](https://github.com/elementor/elementor-packages/commit/3cac551d72cc2df6e11c017323559e3e5c4ab12f))
376
-
377
-
378
-
379
-
204
+ - **store:** support creating & registering a slice independently [ED-10914] ([#47](https://github.com/elementor/elementor-packages/issues/47)) ([3cac551](https://github.com/elementor/elementor-packages/commit/3cac551d72cc2df6e11c017323559e3e5c4ab12f))
380
205
 
381
206
  # [0.4.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.3.1...@elementor/editor-responsive@0.4.0) (2023-06-01)
382
207
 
383
-
384
208
  ### Features
385
209
 
386
- * add support for React 18 [ED-10905] ([#46](https://github.com/elementor/elementor-packages/issues/46)) ([c8915c6](https://github.com/elementor/elementor-packages/commit/c8915c6ea62550bcdeb5c8a576f311bedc35bcad))
387
-
388
-
389
-
390
-
210
+ - add support for React 18 [ED-10905] ([#46](https://github.com/elementor/elementor-packages/issues/46)) ([c8915c6](https://github.com/elementor/elementor-packages/commit/c8915c6ea62550bcdeb5c8a576f311bedc35bcad))
391
211
 
392
212
  ## [0.3.1](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.3.0...@elementor/editor-responsive@0.3.1) (2023-05-30)
393
213
 
394
214
  **Note:** Version bump only for package @elementor/editor-responsive
395
215
 
396
-
397
-
398
-
399
-
400
216
  # [0.3.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor-responsive@0.2.2...@elementor/editor-responsive@0.3.0) (2023-05-21)
401
217
 
402
-
403
218
  ### Features
404
219
 
405
- * **locations:** change api to support props for slots [ED-10730] ([#38](https://github.com/elementor/elementor-packages/issues/38)) ([44bec3c](https://github.com/elementor/elementor-packages/commit/44bec3cda1020037ba7105c6f05ce4baa8e3b376))
406
-
407
-
408
-
409
-
220
+ - **locations:** change api to support props for slots [ED-10730] ([#38](https://github.com/elementor/elementor-packages/issues/38)) ([44bec3c](https://github.com/elementor/elementor-packages/commit/44bec3cda1020037ba7105c6f05ce4baa8e3b376))
410
221
 
411
222
  ## 0.2.2 (2023-05-16)
412
223
 
413
-
414
-
415
224
  ## 0.2.1 (2023-05-11)
416
225
 
417
-
418
226
  ### Bug Fixes
419
227
 
420
- * **editor-app-bar:** make save options button disabled in site-settings [ED-10221] ([#30](https://github.com/elementor/elementor-packages/issues/30)) ([1991096](https://github.com/elementor/elementor-packages/commit/1991096115efeae7bc3648e4889899b85d7328d6))
421
-
422
-
228
+ - **editor-app-bar:** make save options button disabled in site-settings [ED-10221] ([#30](https://github.com/elementor/elementor-packages/issues/30)) ([1991096](https://github.com/elementor/elementor-packages/commit/1991096115efeae7bc3648e4889899b85d7328d6))
423
229
 
424
230
  # 0.2.0 (2023-05-09)
425
231
 
426
-
427
-
428
-
429
-
430
232
  ## [0.2.1](https://github.com/elementor/elementor-packages/compare/v0.2.0...v0.2.1) (2023-05-11)
431
233
 
432
-
433
234
  ### Bug Fixes
434
235
 
435
- * **editor-app-bar:** make save options button disabled in site-settings [ED-10221] ([#30](https://github.com/elementor/elementor-packages/issues/30)) ([1991096](https://github.com/elementor/elementor-packages/commit/1991096115efeae7bc3648e4889899b85d7328d6))
236
+ - **editor-app-bar:** make save options button disabled in site-settings [ED-10221] ([#30](https://github.com/elementor/elementor-packages/issues/30)) ([1991096](https://github.com/elementor/elementor-packages/commit/1991096115efeae7bc3648e4889899b85d7328d6))
package/dist/index.js CHANGED
@@ -44,12 +44,15 @@ var slice = (0, import_store.__createSlice)({
44
44
  }
45
45
  });
46
46
  function normalizeEntities(entities) {
47
- return entities.reduce((acc, breakpoint) => {
48
- return {
49
- ...acc,
50
- [breakpoint.id]: breakpoint
51
- };
52
- }, {});
47
+ return entities.reduce(
48
+ (acc, breakpoint) => {
49
+ return {
50
+ ...acc,
51
+ [breakpoint.id]: breakpoint
52
+ };
53
+ },
54
+ {}
55
+ );
53
56
  }
54
57
 
55
58
  // src/sync/sync-store.ts
@@ -62,25 +65,21 @@ function syncStore() {
62
65
  }
63
66
  function syncInitialization() {
64
67
  const { init: init2 } = slice.actions;
65
- (0, import_editor_v1_adapters.__privateListenTo)(
66
- (0, import_editor_v1_adapters.v1ReadyEvent)(),
67
- () => {
68
- (0, import_store3.__dispatch)(init2({
68
+ (0, import_editor_v1_adapters.__privateListenTo)((0, import_editor_v1_adapters.v1ReadyEvent)(), () => {
69
+ (0, import_store3.__dispatch)(
70
+ init2({
69
71
  entities: getBreakpoints(),
70
72
  activeId: getActiveBreakpoint()
71
- }));
72
- }
73
- );
73
+ })
74
+ );
75
+ });
74
76
  }
75
77
  function syncOnChange() {
76
78
  const { activateBreakpoint } = slice.actions;
77
- (0, import_editor_v1_adapters.__privateListenTo)(
78
- deviceModeChangeEvent(),
79
- () => {
80
- const activeBreakpoint = getActiveBreakpoint();
81
- (0, import_store3.__dispatch)(activateBreakpoint(activeBreakpoint));
82
- }
83
- );
79
+ (0, import_editor_v1_adapters.__privateListenTo)(deviceModeChangeEvent(), () => {
80
+ const activeBreakpoint = getActiveBreakpoint();
81
+ (0, import_store3.__dispatch)(activateBreakpoint(activeBreakpoint));
82
+ });
84
83
  }
85
84
  function getBreakpoints() {
86
85
  const { breakpoints } = window.elementor?.config?.responsive || {};
@@ -128,23 +127,16 @@ var selectActiveBreakpoint = (0, import_store4.__createSelector)(
128
127
  selectActiveId,
129
128
  (entities, activeId) => activeId && entities[activeId] ? entities[activeId] : null
130
129
  );
131
- var selectSortedBreakpoints = (0, import_store4.__createSelector)(
132
- selectEntities,
133
- (entities) => {
134
- const byWidth = (a, b) => {
135
- return a.width && b.width ? b.width - a.width : 0;
136
- };
137
- const all = Object.values(entities);
138
- const defaults = all.filter((breakpoint) => !breakpoint.width);
139
- const minWidth = all.filter((breakpoint) => breakpoint.type === "min-width");
140
- const maxWidth = all.filter((breakpoint) => breakpoint.type === "max-width");
141
- return [
142
- ...minWidth.sort(byWidth),
143
- ...defaults,
144
- ...maxWidth.sort(byWidth)
145
- ];
146
- }
147
- );
130
+ var selectSortedBreakpoints = (0, import_store4.__createSelector)(selectEntities, (entities) => {
131
+ const byWidth = (a, b) => {
132
+ return a.width && b.width ? b.width - a.width : 0;
133
+ };
134
+ const all = Object.values(entities);
135
+ const defaults = all.filter((breakpoint) => !breakpoint.width);
136
+ const minWidth = all.filter((breakpoint) => breakpoint.type === "min-width");
137
+ const maxWidth = all.filter((breakpoint) => breakpoint.type === "max-width");
138
+ return [...minWidth.sort(byWidth), ...defaults, ...maxWidth.sort(byWidth)];
139
+ });
148
140
 
149
141
  // src/hooks/use-breakpoints.ts
150
142
  function useBreakpoints() {
@@ -183,16 +175,13 @@ function BreakpointsSwitcher() {
183
175
  const extendedWindow = window;
184
176
  const config = extendedWindow?.elementor?.editorEvents?.config;
185
177
  if (config) {
186
- extendedWindow.elementor.editorEvents.dispatchEvent(
187
- config.names.topBar.responsiveControls,
188
- {
189
- location: config.locations.topBar,
190
- secondaryLocation: config.secondaryLocations.responsiveControls,
191
- trigger: config.triggers.click,
192
- element: config.elements.buttonIcon,
193
- mode: value
194
- }
195
- );
178
+ extendedWindow.elementor.editorEvents.dispatchEvent(config.names.topBar.responsiveControls, {
179
+ location: config.locations.topBar,
180
+ secondaryLocation: config.secondaryLocations.responsiveControls,
181
+ trigger: config.triggers.click,
182
+ element: config.elements.buttonIcon,
183
+ mode: value
184
+ });
196
185
  }
197
186
  activate(value);
198
187
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/store/index.ts","../src/sync/sync-store.ts","../src/init.ts","../src/components/breakpoints-switcher.tsx","../src/hooks/use-breakpoints.ts","../src/store/selectors.ts","../src/hooks/use-breakpoints-actions.ts","../src/index.ts"],"sourcesContent":["import { __createSlice, PayloadAction } from '@elementor/store';\nimport { Breakpoint, BreakpointId } from '../types';\n\nexport type State = {\n\tentities: Record<BreakpointId, Breakpoint>,\n\tactiveId: BreakpointId | null,\n}\nconst initialState: State = {\n\tentities: {} as State['entities'],\n\tactiveId: null,\n};\n\nexport const slice = __createSlice( {\n\tname: 'breakpoints',\n\tinitialState,\n\treducers: {\n\t\tinit( state, action: PayloadAction<{\n\t\t\tentities: Breakpoint[],\n\t\t\tactiveId: State['activeId'],\n\t\t}> ) {\n\t\t\tstate.activeId = action.payload.activeId;\n\t\t\tstate.entities = normalizeEntities( action.payload.entities );\n\t\t},\n\n\t\tactivateBreakpoint( state, action: PayloadAction<BreakpointId> ) {\n\t\t\tif ( state.entities[ action.payload ] ) {\n\t\t\t\tstate.activeId = action.payload;\n\t\t\t}\n\t\t},\n\t},\n} );\n\nfunction normalizeEntities( entities: Breakpoint[] ) {\n\treturn entities.reduce( ( acc, breakpoint ) => {\n\t\treturn {\n\t\t\t...acc,\n\t\t\t[ breakpoint.id ]: breakpoint,\n\t\t};\n\t}, {} as State['entities'] );\n}\n","import { slice } from '../store';\nimport { __dispatch } from '@elementor/store';\nimport { Breakpoint, ExtendedWindow } from '../types';\nimport { __privateListenTo as listenTo, v1ReadyEvent, windowEvent } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nexport default function syncStore() {\n\tsyncInitialization();\n\tsyncOnChange();\n}\n\nfunction syncInitialization() {\n\tconst { init } = slice.actions;\n\n\tlistenTo(\n\t\tv1ReadyEvent(),\n\t\t() => {\n\t\t\t__dispatch( init( {\n\t\t\t\tentities: getBreakpoints(),\n\t\t\t\tactiveId: getActiveBreakpoint(),\n\t\t\t} ) );\n\t\t}\n\t);\n}\n\nfunction syncOnChange() {\n\tconst { activateBreakpoint } = slice.actions;\n\n\tlistenTo(\n\t\tdeviceModeChangeEvent(),\n\t\t() => {\n\t\t\tconst activeBreakpoint = getActiveBreakpoint();\n\n\t\t\t__dispatch( activateBreakpoint( activeBreakpoint ) );\n\t\t},\n\t);\n}\n\nfunction getBreakpoints() {\n\tconst { breakpoints } = ( window as unknown as ExtendedWindow ).elementor?.config?.responsive || {};\n\n\tif ( ! breakpoints ) {\n\t\treturn [];\n\t}\n\n\tconst entities = Object\n\t\t.entries( breakpoints )\n\t\t.filter( ( [ , breakpoint ] ) => breakpoint.is_enabled )\n\t\t.map( ( [ id, { value, direction, label } ] ) => {\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tlabel,\n\t\t\t\twidth: value,\n\t\t\t\ttype: direction === 'min' ? 'min-width' : 'max-width',\n\t\t\t} as Breakpoint;\n\t\t} );\n\n\t// Desktop breakpoint is not included in V1 config.\n\tentities.push( {\n\t\tid: 'desktop',\n\t\tlabel: __( 'Desktop', 'elementor' ),\n\t} );\n\n\treturn entities;\n}\n\nfunction getActiveBreakpoint() {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.channels?.deviceMode?.request?.( 'currentMode' ) || null;\n}\n\nfunction deviceModeChangeEvent() {\n\treturn windowEvent( 'elementor/device-mode/change' );\n}\n","import { slice } from './store';\nimport syncStore from './sync/sync-store';\nimport { injectIntoResponsive } from '@elementor/editor-app-bar';\nimport BreakpointsSwitcher from './components/breakpoints-switcher';\nimport { __registerSlice } from '@elementor/store';\n\nexport default function init() {\n\tinitStore();\n\n\tregisterAppBarUI();\n}\n\nfunction initStore() {\n\t__registerSlice( slice );\n\n\tsyncStore();\n}\n\nfunction registerAppBarUI() {\n\tinjectIntoResponsive( {\n\t\tid: 'responsive-breakpoints-switcher',\n\t\tcomponent: BreakpointsSwitcher,\n\t\toptions: {\n\t\t\tpriority: 20, // After document indication.\n\t\t},\n\t} );\n}\n","import * as React from 'react';\nimport { __ } from '@wordpress/i18n';\nimport { BreakpointId, ExtendedWindow } from '../types';\nimport useBreakpoints from '../hooks/use-breakpoints';\nimport { Tab, Tabs, Tooltip as BaseTooltip, TooltipProps } from '@elementor/ui';\nimport {\n\tDesktopIcon,\n\tTabletPortraitIcon,\n\tMobilePortraitIcon,\n\tWidescreenIcon,\n\tLaptopIcon,\n\tTabletLandscapeIcon,\n\tMobileLandscapeIcon,\n} from '@elementor/icons';\nimport useBreakpointsActions from '../hooks/use-breakpoints-actions';\n\nexport default function BreakpointsSwitcher() {\n\tconst { all, active } = useBreakpoints();\n\tconst { activate } = useBreakpointsActions();\n\n\tif ( ! all.length || ! active ) {\n\t\treturn null;\n\t}\n\n\tconst onChange = ( _: unknown, value: BreakpointId ) => {\n\t\tconst extendedWindow = window as unknown as ExtendedWindow;\n\t\tconst config = extendedWindow?.elementor?.editorEvents?.config;\n\n\t\tif ( config ) {\n\t\t\textendedWindow.elementor.editorEvents.dispatchEvent(\n\t\t\t\tconfig.names.topBar.responsiveControls,\n\t\t\t\t{\n\t\t\t\t\tlocation: config.locations.topBar,\n\t\t\t\t\tsecondaryLocation: config.secondaryLocations.responsiveControls,\n\t\t\t\t\ttrigger: config.triggers.click,\n\t\t\t\t\telement: config.elements.buttonIcon,\n\t\t\t\t\tmode: value,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tactivate( value );\n\t};\n\n\treturn (\n\t\t<Tabs\n\t\t\ttextColor=\"inherit\"\n\t\t\tindicatorColor=\"secondary\"\n\t\t\tvalue={ active.id }\n\t\t\tonChange={ onChange }\n\t\t\taria-label={ __( 'Switch Device', 'elementor' ) }\n\t\t\tsx={ {\n\t\t\t\t'& .MuiTabs-indicator': {\n\t\t\t\t\tbackgroundColor: 'text.primary',\n\t\t\t\t},\n\t\t\t} }\n\t\t>\n\t\t\t{\n\t\t\t\tall.map( ( { id, label, type, width } ) => {\n\t\t\t\t\tconst Icon = iconsMap[ id ];\n\n\t\t\t\t\tconst title = labelsMap[ type || 'default' ]\n\t\t\t\t\t\t.replace( '%s', label )\n\t\t\t\t\t\t.replace( '%d', width?.toString() || '' );\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Tab value={ id }\n\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\t\ticon={ <Tooltip title={ title }><Icon /></Tooltip> }\n\t\t\t\t\t\t\tsx={ { minWidth: 'auto' } }\n\t\t\t\t\t\t\tdata-testid={ `switch-device-to-${ id }` }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} )\n\t\t\t}\n\t\t</Tabs>\n\n\t);\n}\n\nfunction Tooltip( props: TooltipProps ) {\n\treturn <BaseTooltip\n\t\tPopperProps={ {\n\t\t\tsx: {\n\t\t\t\t'&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {\n\t\t\t\t\tmt: 2.5,\n\t\t\t\t},\n\t\t\t},\n\t\t} }\n\t\t{ ...props }\n\t/>;\n}\n\nconst iconsMap = {\n\twidescreen: WidescreenIcon,\n\tdesktop: DesktopIcon,\n\tlaptop: LaptopIcon,\n\ttablet_extra: TabletLandscapeIcon,\n\ttablet: TabletPortraitIcon,\n\tmobile_extra: MobileLandscapeIcon,\n\tmobile: MobilePortraitIcon,\n};\n\nconst labelsMap = {\n\tdefault: '%s',\n\t// translators: %s: Breakpoint label, %d: Breakpoint size.\n\t'min-width': __( '%s (%dpx and up)', 'elementor' ),\n\n\t// translators: %s: Breakpoint label, %d: Breakpoint size.\n\t'max-width': __( '%s (up to %dpx)', 'elementor' ),\n} as const;\n","import { __useSelector as useSelector } from '@elementor/store';\nimport { selectActiveBreakpoint, selectSortedBreakpoints } from '../store/selectors';\n\nexport default function useBreakpoints() {\n\tconst all = useSelector( selectSortedBreakpoints );\n\tconst active = useSelector( selectActiveBreakpoint );\n\n\treturn {\n\t\tall,\n\t\tactive,\n\t};\n}\n","import { slice } from './index';\nimport { Breakpoint } from '../types';\nimport { __createSelector, SliceState } from '@elementor/store';\n\ntype State = SliceState<typeof slice>;\n\nexport const selectEntities = ( state: State ) => state.breakpoints.entities;\nexport const selectActiveId = ( state: State ) => state.breakpoints.activeId;\n\nexport const selectActiveBreakpoint = __createSelector(\n\tselectEntities,\n\tselectActiveId,\n\t( entities, activeId ) => activeId && entities[ activeId ]\n\t\t? entities[ activeId ]\n\t\t: null,\n);\n\nexport const selectSortedBreakpoints = __createSelector(\n\tselectEntities,\n\t( entities ) => {\n\t\tconst byWidth = ( a: Breakpoint, b: Breakpoint ) => {\n\t\t\treturn ( a.width && b.width ) ? b.width - a.width : 0;\n\t\t};\n\n\t\tconst all = Object.values( entities );\n\n\t\tconst defaults = all.filter( ( breakpoint ) => ! breakpoint.width ); // AKA Desktop.\n\t\tconst minWidth = all.filter( ( breakpoint ) => breakpoint.type === 'min-width' );\n\t\tconst maxWidth = all.filter( ( breakpoint ) => breakpoint.type === 'max-width' );\n\n\t\t// Sort by size, big to small.\n\t\treturn [\n\t\t\t...minWidth.sort( byWidth ),\n\t\t\t...defaults,\n\t\t\t...maxWidth.sort( byWidth ),\n\t\t];\n\t},\n);\n","import { useCallback } from 'react';\nimport { BreakpointId } from '../types';\nimport { __privateRunCommand as runCommand } from '@elementor/editor-v1-adapters';\n\nexport default function useBreakpointsActions() {\n\tconst activate = useCallback( ( device: BreakpointId ) => {\n\t\treturn runCommand( 'panel/change-device-mode', { device } );\n\t}, [] );\n\n\treturn {\n\t\tactivate,\n\t};\n}\n","import init from './init';\n\ninit();\n"],"mappings":"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","names":["import_store","init","listenTo","import_i18n","import_store","import_store","useSelector","import_editor_v1_adapters","runCommand","BaseTooltip","import_store"]}
1
+ {"version":3,"sources":["../src/store/index.ts","../src/sync/sync-store.ts","../src/init.ts","../src/components/breakpoints-switcher.tsx","../src/hooks/use-breakpoints.ts","../src/store/selectors.ts","../src/hooks/use-breakpoints-actions.ts","../src/index.ts"],"sourcesContent":["import { __createSlice, PayloadAction } from '@elementor/store';\nimport { Breakpoint, BreakpointId } from '../types';\n\nexport type State = {\n\tentities: Record< BreakpointId, Breakpoint >;\n\tactiveId: BreakpointId | null;\n};\nconst initialState: State = {\n\tentities: {} as State[ 'entities' ],\n\tactiveId: null,\n};\n\nexport const slice = __createSlice( {\n\tname: 'breakpoints',\n\tinitialState,\n\treducers: {\n\t\tinit(\n\t\t\tstate,\n\t\t\taction: PayloadAction< {\n\t\t\t\tentities: Breakpoint[];\n\t\t\t\tactiveId: State[ 'activeId' ];\n\t\t\t} >\n\t\t) {\n\t\t\tstate.activeId = action.payload.activeId;\n\t\t\tstate.entities = normalizeEntities( action.payload.entities );\n\t\t},\n\n\t\tactivateBreakpoint( state, action: PayloadAction< BreakpointId > ) {\n\t\t\tif ( state.entities[ action.payload ] ) {\n\t\t\t\tstate.activeId = action.payload;\n\t\t\t}\n\t\t},\n\t},\n} );\n\nfunction normalizeEntities( entities: Breakpoint[] ) {\n\treturn entities.reduce(\n\t\t( acc, breakpoint ) => {\n\t\t\treturn {\n\t\t\t\t...acc,\n\t\t\t\t[ breakpoint.id ]: breakpoint,\n\t\t\t};\n\t\t},\n\t\t{} as State[ 'entities' ]\n\t);\n}\n","import { slice } from '../store';\nimport { __dispatch } from '@elementor/store';\nimport { Breakpoint, ExtendedWindow } from '../types';\nimport { __privateListenTo as listenTo, v1ReadyEvent, windowEvent } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nexport default function syncStore() {\n\tsyncInitialization();\n\tsyncOnChange();\n}\n\nfunction syncInitialization() {\n\tconst { init } = slice.actions;\n\n\tlistenTo( v1ReadyEvent(), () => {\n\t\t__dispatch(\n\t\t\tinit( {\n\t\t\t\tentities: getBreakpoints(),\n\t\t\t\tactiveId: getActiveBreakpoint(),\n\t\t\t} )\n\t\t);\n\t} );\n}\n\nfunction syncOnChange() {\n\tconst { activateBreakpoint } = slice.actions;\n\n\tlistenTo( deviceModeChangeEvent(), () => {\n\t\tconst activeBreakpoint = getActiveBreakpoint();\n\n\t\t__dispatch( activateBreakpoint( activeBreakpoint ) );\n\t} );\n}\n\nfunction getBreakpoints() {\n\tconst { breakpoints } = ( window as unknown as ExtendedWindow ).elementor?.config?.responsive || {};\n\n\tif ( ! breakpoints ) {\n\t\treturn [];\n\t}\n\n\tconst entities = Object.entries( breakpoints )\n\t\t.filter( ( [ , breakpoint ] ) => breakpoint.is_enabled )\n\t\t.map( ( [ id, { value, direction, label } ] ) => {\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tlabel,\n\t\t\t\twidth: value,\n\t\t\t\ttype: direction === 'min' ? 'min-width' : 'max-width',\n\t\t\t} as Breakpoint;\n\t\t} );\n\n\t// Desktop breakpoint is not included in V1 config.\n\tentities.push( {\n\t\tid: 'desktop',\n\t\tlabel: __( 'Desktop', 'elementor' ),\n\t} );\n\n\treturn entities;\n}\n\nfunction getActiveBreakpoint() {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.channels?.deviceMode?.request?.( 'currentMode' ) || null;\n}\n\nfunction deviceModeChangeEvent() {\n\treturn windowEvent( 'elementor/device-mode/change' );\n}\n","import { slice } from './store';\nimport syncStore from './sync/sync-store';\nimport { injectIntoResponsive } from '@elementor/editor-app-bar';\nimport BreakpointsSwitcher from './components/breakpoints-switcher';\nimport { __registerSlice } from '@elementor/store';\n\nexport default function init() {\n\tinitStore();\n\n\tregisterAppBarUI();\n}\n\nfunction initStore() {\n\t__registerSlice( slice );\n\n\tsyncStore();\n}\n\nfunction registerAppBarUI() {\n\tinjectIntoResponsive( {\n\t\tid: 'responsive-breakpoints-switcher',\n\t\tcomponent: BreakpointsSwitcher,\n\t\toptions: {\n\t\t\tpriority: 20, // After document indication.\n\t\t},\n\t} );\n}\n","import * as React from 'react';\nimport { __ } from '@wordpress/i18n';\nimport { BreakpointId, ExtendedWindow } from '../types';\nimport useBreakpoints from '../hooks/use-breakpoints';\nimport { Tab, Tabs, Tooltip as BaseTooltip, TooltipProps } from '@elementor/ui';\nimport {\n\tDesktopIcon,\n\tTabletPortraitIcon,\n\tMobilePortraitIcon,\n\tWidescreenIcon,\n\tLaptopIcon,\n\tTabletLandscapeIcon,\n\tMobileLandscapeIcon,\n} from '@elementor/icons';\nimport useBreakpointsActions from '../hooks/use-breakpoints-actions';\n\nexport default function BreakpointsSwitcher() {\n\tconst { all, active } = useBreakpoints();\n\tconst { activate } = useBreakpointsActions();\n\n\tif ( ! all.length || ! active ) {\n\t\treturn null;\n\t}\n\n\tconst onChange = ( _: unknown, value: BreakpointId ) => {\n\t\tconst extendedWindow = window as unknown as ExtendedWindow;\n\t\tconst config = extendedWindow?.elementor?.editorEvents?.config;\n\n\t\tif ( config ) {\n\t\t\textendedWindow.elementor.editorEvents.dispatchEvent( config.names.topBar.responsiveControls, {\n\t\t\t\tlocation: config.locations.topBar,\n\t\t\t\tsecondaryLocation: config.secondaryLocations.responsiveControls,\n\t\t\t\ttrigger: config.triggers.click,\n\t\t\t\telement: config.elements.buttonIcon,\n\t\t\t\tmode: value,\n\t\t\t} );\n\t\t}\n\n\t\tactivate( value );\n\t};\n\n\treturn (\n\t\t<Tabs\n\t\t\ttextColor=\"inherit\"\n\t\t\tindicatorColor=\"secondary\"\n\t\t\tvalue={ active.id }\n\t\t\tonChange={ onChange }\n\t\t\taria-label={ __( 'Switch Device', 'elementor' ) }\n\t\t\tsx={ {\n\t\t\t\t'& .MuiTabs-indicator': {\n\t\t\t\t\tbackgroundColor: 'text.primary',\n\t\t\t\t},\n\t\t\t} }\n\t\t>\n\t\t\t{ all.map( ( { id, label, type, width } ) => {\n\t\t\t\tconst Icon = iconsMap[ id ];\n\n\t\t\t\tconst title = labelsMap[ type || 'default' ]\n\t\t\t\t\t.replace( '%s', label )\n\t\t\t\t\t.replace( '%d', width?.toString() || '' );\n\n\t\t\t\treturn (\n\t\t\t\t\t<Tab\n\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<Tooltip title={ title }>\n\t\t\t\t\t\t\t\t<Icon />\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsx={ { minWidth: 'auto' } }\n\t\t\t\t\t\tdata-testid={ `switch-device-to-${ id }` }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Tabs>\n\t);\n}\n\nfunction Tooltip( props: TooltipProps ) {\n\treturn (\n\t\t<BaseTooltip\n\t\t\tPopperProps={ {\n\t\t\t\tsx: {\n\t\t\t\t\t'&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {\n\t\t\t\t\t\tmt: 2.5,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nconst iconsMap = {\n\twidescreen: WidescreenIcon,\n\tdesktop: DesktopIcon,\n\tlaptop: LaptopIcon,\n\ttablet_extra: TabletLandscapeIcon,\n\ttablet: TabletPortraitIcon,\n\tmobile_extra: MobileLandscapeIcon,\n\tmobile: MobilePortraitIcon,\n};\n\nconst labelsMap = {\n\tdefault: '%s',\n\t// translators: %s: Breakpoint label, %d: Breakpoint size.\n\t'min-width': __( '%s (%dpx and up)', 'elementor' ),\n\n\t// translators: %s: Breakpoint label, %d: Breakpoint size.\n\t'max-width': __( '%s (up to %dpx)', 'elementor' ),\n} as const;\n","import { __useSelector as useSelector } from '@elementor/store';\nimport { selectActiveBreakpoint, selectSortedBreakpoints } from '../store/selectors';\n\nexport default function useBreakpoints() {\n\tconst all = useSelector( selectSortedBreakpoints );\n\tconst active = useSelector( selectActiveBreakpoint );\n\n\treturn {\n\t\tall,\n\t\tactive,\n\t};\n}\n","import { slice } from './index';\nimport { Breakpoint } from '../types';\nimport { __createSelector, SliceState } from '@elementor/store';\n\ntype State = SliceState< typeof slice >;\n\nexport const selectEntities = ( state: State ) => state.breakpoints.entities;\nexport const selectActiveId = ( state: State ) => state.breakpoints.activeId;\n\nexport const selectActiveBreakpoint = __createSelector( selectEntities, selectActiveId, ( entities, activeId ) =>\n\tactiveId && entities[ activeId ] ? entities[ activeId ] : null\n);\n\nexport const selectSortedBreakpoints = __createSelector( selectEntities, ( entities ) => {\n\tconst byWidth = ( a: Breakpoint, b: Breakpoint ) => {\n\t\treturn a.width && b.width ? b.width - a.width : 0;\n\t};\n\n\tconst all = Object.values( entities );\n\n\tconst defaults = all.filter( ( breakpoint ) => ! breakpoint.width ); // AKA Desktop.\n\tconst minWidth = all.filter( ( breakpoint ) => breakpoint.type === 'min-width' );\n\tconst maxWidth = all.filter( ( breakpoint ) => breakpoint.type === 'max-width' );\n\n\t// Sort by size, big to small.\n\treturn [ ...minWidth.sort( byWidth ), ...defaults, ...maxWidth.sort( byWidth ) ];\n} );\n","import { useCallback } from 'react';\nimport { BreakpointId } from '../types';\nimport { __privateRunCommand as runCommand } from '@elementor/editor-v1-adapters';\n\nexport default function useBreakpointsActions() {\n\tconst activate = useCallback( ( device: BreakpointId ) => {\n\t\treturn runCommand( 'panel/change-device-mode', { device } );\n\t}, [] );\n\n\treturn {\n\t\tactivate,\n\t};\n}\n","import init from './init';\n\ninit();\n"],"mappings":"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","names":["import_store","init","listenTo","import_i18n","import_store","import_store","useSelector","import_editor_v1_adapters","runCommand","BaseTooltip","import_store"]}