mobx-mantle 0.3.7 → 0.7.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.
@@ -0,0 +1,419 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+ var _chunkWNF647U6cjs = require('../chunk-WNF647U6.cjs');
4
+
5
+ // src/behaviors/index.ts
6
+ var _mobx = require('mobx');
7
+ var _mobxmantle = require('mobx-mantle');
8
+
9
+ var builtin = (Def) => _mobxmantle.createBehavior.call(void 0, Def, { autoObservable: true });
10
+ var EventListenerBehavior = class extends _mobxmantle.Behavior {
11
+ onCreate(target, type, handler, options) {
12
+ this.effect(() => {
13
+ const el = _mobxmantle.toValue.call(void 0, target);
14
+ const eventType = _mobxmantle.toValue.call(void 0, type);
15
+ if (!el) return;
16
+ const listener = (event) => _mobx.runInAction.call(void 0, () => handler(event));
17
+ el.addEventListener(eventType, listener, options);
18
+ return () => el.removeEventListener(eventType, listener, options);
19
+ });
20
+ }
21
+ };
22
+ var withEventListener = builtin(EventListenerBehavior);
23
+ var IntervalBehavior = class extends _mobxmantle.Behavior {
24
+ onCreate(callback, delay = 1e3) {
25
+ this.effect(() => {
26
+ const ms = _mobxmantle.toValue.call(void 0, delay);
27
+ if (ms == null || ms < 0) return;
28
+ const id = setInterval(() => _mobx.runInAction.call(void 0, callback), ms);
29
+ return () => clearInterval(id);
30
+ });
31
+ }
32
+ };
33
+ var withInterval = builtin(IntervalBehavior);
34
+ var TimeoutBehavior = class extends _mobxmantle.Behavior {
35
+ constructor() {
36
+ super(...arguments);
37
+ /** True while the timeout is scheduled and hasn't fired */
38
+ this.pending = false;
39
+ }
40
+ onCreate(callback, delay) {
41
+ this.effect(() => {
42
+ const ms = _mobxmantle.toValue.call(void 0, delay);
43
+ if (ms == null || ms < 0) return;
44
+ _mobx.runInAction.call(void 0, () => {
45
+ this.pending = true;
46
+ });
47
+ const id = setTimeout(() => _mobx.runInAction.call(void 0, () => {
48
+ this.pending = false;
49
+ callback();
50
+ }), ms);
51
+ return () => {
52
+ this.pending = false;
53
+ clearTimeout(id);
54
+ };
55
+ });
56
+ }
57
+ };
58
+ var withTimeout = builtin(TimeoutBehavior);
59
+ var AsyncBehavior = class extends _mobxmantle.Behavior {
60
+ constructor() {
61
+ super(...arguments);
62
+ this.value = void 0;
63
+ this.error = void 0;
64
+ this.loading = false;
65
+ this._runId = 0;
66
+ }
67
+ onCreate(fn) {
68
+ this._fn = fn;
69
+ }
70
+ /**
71
+ * Run the async function. Out-of-order completions are discarded: only the
72
+ * most recent run may write value/error/loading.
73
+ */
74
+ async run(...args) {
75
+ const id = ++this._runId;
76
+ this.loading = true;
77
+ this.error = void 0;
78
+ try {
79
+ const result = await this._fn(...args);
80
+ if (id === this._runId) {
81
+ _mobx.runInAction.call(void 0, () => {
82
+ this.value = result;
83
+ this.loading = false;
84
+ });
85
+ }
86
+ return result;
87
+ } catch (e) {
88
+ if (id === this._runId) {
89
+ _mobx.runInAction.call(void 0, () => {
90
+ this.error = e;
91
+ this.loading = false;
92
+ });
93
+ }
94
+ return void 0;
95
+ }
96
+ }
97
+ /** Discard any in-flight run's result */
98
+ cancel() {
99
+ this._runId++;
100
+ this.loading = false;
101
+ }
102
+ };
103
+ var withAsync = builtin(AsyncBehavior);
104
+ var FetchBehavior = class extends _mobxmantle.Behavior {
105
+ constructor() {
106
+ super(...arguments);
107
+ /** Current URL — a one-way mirror of the url argument (this.sync) */
108
+ this.url = void 0;
109
+ /** The request state machine is a nested withAsync behavior */
110
+ this.request = withAsync(async (url, init) => {
111
+ const response = await fetch(url, init);
112
+ if (!response.ok) {
113
+ throw new Error(`HTTP ${response.status} for ${url}`);
114
+ }
115
+ return await response.json();
116
+ });
117
+ }
118
+ onCreate(url, init) {
119
+ this._init = init;
120
+ this.url = this.sync(url);
121
+ this.watch(
122
+ () => this.url,
123
+ (next) => {
124
+ if (next) this.request.run(next, this._init);
125
+ },
126
+ { fireImmediately: true }
127
+ );
128
+ }
129
+ get data() {
130
+ return this.request.value;
131
+ }
132
+ get loading() {
133
+ return this.request.loading;
134
+ }
135
+ get error() {
136
+ return this.request.error;
137
+ }
138
+ };
139
+ var withFetch = builtin(FetchBehavior);
140
+ var LocalStorageBehavior = class extends _mobxmantle.Behavior {
141
+ onCreate(key, initialValue) {
142
+ let stored;
143
+ if (typeof localStorage !== "undefined") {
144
+ try {
145
+ const raw = localStorage.getItem(key);
146
+ if (raw !== null) stored = JSON.parse(raw);
147
+ } catch (e2) {
148
+ }
149
+ }
150
+ this.value = stored !== void 0 ? stored : initialValue;
151
+ this.watch(
152
+ () => JSON.stringify(this.value),
153
+ (json) => {
154
+ try {
155
+ localStorage.setItem(key, json);
156
+ } catch (e3) {
157
+ }
158
+ }
159
+ );
160
+ this.storageSync = withEventListener(
161
+ () => typeof window === "undefined" ? null : window,
162
+ "storage",
163
+ (event) => {
164
+ const e = event;
165
+ if (e.key !== key || e.newValue === null) return;
166
+ try {
167
+ this.value = JSON.parse(e.newValue);
168
+ } catch (e4) {
169
+ }
170
+ }
171
+ );
172
+ }
173
+ };
174
+ var withLocalStorage = builtin(LocalStorageBehavior);
175
+ var ElementSizeBehavior = class extends _mobxmantle.Behavior {
176
+ constructor() {
177
+ super(...arguments);
178
+ this.width = null;
179
+ this.height = null;
180
+ }
181
+ onCreate(target) {
182
+ this.target = target;
183
+ }
184
+ measure(entry) {
185
+ const element = this.target.current;
186
+ if (!element) return;
187
+ const borderBox = _optionalChain([entry, 'optionalAccess', _ => _.borderBoxSize]);
188
+ const box = Array.isArray(borderBox) ? borderBox[0] : borderBox;
189
+ let width = null;
190
+ let height = null;
191
+ if (box && Number.isFinite(box.inlineSize) && Number.isFinite(box.blockSize)) {
192
+ const writingMode = getComputedStyle(element).writingMode;
193
+ const vertical = writingMode.startsWith("vertical") || writingMode.startsWith("sideways");
194
+ width = vertical ? box.blockSize : box.inlineSize;
195
+ height = vertical ? box.inlineSize : box.blockSize;
196
+ } else if (element instanceof HTMLElement) {
197
+ width = element.offsetWidth;
198
+ height = element.offsetHeight;
199
+ }
200
+ if (width !== null && width !== this.width) this.width = width;
201
+ if (height !== null && height !== this.height) this.height = height;
202
+ }
203
+ onLayoutMount() {
204
+ const element = this.target.current;
205
+ if (!element) {
206
+ this.width = null;
207
+ this.height = null;
208
+ return;
209
+ }
210
+ const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver((entries) => {
211
+ const entry = entries.find((candidate) => candidate.target === element);
212
+ this.measure(entry);
213
+ });
214
+ _optionalChain([observer, 'optionalAccess', _2 => _2.observe, 'call', _3 => _3(element, { box: "border-box" })]);
215
+ this.measure();
216
+ return () => {
217
+ _optionalChain([observer, 'optionalAccess', _4 => _4.disconnect, 'call', _5 => _5()]);
218
+ this.width = null;
219
+ this.height = null;
220
+ };
221
+ }
222
+ };
223
+ var withElementSize = builtin(ElementSizeBehavior);
224
+ var WindowSizeBehavior = class extends _mobxmantle.Behavior {
225
+ constructor() {
226
+ super(...arguments);
227
+ this.width = typeof window !== "undefined" ? window.innerWidth : 0;
228
+ this.height = typeof window !== "undefined" ? window.innerHeight : 0;
229
+ this.resize = withEventListener(
230
+ () => typeof window === "undefined" ? null : window,
231
+ "resize",
232
+ () => this.measure()
233
+ );
234
+ }
235
+ measure() {
236
+ this.width = window.innerWidth;
237
+ this.height = window.innerHeight;
238
+ }
239
+ };
240
+ var withWindowSize = builtin(WindowSizeBehavior);
241
+ var MediaQueryBehavior = class extends _mobxmantle.Behavior {
242
+ constructor() {
243
+ super(...arguments);
244
+ this.matches = false;
245
+ }
246
+ onCreate(query) {
247
+ this.effect(() => {
248
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") return;
249
+ const mql = window.matchMedia(_mobxmantle.toValue.call(void 0, query));
250
+ _mobx.runInAction.call(void 0, () => {
251
+ this.matches = mql.matches;
252
+ });
253
+ const onChange = (event) => {
254
+ _mobx.runInAction.call(void 0, () => {
255
+ this.matches = event.matches;
256
+ });
257
+ };
258
+ mql.addEventListener("change", onChange);
259
+ return () => mql.removeEventListener("change", onChange);
260
+ });
261
+ }
262
+ };
263
+ var withMediaQuery = builtin(MediaQueryBehavior);
264
+ var DebounceBehavior = class extends _mobxmantle.Behavior {
265
+ constructor() {
266
+ super(...arguments);
267
+ this._timer = null;
268
+ }
269
+ onCreate(source, delay = 300) {
270
+ this.value = _mobxmantle.toValue.call(void 0, source);
271
+ this.watch(source, (next) => {
272
+ if (this._timer !== null) clearTimeout(this._timer);
273
+ this._timer = setTimeout(() => _mobx.runInAction.call(void 0, () => {
274
+ this._timer = null;
275
+ this.value = next;
276
+ }), delay);
277
+ });
278
+ }
279
+ onUnmount() {
280
+ if (this._timer !== null) {
281
+ clearTimeout(this._timer);
282
+ this._timer = null;
283
+ }
284
+ }
285
+ };
286
+ var withDebounce = builtin(DebounceBehavior);
287
+ var ThrottleBehavior = class extends _mobxmantle.Behavior {
288
+ constructor() {
289
+ super(...arguments);
290
+ this._timer = null;
291
+ this._lastEmit = 0;
292
+ }
293
+ onCreate(source, delay = 300) {
294
+ this.value = _mobxmantle.toValue.call(void 0, source);
295
+ this.watch(
296
+ source,
297
+ (next) => {
298
+ const now = Date.now();
299
+ const remaining = delay - (now - this._lastEmit);
300
+ if (remaining <= 0) {
301
+ this._lastEmit = now;
302
+ this.value = next;
303
+ } else if (this._timer === null) {
304
+ this._timer = setTimeout(() => _mobx.runInAction.call(void 0, () => {
305
+ this._timer = null;
306
+ this._lastEmit = Date.now();
307
+ this.value = _mobxmantle.toValue.call(void 0, source);
308
+ }), remaining);
309
+ }
310
+ }
311
+ );
312
+ }
313
+ onUnmount() {
314
+ if (this._timer !== null) {
315
+ clearTimeout(this._timer);
316
+ this._timer = null;
317
+ }
318
+ }
319
+ };
320
+ var withThrottle = builtin(ThrottleBehavior);
321
+ var DocumentTitleBehavior = class extends _mobxmantle.Behavior {
322
+ onCreate(title) {
323
+ this.effect(() => {
324
+ if (typeof document === "undefined") return;
325
+ const previous = document.title;
326
+ document.title = _mobxmantle.toValue.call(void 0, title);
327
+ return () => {
328
+ document.title = previous;
329
+ };
330
+ });
331
+ }
332
+ };
333
+ var withDocumentTitle = builtin(DocumentTitleBehavior);
334
+ var PageVisibilityBehavior = class extends _mobxmantle.Behavior {
335
+ constructor() {
336
+ super(...arguments);
337
+ this.visible = typeof document !== "undefined" ? document.visibilityState !== "hidden" : true;
338
+ this.visibilityListener = withEventListener(
339
+ () => typeof document === "undefined" ? null : document,
340
+ "visibilitychange",
341
+ () => {
342
+ this.visible = document.visibilityState !== "hidden";
343
+ }
344
+ );
345
+ }
346
+ };
347
+ var withPageVisibility = builtin(PageVisibilityBehavior);
348
+ var AutosaveBehavior = class extends _mobxmantle.Behavior {
349
+ constructor() {
350
+ super(...arguments);
351
+ /** Posting rides on withAsync (out-of-order completions discarded) */
352
+ this.saver = withAsync(async (url, data) => {
353
+ const response = await fetch(url, {
354
+ method: "POST",
355
+ headers: { "Content-Type": "application/json" },
356
+ body: JSON.stringify(data)
357
+ });
358
+ if (!response.ok) {
359
+ throw new Error(`HTTP ${response.status} for ${url}`);
360
+ }
361
+ return response;
362
+ });
363
+ /** Current save endpoint — a one-way mirror of the url argument (this.sync) */
364
+ this.url = "";
365
+ this._lastSaved = void 0;
366
+ }
367
+ onCreate(url, data, interval = 5e3) {
368
+ this.url = this.sync(url);
369
+ this._data = data;
370
+ this.timer = withInterval(() => this.save(), interval);
371
+ }
372
+ /** Save now. Skipped when the payload hasn't changed since the last save. */
373
+ save() {
374
+ const payload = this._data();
375
+ const serialized = JSON.stringify(payload);
376
+ if (serialized === this._lastSaved) return;
377
+ this._lastSaved = serialized;
378
+ this.saver.run(this.url, payload);
379
+ }
380
+ get saving() {
381
+ return this.saver.loading;
382
+ }
383
+ get error() {
384
+ return this.saver.error;
385
+ }
386
+ };
387
+ var withAutosave = builtin(AutosaveBehavior);
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+ exports.AsyncBehavior = AsyncBehavior; exports.AutosaveBehavior = AutosaveBehavior; exports.DebounceBehavior = DebounceBehavior; exports.DocumentTitleBehavior = DocumentTitleBehavior; exports.ElementSizeBehavior = ElementSizeBehavior; exports.EventListenerBehavior = EventListenerBehavior; exports.FetchBehavior = FetchBehavior; exports.IntervalBehavior = IntervalBehavior; exports.LocalStorageBehavior = LocalStorageBehavior; exports.MediaQueryBehavior = MediaQueryBehavior; exports.PageVisibilityBehavior = PageVisibilityBehavior; exports.ThrottleBehavior = ThrottleBehavior; exports.TimeoutBehavior = TimeoutBehavior; exports.WindowSizeBehavior = WindowSizeBehavior; exports.toValue = _chunkWNF647U6cjs.toValue; exports.withAsync = withAsync; exports.withAutosave = withAutosave; exports.withDebounce = withDebounce; exports.withDocumentTitle = withDocumentTitle; exports.withElementSize = withElementSize; exports.withEventListener = withEventListener; exports.withFetch = withFetch; exports.withInterval = withInterval; exports.withLocalStorage = withLocalStorage; exports.withMediaQuery = withMediaQuery; exports.withPageVisibility = withPageVisibility; exports.withThrottle = withThrottle; exports.withTimeout = withTimeout; exports.withWindowSize = withWindowSize;
419
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["c:\\Users\\me\\Documents\\Projects\\mobx-mantle\\dist\\behaviors\\index.cjs"],"names":[],"mappings":"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,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,oBAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"C:\\Users\\me\\Documents\\Projects\\mobx-mantle\\dist\\behaviors\\index.cjs","sourcesContent":[null]}