@symbiote-native/image 0.0.0 → 0.1.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.
Files changed (50) hide show
  1. package/README.md +232 -17
  2. package/build/angular/image-background/index.js +3 -1
  3. package/build/core/hash-strings.js +3 -1
  4. package/build/core/image-background.js +4 -1
  5. package/build/core/image-view-events.js +4 -2
  6. package/build/core/image-view.js +4 -2
  7. package/build/core/native-style.js +4 -1
  8. package/build/core/props.js +1 -1
  9. package/build/core/sources.js +3 -1
  10. package/build/svelte/use-image.svelte.js +1 -1
  11. package/build-ngc/angular/image/index.js.map +1 -1
  12. package/build-ngc/angular/image-background/index.js +6 -2
  13. package/build-ngc/angular/image-background/index.js.map +1 -1
  14. package/build-ngc/core/hash-strings.js +3 -1
  15. package/build-ngc/core/hash-strings.js.map +1 -1
  16. package/build-ngc/core/image-api.js.map +1 -1
  17. package/build-ngc/core/image-background.js +4 -1
  18. package/build-ngc/core/image-background.js.map +1 -1
  19. package/build-ngc/core/image-loader.js.map +1 -1
  20. package/build-ngc/core/image-view-events.js +4 -2
  21. package/build-ngc/core/image-view-events.js.map +1 -1
  22. package/build-ngc/core/image-view.js +4 -2
  23. package/build-ngc/core/image-view.js.map +1 -1
  24. package/build-ngc/core/native-module.js.map +1 -1
  25. package/build-ngc/core/native-style.js +4 -1
  26. package/build-ngc/core/native-style.js.map +1 -1
  27. package/build-ngc/core/props.js +1 -1
  28. package/build-ngc/core/props.js.map +1 -1
  29. package/build-ngc/core/sources.js +3 -1
  30. package/build-ngc/core/sources.js.map +1 -1
  31. package/package.json +15 -15
  32. package/src/angular/image/index.ts +3 -2
  33. package/src/angular/image-background/index.ts +6 -3
  34. package/src/core/hash-strings.ts +3 -1
  35. package/src/core/image-api.ts +19 -9
  36. package/src/core/image-background.ts +7 -2
  37. package/src/core/image-loader.ts +9 -2
  38. package/src/core/image-view-events.ts +8 -2
  39. package/src/core/image-view.ts +24 -7
  40. package/src/core/native-module.ts +2 -3
  41. package/src/core/native-style.ts +11 -4
  42. package/src/core/props.ts +7 -2
  43. package/src/core/sources.ts +8 -3
  44. package/src/core/types.ts +6 -9
  45. package/src/react/image-background.ts +3 -1
  46. package/src/react/image.ts +4 -1
  47. package/src/solid/image-background.ts +2 -3
  48. package/src/solid/image.ts +4 -3
  49. package/src/svelte/use-image.svelte.ts +1 -1
  50. package/src/vue/use-image.ts +5 -1
package/README.md CHANGED
@@ -4,21 +4,175 @@
4
4
  [SymbioteNative](../../README.md) adapter: React, Vue, Svelte, Solid and Angular. An image view
5
5
  with caching, placeholders, transitions and SF Symbols, plus the cache and hash functions.
6
6
 
7
+ Built the same way as [`@symbiote-native/clipboard`](../clipboard)'s `ClipboardPasteButton`, an
8
+ `expo-modules-core` native view reached through `requireNativeViewManager` (see the
9
+ `symbiote-expo-native-module` project skill: why `expo-modules-core` is depended on directly and never
10
+ the `expo` meta-package, why the upstream JS is hand-ported into `core/`, and how autolinking finds the
11
+ native module). One render function in `core/` returns a descriptor and every adapter only turns it into
12
+ its own element.
13
+
7
14
  ## Install
8
15
 
16
+ **New app:**
17
+
9
18
  ```bash
10
- npx @symbiote-native/cli new my-app --image # new app
11
- npx @symbiote-native/cli add --image # existing app
19
+ npx @symbiote-native/cli new my-app --image
12
20
  ```
13
21
 
14
- Manual: `npm install @symbiote-native/image`, then wire `expo-modules-autolinking` once per app.
15
- Never install `expo-image` or the `expo` meta-package yourself.
22
+ **Existing SymbioteNative app:**
23
+
24
+ ```bash
25
+ npx @symbiote-native/cli add --image
26
+ ```
16
27
 
17
- ## Usage
28
+ Either way: installs `@symbiote-native/image` and wires the native autolinking automatically,
29
+ see [`@symbiote-native/cli`](../cli).
30
+
31
+ <details>
32
+ <summary>Manual install (no CLI - installing and wiring native autolinking by hand)</summary>
33
+
34
+ ```bash
35
+ npm install @symbiote-native/image
36
+ ```
37
+
38
+ Depends on `expo-image` and `expo-modules-core` directly (regular dependencies, pinned to exact
39
+ versions, since this package's `core/` is hand-ported against one specific native API shape).
40
+ Never install `expo-image` yourself, and never add the `expo` package to this project: it bundles
41
+ its own Metro/Babel pipeline that conflicts with this project's own.
42
+
43
+ ### Required one-time step: native autolinking wiring
44
+
45
+ `expo-image`'s native code is discovered by `expo-modules-autolinking`, not by RN's own
46
+ `react-native.config.cjs` mechanism. Wire it into the native host app **once**, it covers this package
47
+ and every other `expo-modules-core` package with zero further changes. The steps and the
48
+ mechanics behind them are in the `symbiote-expo-native-module` skill and in
49
+ [`@symbiote-native/network`](../network)'s README; the reference app is `examples/expo-react`.
50
+
51
+ ### Android KSP
52
+
53
+ `expo-image` reads a `kspVersion` from the app's root `build.gradle`. `native-link.json` declares
54
+ `android.requiresKsp`, so the `expo-modules-link` postinstall writes the right version there from Expo's
55
+ table for the app's Kotlin version.
56
+
57
+ </details>
58
+
59
+ ## Shape
60
+
61
+ ```
62
+ src/core/ image-view.ts - createImageView(getNode): render, the view handle and the events.
63
+ props.ts (normalization, deprecation warnings), sources.ts, native-style.ts,
64
+ image-background.ts, image-api.ts (the statics as functions), image-loader.ts and
65
+ image-ref-loader.ts (useImage's core), hash-strings.ts, types.ts.
66
+ src/react/ @symbiote-native/image/react - Image, ImageBackground, useImage
67
+ src/vue/ @symbiote-native/image/vue - Image, ImageBackground, useImage (a shallow ref)
68
+ src/svelte/ @symbiote-native/image/svelte - Image, ImageBackground, useImage ({ current })
69
+ src/solid/ @symbiote-native/image/solid - Image, ImageBackground, useImage (an accessor)
70
+ src/angular/ @symbiote-native/image/angular - ExpoImage, ExpoImageBackground, injectImage (a signal)
71
+ ```
72
+
73
+ Angular's selectors are `ExpoImage` and `ExpoImageBackground` because `Image` and `ImageBackground` are
74
+ already tags of the adapter.
75
+
76
+ ## Use it
77
+
78
+ ### React
18
79
 
19
80
  ```tsx
20
81
  import { Image, useImage } from '@symbiote-native/image/react';
21
82
 
83
+ const image = useImage('https://picsum.photos/1000/800', { maxWidth: 800 });
84
+
85
+ <Image
86
+ source="https://picsum.photos/400"
87
+ placeholder="blurhash:/L6PZfSi_.AyE_3t7t7R**0o#DgR4"
88
+ contentFit="cover"
89
+ transition={200}
90
+ style={{ width: 200, height: 200 }}
91
+ />;
92
+ {image && <Image source={image} style={{ width: 200, height: 160 }} />}
93
+ ```
94
+
95
+ ### Vue
96
+
97
+ ```vue
98
+ <script setup lang="ts">
99
+ import { Image, useImage } from '@symbiote-native/image/vue';
100
+
101
+ const image = useImage('https://picsum.photos/1000/800', { maxWidth: 800 });
102
+ </script>
103
+
104
+ <template>
105
+ <Image
106
+ source="https://picsum.photos/400"
107
+ placeholder="blurhash:/L6PZfSi_.AyE_3t7t7R**0o#DgR4"
108
+ contentFit="cover"
109
+ :transition="200"
110
+ :style="{ width: 200, height: 200 }"
111
+ />
112
+ <Image v-if="image" :source="image" :style="{ width: 200, height: 160 }" />
113
+ </template>
114
+ ```
115
+
116
+ `image` is a shallow ref, so a template reads it unwrapped and a script reads `image.value`.
117
+
118
+ ### Angular
119
+
120
+ ```ts
121
+ import { Component } from '@angular/core';
122
+ import { ExpoImage, injectImage } from '@symbiote-native/image/angular';
123
+
124
+ @Component({
125
+ standalone: true,
126
+ imports: [ExpoImage],
127
+ template: `
128
+ <ExpoImage
129
+ source="https://picsum.photos/400"
130
+ placeholder="blurhash:/L6PZfSi_.AyE_3t7t7R**0o#DgR4"
131
+ contentFit="cover"
132
+ [transition]="200"
133
+ [style]="{ width: 200, height: 200 }"
134
+ />
135
+ @if (image(); as ref) {
136
+ <ExpoImage [source]="ref" [style]="{ width: 200, height: 160 }" />
137
+ }
138
+ `,
139
+ })
140
+ export class Photo {
141
+ readonly image = injectImage(() => 'https://picsum.photos/1000/800', () => ({ maxWidth: 800 }));
142
+ }
143
+ ```
144
+
145
+ The selector is `ExpoImage`, because `Image` is already a tag of the adapter. `image` is a signal.
146
+
147
+ ### Svelte
148
+
149
+ ```svelte
150
+ <script lang="ts">
151
+ import { Image, useImage } from '@symbiote-native/image/svelte';
152
+
153
+ const image = useImage(() => 'https://picsum.photos/1000/800', () => ({ maxWidth: 800 }));
154
+ </script>
155
+
156
+ <Image
157
+ source="https://picsum.photos/400"
158
+ placeholder="blurhash:/L6PZfSi_.AyE_3t7t7R**0o#DgR4"
159
+ contentFit="cover"
160
+ transition={200}
161
+ style={{ width: 200, height: 200 }}
162
+ />
163
+ {#if image.current}
164
+ <Image source={image.current} style={{ width: 200, height: 160 }} />
165
+ {/if}
166
+ ```
167
+
168
+ ### Solid
169
+
170
+ ```tsx
171
+ import { Show } from 'solid-js';
172
+ import { Image, useImage } from '@symbiote-native/image/solid';
173
+
174
+ const image = useImage(() => 'https://picsum.photos/1000/800', () => ({ maxWidth: 800 }));
175
+
22
176
  <Image
23
177
  source="https://picsum.photos/400"
24
178
  placeholder="blurhash:/L6PZfSi_.AyE_3t7t7R**0o#DgR4"
@@ -26,21 +180,82 @@ import { Image, useImage } from '@symbiote-native/image/react';
26
180
  transition={200}
27
181
  style={{ width: 200, height: 200 }}
28
182
  />;
183
+ <Show when={image()}>{ref => <Image source={ref()} style={{ width: 200, height: 160 }} />}</Show>;
29
184
  ```
30
185
 
31
- The view takes the props of upstream's `Image`. The handle has `startAnimating`, `stopAnimating`,
32
- `lockResourceAsync`, `unlockResourceAsync` and `reloadAsync`, reached by a `ref` in React and Solid
33
- (`ref={fn}`), a template ref in Vue, `bind:this` in Svelte and a `@ViewChild` in Angular.
186
+ ## API
187
+
188
+ ```ts
189
+ <Image source placeholder? contentFit? contentPosition? transition? cachePolicy? recyclingKey? priority?
190
+ tintColor? allowDownscaling? autoplay? alt? onLoadStart? onProgress? onLoad? onError? onDisplay? />
191
+ <ImageBackground imageStyle? ...Image props>children paint over the image</ImageBackground>
192
+
193
+ useImage(source, options?, dependencies?): ImageRef | null // per adapter, see Shape
194
+ // view handle: startAnimating, stopAnimating, lockResourceAsync, unlockResourceAsync, reloadAsync
195
+
196
+ prefetchImages(urls: string | string[], options?: CachePolicy | { cachePolicy?, headers? }): Promise<boolean>
197
+ clearMemoryCache(): Promise<boolean> clearDiskCache(): Promise<boolean> // true on success
198
+ getCachePathAsync(cacheKey): Promise<string | null> // null when not cached
199
+ writeToCacheAsync(source: string | ImageRef, cacheKey): Promise<void>
200
+ readFromCacheAsync(cacheKey): Promise<ImageRef | null>
201
+ configureCache(config): void
202
+ loadImageAsync(source, options?): Promise<ImageRef>
203
+ generateBlurhashAsync(source: string | ImageRef, numberOfComponents: [number, number] | { width, height }): Promise<string | null>
204
+ generateThumbhashAsync(source: string | ImageRef): Promise<string>
205
+ ```
206
+
207
+ The statics of upstream's `Image` class are plain functions here. Ported from upstream's `Image.tsx`,
208
+ `ImageBackground.tsx` and `useImage.ts`.
209
+
210
+ ## Notes
211
+
212
+ - **It is not React Native's `Image`.** The default fit is `contentFit="cover"`. The old `resizeMode`,
213
+ `fadeDuration` and `defaultSource` props still work but log a warning once, and `resizeMode:
214
+ 'repeat'` is not supported at all. Use `contentFit`, `transition` and `placeholder`.
215
+ - **Caching is on by default.** `cachePolicy` is `disk`. `memory` and `memory-disk` keep decoded
216
+ images in RAM, which the system purges quickly under pressure.
217
+ - **A new source keeps the old picture until the new one loads**, and `transition` blends them. That
218
+ is the point of the library, and it is why recycling lists need `recyclingKey`.
219
+ - **`require('./a.png')` works.** Asset numbers go through Metro's asset registry before reaching
220
+ native, the same as for any image view.
221
+ - **SVG is decoded by the system on iOS.** An elliptical arc command with more than one parameter
222
+ set and packed flags can draw distorted or not at all. Simplify the path if one looks wrong.
223
+ - **Colors go through `processColor` by hand**, so `tintColor` and the style colors accept names,
224
+ hex and `rgb()`.
225
+ - **Not ported.** The web build, the RSC render tests of upstream (snapshot tests of a server renderer) and the `expo-observe` integration.
226
+ - **Not ported.** The web build, upstream's RSC snapshot tests and the `expo-observe` integration.
227
+
228
+ ## Common questions
34
229
 
35
- `ImageBackground` is a view with an image filling it. `useImage` (`injectImage` in Angular) loads
36
- a native `ImageRef` and releases it with its owner. The static functions of upstream's `Image` are
37
- plain functions: `prefetchImages`, `clearMemoryCache`, `clearDiskCache`, `getCachePathAsync`,
38
- `writeToCacheAsync`, `readFromCacheAsync`, `configureCache`, `generateBlurhashAsync`,
39
- `generateThumbhashAsync`, `loadImageAsync`.
230
+ - **A list shows the previous row's picture.** The view keeps the old image until the new one is
231
+ ready. Give each image a `recyclingKey` (the item id). A `key` instead destroys the view and
232
+ defeats recycling.
233
+ - **Memory climbs with many images.** Show thumbnails sized to the box, keep `cachePolicy="disk"`,
234
+ leave `allowDownscaling` on, use `useImage` with `maxWidth`, call `clearMemoryCache()` on memory
235
+ pressure.
236
+ - **Animated WebP freezes or is slow on iOS.** Apple's decoder is slow on some files. Test or
237
+ re-encode them, and control playback with `autoplay={false}` and `startAnimating()`.
238
+ - **Android `NoSuchMethodError`.** `expo-image` and `expo-modules-core` must come from matching
239
+ releases. This package pins both, never install either yourself.
240
+ - **The placeholder flickers.** Set `placeholderContentFit` to the same value as `contentFit`.
241
+ - **`resizeMode`, `fadeDuration`, `defaultSource`.** Still work, warn once, `repeat` is unsupported.
242
+ Use `contentFit`, `transition`, `placeholder`.
243
+ - **Angular names.** `ExpoImage` and `ExpoImageBackground`.
40
244
 
41
- Angular selectors are `ExpoImage` and `ExpoImageBackground`, `Image` and `ImageBackground` are
42
- tags of the adapter.
245
+ Sources: [Expo docs: Image](https://docs.expo.dev/versions/latest/sdk/image/),
246
+ [expo/expo#21211](https://github.com/expo/expo/issues/21211),
247
+ [expo/expo#26781](https://github.com/expo/expo/issues/26781),
248
+ [expo/expo#24557](https://github.com/expo/expo/issues/24557),
249
+ [expo/expo#25920](https://github.com/expo/expo/issues/25920),
250
+ [expo/expo#37229](https://github.com/expo/expo/issues/37229).
43
251
 
44
- ## Not ported
252
+ ## Test it
45
253
 
46
- The web build, upstream's RSC snapshot tests and the `expo-observe` integration.
254
+ No device is needed for the logic. The core tests (`src/core/*.test.ts`) replace `expo-modules-core`
255
+ (`requireNativeViewManager`, `Platform`) and assert the descriptor a render function returns. The
256
+ adapter tests (`src/{react,vue,solid,angular}/**/*.test.*`, `vitest`) render the real component over the
257
+ recording Fabric with an injected view config and assert the committed payload, and Svelte's
258
+ `*.smoke.test.ts` compile the `.svelte` files and mount them. Painting itself is verified on a device in
259
+ the six `examples/expo-*` canary apps (`examples/expo-react`, `examples/expo-vue-sfc`,
260
+ `examples/expo-vue-tsx`, `examples/expo-svelte`, `examples/expo-solid`, `examples/expo-angular`), see the
261
+ parent [README](../../README.md).
@@ -81,7 +81,9 @@ let ExpoImageBackground = (() => {
81
81
  inputs: [...IMAGE_BACKGROUND_INPUTS],
82
82
  changeDetection: ChangeDetectionStrategy.OnPush,
83
83
  template: `@if (descriptor; as node) {
84
- <symbiote-descriptor-host [node]="node"><ng-content /></symbiote-descriptor-host>
84
+ <symbiote-descriptor-host [node]="node"
85
+ ><ng-content
86
+ /></symbiote-descriptor-host>
85
87
  }`,
86
88
  })];
87
89
  let _classDescriptor;
@@ -5,7 +5,9 @@ function hashToUri(type, hash) {
5
5
  }
6
6
  /** `blurhash:/<hash>/<width>/<height>` or `<hash>/<width>/<height>` */
7
7
  export function resolveBlurhashString(str) {
8
- const [hash = '', width = '', height = ''] = str.replace(/^blurhash:\//, '').split('/');
8
+ const [hash = '', width = '', height = ''] = str
9
+ .replace(/^blurhash:\//, '')
10
+ .split('/');
9
11
  return {
10
12
  uri: hashToUri('blurhash', hash),
11
13
  width: parseInt(width, 10) || DEFAULT_HASH_SIZE,
@@ -1,6 +1,9 @@
1
1
  import { el } from '@symbiote-native/components';
2
2
  import { createImageView } from './image-view.js';
3
- const CLASS_KEYS = new Set(['className', 'class']);
3
+ const CLASS_KEYS = new Set([
4
+ 'className',
5
+ 'class',
6
+ ]);
4
7
  function isClassEntry([key]) {
5
8
  return CLASS_KEYS.has(key);
6
9
  }
@@ -2,10 +2,12 @@ function field(value, key) {
2
2
  return Reflect.get(Object(value), key);
3
3
  }
4
4
  function isLoad(value) {
5
- return typeof field(value, 'cacheType') === 'string' && typeof field(value, 'source') === 'object';
5
+ return (typeof field(value, 'cacheType') === 'string' &&
6
+ typeof field(value, 'source') === 'object');
6
7
  }
7
8
  function isProgress(value) {
8
- return typeof field(value, 'loaded') === 'number' && typeof field(value, 'total') === 'number';
9
+ return (typeof field(value, 'loaded') === 'number' &&
10
+ typeof field(value, 'total') === 'number');
9
11
  }
10
12
  function isError(value) {
11
13
  return typeof field(value, 'error') === 'string';
@@ -1,4 +1,4 @@
1
- import { requireNativeModule, requireNativeViewManager } from 'expo-modules-core';
1
+ import { requireNativeModule, requireNativeViewManager, } from 'expo-modules-core';
2
2
  import { el } from '@symbiote-native/components';
3
3
  import { defineExpoNativeView, defineExpoViewMethods, getNativeTag, isDevBuild, styleOfProps, } from '@symbiote-native/engine';
4
4
  import { IMAGE_MODULE_NAME, SF_SYMBOL_PREFIX } from './constants.js';
@@ -53,7 +53,9 @@ function symbolProps(parts, isSfSymbol) {
53
53
  }
54
54
  function sizedStyle(parts, isSfSymbol) {
55
55
  const { fontSize, rest } = parts;
56
- return isSfSymbol && fontSize ? { width: fontSize, height: fontSize, ...rest } : rest;
56
+ return isSfSymbol && fontSize
57
+ ? { width: fontSize, height: fontSize, ...rest }
58
+ : rest;
57
59
  }
58
60
  function nativeProps(props) {
59
61
  const parts = splitImageStyle(styleOfProps(props));
@@ -58,5 +58,8 @@ export function platformStyle(style) {
58
58
  }
59
59
  /** `backgroundColor` and the border colors in the form native reads */
60
60
  export function nativeColorProps(style) {
61
- return Object.fromEntries(['backgroundColor', ...BORDER_COLOR_KEYS].map(key => [key, toNativeColor(style[key])]));
61
+ return Object.fromEntries(['backgroundColor', ...BORDER_COLOR_KEYS].map(key => [
62
+ key,
63
+ toNativeColor(style[key]),
64
+ ]));
62
65
  }
@@ -72,7 +72,7 @@ export function resolveSfEffect(sfEffect) {
72
72
  return null;
73
73
  }
74
74
  const effects = Array.isArray(sfEffect) ? sfEffect : [sfEffect];
75
- return effects.map(item => (typeof item === 'string' ? { effect: item } : item));
75
+ return effects.map(item => typeof item === 'string' ? { effect: item } : item);
76
76
  }
77
77
  /** A number is the duration of a cross dissolve */
78
78
  export function resolveTransition(transition, fadeDuration) {
@@ -28,7 +28,9 @@ export function resolveSource(source) {
28
28
  return resolveThumbhashString(source);
29
29
  }
30
30
  if (source.startsWith(SF_SYMBOL_PREFIX)) {
31
- return { uri: `${SF_SYMBOL_PREFIX}/${source.slice(SF_SYMBOL_PREFIX.length)}` };
31
+ return {
32
+ uri: `${SF_SYMBOL_PREFIX}/${source.slice(SF_SYMBOL_PREFIX.length)}`,
33
+ };
32
34
  }
33
35
  return { uri: source };
34
36
  }
@@ -10,7 +10,7 @@ export function useImage(getSource, getOptions = () => ({}), getDependencies = (
10
10
  const key = $derived(resolveSource(getSource())?.uri);
11
11
  $effect(() => {
12
12
  // Read so the effect tracks them, the source itself is not a trigger
13
- key;
13
+ void key;
14
14
  getDependencies();
15
15
  const loader = createImageRefLoader(loaded => {
16
16
  image = loaded;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/angular/image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;;AAG7C,oFAAoF;AACpF,MAAM,YAAY,GAAG;IACnB,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,uBAAuB;IACvB,iBAAiB;IACjB,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,UAAU;IACV,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,cAAc;IACd,UAAU;IACV,UAAU;IACV,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,WAAW;IACX,WAAW;IACX,eAAe;IACf,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,KAAK;IACL,2BAA2B;IAC3B,kBAAkB;IAClB,cAAc;IACd,mBAAmB;IACnB,sBAAsB;IACtB,wBAAwB;IACxB,WAAW;CACH,CAAC;AAMX,+FAA+F;AAW/F,MAAM,OAAO,SAAU,SAAQ,cAAc;IAI1B,IAAI,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE/D,sFAAsF;IAC7E,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IACjD,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IAC/C,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;IACvD,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC3D,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IAExB,SAAS,GAAG,YAAY,CAAC;IAElC,UAAU,CAAC,KAAa;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;uGAjBU,SAAS;2FAAT,SAAS,okCAJV;;IAER,4DALQ,gBAAgB;;2FAOf,SAAS;kBAVrB,SAAS;mBAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC;oBACzB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE;;IAER;iBACH"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/angular/image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;;AAG7C,oFAAoF;AACpF,MAAM,YAAY,GAAG;IACnB,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,uBAAuB;IACvB,iBAAiB;IACjB,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,UAAU;IACV,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,cAAc;IACd,UAAU;IACV,UAAU;IACV,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,WAAW;IACX,WAAW;IACX,eAAe;IACf,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,KAAK;IACL,2BAA2B;IAC3B,kBAAkB;IAClB,cAAc;IACd,mBAAmB;IACnB,sBAAsB;IACtB,wBAAwB;IACxB,WAAW;CACH,CAAC;AAOX,+FAA+F;AAW/F,MAAM,OAAO,SAAU,SAAQ,cAAc;IAI1B,IAAI,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE/D,sFAAsF;IAC7E,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IACjD,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IAC/C,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;IACvD,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC3D,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IAExB,SAAS,GAAG,YAAY,CAAC;IAElC,UAAU,CAAC,KAAa;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;uGAjBU,SAAS;2FAAT,SAAS,okCAJV;;IAER,4DALQ,gBAAgB;;2FAOf,SAAS;kBAVrB,SAAS;mBAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC;oBACzB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE;;IAER;iBACH"}
@@ -47,7 +47,9 @@ export class ExpoImageBackground extends NativeViewBase {
47
47
  }
48
48
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ExpoImageBackground, deps: null, target: i0.ɵɵFactoryTarget.Component });
49
49
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: ExpoImageBackground, isStandalone: true, selector: "ExpoImageBackground", inputs: { source: "source", placeholder: "placeholder", contentFit: "contentFit", placeholderContentFit: "placeholderContentFit", contentPosition: "contentPosition", transition: "transition", blurRadius: "blurRadius", tintColor: "tintColor", priority: "priority", loading: "loading", cachePolicy: "cachePolicy", responsivePolicy: "responsivePolicy", recyclingKey: "recyclingKey", autoplay: "autoplay", sfEffect: "sfEffect", onLoadStart: "onLoadStart", onLoad: "onLoad", onProgress: "onProgress", onError: "onError", onLoadEnd: "onLoadEnd", onDisplay: "onDisplay", defaultSource: "defaultSource", loadingIndicatorSource: "loadingIndicatorSource", resizeMode: "resizeMode", fadeDuration: "fadeDuration", alt: "alt", enableLiveTextInteraction: "enableLiveTextInteraction", allowDownscaling: "allowDownscaling", decodeFormat: "decodeFormat", useAppleWebpCodec: "useAppleWebpCodec", enforceEarlyResizing: "enforceEarlyResizing", preferHighDynamicRange: "preferHighDynamicRange", draggable: "draggable", imageStyle: "imageStyle" }, usesInheritance: true, ngImport: i0, template: `@if (descriptor; as node) {
50
- <symbiote-descriptor-host [node]="node"><ng-content /></symbiote-descriptor-host>
50
+ <symbiote-descriptor-host [node]="node"
51
+ ><ng-content
52
+ /></symbiote-descriptor-host>
51
53
  }`, isInline: true, dependencies: [{ kind: "component", type: DescriptorHost, selector: "symbiote-descriptor-host", inputs: ["node"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
54
  }
53
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ExpoImageBackground, decorators: [{
@@ -59,7 +61,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
59
61
  inputs: [...IMAGE_BACKGROUND_INPUTS],
60
62
  changeDetection: ChangeDetectionStrategy.OnPush,
61
63
  template: `@if (descriptor; as node) {
62
- <symbiote-descriptor-host [node]="node"><ng-content /></symbiote-descriptor-host>
64
+ <symbiote-descriptor-host [node]="node"
65
+ ><ng-content
66
+ /></symbiote-descriptor-host>
63
67
  }`,
64
68
  }]
65
69
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/angular/image-background/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;;AAInD,8EAA8E;AAC9E,MAAM,uBAAuB,GAAG;IAC9B,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,uBAAuB;IACvB,iBAAiB;IACjB,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,UAAU;IACV,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,cAAc;IACd,UAAU;IACV,UAAU;IACV,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,WAAW;IACX,WAAW;IACX,eAAe;IACf,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,KAAK;IACL,2BAA2B;IAC3B,kBAAkB;IAClB,cAAc;IACd,mBAAmB;IACnB,sBAAsB;IACtB,wBAAwB;IACxB,WAAW;IACX,YAAY;CACJ,CAAC;AAKX,0FAA0F;AAW1F,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IAIzB,SAAS,GAAG,uBAAuB,CAAC;IAE7C,UAAU,CAAC,KAAa;QACzC,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;uGARU,mBAAmB;2FAAnB,mBAAmB,wmCAJpB;;IAER,4DALQ,cAAc;;2FAOb,mBAAmB;kBAV/B,SAAS;mBAAC;oBACT,QAAQ,EAAE,qBAAqB;oBAC/B,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,cAAc,CAAC;oBACzB,MAAM,EAAE,CAAC,GAAG,uBAAuB,CAAC;oBACpC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE;;IAER;iBACH"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/angular/image-background/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;;AAInD,8EAA8E;AAC9E,MAAM,uBAAuB,GAAG;IAC9B,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,uBAAuB;IACvB,iBAAiB;IACjB,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,UAAU;IACV,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,cAAc;IACd,UAAU;IACV,UAAU;IACV,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,WAAW;IACX,WAAW;IACX,eAAe;IACf,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,KAAK;IACL,2BAA2B;IAC3B,kBAAkB;IAClB,cAAc;IACd,mBAAmB;IACnB,sBAAsB;IACtB,wBAAwB;IACxB,WAAW;IACX,YAAY;CACJ,CAAC;AAMX,0FAA0F;AAa1F,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IAIzB,SAAS,GAAG,uBAAuB,CAAC;IAE7C,UAAU,CAAC,KAAa;QACzC,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;uGARU,mBAAmB;2FAAnB,mBAAmB,wmCANpB;;;;IAIR,4DAPQ,cAAc;;2FASb,mBAAmB;kBAZ/B,SAAS;mBAAC;oBACT,QAAQ,EAAE,qBAAqB;oBAC/B,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,cAAc,CAAC;oBACzB,MAAM,EAAE,CAAC,GAAG,uBAAuB,CAAC;oBACpC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE;;;;IAIR;iBACH"}
@@ -5,7 +5,9 @@ function hashToUri(type, hash) {
5
5
  }
6
6
  /** `blurhash:/<hash>/<width>/<height>` or `<hash>/<width>/<height>` */
7
7
  export function resolveBlurhashString(str) {
8
- const [hash = '', width = '', height = ''] = str.replace(/^blurhash:\//, '').split('/');
8
+ const [hash = '', width = '', height = ''] = str
9
+ .replace(/^blurhash:\//, '')
10
+ .split('/');
9
11
  return {
10
12
  uri: hashToUri('blurhash', hash),
11
13
  width: parseInt(width, 10) || DEFAULT_HASH_SIZE,
@@ -1 +1 @@
1
- {"version":3,"file":"hash-strings.js","sourceRoot":"","sources":["../../src/core/hash-strings.ts"],"names":[],"mappings":"AAIA,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,SAAS,SAAS,CAAC,IAAoB,EAAE,IAAY;IACnD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3E,OAAO,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxF,OAAO;QACL,GAAG,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC;QAChC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,iBAAiB;QAC/C,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,iBAAiB;KAClD,CAAC;AACJ,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,4DAA4D;IAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"hash-strings.js","sourceRoot":"","sources":["../../src/core/hash-strings.ts"],"names":[],"mappings":"AAIA,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,SAAS,SAAS,CAAC,IAAoB,EAAE,IAAY;IACnD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3E,OAAO,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,GAAG;SAC7C,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,KAAK,CAAC,GAAG,CAAC,CAAC;IACd,OAAO;QACL,GAAG,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC;QAChC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,iBAAiB;QAC/C,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,iBAAiB;KAClD,CAAC;AACJ,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,4DAA4D;IAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;AAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"image-api.js","sourceRoot":"","sources":["../../src/core/image-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAS1C,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAI3C,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAC5B,IAAuB,EACvB,OAA0B;IAE1B,MAAM,EAAE,WAAW,GAAG,oBAAoB,EAAE,OAAO,EAAE,GACnD,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC3E,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAqB,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;AAErF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAqB,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;AAEjF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAA0B,EAAE,CAC5E,SAAS,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAAyB,EACzB,QAAgB,EACD,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAA4B,EAAE,CAC/E,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAEzC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAyB,EAAQ,EAAE,CAChE,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAAyB,EACzB,kBAAwE,EAChD,EAAE,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEzF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAyB,EAAmB,EAAE,CACnF,SAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAE3C,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAsC,EACtC,UAA6B,EAAE;IAE/B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACnD,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE;QACnC,QAAQ;QACR,SAAS;QACT,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC;KACpC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"image-api.js","sourceRoot":"","sources":["../../src/core/image-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAS1C,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAK3C,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAC5B,IAAuB,EACvB,OAA0B;IAE1B,MAAM,EAAE,WAAW,GAAG,oBAAoB,EAAE,OAAO,EAAE,GACnD,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC3E,OAAO,SAAS,CAAC,QAAQ,CACvB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EACnC,WAAW,EACX,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAqB,EAAE,CACrD,SAAS,CAAC,gBAAgB,EAAE,CAAC;AAE/B,MAAM,CAAC,MAAM,cAAc,GAAG,GAAqB,EAAE,CACnD,SAAS,CAAC,cAAc,EAAE,CAAC;AAE7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAA0B,EAAE,CAC5E,SAAS,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAAyB,EACzB,QAAgB,EACD,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,QAAgB,EACU,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAyB,EAAQ,EAAE,CAChE,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAAyB,EACzB,kBAAwE,EAChD,EAAE,CAC1B,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAyB,EACR,EAAE,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAE/D,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAsC,EACtC,UAA6B,EAAE;IAE/B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACnD,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE;QACnC,QAAQ;QACR,SAAS;QACT,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC;KACpC,CAAC,CAAC;AACL,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import { el } from '@symbiote-native/components';
2
2
  import { createImageView } from './image-view';
3
- const CLASS_KEYS = new Set(['className', 'class']);
3
+ const CLASS_KEYS = new Set([
4
+ 'className',
5
+ 'class',
6
+ ]);
4
7
  function isClassEntry([key]) {
5
8
  return CLASS_KEYS.has(key);
6
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"image-background.js","sourceRoot":"","sources":["../../src/core/image-background.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAW/C,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnF,SAAS,YAAY,CAAC,CAAC,GAAG,CAAoB;IAC5C,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,aAAa,GAAG;IACpB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;CACqB,CAAC;AAEjC,wEAAwE;AACxE,MAAM,eAAe,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAEpD,wFAAwF;AACxF,MAAM,UAAU,qBAAqB,CAAC,KAA4B;IAChE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC;QACnC,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,KAAK,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;KACnC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"image-background.js","sourceRoot":"","sources":["../../src/core/image-background.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAW/C,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAY;IACzD,WAAW;IACX,OAAO;CACR,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,CAAC,GAAG,CAAoB;IAC5C,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,aAAa,GAAG;IACpB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;CACqB,CAAC;AAEjC,wEAAwE;AACxE,MAAM,eAAe,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAEpD,wFAAwF;AACxF,MAAM,UAAU,qBAAqB,CACnC,KAA4B;IAE5B,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC;QACnC,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,KAAK,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;KACnC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"image-loader.js","sourceRoot":"","sources":["../../src/core/image-loader.ts"],"names":[],"mappings":"AAiBA,2DAA2D;AAC3D,MAAM,UAAU,iBAAiB,CAC/B,MAAkC;IAElC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAkB,IAAI,CAAC;IAEjC,SAAS,OAAO;QACd,MAAM,EAAE,OAAO,EAAE,CAAC;QAClB,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,IAAI,CAAC,MAAsC,EAAE,KAAc,EAAE,KAAiB;QACrF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CACX,0BAA0B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,0CAA0C,CAC3F,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,SAAS,IAAI,CAAC,MAAsC;QAClD,OAAO,EAAE,CAAC;QACV,KAAK,IAAI,CAAC,CAAC;QACX,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,MAAM;aACH,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;aACjC,IAAI,CAAC,KAAK,CAAC,EAAE;YACZ,IAAI,IAAI,KAAK,KAAK;gBAAE,OAAO;YAC3B,MAAM,GAAG,KAAK,CAAC;YACf,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,IAAI,IAAI,KAAK,KAAK;gBAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,GAAG,EAAE;YACX,KAAK,IAAI,CAAC,CAAC;YACX,OAAO,EAAE,CAAC;QACZ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"image-loader.js","sourceRoot":"","sources":["../../src/core/image-loader.ts"],"names":[],"mappings":"AAoBA,2DAA2D;AAC3D,MAAM,UAAU,iBAAiB,CAC/B,MAAkC;IAElC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAkB,IAAI,CAAC;IAEjC,SAAS,OAAO;QACd,MAAM,EAAE,OAAO,EAAE,CAAC;QAClB,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,IAAI,CACX,MAAsC,EACtC,KAAc,EACd,KAAiB;QAEjB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CACX,0BAA0B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,0CAA0C,CAC3F,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,SAAS,IAAI,CAAC,MAAsC;QAClD,OAAO,EAAE,CAAC;QACV,KAAK,IAAI,CAAC,CAAC;QACX,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,MAAM;aACH,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;aACjC,IAAI,CAAC,KAAK,CAAC,EAAE;YACZ,IAAI,IAAI,KAAK,KAAK;gBAAE,OAAO;YAC3B,MAAM,GAAG,KAAK,CAAC;YACf,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,IAAI,IAAI,KAAK,KAAK;gBAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,GAAG,EAAE;YACX,KAAK,IAAI,CAAC,CAAC;YACX,OAAO,EAAE,CAAC;QACZ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -2,10 +2,12 @@ function field(value, key) {
2
2
  return Reflect.get(Object(value), key);
3
3
  }
4
4
  function isLoad(value) {
5
- return typeof field(value, 'cacheType') === 'string' && typeof field(value, 'source') === 'object';
5
+ return (typeof field(value, 'cacheType') === 'string' &&
6
+ typeof field(value, 'source') === 'object');
6
7
  }
7
8
  function isProgress(value) {
8
- return typeof field(value, 'loaded') === 'number' && typeof field(value, 'total') === 'number';
9
+ return (typeof field(value, 'loaded') === 'number' &&
10
+ typeof field(value, 'total') === 'number');
9
11
  }
10
12
  function isError(value) {
11
13
  return typeof field(value, 'error') === 'string';
@@ -1 +1 @@
1
- {"version":3,"file":"image-view-events.js","sourceRoot":"","sources":["../../src/core/image-view-events.ts"],"names":[],"mappings":"AAQA,SAAS,KAAK,CAAC,KAAc,EAAE,GAAW;IACxC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,QAAQ,CAAC;AACrG,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC;AACjG,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC;AACnD,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,aAAa,CAAC,KAAsB;IAClD,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE;QACxC,MAAM,EAAE,CAAC,KAAqB,EAAE,EAAE;YAChC,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;gBAAE,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACjE,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;QACtB,CAAC;QACD,UAAU,EAAE,CAAC,KAAqB,EAAE,EAAE;YACpC,IAAI,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;gBAAE,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,EAAE,CAAC,KAAqB,EAAE,EAAE;YACjC,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;gBAAE,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACnE,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"image-view-events.js","sourceRoot":"","sources":["../../src/core/image-view-events.ts"],"names":[],"mappings":"AAQA,SAAS,KAAK,CAAC,KAAc,EAAE,GAAW;IACxC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,CACL,OAAO,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,QAAQ;QAC7C,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,QAAQ,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,CACL,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,QAAQ;QAC1C,OAAO,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,QAAQ,CAC1C,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC;AACnD,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,aAAa,CAAC,KAAsB;IAClD,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE;QACxC,MAAM,EAAE,CAAC,KAAqB,EAAE,EAAE;YAChC,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;gBAAE,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACjE,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;QACtB,CAAC;QACD,UAAU,EAAE,CAAC,KAAqB,EAAE,EAAE;YACpC,IAAI,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;gBAAE,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,EAAE,CAAC,KAAqB,EAAE,EAAE;YACjC,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;gBAAE,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACnE,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { requireNativeModule, requireNativeViewManager } from 'expo-modules-core';
1
+ import { requireNativeModule, requireNativeViewManager, } from 'expo-modules-core';
2
2
  import { el } from '@symbiote-native/components';
3
3
  import { defineExpoNativeView, defineExpoViewMethods, getNativeTag, isDevBuild, styleOfProps, } from '@symbiote-native/engine';
4
4
  import { IMAGE_MODULE_NAME, SF_SYMBOL_PREFIX } from './constants';
@@ -53,7 +53,9 @@ function symbolProps(parts, isSfSymbol) {
53
53
  }
54
54
  function sizedStyle(parts, isSfSymbol) {
55
55
  const { fontSize, rest } = parts;
56
- return isSfSymbol && fontSize ? { width: fontSize, height: fontSize, ...rest } : rest;
56
+ return isSfSymbol && fontSize
57
+ ? { width: fontSize, height: fontSize, ...rest }
58
+ : rest;
57
59
  }
58
60
  function nativeProps(props) {
59
61
  const parts = splitImageStyle(styleOfProps(props));
@@ -1 +1 @@
1
- {"version":3,"file":"image-view.js","sourceRoot":"","sources":["../../src/core/image-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image-view.js","sourceRoot":"","sources":["../../src/core/image-view.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"native-module.js","sourceRoot":"","sources":["../../src/core/native-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAwChD,MAAM,CAAC,MAAM,SAAS,GAAG,mBAAmB,CAC1C,iBAAiB,CAClB,CAAC"}
1
+ {"version":3,"file":"native-module.js","sourceRoot":"","sources":["../../src/core/native-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAwChD,MAAM,CAAC,MAAM,SAAS,GACpB,mBAAmB,CAAqB,iBAAiB,CAAC,CAAC"}
@@ -58,6 +58,9 @@ export function platformStyle(style) {
58
58
  }
59
59
  /** `backgroundColor` and the border colors in the form native reads */
60
60
  export function nativeColorProps(style) {
61
- return Object.fromEntries(['backgroundColor', ...BORDER_COLOR_KEYS].map(key => [key, toNativeColor(style[key])]));
61
+ return Object.fromEntries(['backgroundColor', ...BORDER_COLOR_KEYS].map(key => [
62
+ key,
63
+ toNativeColor(style[key]),
64
+ ]));
62
65
  }
63
66
  //# sourceMappingURL=native-style.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"native-style.js","sourceRoot":"","sources":["../../src/core/native-style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAMrE,MAAM,WAAW,GAAG;IAClB,aAAa;IACb,cAAc;IACd,eAAe;IACf,cAAc;CACkC,CAAC;AAEnD,MAAM,iBAAiB,GAAG;IACxB,aAAa;IACb,kBAAkB;IAClB,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;CAC6B,CAAC;AAEnD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAU;IACpC,OAAO;IACP,SAAS;IACT,SAAS;IACT,QAAQ;IACR,QAAQ;CACsC,CAAC,CAAC;AAWlD,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAC9C,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC;IAClF,OAAO;QACL,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC7D,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC7C,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC7D,KAAK;QACL,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,GAAc,EAAE,IAAuB;IACtD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,aAAa,CAAC,KAAgB;IAC5C,OAAO,QAAQ,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAC5D,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC;KACvC,CAAC,CAAC;AACL,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAC/C,OAAO,MAAM,CAAC,WAAW,CACvB,CAAC,iBAAiB,EAAE,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACvF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"native-style.js","sourceRoot":"","sources":["../../src/core/native-style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAMrE,MAAM,WAAW,GAAG;IAClB,aAAa;IACb,cAAc;IACd,eAAe;IACf,cAAc;CACkC,CAAC;AAEnD,MAAM,iBAAiB,GAAG;IACxB,aAAa;IACb,kBAAkB;IAClB,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;CAC6B,CAAC;AAEnD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAU;IACpC,OAAO;IACP,SAAS;IACT,SAAS;IACT,QAAQ;IACR,QAAQ;CACsC,CAAC,CAAC;AAWlD,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAC9C,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GACxD,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,MAAM,QAAQ,GACZ,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC;IACnE,OAAO;QACL,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC7D,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC7C,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC7D,KAAK;QACL,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,GAAc,EAAE,IAAuB;IACtD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAC3D,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,aAAa,CAAC,KAAgB;IAC5C,OAAO,QAAQ,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAC5D,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC;KACvC,CAAC,CAAC;AACL,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAC/C,OAAO,MAAM,CAAC,WAAW,CACvB,CAAC,iBAAiB,EAAE,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,GAAG;QACH,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC1B,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -72,7 +72,7 @@ export function resolveSfEffect(sfEffect) {
72
72
  return null;
73
73
  }
74
74
  const effects = Array.isArray(sfEffect) ? sfEffect : [sfEffect];
75
- return effects.map(item => (typeof item === 'string' ? { effect: item } : item));
75
+ return effects.map(item => typeof item === 'string' ? { effect: item } : item);
76
76
  }
77
77
  /** A number is the duration of a cross dissolve */
78
78
  export function resolveTransition(transition, fadeDuration) {
@@ -1 +1 @@
1
- {"version":3,"file":"props.js","sourceRoot":"","sources":["../../src/core/props.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"props.js","sourceRoot":"","sources":["../../src/core/props.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,9 @@ export function resolveSource(source) {
28
28
  return resolveThumbhashString(source);
29
29
  }
30
30
  if (source.startsWith(SF_SYMBOL_PREFIX)) {
31
- return { uri: `${SF_SYMBOL_PREFIX}/${source.slice(SF_SYMBOL_PREFIX.length)}` };
31
+ return {
32
+ uri: `${SF_SYMBOL_PREFIX}/${source.slice(SF_SYMBOL_PREFIX.length)}`,
33
+ };
32
34
  }
33
35
  return { uri: source };
34
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/core/sources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/core/sources.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symbiote-native/image",
3
- "version": "0.0.0",
3
+ "version": "0.1.0",
4
4
  "description": "expo-image wrapped for SymbioteNative — one framework-agnostic core, built once and reachable from the React, Vue, Svelte, Solid, and Angular adapters. The image view with caching, placeholders and SF Symbols, plus the image cache and hash functions.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -68,7 +68,7 @@
68
68
  "expo-image": "57.0.5",
69
69
  "expo-modules-core": "57.0.20",
70
70
  "sf-symbols-typescript": "^2.0.0",
71
- "@symbiote-native/components": "3.1.4"
71
+ "@symbiote-native/components": "3.2.0"
72
72
  },
73
73
  "peerDependencies": {
74
74
  "@angular/core": ">=20",
@@ -78,12 +78,12 @@
78
78
  "solid-js": ">=1.9.0",
79
79
  "svelte": ">=5.56.0",
80
80
  "vue": ">=3.5.0",
81
- "@symbiote-native/angular": "^3.2.0",
82
- "@symbiote-native/engine": "^1.5.0",
83
- "@symbiote-native/solid": "^3.1.0",
84
- "@symbiote-native/react": "^3.2.0",
85
- "@symbiote-native/svelte": "^3.1.0",
86
- "@symbiote-native/vue": "^3.2.0"
81
+ "@symbiote-native/angular": "^3.3.0",
82
+ "@symbiote-native/engine": "^1.6.0",
83
+ "@symbiote-native/react": "^3.3.0",
84
+ "@symbiote-native/solid": "^3.2.0",
85
+ "@symbiote-native/svelte": "^3.2.0",
86
+ "@symbiote-native/vue": "^3.3.0"
87
87
  },
88
88
  "peerDependenciesMeta": {
89
89
  "@symbiote-native/angular": {
@@ -131,13 +131,13 @@
131
131
  "solid-js": "^1.9.14",
132
132
  "svelte": "^5.56.0",
133
133
  "typescript": "~6.0.0",
134
- "@symbiote-native/angular": "3.2.0",
135
- "@symbiote-native/solid": "3.1.0",
136
- "@symbiote-native/engine": "1.5.0",
137
- "@symbiote-native/vue": "3.2.0",
138
- "@symbiote-native/test-utils": "0.4.6",
139
- "@symbiote-native/svelte": "3.1.0",
140
- "@symbiote-native/react": "3.2.0"
134
+ "@symbiote-native/angular": "3.3.0",
135
+ "@symbiote-native/engine": "1.6.0",
136
+ "@symbiote-native/react": "3.3.0",
137
+ "@symbiote-native/solid": "3.2.0",
138
+ "@symbiote-native/svelte": "3.2.0",
139
+ "@symbiote-native/test-utils": "0.4.7",
140
+ "@symbiote-native/vue": "3.3.0"
141
141
  },
142
142
  "scripts": {
143
143
  "typecheck": "tsc --build",
@@ -43,8 +43,9 @@ const IMAGE_INPUTS = [
43
43
  ] as const;
44
44
 
45
45
  // Types the inputs for the template, the decorators that would do it are replaced by `inputs`
46
- export interface ExpoImage
47
- extends Partial<Pick<IImageViewProps, (typeof IMAGE_INPUTS)[number]>> {}
46
+ export interface ExpoImage extends Partial<
47
+ Pick<IImageViewProps, (typeof IMAGE_INPUTS)[number]>
48
+ > {}
48
49
 
49
50
  /** Angular twin of `expo-image`'s `Image`, `Image` itself is a primitive tag of the adapter */
50
51
  @Component({
@@ -43,8 +43,9 @@ const IMAGE_BACKGROUND_INPUTS = [
43
43
  'imageStyle',
44
44
  ] as const;
45
45
 
46
- export interface ExpoImageBackground
47
- extends Partial<Pick<IImageBackgroundProps, (typeof IMAGE_BACKGROUND_INPUTS)[number]>> {}
46
+ export interface ExpoImageBackground extends Partial<
47
+ Pick<IImageBackgroundProps, (typeof IMAGE_BACKGROUND_INPUTS)[number]>
48
+ > {}
48
49
 
49
50
  /** Angular twin of `expo-image`'s `ImageBackground`, the content paints over the image */
50
51
  @Component({
@@ -54,7 +55,9 @@ export interface ExpoImageBackground
54
55
  inputs: [...IMAGE_BACKGROUND_INPUTS],
55
56
  changeDetection: ChangeDetectionStrategy.OnPush,
56
57
  template: `@if (descriptor; as node) {
57
- <symbiote-descriptor-host [node]="node"><ng-content /></symbiote-descriptor-host>
58
+ <symbiote-descriptor-host [node]="node"
59
+ ><ng-content
60
+ /></symbiote-descriptor-host>
58
61
  }`,
59
62
  })
60
63
  export class ExpoImageBackground extends NativeViewBase {
@@ -11,7 +11,9 @@ function hashToUri(type: IImageHashType, hash: string): string {
11
11
 
12
12
  /** `blurhash:/<hash>/<width>/<height>` or `<hash>/<width>/<height>` */
13
13
  export function resolveBlurhashString(str: string): IImageSource {
14
- const [hash = '', width = '', height = ''] = str.replace(/^blurhash:\//, '').split('/');
14
+ const [hash = '', width = '', height = ''] = str
15
+ .replace(/^blurhash:\//, '')
16
+ .split('/');
15
17
  return {
16
18
  uri: hashToUri('blurhash', hash),
17
19
  width: parseInt(width, 10) || DEFAULT_HASH_SIZE,
@@ -11,7 +11,8 @@ import type {
11
11
 
12
12
  const DEFAULT_CACHE_POLICY = 'memory-disk';
13
13
 
14
- type IPrefetchOptions = IImagePrefetchOptions['cachePolicy'] | IImagePrefetchOptions;
14
+ type IPrefetchOptions =
15
+ IImagePrefetchOptions['cachePolicy'] | IImagePrefetchOptions;
15
16
 
16
17
  /** The caching policy as a string, or with request headers as an object */
17
18
  export function prefetchImages(
@@ -20,12 +21,18 @@ export function prefetchImages(
20
21
  ): Promise<boolean> {
21
22
  const { cachePolicy = DEFAULT_CACHE_POLICY, headers } =
22
23
  typeof options === 'string' ? { cachePolicy: options } : (options ?? {});
23
- return expoImage.prefetch(Array.isArray(urls) ? urls : [urls], cachePolicy, headers);
24
+ return expoImage.prefetch(
25
+ Array.isArray(urls) ? urls : [urls],
26
+ cachePolicy,
27
+ headers,
28
+ );
24
29
  }
25
30
 
26
- export const clearMemoryCache = (): Promise<boolean> => expoImage.clearMemoryCache();
31
+ export const clearMemoryCache = (): Promise<boolean> =>
32
+ expoImage.clearMemoryCache();
27
33
 
28
- export const clearDiskCache = (): Promise<boolean> => expoImage.clearDiskCache();
34
+ export const clearDiskCache = (): Promise<boolean> =>
35
+ expoImage.clearDiskCache();
29
36
 
30
37
  export const getCachePathAsync = (cacheKey: string): Promise<string | null> =>
31
38
  expoImage.getCachePathAsync(cacheKey);
@@ -35,8 +42,9 @@ export const writeToCacheAsync = (
35
42
  cacheKey: string,
36
43
  ): Promise<void> => expoImage.writeToCacheAsync(source, cacheKey);
37
44
 
38
- export const readFromCacheAsync = (cacheKey: string): Promise<ImageRef | null> =>
39
- expoImage.readFromCacheAsync(cacheKey);
45
+ export const readFromCacheAsync = (
46
+ cacheKey: string,
47
+ ): Promise<ImageRef | null> => expoImage.readFromCacheAsync(cacheKey);
40
48
 
41
49
  export const configureCache = (config: IImageCacheConfig): void =>
42
50
  expoImage.configureCache(config);
@@ -44,10 +52,12 @@ export const configureCache = (config: IImageCacheConfig): void =>
44
52
  export const generateBlurhashAsync = (
45
53
  source: string | ImageRef,
46
54
  numberOfComponents: [number, number] | { width: number; height: number },
47
- ): Promise<string | null> => expoImage.generateBlurhashAsync(source, numberOfComponents);
55
+ ): Promise<string | null> =>
56
+ expoImage.generateBlurhashAsync(source, numberOfComponents);
48
57
 
49
- export const generateThumbhashAsync = (source: string | ImageRef): Promise<string> =>
50
- expoImage.generateThumbhashAsync(source);
58
+ export const generateThumbhashAsync = (
59
+ source: string | ImageRef,
60
+ ): Promise<string> => expoImage.generateThumbhashAsync(source);
51
61
 
52
62
  /** Loads the image into a native `ImageRef`, the caller releases it */
53
63
  export async function loadImageAsync(
@@ -12,7 +12,10 @@ export type IImageBackgroundProps = IImageViewProps & {
12
12
  };
13
13
 
14
14
  type IClassKey = 'className' | 'class';
15
- const CLASS_KEYS: ReadonlySet<string> = new Set<IClassKey>(['className', 'class']);
15
+ const CLASS_KEYS: ReadonlySet<string> = new Set<IClassKey>([
16
+ 'className',
17
+ 'class',
18
+ ]);
16
19
 
17
20
  function isClassEntry([key]: [string, unknown]): boolean {
18
21
  return CLASS_KEYS.has(key);
@@ -30,7 +33,9 @@ const ABSOLUTE_FILL = {
30
33
  const backgroundImage = createImageView(() => null);
31
34
 
32
35
  /** A view with an image filling it, the children of the app go after this descriptor */
33
- export function renderImageBackground(props: IImageBackgroundProps): IDescriptor {
36
+ export function renderImageBackground(
37
+ props: IImageBackgroundProps,
38
+ ): IDescriptor {
34
39
  const { style, imageStyle, ...rest } = props;
35
40
  const entries = Object.entries(rest);
36
41
  const image = backgroundImage.render({
@@ -1,7 +1,10 @@
1
1
  import type { IImageLoadOptions, IImageSource } from './types';
2
2
 
3
3
  export type IImageLoaderConfig<TImage extends { release(): void }> = {
4
- load(source: IImageSource | string | number, options: IImageLoadOptions): Promise<TImage>;
4
+ load(
5
+ source: IImageSource | string | number,
6
+ options: IImageLoadOptions,
7
+ ): Promise<TImage>;
5
8
  /** Called with each image that finished loading */
6
9
  onImage(image: TImage): void;
7
10
  /** Read at the time of a failure, so the latest callback wins */
@@ -27,7 +30,11 @@ export function createImageLoader<TImage extends { release(): void }>(
27
30
  loaded = null;
28
31
  }
29
32
 
30
- function fail(source: IImageSource | string | number, error: unknown, retry: () => void): void {
33
+ function fail(
34
+ source: IImageSource | string | number,
35
+ error: unknown,
36
+ retry: () => void,
37
+ ): void {
31
38
  const { onError } = config.getOptions();
32
39
  if (onError) {
33
40
  onError(error instanceof Error ? error : new Error(String(error)), retry);
@@ -11,11 +11,17 @@ function field(value: unknown, key: string): unknown {
11
11
  }
12
12
 
13
13
  function isLoad(value: unknown): value is IImageLoadEventData {
14
- return typeof field(value, 'cacheType') === 'string' && typeof field(value, 'source') === 'object';
14
+ return (
15
+ typeof field(value, 'cacheType') === 'string' &&
16
+ typeof field(value, 'source') === 'object'
17
+ );
15
18
  }
16
19
 
17
20
  function isProgress(value: unknown): value is IImageProgressEventData {
18
- return typeof field(value, 'loaded') === 'number' && typeof field(value, 'total') === 'number';
21
+ return (
22
+ typeof field(value, 'loaded') === 'number' &&
23
+ typeof field(value, 'total') === 'number'
24
+ );
19
25
  }
20
26
 
21
27
  function isError(value: unknown): value is IImageErrorEventData {
@@ -1,4 +1,7 @@
1
- import { requireNativeModule, requireNativeViewManager } from 'expo-modules-core';
1
+ import {
2
+ requireNativeModule,
3
+ requireNativeViewManager,
4
+ } from 'expo-modules-core';
2
5
  import { el } from '@symbiote-native/components';
3
6
  import type { IDescriptor } from '@symbiote-native/components';
4
7
  import {
@@ -29,9 +32,15 @@ import { resolveSources } from './sources';
29
32
  import type { IImageViewHandle, IImageViewProps } from './types';
30
33
 
31
34
  // Registered on render: a barrel side effect is lost in a release build
32
- const imageView = defineExpoNativeView(requireNativeViewManager, IMAGE_MODULE_NAME);
35
+ const imageView = defineExpoNativeView(
36
+ requireNativeViewManager,
37
+ IMAGE_MODULE_NAME,
38
+ );
33
39
 
34
- const callViewFunction = defineExpoViewMethods(requireNativeModule, IMAGE_MODULE_NAME);
40
+ const callViewFunction = defineExpoViewMethods(
41
+ requireNativeModule,
42
+ IMAGE_MODULE_NAME,
43
+ );
35
44
 
36
45
  export const imageViewName = imageView.name;
37
46
 
@@ -70,15 +79,21 @@ function hasSfSymbol(sources: ReturnType<typeof resolveSources>): boolean {
70
79
 
71
80
  function withoutOwnProps(props: IImageViewProps): Record<string, unknown> {
72
81
  const own: readonly string[] = OWN_PROPS;
73
- return Object.fromEntries(Object.entries(props).filter(([key]) => !own.includes(key)));
82
+ return Object.fromEntries(
83
+ Object.entries(props).filter(([key]) => !own.includes(key)),
84
+ );
74
85
  }
75
86
 
76
87
  function placeholderOf(props: IImageViewProps) {
77
88
  const { defaultSource, loadingIndicatorSource } = props;
78
89
  if (defaultSource || loadingIndicatorSource) {
79
- warnOnce('`defaultSource` and `loadingIndicatorSource` props are deprecated, use `placeholder`');
90
+ warnOnce(
91
+ '`defaultSource` and `loadingIndicatorSource` props are deprecated, use `placeholder`',
92
+ );
80
93
  }
81
- return resolveSources(props.placeholder ?? defaultSource ?? loadingIndicatorSource);
94
+ return resolveSources(
95
+ props.placeholder ?? defaultSource ?? loadingIndicatorSource,
96
+ );
82
97
  }
83
98
 
84
99
  // For an SF Symbol `fontSize` sizes both the symbol and its container
@@ -93,7 +108,9 @@ function symbolProps(parts: IImageStyleParts, isSfSymbol: boolean) {
93
108
 
94
109
  function sizedStyle(parts: IImageStyleParts, isSfSymbol: boolean) {
95
110
  const { fontSize, rest } = parts;
96
- return isSfSymbol && fontSize ? { width: fontSize, height: fontSize, ...rest } : rest;
111
+ return isSfSymbol && fontSize
112
+ ? { width: fontSize, height: fontSize, ...rest }
113
+ : rest;
97
114
  }
98
115
 
99
116
  function nativeProps(props: IImageViewProps): Record<string, unknown> {
@@ -40,6 +40,5 @@ export type INativeImageModule = {
40
40
  ): EventSubscription;
41
41
  };
42
42
 
43
- export const expoImage = requireNativeModule<INativeImageModule>(
44
- IMAGE_MODULE_NAME,
45
- );
43
+ export const expoImage =
44
+ requireNativeModule<INativeImageModule>(IMAGE_MODULE_NAME);
@@ -58,8 +58,10 @@ export function toNativeColor(value: unknown): unknown {
58
58
 
59
59
  /** `resizeMode` and the SF Symbol keys are props to native, not style */
60
60
  export function splitImageStyle(style: unknown): IImageStyleParts {
61
- const { resizeMode, fontWeight, fontSize, color, ...rest } = flattenStyle(style);
62
- const isWeight = typeof fontWeight === 'string' || typeof fontWeight === 'number';
61
+ const { resizeMode, fontWeight, fontSize, color, ...rest } =
62
+ flattenStyle(style);
63
+ const isWeight =
64
+ typeof fontWeight === 'string' || typeof fontWeight === 'number';
63
65
  return {
64
66
  resizeMode: isResizeMode(resizeMode) ? resizeMode : undefined,
65
67
  fontWeight: isWeight ? fontWeight : undefined,
@@ -70,7 +72,9 @@ export function splitImageStyle(style: unknown): IImageStyleParts {
70
72
  }
71
73
 
72
74
  function without(bag: IStyleBag, keys: readonly string[]): IStyleBag {
73
- return Object.fromEntries(Object.entries(bag).filter(([key]) => !keys.includes(key)));
75
+ return Object.fromEntries(
76
+ Object.entries(bag).filter(([key]) => !keys.includes(key)),
77
+ );
74
78
  }
75
79
 
76
80
  /** Android shadows by `elevation` and paints the background itself, iOS by `shadow*` */
@@ -84,6 +88,9 @@ export function platformStyle(style: IStyleBag): IStyleBag {
84
88
  /** `backgroundColor` and the border colors in the form native reads */
85
89
  export function nativeColorProps(style: IStyleBag): IStyleBag {
86
90
  return Object.fromEntries(
87
- ['backgroundColor', ...BORDER_COLOR_KEYS].map(key => [key, toNativeColor(style[key])]),
91
+ ['backgroundColor', ...BORDER_COLOR_KEYS].map(key => [
92
+ key,
93
+ toNativeColor(style[key]),
94
+ ]),
88
95
  );
89
96
  }
package/src/core/props.ts CHANGED
@@ -11,7 +11,10 @@ import type {
11
11
 
12
12
  const CENTER: IImageContentPositionObject = { top: '50%', left: '50%' };
13
13
 
14
- const POSITION_BY_KEYWORD: Record<IImageContentPositionString, IImageContentPositionObject> = {
14
+ const POSITION_BY_KEYWORD: Record<
15
+ IImageContentPositionString,
16
+ IImageContentPositionObject
17
+ > = {
15
18
  center: CENTER,
16
19
  top: { top: 0, left: '50%' },
17
20
  right: { top: '50%', right: 0 },
@@ -99,7 +102,9 @@ export function resolveSfEffect(
99
102
  return null;
100
103
  }
101
104
  const effects = Array.isArray(sfEffect) ? sfEffect : [sfEffect];
102
- return effects.map(item => (typeof item === 'string' ? { effect: item } : item));
105
+ return effects.map(item =>
106
+ typeof item === 'string' ? { effect: item } : item,
107
+ );
103
108
  }
104
109
 
105
110
  /** A number is the duration of a cross dissolve */
@@ -4,7 +4,8 @@ import { SF_SYMBOL_PREFIX } from './constants';
4
4
  import { resolveBlurhashString, resolveThumbhashString } from './hash-strings';
5
5
  import type { IImageSource, IImageSources } from './types';
6
6
 
7
- const BLURHASH_PATTERN = /^(blurhash:\/)+[\w#$%*+,\-.:;=?@[\]^_{}|~]+(\/[\d.]+)*$/;
7
+ const BLURHASH_PATTERN =
8
+ /^(blurhash:\/)+[\w#$%*+,\-.:;=?@[\]^_{}|~]+(\/[\d.]+)*$/;
8
9
  const THUMBHASH_PREFIX = 'thumbhash:/';
9
10
 
10
11
  type IImageSourceInput = IImageSource | string | number | null | undefined;
@@ -37,7 +38,9 @@ export function resolveSource(source: IImageSourceInput): IImageSource | null {
37
38
  return resolveThumbhashString(source);
38
39
  }
39
40
  if (source.startsWith(SF_SYMBOL_PREFIX)) {
40
- return { uri: `${SF_SYMBOL_PREFIX}/${source.slice(SF_SYMBOL_PREFIX.length)}` };
41
+ return {
42
+ uri: `${SF_SYMBOL_PREFIX}/${source.slice(SF_SYMBOL_PREFIX.length)}`,
43
+ };
41
44
  }
42
45
  return { uri: source };
43
46
  }
@@ -59,7 +62,9 @@ function isPresent(source: IImageSource | null): source is IImageSource {
59
62
  }
60
63
 
61
64
  /** The shape the native view takes: a list of sources or a shared object id */
62
- export function resolveSources(sources: IImageSources | undefined): IImageSource[] | number {
65
+ export function resolveSources(
66
+ sources: IImageSources | undefined,
67
+ ): IImageSource[] | number {
63
68
  if (Array.isArray(sources)) {
64
69
  return sources.map(resolveSource).filter(isPresent);
65
70
  }
package/src/core/types.ts CHANGED
@@ -32,18 +32,16 @@ export type IImageSource = {
32
32
  isAnimated?: boolean;
33
33
  };
34
34
 
35
- export type IImageContentFit = 'cover' | 'contain' | 'fill' | 'none' | 'scale-down';
35
+ export type IImageContentFit =
36
+ 'cover' | 'contain' | 'fill' | 'none' | 'scale-down';
36
37
 
37
38
  export type IImageDecodeFormat = 'argb' | 'rgb';
38
39
 
39
- export type IImageResizeMode = 'cover' | 'contain' | 'stretch' | 'repeat' | 'center';
40
+ export type IImageResizeMode =
41
+ 'cover' | 'contain' | 'stretch' | 'repeat' | 'center';
40
42
 
41
43
  export type IImageContentPositionValue =
42
- | number
43
- | string
44
- | `${number}%`
45
- | `${number}`
46
- | 'center';
44
+ number | string | `${number}%` | `${number}` | 'center';
47
45
 
48
46
  export type IImageContentPositionString =
49
47
  | 'center'
@@ -72,8 +70,7 @@ export type IImageContentPositionObject =
72
70
  | { bottom?: IImageContentPositionValue; left?: IImageContentPositionValue };
73
71
 
74
72
  export type IImageContentPosition =
75
- | IImageContentPositionObject
76
- | IImageContentPositionString;
73
+ IImageContentPositionObject | IImageContentPositionString;
77
74
 
78
75
  export type IImageTransition = {
79
76
  /** In milliseconds */
@@ -8,7 +8,9 @@ export type IImageBackgroundReactProps = IImageBackgroundProps & {
8
8
  };
9
9
 
10
10
  /** React twin of `expo-image`'s `ImageBackground`, children paint over the image */
11
- export function ImageBackground(props: IImageBackgroundReactProps): ReactElement {
11
+ export function ImageBackground(
12
+ props: IImageBackgroundReactProps,
13
+ ): ReactElement {
12
14
  const { children, ...rest } = props;
13
15
  return descriptorToReactWithChildren(renderImageBackground(rest), children);
14
16
  }
@@ -9,6 +9,9 @@ export type IImageReactProps = IImageViewProps & {
9
9
  };
10
10
 
11
11
  /** React twin of `expo-image`'s `Image` */
12
- export function Image({ ref, ...props }: IImageReactProps): ReactElement | null {
12
+ export function Image({
13
+ ref,
14
+ ...props
15
+ }: IImageReactProps): ReactElement | null {
13
16
  return useNativeViewController(ref, createImageView, props);
14
17
  }
@@ -8,6 +8,5 @@ export type IImageBackgroundSolidProps = IImageBackgroundProps & {
8
8
  };
9
9
 
10
10
  /** Solid twin of `expo-image`'s `ImageBackground`, children paint over the image */
11
- export const ImageBackground = defineDescriptorComponent<IImageBackgroundSolidProps>(
12
- renderImageBackground,
13
- );
11
+ export const ImageBackground =
12
+ defineDescriptorComponent<IImageBackgroundSolidProps>(renderImageBackground);
@@ -3,6 +3,7 @@ import { createImageView } from '../core';
3
3
  import type { IImageViewHandle, IImageViewProps } from '../core';
4
4
 
5
5
  /** Solid twin of `expo-image`'s `Image`, `ref` gets the handle of the view */
6
- export const Image = defineNativeViewComponent<IImageViewHandle, IImageViewProps>(
7
- createImageView,
8
- );
6
+ export const Image = defineNativeViewComponent<
7
+ IImageViewHandle,
8
+ IImageViewProps
9
+ >(createImageView);
@@ -21,7 +21,7 @@ export function useImage(
21
21
 
22
22
  $effect(() => {
23
23
  // Read so the effect tracks them, the source itself is not a trigger
24
- key;
24
+ void key;
25
25
  getDependencies();
26
26
  const loader = createImageRefLoader(loaded => {
27
27
  image = loaded;
@@ -1,5 +1,9 @@
1
1
  import { shallowRef, toValue, watch } from '@vue/runtime-core';
2
- import type { MaybeRefOrGetter, ShallowRef, WatchSource } from '@vue/runtime-core';
2
+ import type {
3
+ MaybeRefOrGetter,
4
+ ShallowRef,
5
+ WatchSource,
6
+ } from '@vue/runtime-core';
3
7
  import { createImageRefLoader, resolveSource } from '../core';
4
8
  import type { IImageLoadOptions, IImageSource, ImageRef } from '../core';
5
9