@planningcenter/chat-react-native 3.15.0-rc.7 → 3.15.0-rc.9

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 (51) hide show
  1. package/build/components/display/icon.d.ts +26 -13
  2. package/build/components/display/icon.d.ts.map +1 -1
  3. package/build/components/display/icon.js +0 -12
  4. package/build/components/display/icon.js.map +1 -1
  5. package/build/index.d.ts +2 -0
  6. package/build/index.d.ts.map +1 -1
  7. package/build/index.js +2 -0
  8. package/build/index.js.map +1 -1
  9. package/build/polyfills/events/CustomEvent.d.ts +21 -0
  10. package/build/polyfills/events/CustomEvent.d.ts.map +1 -0
  11. package/build/polyfills/events/CustomEvent.js +22 -0
  12. package/build/polyfills/events/CustomEvent.js.map +1 -0
  13. package/build/polyfills/events/Event.d.ts +49 -0
  14. package/build/polyfills/events/Event.d.ts.map +1 -0
  15. package/build/polyfills/events/Event.js +125 -0
  16. package/build/polyfills/events/Event.js.map +1 -0
  17. package/build/polyfills/events/EventHandlerAttributes.d.ts +8 -0
  18. package/build/polyfills/events/EventHandlerAttributes.d.ts.map +1 -0
  19. package/build/polyfills/events/EventHandlerAttributes.js +46 -0
  20. package/build/polyfills/events/EventHandlerAttributes.js.map +1 -0
  21. package/build/polyfills/events/EventTarget.d.ts +33 -0
  22. package/build/polyfills/events/EventTarget.d.ts.map +1 -0
  23. package/build/polyfills/events/EventTarget.js +238 -0
  24. package/build/polyfills/events/EventTarget.js.map +1 -0
  25. package/build/polyfills/events/internals/EventInternals.d.ts +30 -0
  26. package/build/polyfills/events/internals/EventInternals.d.ts.map +1 -0
  27. package/build/polyfills/events/internals/EventInternals.js +76 -0
  28. package/build/polyfills/events/internals/EventInternals.js.map +1 -0
  29. package/build/polyfills/events/internals/EventTargetInternals.d.ts +9 -0
  30. package/build/polyfills/events/internals/EventTargetInternals.d.ts.map +1 -0
  31. package/build/polyfills/events/internals/EventTargetInternals.js +11 -0
  32. package/build/polyfills/events/internals/EventTargetInternals.js.map +1 -0
  33. package/build/polyfills/webidl/PlatformObjects.d.ts +31 -0
  34. package/build/polyfills/webidl/PlatformObjects.d.ts.map +1 -0
  35. package/build/polyfills/webidl/PlatformObjects.js +39 -0
  36. package/build/polyfills/webidl/PlatformObjects.js.map +1 -0
  37. package/build/screens/design_system_screen.js +1 -1
  38. package/build/screens/design_system_screen.js.map +1 -1
  39. package/package.json +5 -5
  40. package/src/__tests__/event-polyfill.test.ts +314 -0
  41. package/src/components/display/icon.tsx +17 -14
  42. package/src/index.tsx +2 -0
  43. package/src/polyfills/events/CustomEvent.ts +32 -0
  44. package/src/polyfills/events/Event.ts +186 -0
  45. package/src/polyfills/events/EventHandlerAttributes.ts +67 -0
  46. package/src/polyfills/events/EventTarget.ts +360 -0
  47. package/src/polyfills/events/README.md +1 -0
  48. package/src/polyfills/events/internals/EventInternals.ts +95 -0
  49. package/src/polyfills/events/internals/EventTargetInternals.ts +16 -0
  50. package/src/polyfills/webidl/PlatformObjects.ts +50 -0
  51. package/src/screens/design_system_screen.tsx +1 -1
@@ -1,26 +1,39 @@
1
1
  import React from 'react';
2
2
  import type { ColorValue, StyleProp, ViewStyle } from 'react-native';
3
3
  import type { XmlProps } from 'react-native-svg';
4
+ import * as accounts from '@planningcenter/icons/paths/accounts';
5
+ import * as api from '@planningcenter/icons/paths/api';
6
+ import * as brand from '@planningcenter/icons/paths/brand';
7
+ import * as calendar from '@planningcenter/icons/paths/calendar';
8
+ import * as chat from '@planningcenter/icons/paths/chat';
9
+ import * as churchCenter from '@planningcenter/icons/paths/church-center';
10
+ import * as general from '@planningcenter/icons/paths/general';
11
+ import * as groups from '@planningcenter/icons/paths/groups';
12
+ import * as logomark from '@planningcenter/icons/paths/logomark';
13
+ import * as people from '@planningcenter/icons/paths/people';
14
+ import * as services from '@planningcenter/icons/paths/services';
15
+ import * as publishing from '@planningcenter/icons/paths/publishing';
4
16
  declare const ICONS: {
5
- readonly accounts: any;
6
- readonly api: any;
7
- readonly brand: any;
8
- readonly calendar: any;
9
- readonly chat: any;
10
- readonly churchCenter: any;
11
- readonly general: any;
12
- readonly groups: any;
13
- readonly logomark: any;
14
- readonly people: any;
15
- readonly services: any;
16
- readonly publishing: any;
17
+ readonly accounts: typeof accounts;
18
+ readonly api: typeof api;
19
+ readonly brand: typeof brand;
20
+ readonly calendar: typeof calendar;
21
+ readonly chat: typeof chat;
22
+ readonly churchCenter: typeof churchCenter;
23
+ readonly general: typeof general;
24
+ readonly groups: typeof groups;
25
+ readonly logomark: typeof logomark;
26
+ readonly people: typeof people;
27
+ readonly services: typeof services;
28
+ readonly publishing: typeof publishing;
17
29
  };
18
30
  export type IconStyle = ViewStyle & {
19
31
  fontSize?: number;
20
32
  color?: string;
21
33
  };
22
34
  export type IconSetName = keyof typeof ICONS;
23
- export type IconString = `${IconSetName}.${(typeof ICONS)[IconSetName]}`;
35
+ type IconName<T extends IconSetName> = keyof (typeof ICONS)[T] & string;
36
+ export type IconString = `accounts.${IconName<'accounts'>}` | `api.${IconName<'api'>}` | `brand.${IconName<'brand'>}` | `calendar.${IconName<'calendar'>}` | `chat.${IconName<'chat'>}` | `churchCenter.${IconName<'churchCenter'>}` | `general.${IconName<'general'>}` | `groups.${IconName<'groups'>}` | `logomark.${IconName<'logomark'>}` | `people.${IconName<'people'>}` | `services.${IconName<'services'>}` | `publishing.${IconName<'publishing'>}`;
24
37
  export interface IconProps extends Omit<XmlProps, 'xml' | 'fontSize'> {
25
38
  /**
26
39
  * Made up of the set.iconName.
@@ -1 +1 @@
1
- {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/display/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAEpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAkChD,QAAA,MAAM,KAAK;;;;;;;;;;;;;CAaD,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,KAAK,CAAA;AAC5C,MAAM,MAAM,UAAU,GAAG,GAAG,WAAW,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,CAAA;AAMxE,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,UAAU,CAAC;IACnE;;;OAGG;IACH,IAAI,EAAE,UAAU,CAAA;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;CAC7B;AAED,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,qBAAqB,EACrB,GAAG,KAAK,EACT,EAAE,SAAS,qBA0BX"}
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/display/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAEpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAGhD,OAAO,KAAK,QAAQ,MAAM,sCAAsC,CAAA;AAChE,OAAO,KAAK,GAAG,MAAM,iCAAiC,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,mCAAmC,CAAA;AAC1D,OAAO,KAAK,QAAQ,MAAM,sCAAsC,CAAA;AAChE,OAAO,KAAK,IAAI,MAAM,kCAAkC,CAAA;AACxD,OAAO,KAAK,YAAY,MAAM,2CAA2C,CAAA;AACzE,OAAO,KAAK,OAAO,MAAM,qCAAqC,CAAA;AAC9D,OAAO,KAAK,MAAM,MAAM,oCAAoC,CAAA;AAC5D,OAAO,KAAK,QAAQ,MAAM,sCAAsC,CAAA;AAChE,OAAO,KAAK,MAAM,MAAM,oCAAoC,CAAA;AAC5D,OAAO,KAAK,QAAQ,MAAM,sCAAsC,CAAA;AAChE,OAAO,KAAK,UAAU,MAAM,wCAAwC,CAAA;AAQpE,QAAA,MAAM,KAAK;;;;;;;;;;;;;CAaD,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,KAAK,CAAA;AAE5C,KAAK,QAAQ,CAAC,CAAC,SAAS,WAAW,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;AAEvE,MAAM,MAAM,UAAU,GAClB,YAAY,QAAQ,CAAC,UAAU,CAAC,EAAE,GAClC,OAAO,QAAQ,CAAC,KAAK,CAAC,EAAE,GACxB,SAAS,QAAQ,CAAC,OAAO,CAAC,EAAE,GAC5B,YAAY,QAAQ,CAAC,UAAU,CAAC,EAAE,GAClC,QAAQ,QAAQ,CAAC,MAAM,CAAC,EAAE,GAC1B,gBAAgB,QAAQ,CAAC,cAAc,CAAC,EAAE,GAC1C,WAAW,QAAQ,CAAC,SAAS,CAAC,EAAE,GAChC,UAAU,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAC9B,YAAY,QAAQ,CAAC,UAAU,CAAC,EAAE,GAClC,UAAU,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAC9B,YAAY,QAAQ,CAAC,UAAU,CAAC,EAAE,GAClC,cAAc,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAA;AAM1C,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,UAAU,CAAC;IACnE;;;OAGG;IACH,IAAI,EAAE,UAAU,CAAA;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;CAC7B;AAED,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,qBAAqB,EACrB,GAAG,KAAK,EACT,EAAE,SAAS,qBA0BX"}
@@ -2,29 +2,17 @@ import React from 'react';
2
2
  import { StyleSheet, View } from 'react-native';
3
3
  import { SvgXml } from 'react-native-svg';
4
4
  import { useFontScale, useTheme } from '../../hooks';
5
- // @ts-ignore
6
5
  import * as accounts from '@planningcenter/icons/paths/accounts';
7
- // @ts-ignore
8
6
  import * as api from '@planningcenter/icons/paths/api';
9
- // @ts-ignore
10
7
  import * as brand from '@planningcenter/icons/paths/brand';
11
- // @ts-ignore
12
8
  import * as calendar from '@planningcenter/icons/paths/calendar';
13
- // @ts-ignore
14
9
  import * as chat from '@planningcenter/icons/paths/chat';
15
- // @ts-ignore
16
10
  import * as churchCenter from '@planningcenter/icons/paths/church-center';
17
- // @ts-ignore
18
11
  import * as general from '@planningcenter/icons/paths/general';
19
- // @ts-ignore
20
12
  import * as groups from '@planningcenter/icons/paths/groups';
21
- // @ts-ignore
22
13
  import * as logomark from '@planningcenter/icons/paths/logomark';
23
- // @ts-ignore
24
14
  import * as people from '@planningcenter/icons/paths/people';
25
- // @ts-ignore
26
15
  import * as services from '@planningcenter/icons/paths/services';
27
- // @ts-ignore
28
16
  import * as publishing from '@planningcenter/icons/paths/publishing';
29
17
  // =================================
30
18
  // ====== Constants ================
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/components/display/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEpD,aAAa;AACb,OAAO,KAAK,QAAQ,MAAM,sCAAsC,CAAA;AAChE,aAAa;AACb,OAAO,KAAK,GAAG,MAAM,iCAAiC,CAAA;AACtD,aAAa;AACb,OAAO,KAAK,KAAK,MAAM,mCAAmC,CAAA;AAC1D,aAAa;AACb,OAAO,KAAK,QAAQ,MAAM,sCAAsC,CAAA;AAChE,aAAa;AACb,OAAO,KAAK,IAAI,MAAM,kCAAkC,CAAA;AACxD,aAAa;AACb,OAAO,KAAK,YAAY,MAAM,2CAA2C,CAAA;AACzE,aAAa;AACb,OAAO,KAAK,OAAO,MAAM,qCAAqC,CAAA;AAC9D,aAAa;AACb,OAAO,KAAK,MAAM,MAAM,oCAAoC,CAAA;AAC5D,aAAa;AACb,OAAO,KAAK,QAAQ,MAAM,sCAAsC,CAAA;AAChE,aAAa;AACb,OAAO,KAAK,MAAM,MAAM,oCAAoC,CAAA;AAC5D,aAAa;AACb,OAAO,KAAK,QAAQ,MAAM,sCAAsC,CAAA;AAChE,aAAa;AACb,OAAO,KAAK,UAAU,MAAM,wCAAwC,CAAA;AAEpE,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AAEpC,MAAM,aAAa,GAAG,EAAE,CAAA;AAExB,MAAM,KAAK,GAAG;IACZ,QAAQ;IACR,GAAG;IACH,KAAK;IACL,QAAQ;IACR,IAAI;IACJ,YAAY;IACZ,OAAO;IACP,MAAM;IACN,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,UAAU;CACF,CAAA;AAuCV,MAAM,UAAU,IAAI,CAAC,EACnB,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,qBAAqB,EACrB,GAAG,KAAK,EACE;IACV,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAA;IAC3E,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;IAE7C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,2BAA2B,IAAI,6CAA6C,CAAC,CAAA;QAC1F,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAG,CAAA;IACvC,CAAC;IAED,OAAO,CACL,CAAC,MAAM,CACL,2BAA2B,CAAC,CAAC,2BAA2B,CAAC,CACzD,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CACvC,GAAG,CAAC,CAAC;;uBAEY,IAAI;;SAElB,CAAC,CACJ,MAAM,CAAC,CAAC,QAAQ,CAAC,CACjB,KAAK,CAAC,CAAC,QAAQ,CAAC,CAChB,KAAK,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC,CAC5C,IAAI,KAAK,CAAC,EACV,CACH,CAAA;AACH,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,IAAa,EAAE,KAAiB,EAAE,qBAA8B,EAAE,EAAE;IAC1F,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,CAAA;IAChC,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAA;IAEzD,IAAI,QAAQ;QAAE,OAAO,QAAQ,GAAG,SAAS,CAAA;IAEzC,OAAO,IAAI,IAAI,aAAa,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,IAAgB,EAAU,EAAE;IAC/C,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE3C,OAAO,KAAK,CAAC,OAAsB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;AAClD,CAAC,CAAA;AAED,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AAEpC,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAA4C,EAAE,EAAE;IAClF,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAA;IAE7B,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,MAAM,EAAE;YACN,eAAe,EAAE,MAAM,CAAC,wBAAwB;YAChD,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,QAAQ,GAAG,CAAC;SAC3B;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,uBAAuB;SAC/C;KACF,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport type { ColorValue, StyleProp, ViewStyle } from 'react-native'\nimport { SvgXml } from 'react-native-svg'\nimport type { XmlProps } from 'react-native-svg'\nimport { useFontScale, useTheme } from '../../hooks'\n\n// @ts-ignore\nimport * as accounts from '@planningcenter/icons/paths/accounts'\n// @ts-ignore\nimport * as api from '@planningcenter/icons/paths/api'\n// @ts-ignore\nimport * as brand from '@planningcenter/icons/paths/brand'\n// @ts-ignore\nimport * as calendar from '@planningcenter/icons/paths/calendar'\n// @ts-ignore\nimport * as chat from '@planningcenter/icons/paths/chat'\n// @ts-ignore\nimport * as churchCenter from '@planningcenter/icons/paths/church-center'\n// @ts-ignore\nimport * as general from '@planningcenter/icons/paths/general'\n// @ts-ignore\nimport * as groups from '@planningcenter/icons/paths/groups'\n// @ts-ignore\nimport * as logomark from '@planningcenter/icons/paths/logomark'\n// @ts-ignore\nimport * as people from '@planningcenter/icons/paths/people'\n// @ts-ignore\nimport * as services from '@planningcenter/icons/paths/services'\n// @ts-ignore\nimport * as publishing from '@planningcenter/icons/paths/publishing'\n\n// =================================\n// ====== Constants ================\n// =================================\n\nconst FALLBACK_SIZE = 12\n\nconst ICONS = {\n accounts,\n api,\n brand,\n calendar,\n chat,\n churchCenter,\n general,\n groups,\n logomark,\n people,\n services,\n publishing,\n} as const\n\nexport type IconStyle = ViewStyle & {\n fontSize?: number\n color?: string\n}\n\nexport type IconSetName = keyof typeof ICONS\nexport type IconString = `${IconSetName}.${(typeof ICONS)[IconSetName]}`\n\n// =================================\n// ====== Component ================\n// =================================\n\nexport interface IconProps extends Omit<XmlProps, 'xml' | 'fontSize'> {\n /**\n * Made up of the set.iconName.\n * Example: \"general.textMessage\"\n */\n name: IconString\n /**\n * This sets a static size for the icon.\n * Providing a fontSize style will allow the icon to scale with the device's text a11y size.\n */\n size?: number\n /**\n * Specifies the maximum size a font can reach when allowFontScaling is enabled.\n */\n maxFontSizeMultiplier?: number\n /**\n * Changes the color of the icon. Most cases should use a theme color to support light/dark mode.\n */\n color?: ColorValue\n /**\n * Icon can handle ViewStyle, color, and fontSize.\n */\n style?: StyleProp<IconStyle>\n}\n\nexport function Icon({\n color,\n name,\n size,\n style,\n accessibilityElementsHidden,\n accessibilityLabel,\n maxFontSizeMultiplier,\n ...props\n}: IconProps) {\n const flattenStyles = StyleSheet.flatten(style)\n const iconSize = useGetIconSize(size, flattenStyles, maxFontSizeMultiplier)\n const path = getIconPath(name)\n const styles = useStyles({ color, iconSize })\n\n if (!path) {\n console.warn(`No icon available named ${name}. Remember to use the format \"set.iconName\"`)\n return <View style={styles.noIcon} />\n }\n\n return (\n <SvgXml\n accessibilityElementsHidden={accessibilityElementsHidden}\n accessibilityLabel={accessibilityLabel}\n xml={`\n <svg viewBox=\"0 0 16 16\">\n <path d=\"${path}\" fill=\"currentColor\" />\n </svg>\n `}\n height={iconSize}\n width={iconSize}\n style={{ ...styles.icon, ...flattenStyles }}\n {...props}\n />\n )\n}\n\nconst useGetIconSize = (size?: number, style?: IconStyle, maxFontSizeMultiplier?: number) => {\n const fontSize = style?.fontSize\n const fontScale = useFontScale({ maxFontSizeMultiplier })\n\n if (fontSize) return fontSize * fontScale\n\n return size || FALLBACK_SIZE\n}\n\nconst getIconPath = (name: IconString): string => {\n const [setName, iconName] = name.split('.')\n\n return ICONS[setName as IconSetName]?.[iconName]\n}\n\n// =================================\n// ====== Styles ===================\n// =================================\n\nconst useStyles = ({ color, iconSize }: { color?: ColorValue; iconSize: number }) => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n noIcon: {\n backgroundColor: colors.iconColorDefaultDisabled,\n width: iconSize,\n height: iconSize,\n borderRadius: iconSize / 2,\n },\n icon: {\n color: color || colors.iconColorDefaultPrimary,\n },\n })\n}\n"]}
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/components/display/icon.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport type { ColorValue, StyleProp, ViewStyle } from 'react-native'\nimport { SvgXml } from 'react-native-svg'\nimport type { XmlProps } from 'react-native-svg'\nimport { useFontScale, useTheme } from '../../hooks'\n\nimport * as accounts from '@planningcenter/icons/paths/accounts'\nimport * as api from '@planningcenter/icons/paths/api'\nimport * as brand from '@planningcenter/icons/paths/brand'\nimport * as calendar from '@planningcenter/icons/paths/calendar'\nimport * as chat from '@planningcenter/icons/paths/chat'\nimport * as churchCenter from '@planningcenter/icons/paths/church-center'\nimport * as general from '@planningcenter/icons/paths/general'\nimport * as groups from '@planningcenter/icons/paths/groups'\nimport * as logomark from '@planningcenter/icons/paths/logomark'\nimport * as people from '@planningcenter/icons/paths/people'\nimport * as services from '@planningcenter/icons/paths/services'\nimport * as publishing from '@planningcenter/icons/paths/publishing'\n\n// =================================\n// ====== Constants ================\n// =================================\n\nconst FALLBACK_SIZE = 12\n\nconst ICONS = {\n accounts,\n api,\n brand,\n calendar,\n chat,\n churchCenter,\n general,\n groups,\n logomark,\n people,\n services,\n publishing,\n} as const\n\nexport type IconStyle = ViewStyle & {\n fontSize?: number\n color?: string\n}\n\nexport type IconSetName = keyof typeof ICONS\n\ntype IconName<T extends IconSetName> = keyof (typeof ICONS)[T] & string\n\nexport type IconString =\n | `accounts.${IconName<'accounts'>}`\n | `api.${IconName<'api'>}`\n | `brand.${IconName<'brand'>}`\n | `calendar.${IconName<'calendar'>}`\n | `chat.${IconName<'chat'>}`\n | `churchCenter.${IconName<'churchCenter'>}`\n | `general.${IconName<'general'>}`\n | `groups.${IconName<'groups'>}`\n | `logomark.${IconName<'logomark'>}`\n | `people.${IconName<'people'>}`\n | `services.${IconName<'services'>}`\n | `publishing.${IconName<'publishing'>}`\n\n// =================================\n// ====== Component ================\n// =================================\n\nexport interface IconProps extends Omit<XmlProps, 'xml' | 'fontSize'> {\n /**\n * Made up of the set.iconName.\n * Example: \"general.textMessage\"\n */\n name: IconString\n /**\n * This sets a static size for the icon.\n * Providing a fontSize style will allow the icon to scale with the device's text a11y size.\n */\n size?: number\n /**\n * Specifies the maximum size a font can reach when allowFontScaling is enabled.\n */\n maxFontSizeMultiplier?: number\n /**\n * Changes the color of the icon. Most cases should use a theme color to support light/dark mode.\n */\n color?: ColorValue\n /**\n * Icon can handle ViewStyle, color, and fontSize.\n */\n style?: StyleProp<IconStyle>\n}\n\nexport function Icon({\n color,\n name,\n size,\n style,\n accessibilityElementsHidden,\n accessibilityLabel,\n maxFontSizeMultiplier,\n ...props\n}: IconProps) {\n const flattenStyles = StyleSheet.flatten(style)\n const iconSize = useGetIconSize(size, flattenStyles, maxFontSizeMultiplier)\n const path = getIconPath(name)\n const styles = useStyles({ color, iconSize })\n\n if (!path) {\n console.warn(`No icon available named ${name}. Remember to use the format \"set.iconName\"`)\n return <View style={styles.noIcon} />\n }\n\n return (\n <SvgXml\n accessibilityElementsHidden={accessibilityElementsHidden}\n accessibilityLabel={accessibilityLabel}\n xml={`\n <svg viewBox=\"0 0 16 16\">\n <path d=\"${path}\" fill=\"currentColor\" />\n </svg>\n `}\n height={iconSize}\n width={iconSize}\n style={{ ...styles.icon, ...flattenStyles }}\n {...props}\n />\n )\n}\n\nconst useGetIconSize = (size?: number, style?: IconStyle, maxFontSizeMultiplier?: number) => {\n const fontSize = style?.fontSize\n const fontScale = useFontScale({ maxFontSizeMultiplier })\n\n if (fontSize) return fontSize * fontScale\n\n return size || FALLBACK_SIZE\n}\n\nconst getIconPath = (name: IconString): string => {\n const [setName, iconName] = name.split('.')\n\n return (ICONS[setName as IconSetName] as Record<string, string>)?.[iconName]\n}\n\n// =================================\n// ====== Styles ===================\n// =================================\n\nconst useStyles = ({ color, iconSize }: { color?: ColorValue; iconSize: number }) => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n noIcon: {\n backgroundColor: colors.iconColorDefaultDisabled,\n width: iconSize,\n height: iconSize,\n borderRadius: iconSize / 2,\n },\n icon: {\n color: color || colors.iconColorDefaultPrimary,\n },\n })\n}\n"]}
package/build/index.d.ts CHANGED
@@ -8,4 +8,6 @@ export * from './types';
8
8
  export { platformFontWeightBold, Session, TemporaryDefaultColorsType, Uri } from './utils';
9
9
  export * from './utils/client';
10
10
  export * from './utils/native_adapters';
11
+ export { default as Event } from './polyfills/events/Event';
12
+ export { CustomEvent } from './polyfills/events/CustomEvent';
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACvF,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,0BAA0B,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAC1F,cAAc,gBAAgB,CAAA;AAC9B,cAAc,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACvF,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,0BAA0B,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAC1F,cAAc,gBAAgB,CAAA;AAC9B,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA"}
package/build/index.js CHANGED
@@ -8,4 +8,6 @@ export * from './types';
8
8
  export { platformFontWeightBold, Session, Uri } from './utils';
9
9
  export * from './utils/client';
10
10
  export * from './utils/native_adapters';
11
+ export { default as Event } from './polyfills/events/Event';
12
+ export { CustomEvent } from './polyfills/events/CustomEvent';
11
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACvF,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAA8B,GAAG,EAAE,MAAM,SAAS,CAAA;AAC1F,cAAc,gBAAgB,CAAA;AAC9B,cAAc,yBAAyB,CAAA","sourcesContent":["export { GroupConversations } from './components'\nexport { ApiProvider, chatQueryClient, useFocusManager } from './contexts/api_provider'\nexport * from './contexts/chat_context'\nexport * from './navigation'\nexport { ScreenLayout } from './navigation/screenLayout'\nexport * from './screens'\nexport * from './types'\nexport { platformFontWeightBold, Session, TemporaryDefaultColorsType, Uri } from './utils'\nexport * from './utils/client'\nexport * from './utils/native_adapters'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACvF,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAA8B,GAAG,EAAE,MAAM,SAAS,CAAA;AAC1F,cAAc,gBAAgB,CAAA;AAC9B,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA","sourcesContent":["export { GroupConversations } from './components'\nexport { ApiProvider, chatQueryClient, useFocusManager } from './contexts/api_provider'\nexport * from './contexts/chat_context'\nexport * from './navigation'\nexport { ScreenLayout } from './navigation/screenLayout'\nexport * from './screens'\nexport * from './types'\nexport { platformFontWeightBold, Session, TemporaryDefaultColorsType, Uri } from './utils'\nexport * from './utils/client'\nexport * from './utils/native_adapters'\nexport { default as Event } from './polyfills/events/Event'\nexport { CustomEvent } from './polyfills/events/CustomEvent'\n"]}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ /**
8
+ * This module implements the `CustomEvent` interface from the DOM.
9
+ * See https://dom.spec.whatwg.org/#interface-customevent.
10
+ */
11
+ import Event from './Event';
12
+ import type { EventInit as RNEventInit } from './Event';
13
+ export interface CustomEventInit extends RNEventInit {
14
+ detail?: unknown;
15
+ }
16
+ export declare class CustomEvent extends Event {
17
+ private _detail;
18
+ constructor(type: string, options?: CustomEventInit);
19
+ get detail(): unknown;
20
+ }
21
+ //# sourceMappingURL=CustomEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomEvent.d.ts","sourceRoot":"","sources":["../../../src/polyfills/events/CustomEvent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AAEH,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,KAAK,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,SAAS,CAAA;AAEvD,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe;IAMnD,IAAI,MAAM,IAAI,OAAO,CAEpB;CACF"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ /**
8
+ * This module implements the `CustomEvent` interface from the DOM.
9
+ * See https://dom.spec.whatwg.org/#interface-customevent.
10
+ */
11
+ import Event from './Event';
12
+ export class CustomEvent extends Event {
13
+ _detail;
14
+ constructor(type, options) {
15
+ super(type, options);
16
+ this._detail = options?.detail;
17
+ }
18
+ get detail() {
19
+ return this._detail;
20
+ }
21
+ }
22
+ //# sourceMappingURL=CustomEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomEvent.js","sourceRoot":"","sources":["../../../src/polyfills/events/CustomEvent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AAEH,OAAO,KAAK,MAAM,SAAS,CAAA;AAO3B,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC5B,OAAO,CAAS;IAExB,YAAY,IAAY,EAAE,OAAyB;QACjD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAEpB,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,CAAA;IAChC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF","sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * This module implements the `CustomEvent` interface from the DOM.\n * See https://dom.spec.whatwg.org/#interface-customevent.\n */\n\nimport Event from './Event'\nimport type { EventInit as RNEventInit } from './Event'\n\nexport interface CustomEventInit extends RNEventInit {\n detail?: unknown\n}\n\nexport class CustomEvent extends Event {\n private _detail: unknown\n\n constructor(type: string, options?: CustomEventInit) {\n super(type, options)\n\n this._detail = options?.detail\n }\n\n get detail(): unknown {\n return this._detail\n }\n}\n"]}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ /**
8
+ * This module implements the `Event` interface from the DOM.
9
+ * See https://dom.spec.whatwg.org/#interface-event.
10
+ */
11
+ import type RNEventTarget from './EventTarget';
12
+ export interface EventInit {
13
+ bubbles?: boolean;
14
+ cancelable?: boolean;
15
+ composed?: boolean;
16
+ }
17
+ export type EventPhase = 0 | 1 | 2 | 3;
18
+ export default class Event {
19
+ static NONE: 0;
20
+ static CAPTURING_PHASE: 1;
21
+ static AT_TARGET: 2;
22
+ static BUBBLING_PHASE: 3;
23
+ readonly NONE: 0;
24
+ readonly CAPTURING_PHASE: 1;
25
+ readonly AT_TARGET: 2;
26
+ readonly BUBBLING_PHASE: 3;
27
+ private _bubbles;
28
+ private _cancelable;
29
+ private _composed;
30
+ private _type;
31
+ private _defaultPrevented;
32
+ private _timeStamp;
33
+ constructor(type: string, options?: EventInit | null);
34
+ get bubbles(): boolean;
35
+ get cancelable(): boolean;
36
+ get composed(): boolean;
37
+ get currentTarget(): RNEventTarget | null;
38
+ get defaultPrevented(): boolean;
39
+ get eventPhase(): EventPhase;
40
+ get isTrusted(): boolean;
41
+ get target(): RNEventTarget | null;
42
+ get timeStamp(): number;
43
+ get type(): string;
44
+ composedPath(): ReadonlyArray<RNEventTarget>;
45
+ preventDefault(): void;
46
+ stopImmediatePropagation(): void;
47
+ stopPropagation(): void;
48
+ }
49
+ //# sourceMappingURL=Event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../../src/polyfills/events/Event.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AAEH,OAAO,KAAK,aAAa,MAAM,eAAe,CAAA;AAe9C,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEtC,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IACd,MAAM,CAAC,eAAe,EAAE,CAAC,CAAA;IACzB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;IACnB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAA;IAExB,QAAQ,CAAC,IAAI,EAAG,CAAC,CAAA;IACjB,QAAQ,CAAC,eAAe,EAAG,CAAC,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAG,CAAC,CAAA;IACtB,QAAQ,CAAC,cAAc,EAAG,CAAC,CAAA;IAE3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,UAAU,CAA4B;gBAIlC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI;IAsBpD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,aAAa,IAAI,aAAa,GAAG,IAAI,CAExC;IAED,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,MAAM,IAAI,aAAa,GAAG,IAAI,CAEjC;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,YAAY,IAAI,aAAa,CAAC,aAAa,CAAC;IAI5C,cAAc,IAAI,IAAI;IAatB,wBAAwB,IAAI,IAAI;IAKhC,eAAe,IAAI,IAAI;CAGxB"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { getComposedPath, getCurrentTarget, getEventPhase, getInPassiveListenerFlag, getIsTrusted, getTarget, setStopImmediatePropagationFlag, setStopPropagationFlag, setIsTrusted, setEventPhase, } from './internals/EventInternals';
8
+ import { setPlatformObject } from '../webidl/PlatformObjects';
9
+ export default class Event {
10
+ static NONE;
11
+ static CAPTURING_PHASE;
12
+ static AT_TARGET;
13
+ static BUBBLING_PHASE;
14
+ NONE;
15
+ CAPTURING_PHASE;
16
+ AT_TARGET;
17
+ BUBBLING_PHASE;
18
+ _bubbles;
19
+ _cancelable;
20
+ _composed;
21
+ _type;
22
+ _defaultPrevented = false;
23
+ _timeStamp = performance.now();
24
+ // Symbol-keyed fields are internal and managed via helpers; not declared here.
25
+ constructor(type, options) {
26
+ if (arguments.length < 1) {
27
+ throw new TypeError("Failed to construct 'Event': 1 argument required, but only 0 present.");
28
+ }
29
+ const typeOfOptions = typeof options;
30
+ if (options != null && typeOfOptions !== 'object' && typeOfOptions !== 'function') {
31
+ throw new TypeError("Failed to construct 'Event': The provided value is not of type 'EventInit'.");
32
+ }
33
+ this._type = String(type);
34
+ this._bubbles = Boolean(options?.bubbles);
35
+ this._cancelable = Boolean(options?.cancelable);
36
+ this._composed = Boolean(options?.composed);
37
+ // Initialize internal flags
38
+ setIsTrusted(this, false);
39
+ setEventPhase(this, 0);
40
+ }
41
+ get bubbles() {
42
+ return this._bubbles;
43
+ }
44
+ get cancelable() {
45
+ return this._cancelable;
46
+ }
47
+ get composed() {
48
+ return this._composed;
49
+ }
50
+ get currentTarget() {
51
+ return getCurrentTarget(this);
52
+ }
53
+ get defaultPrevented() {
54
+ return this._defaultPrevented;
55
+ }
56
+ get eventPhase() {
57
+ return getEventPhase(this);
58
+ }
59
+ get isTrusted() {
60
+ return getIsTrusted(this);
61
+ }
62
+ get target() {
63
+ return getTarget(this);
64
+ }
65
+ get timeStamp() {
66
+ return this._timeStamp;
67
+ }
68
+ get type() {
69
+ return this._type;
70
+ }
71
+ composedPath() {
72
+ return getComposedPath(this).slice();
73
+ }
74
+ preventDefault() {
75
+ if (!this._cancelable) {
76
+ return;
77
+ }
78
+ if (getInPassiveListenerFlag(this)) {
79
+ console.error(new Error('Unable to preventDefault inside passive event listener invocation.'));
80
+ return;
81
+ }
82
+ this._defaultPrevented = true;
83
+ }
84
+ stopImmediatePropagation() {
85
+ setStopPropagationFlag(this, true);
86
+ setStopImmediatePropagationFlag(this, true);
87
+ }
88
+ stopPropagation() {
89
+ setStopPropagationFlag(this, true);
90
+ }
91
+ }
92
+ Object.defineProperty(Event, 'NONE', {
93
+ enumerable: true,
94
+ value: 0,
95
+ });
96
+ Object.defineProperty(Event.prototype, 'NONE', {
97
+ enumerable: true,
98
+ value: 0,
99
+ });
100
+ Object.defineProperty(Event, 'CAPTURING_PHASE', {
101
+ enumerable: true,
102
+ value: 1,
103
+ });
104
+ Object.defineProperty(Event.prototype, 'CAPTURING_PHASE', {
105
+ enumerable: true,
106
+ value: 1,
107
+ });
108
+ Object.defineProperty(Event, 'AT_TARGET', {
109
+ enumerable: true,
110
+ value: 2,
111
+ });
112
+ Object.defineProperty(Event.prototype, 'AT_TARGET', {
113
+ enumerable: true,
114
+ value: 2,
115
+ });
116
+ Object.defineProperty(Event, 'BUBBLING_PHASE', {
117
+ enumerable: true,
118
+ value: 3,
119
+ });
120
+ Object.defineProperty(Event.prototype, 'BUBBLING_PHASE', {
121
+ enumerable: true,
122
+ value: 3,
123
+ });
124
+ setPlatformObject(Event);
125
+ //# sourceMappingURL=Event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Event.js","sourceRoot":"","sources":["../../../src/polyfills/events/Event.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * This module implements the `Event` interface from the DOM.\n * See https://dom.spec.whatwg.org/#interface-event.\n */\n\nimport type RNEventTarget from './EventTarget'\nimport {\n getComposedPath,\n getCurrentTarget,\n getEventPhase,\n getInPassiveListenerFlag,\n getIsTrusted,\n getTarget,\n setStopImmediatePropagationFlag,\n setStopPropagationFlag,\n setIsTrusted,\n setEventPhase,\n} from './internals/EventInternals'\nimport { setPlatformObject } from '../webidl/PlatformObjects'\n\nexport interface EventInit {\n bubbles?: boolean\n cancelable?: boolean\n composed?: boolean\n}\n\nexport type EventPhase = 0 | 1 | 2 | 3\n\nexport default class Event {\n static NONE: 0\n static CAPTURING_PHASE: 1\n static AT_TARGET: 2\n static BUBBLING_PHASE: 3\n\n readonly NONE!: 0\n readonly CAPTURING_PHASE!: 1\n readonly AT_TARGET!: 2\n readonly BUBBLING_PHASE!: 3\n\n private _bubbles: boolean\n private _cancelable: boolean\n private _composed: boolean\n private _type: string\n\n private _defaultPrevented: boolean = false\n private _timeStamp: number = performance.now()\n\n // Symbol-keyed fields are internal and managed via helpers; not declared here.\n\n constructor(type: string, options?: EventInit | null) {\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'Event': 1 argument required, but only 0 present.\")\n }\n\n const typeOfOptions = typeof options\n if (options != null && typeOfOptions !== 'object' && typeOfOptions !== 'function') {\n throw new TypeError(\n \"Failed to construct 'Event': The provided value is not of type 'EventInit'.\"\n )\n }\n\n this._type = String(type)\n this._bubbles = Boolean((options as EventInit | undefined)?.bubbles)\n this._cancelable = Boolean((options as EventInit | undefined)?.cancelable)\n this._composed = Boolean((options as EventInit | undefined)?.composed)\n\n // Initialize internal flags\n setIsTrusted(this, false)\n setEventPhase(this, 0 as 0)\n }\n\n get bubbles(): boolean {\n return this._bubbles\n }\n\n get cancelable(): boolean {\n return this._cancelable\n }\n\n get composed(): boolean {\n return this._composed\n }\n\n get currentTarget(): RNEventTarget | null {\n return getCurrentTarget(this)\n }\n\n get defaultPrevented(): boolean {\n return this._defaultPrevented\n }\n\n get eventPhase(): EventPhase {\n return getEventPhase(this)\n }\n\n get isTrusted(): boolean {\n return getIsTrusted(this)\n }\n\n get target(): RNEventTarget | null {\n return getTarget(this)\n }\n\n get timeStamp(): number {\n return this._timeStamp\n }\n\n get type(): string {\n return this._type\n }\n\n composedPath(): ReadonlyArray<RNEventTarget> {\n return getComposedPath(this).slice()\n }\n\n preventDefault(): void {\n if (!this._cancelable) {\n return\n }\n\n if (getInPassiveListenerFlag(this)) {\n console.error(new Error('Unable to preventDefault inside passive event listener invocation.'))\n return\n }\n\n this._defaultPrevented = true\n }\n\n stopImmediatePropagation(): void {\n setStopPropagationFlag(this, true)\n setStopImmediatePropagationFlag(this, true)\n }\n\n stopPropagation(): void {\n setStopPropagationFlag(this, true)\n }\n}\n\nObject.defineProperty(Event, 'NONE', {\n enumerable: true,\n value: 0,\n})\n\nObject.defineProperty(Event.prototype, 'NONE', {\n enumerable: true,\n value: 0,\n})\n\nObject.defineProperty(Event, 'CAPTURING_PHASE', {\n enumerable: true,\n value: 1,\n})\n\nObject.defineProperty(Event.prototype, 'CAPTURING_PHASE', {\n enumerable: true,\n value: 1,\n})\n\nObject.defineProperty(Event, 'AT_TARGET', {\n enumerable: true,\n value: 2,\n})\n\nObject.defineProperty(Event.prototype, 'AT_TARGET', {\n enumerable: true,\n value: 2,\n})\n\nObject.defineProperty(Event, 'BUBBLING_PHASE', {\n enumerable: true,\n value: 3,\n})\n\nObject.defineProperty(Event.prototype, 'BUBBLING_PHASE', {\n enumerable: true,\n value: 3,\n})\n\nsetPlatformObject(Event)\n"]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Helpers to implement event handler IDL attributes.
3
+ */
4
+ import type EventTarget from './EventTarget';
5
+ import type { EventCallback } from './EventTarget';
6
+ export declare function getEventHandlerAttribute(target: EventTarget, type: string): EventCallback | null;
7
+ export declare function setEventHandlerAttribute(target: EventTarget, type: string, callback: EventCallback | null | undefined): void;
8
+ //# sourceMappingURL=EventHandlerAttributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventHandlerAttributes.d.ts","sourceRoot":"","sources":["../../../src/polyfills/events/EventHandlerAttributes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAmBlD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAGhG;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GACzC,IAAI,CAiCN"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Helpers to implement event handler IDL attributes.
3
+ */
4
+ const EVENT_HANDLER_CONTENT_ATTRIBUTE_MAP_KEY = Symbol('eventHandlerAttributeMap');
5
+ function getEventHandlerAttributeMap(target) {
6
+ return target[EVENT_HANDLER_CONTENT_ATTRIBUTE_MAP_KEY];
7
+ }
8
+ function setEventHandlerAttributeMap(target, map) {
9
+ ;
10
+ target[EVENT_HANDLER_CONTENT_ATTRIBUTE_MAP_KEY] = map;
11
+ }
12
+ export function getEventHandlerAttribute(target, type) {
13
+ const listener = getEventHandlerAttributeMap(target)?.get(type);
14
+ return listener != null ? listener.handleEvent : null;
15
+ }
16
+ export function setEventHandlerAttribute(target, type, callback) {
17
+ let map = getEventHandlerAttributeMap(target);
18
+ if (map != null) {
19
+ const currentListener = map.get(type);
20
+ if (currentListener) {
21
+ target.removeEventListener(type, currentListener);
22
+ map.delete(type);
23
+ }
24
+ }
25
+ if (callback != null &&
26
+ (typeof callback === 'function' || typeof callback === 'object')) {
27
+ const listener = {
28
+ handleEvent: callback,
29
+ };
30
+ try {
31
+ target.addEventListener(type, listener);
32
+ if (map == null) {
33
+ map = new Map();
34
+ setEventHandlerAttributeMap(target, map);
35
+ }
36
+ map.set(type, listener);
37
+ }
38
+ catch (_e) {
39
+ // Assigning incorrect listener does not throw in setters.
40
+ }
41
+ }
42
+ if (map != null && map.size === 0) {
43
+ setEventHandlerAttributeMap(target, null);
44
+ }
45
+ }
46
+ //# sourceMappingURL=EventHandlerAttributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventHandlerAttributes.js","sourceRoot":"","sources":["../../../src/polyfills/events/EventHandlerAttributes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,uCAAuC,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAA;AAElF,SAAS,2BAA2B,CAClC,MAAmB;IAEnB,OAAQ,MAAc,CAAC,uCAAuC,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAmB,EAAE,GAAoC;IAC5F,CAAC;IAAC,MAAc,CAAC,uCAAuC,CAAC,GAAG,GAAG,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAmB,EAAE,IAAY;IACxE,MAAM,QAAQ,GAAG,2BAA2B,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC/D,OAAO,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA;AACvD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAmB,EACnB,IAAY,EACZ,QAA0C;IAE1C,IAAI,GAAG,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAC7C,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,MAAM,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;YACjD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IAED,IACE,QAAQ,IAAI,IAAI;QAChB,CAAC,OAAO,QAAQ,KAAK,UAAU,IAAI,OAAQ,QAAgB,KAAK,QAAQ,CAAC,EACzE,CAAC;QACD,MAAM,QAAQ,GAAiB;YAC7B,WAAW,EAAE,QAAyB;SACvC,CAAA;QAED,IAAI,CAAC;YACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;gBACf,2BAA2B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YAC1C,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACzB,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,0DAA0D;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAClC,2BAA2B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC","sourcesContent":["/**\n * Helpers to implement event handler IDL attributes.\n */\n\nimport type EventTarget from './EventTarget'\nimport type { EventCallback } from './EventTarget'\n\ntype EventHandler = Readonly<{\n handleEvent: EventCallback\n}>\ntype EventHandlerAttributeMap = Map<string, EventHandler | null>\n\nconst EVENT_HANDLER_CONTENT_ATTRIBUTE_MAP_KEY = Symbol('eventHandlerAttributeMap')\n\nfunction getEventHandlerAttributeMap(\n target: EventTarget\n): EventHandlerAttributeMap | null | undefined {\n return (target as any)[EVENT_HANDLER_CONTENT_ATTRIBUTE_MAP_KEY]\n}\n\nfunction setEventHandlerAttributeMap(target: EventTarget, map: EventHandlerAttributeMap | null) {\n ;(target as any)[EVENT_HANDLER_CONTENT_ATTRIBUTE_MAP_KEY] = map\n}\n\nexport function getEventHandlerAttribute(target: EventTarget, type: string): EventCallback | null {\n const listener = getEventHandlerAttributeMap(target)?.get(type)\n return listener != null ? listener.handleEvent : null\n}\n\nexport function setEventHandlerAttribute(\n target: EventTarget,\n type: string,\n callback: EventCallback | null | undefined\n): void {\n let map = getEventHandlerAttributeMap(target)\n if (map != null) {\n const currentListener = map.get(type)\n if (currentListener) {\n target.removeEventListener(type, currentListener)\n map.delete(type)\n }\n }\n\n if (\n callback != null &&\n (typeof callback === 'function' || typeof (callback as any) === 'object')\n ) {\n const listener: EventHandler = {\n handleEvent: callback as EventCallback,\n }\n\n try {\n target.addEventListener(type, listener)\n if (map == null) {\n map = new Map()\n setEventHandlerAttributeMap(target, map)\n }\n map.set(type, listener)\n } catch (_e) {\n // Assigning incorrect listener does not throw in setters.\n }\n }\n\n if (map != null && map.size === 0) {\n setEventHandlerAttributeMap(target, null)\n }\n}\n"]}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ /**
8
+ * Implements the `EventTarget` interface from the DOM.
9
+ */
10
+ import Event from './Event';
11
+ import { EVENT_TARGET_GET_THE_PARENT_KEY, INTERNAL_DISPATCH_METHOD_KEY } from './internals/EventTargetInternals';
12
+ export type EventCallback = (event: Event) => void;
13
+ export type EventHandler = {
14
+ handleEvent(event: Event): void;
15
+ };
16
+ export type EventListener = EventCallback | EventHandler;
17
+ export type EventListenerOptions = Readonly<{
18
+ capture?: boolean;
19
+ }>;
20
+ export type AddEventListenerOptions = Readonly<{
21
+ capture?: boolean;
22
+ passive?: boolean;
23
+ once?: boolean;
24
+ signal?: AbortSignal;
25
+ }>;
26
+ export default class EventTarget {
27
+ addEventListener(type: string, callback: EventListener | null, optionsOrUseCapture?: AddEventListenerOptions | boolean): void;
28
+ removeEventListener(type: string, callback: EventListener, optionsOrUseCapture?: EventListenerOptions | boolean): void;
29
+ dispatchEvent(event: Event): boolean;
30
+ [EVENT_TARGET_GET_THE_PARENT_KEY](): EventTarget | null;
31
+ [INTERNAL_DISPATCH_METHOD_KEY](event: Event): void;
32
+ }
33
+ //# sourceMappingURL=EventTarget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventTarget.d.ts","sourceRoot":"","sources":["../../../src/polyfills/events/EventTarget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AAEH,OAAO,KAAK,MAAM,SAAS,CAAA;AAa3B,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,EAC7B,MAAM,kCAAkC,CAAA;AAGzC,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;AAClD,MAAM,MAAM,YAAY,GAAG;IAAE,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,CAAA;AAC9D,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,YAAY,CAAA;AAExD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAC,CAAA;AAWF,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,GAAG,IAAI,EAC9B,mBAAmB,GAAE,uBAAuB,GAAG,OAAY,GAC1D,IAAI;IAmFP,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,EACvB,mBAAmB,GAAE,oBAAoB,GAAG,OAAY,GACvD,IAAI;IAiCP,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAmBpC,CAAC,+BAA+B,CAAC,IAAI,WAAW,GAAG,IAAI;IAKvD,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;CAGnD"}