@survicate/react-native-survicate 7.1.0 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -83,33 +83,70 @@ allprojects {
83
83
 
84
84
  ## Usage
85
85
  ```javascript
86
- import Survicate, {UserTrait} from '@survicate/react-native-survicate';
87
-
88
- Survicate.initializeSdk();
86
+ import Survicate, {
87
+ UserTrait,
88
+ ThemeMode,
89
+ ResponseAttribute,
90
+ SurvicateFontSystem,
91
+ SurvicateEventListener,
92
+ SurveyDisplayedEvent,
93
+ QuestionAnsweredEvent,
94
+ SurveyClosedEvent,
95
+ SurveyCompletedEvent,
96
+ } from '@survicate/react-native-survicate';
97
+
98
+ // Initialization
89
99
  Survicate.setWorkspaceKey('WORKSPACE_KEY');
100
+ Survicate.initializeSdk();
101
+
102
+ // Events
90
103
  Survicate.invokeEvent("eventName");
91
- const properties = {
92
- "property1": "value1",
93
- "property2": "value2"
94
- };
95
- Survicate.invokeEvent("eventName", properties);
104
+ Survicate.invokeEvent("eventName", { property1: "value1", property2: "value2" });
105
+
106
+ // Screens
96
107
  Survicate.enterScreen("screenName");
97
108
  Survicate.leaveScreen("screenName");
98
- const userIdTrait = new UserTrait('user_id', 'id');
99
- Survicate.setUserTrait(userIdTrait);
100
- const textTrait = new UserTrait('name', 'John');
101
- const numberTrait = new UserTrait('age', 25);
102
- const booleanTrait = new UserTrait('isPremium', true);
103
- const dateTrait = new UserTrait('lastLogin', new Date());
104
- const timeIntervalTrait = new UserTrait('timeOfPurchase', new Date());
109
+
110
+ // User traits
111
+ Survicate.setUserTrait(new UserTrait('user_id', 'id'));
112
+ Survicate.setUserTrait(new UserTrait('name', 'John'));
113
+ Survicate.setUserTrait(new UserTrait('age', 25));
114
+ Survicate.setUserTrait(new UserTrait('isPremium', true));
115
+ Survicate.setUserTrait(new UserTrait('lastLogin', new Date()));
116
+
117
+ // Locale
105
118
  Survicate.setLocale('en-US');
119
+
120
+ // Theme
121
+ Survicate.setThemeMode(ThemeMode.auto); // ThemeMode.auto | ThemeMode.light | ThemeMode.dark
122
+
123
+ // Custom Fonts
124
+ Survicate.setFonts({
125
+ regular: 'fonts/MyFont-Regular.ttf',
126
+ regularItalic: 'fonts/MyFont-RegularItalic.ttf',
127
+ bold: 'fonts/MyFont-Bold.ttf',
128
+ boldItalic: 'fonts/MyFont-BoldItalic.ttf',
129
+ });
130
+
131
+ // Response attributes
132
+ Survicate.setResponseAttribute(new ResponseAttribute('plan', 'premium'));
133
+ Survicate.setResponseAttributes([
134
+ new ResponseAttribute('plan', 'premium'),
135
+ new ResponseAttribute('seats', 10),
136
+ new ResponseAttribute('isEnterprise', true),
137
+ new ResponseAttribute('renewalDate', new Date()),
138
+ ]);
139
+
140
+ // Event listeners
106
141
  const listener: SurvicateEventListener = {
107
- onSurveyDisplayed(event: SurveyDisplayedEvent) {},
108
- onQuestionAnswered(event: QuestionAnsweredEvent) {},
109
- onSurveyClosed(event: SurveyClosedEvent) {},
110
- onSurveyCompleted(event: SurveyCompletedEvent) {},
111
- }
112
- const subscription = Survicate.addSurvicateEventListener(listener);
142
+ onSurveyDisplayed(event: SurveyDisplayedEvent) {},
143
+ onQuestionAnswered(event: QuestionAnsweredEvent) {},
144
+ onSurveyClosed(event: SurveyClosedEvent) {},
145
+ onSurveyCompleted(event: SurveyCompletedEvent) {},
146
+ };
147
+ const removeListener = Survicate.addSurvicateEventListener(listener);
148
+
149
+ // Reset
113
150
  Survicate.reset();
114
151
  ```
115
152
 
@@ -118,7 +118,7 @@ repositories {
118
118
  dependencies {
119
119
  //noinspection GradleDynamicVersion
120
120
  implementation 'com.facebook.react:react-native:+' // From node_modules
121
- implementation ('com.survicate:survicate-sdk:7.1.1')
121
+ implementation ('com.survicate:survicate-sdk:7.3.0')
122
122
  }
123
123
 
124
124
  if (isNewArchitectureEnabled()) {
@@ -2,13 +2,19 @@ package com.survicate.react;
2
2
 
3
3
  import com.facebook.react.bridge.ReactApplicationContext;
4
4
  import com.facebook.react.bridge.ReactMethod;
5
+ import com.facebook.react.bridge.ReadableArray;
5
6
  import com.facebook.react.bridge.ReadableMap;
7
+ import com.survicate.surveys.ResponseAttribute;
6
8
  import com.survicate.surveys.Survicate;
7
9
  import com.survicate.surveys.ThemeMode;
10
+ import com.survicate.surveys.FontSource;
11
+ import com.survicate.surveys.SurvicateFontSystem;
8
12
  import com.survicate.surveys.traits.UserTrait;
9
13
 
10
14
  import com.survicate.react.SurvicateModule;
11
15
 
16
+ import java.util.ArrayList;
17
+ import java.util.List;
12
18
  import java.util.Map;
13
19
  import java.util.HashMap;
14
20
 
@@ -137,6 +143,34 @@ public class SurvicateModuleImpl extends SurvicateModule {
137
143
  Survicate.setLocale(locale);
138
144
  }
139
145
 
146
+ @ReactMethod
147
+ public void setResponseAttributes(ReadableArray attributes) {
148
+ if (!isInitialized) {
149
+ return;
150
+ }
151
+ List<ResponseAttribute> list = new ArrayList<>();
152
+ for (int i = 0; i < attributes.size(); i++) {
153
+ ReadableMap map = attributes.getMap(i);
154
+ String name = map.getString("name");
155
+ String value = map.getString("value");
156
+ String provider = map.hasKey("provider") && !map.isNull("provider")
157
+ ? map.getString("provider") : null;
158
+ list.add(new ResponseAttribute(name, value, provider));
159
+ }
160
+ Survicate.setResponseAttributes(list);
161
+ }
162
+
163
+ @ReactMethod
164
+ public void setFonts(ReadableMap fontSystem) {
165
+ SurvicateFontSystem fonts = new SurvicateFontSystem(
166
+ new FontSource.AssetPath(fontSystem.getString("regular")),
167
+ new FontSource.AssetPath(fontSystem.getString("regularItalic")),
168
+ new FontSource.AssetPath(fontSystem.getString("bold")),
169
+ new FontSource.AssetPath(fontSystem.getString("boldItalic"))
170
+ );
171
+ Survicate.setFonts(fonts);
172
+ }
173
+
140
174
  @ReactMethod
141
175
  public void setThemeMode(String themeMode) {
142
176
  if (!isInitialized) {
@@ -4,6 +4,7 @@ import androidx.annotation.NonNull;
4
4
 
5
5
  import com.facebook.react.bridge.ReactApplicationContext;
6
6
  import com.facebook.react.bridge.ReactContextBaseJavaModule;
7
+ import com.facebook.react.bridge.ReadableArray;
7
8
  import com.facebook.react.bridge.ReadableMap;
8
9
 
9
10
  public abstract class SurvicateModule extends ReactContextBaseJavaModule {
@@ -22,4 +23,6 @@ public abstract class SurvicateModule extends ReactContextBaseJavaModule {
22
23
  public abstract void setWorkspaceKey(String workspaceKey);
23
24
  public abstract void setLocale(String locale);
24
25
  public abstract void setThemeMode(String themeMode);
26
+ public abstract void setFonts(ReadableMap fontSystem);
27
+ public abstract void setResponseAttributes(ReadableArray attributes);
25
28
  }
@@ -1,5 +1,30 @@
1
1
  #import "SurvicateBindings.h"
2
2
  #import <Survicate/Survicate-Swift.h>
3
+ #import <CoreText/CoreText.h>
4
+
5
+ static NSString* postScriptNameForPath(NSString *relativePath)
6
+ {
7
+ // Build absolute path to the font file inside the app bundle
8
+ NSString *fullPath = [[NSBundle mainBundle].bundlePath
9
+ stringByAppendingPathComponent:[relativePath lastPathComponent]];
10
+
11
+ NSURL *fontURL = [NSURL fileURLWithPath:fullPath];
12
+
13
+ // Read font descriptors from the file to extract metadata
14
+ CFArrayRef descriptors = CTFontManagerCreateFontDescriptorsFromURL((__bridge CFURLRef)fontURL);
15
+ if (!descriptors || CFArrayGetCount(descriptors) == 0) {
16
+ if (descriptors) CFRelease(descriptors);
17
+ return @"";
18
+ }
19
+
20
+ // Extract the PostScript name from the first font face in the file
21
+ CTFontDescriptorRef descriptor = (CTFontDescriptorRef)CFArrayGetValueAtIndex(descriptors, 0);
22
+ NSString *postScriptName = (__bridge_transfer NSString *)
23
+ CTFontDescriptorCopyAttribute(descriptor, kCTFontNameAttribute);
24
+ CFRelease(descriptors);
25
+
26
+ return postScriptName ?: @"";
27
+ }
3
28
 
4
29
  @implementation SurvicateBindings
5
30
  {
@@ -59,6 +84,19 @@ RCT_EXPORT_METHOD(setLocale:(NSString *)locale)
59
84
  [[SurvicateSdk shared] setLocale:locale];
60
85
  }
61
86
 
87
+ RCT_EXPORT_METHOD(setResponseAttributes:(NSArray *)attributes)
88
+ {
89
+ NSMutableArray<ResponseAttribute *> *list = [NSMutableArray array];
90
+ for (NSDictionary *dict in attributes) {
91
+ NSString *name = dict[@"name"];
92
+ NSString *value = dict[@"value"];
93
+ NSString *provider = dict[@"provider"] == [NSNull null] ? nil : dict[@"provider"];
94
+ ResponseAttribute *attr = [[ResponseAttribute alloc] initWithName:name value:value provider:provider];
95
+ [list addObject:attr];
96
+ }
97
+ [[SurvicateSdk shared] setResponseAttributes:list];
98
+ }
99
+
62
100
  RCT_EXPORT_METHOD(setThemeMode:(NSString *)themeMode)
63
101
  {
64
102
  ThemeMode mode = ThemeModeAuto;
@@ -70,6 +108,16 @@ RCT_EXPORT_METHOD(setThemeMode:(NSString *)themeMode)
70
108
  [[SurvicateSdk shared] setThemeMode:mode];
71
109
  }
72
110
 
111
+ RCT_EXPORT_METHOD(setFonts:(NSDictionary *)fontSystem)
112
+ {
113
+ SurvicateFontSystem *fonts = [[SurvicateFontSystem alloc]
114
+ initWithRegular:postScriptNameForPath(fontSystem[@"regular"])
115
+ regularItalic:postScriptNameForPath(fontSystem[@"regularItalic"])
116
+ bold:postScriptNameForPath(fontSystem[@"bold"])
117
+ boldItalic:postScriptNameForPath(fontSystem[@"boldItalic"])];
118
+ [[SurvicateSdk shared] setFonts:fonts];
119
+ }
120
+
73
121
  - (NSArray<NSString*> *)supportedEvents {
74
122
  return @[@"onQuestionAnswered", @"onSurveyClosed", @"onSurveyCompleted", @"onSurveyDisplayed"];
75
123
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeSurvicateModule.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAiBpCC,gCAAmB,CAACC,GAAG,CAAO,mBAAmB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeSurvicateModule.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAmBpCC,gCAAmB,CAACC,GAAG,CAAO,mBAAmB,CAAC","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.UserTrait = exports.ThemeMode = exports.SurvicateIntegrations = void 0;
6
+ exports.default = exports.UserTrait = exports.ThemeMode = exports.SurvicateIntegrations = exports.ResponseAttribute = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  const {
9
9
  SurvicateBindings
@@ -136,6 +136,51 @@ class Survicate {
136
136
  static setThemeMode(themeMode) {
137
137
  survicate.setThemeMode(themeMode);
138
138
  }
139
+
140
+ /**
141
+ * Sets custom fonts for use in surveys.
142
+ *
143
+ * @param fontSystem A font configuration to apply.
144
+ */
145
+ static setFonts(fontSystem) {
146
+ survicate.setFonts(fontSystem);
147
+ }
148
+
149
+ /**
150
+ * Shorthand version of {@link setResponseAttributes}.
151
+ */
152
+ static setResponseAttribute(attribute) {
153
+ survicate.setResponseAttributes([{
154
+ name: attribute.name,
155
+ value: attribute.value,
156
+ provider: attribute.provider ?? null
157
+ }]);
158
+ }
159
+
160
+ /**
161
+ * Sets response attributes that will be attached to survey responses.
162
+ *
163
+ * These can be arbitrary key-value pairs. Unlike {@link UserTrait}s, response attributes
164
+ * are session-scoped and are cleared upon a new app session. Response attributes are sent
165
+ * to the system along with the user's answers to survey questions.
166
+ *
167
+ * To change a {@link ResponseAttribute} send the same key with a different value.
168
+ */
169
+ static setResponseAttributes(attributes) {
170
+ const mapped = attributes.map(a => ({
171
+ name: a.name,
172
+ value: a.value,
173
+ provider: a.provider ?? null
174
+ }));
175
+ survicate.setResponseAttributes(mapped);
176
+ }
177
+ }
178
+ function formatDateToTimeZoneIso(date) {
179
+ const offset = date.getTimezoneOffset();
180
+ const offsetHours = Math.floor(Math.abs(offset) / 60);
181
+ const offsetMinutes = Math.abs(offset) % 60;
182
+ date = new Date(date.getTime() - offset * 60 * 1000);
183
+ return date.toISOString().slice(0, -5) + (offset > 0 ? "-" : "+") + offsetHours.toString().padStart(2, "0") + ":" + offsetMinutes.toString().padStart(2, "0");
139
184
  }
140
185
  class UserTrait {
141
186
  constructor(key, value) {
@@ -144,18 +189,11 @@ class UserTrait {
144
189
  }
145
190
  this.key = key;
146
191
  if (value instanceof Date) {
147
- this.value = this.formatDateToTimeZoneIso(value);
192
+ this.value = formatDateToTimeZoneIso(value);
148
193
  } else {
149
194
  this.value = value.toString();
150
195
  }
151
196
  }
152
- formatDateToTimeZoneIso(date) {
153
- const offset = date.getTimezoneOffset();
154
- const offsetHours = Math.floor(Math.abs(offset) / 60);
155
- const offsetMinutes = Math.abs(offset) % 60;
156
- date = new Date(date.getTime() - offset * 60 * 1000);
157
- return date.toISOString().slice(0, -5) + (offset > 0 ? "-" : "+") + offsetHours.toString().padStart(2, "0") + ":" + offsetMinutes.toString().padStart(2, "0");
158
- }
159
197
  }
160
198
  exports.UserTrait = UserTrait;
161
199
  let ThemeMode = exports.ThemeMode = /*#__PURE__*/function (ThemeMode) {
@@ -164,5 +202,35 @@ let ThemeMode = exports.ThemeMode = /*#__PURE__*/function (ThemeMode) {
164
202
  ThemeMode["auto"] = "auto";
165
203
  return ThemeMode;
166
204
  }({});
205
+ /**
206
+ * Represents a complete set of fonts used by the SDK.
207
+ *
208
+ * @property regular Standard font for normal body text.
209
+ * @property regularItalic Standard font with italic slant.
210
+ * @property bold Bold style font for emphasized content.
211
+ * @property boldItalic Bold style font with italic slant.
212
+ */
213
+ /**
214
+ * Represents a response attribute attached to a survey response.
215
+ *
216
+ * @property name The attribute identifier.
217
+ * @property value The attribute value.
218
+ * @property provider Optional source or provider of the attribute.
219
+ */
220
+ class ResponseAttribute {
221
+ constructor(name, value, provider) {
222
+ if (name === null || value === null) {
223
+ throw new Error("Name and value cannot be null");
224
+ }
225
+ this.name = name;
226
+ if (value instanceof Date) {
227
+ this.value = formatDateToTimeZoneIso(value);
228
+ } else {
229
+ this.value = value.toString();
230
+ }
231
+ this.provider = provider;
232
+ }
233
+ }
234
+ exports.ResponseAttribute = ResponseAttribute;
167
235
  var _default = exports.default = Survicate;
168
236
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","SurvicateBindings","NativeModules","isTurboModuleEnabled","global","__turboModuleProxy","survicate","default","SurvicateIntegrations","exports","Survicate","integrations","setWorkspaceKey","workspaceKey","initializeSdk","invokeEvent","eventName","eventProperties","enterScreen","screenName","leaveScreen","setUserId","userId","setUserTrait","traitNameOrUserTrait","traitValue","undefined","UserTrait","key","value","reset","addSurvicateEventListener","listener","eventEmitter","NativeEventEmitter","onSurveyDisplayedCallback","nativeEvent","event","surveyId","onSurveyDisplayed","onSurveyDisplayedListener","addListener","onQuestionAnsweredCallback","answer","type","answerType","id","answerId","ids","answerIds","answerValue","surveyName","visitorUuid","responseUuid","questionId","question","panelAnswerUrl","onQuestionAnswered","onQuestionAnsweredListener","onSurveyCompletedCallback","onSurveyCompleted","onSurveyCompletedListener","onSurveyClosedCallback","onSurveyClosed","onSurveyClosedListener","remove","setLocale","languageTag","setThemeMode","themeMode","constructor","Error","Date","formatDateToTimeZoneIso","toString","date","offset","getTimezoneOffset","offsetHours","Math","floor","abs","offsetMinutes","getTime","toISOString","slice","padStart","ThemeMode","_default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","SurvicateBindings","NativeModules","isTurboModuleEnabled","global","__turboModuleProxy","survicate","default","SurvicateIntegrations","exports","Survicate","integrations","setWorkspaceKey","workspaceKey","initializeSdk","invokeEvent","eventName","eventProperties","enterScreen","screenName","leaveScreen","setUserId","userId","setUserTrait","traitNameOrUserTrait","traitValue","undefined","UserTrait","key","value","reset","addSurvicateEventListener","listener","eventEmitter","NativeEventEmitter","onSurveyDisplayedCallback","nativeEvent","event","surveyId","onSurveyDisplayed","onSurveyDisplayedListener","addListener","onQuestionAnsweredCallback","answer","type","answerType","id","answerId","ids","answerIds","answerValue","surveyName","visitorUuid","responseUuid","questionId","question","panelAnswerUrl","onQuestionAnswered","onQuestionAnsweredListener","onSurveyCompletedCallback","onSurveyCompleted","onSurveyCompletedListener","onSurveyClosedCallback","onSurveyClosed","onSurveyClosedListener","remove","setLocale","languageTag","setThemeMode","themeMode","setFonts","fontSystem","setResponseAttribute","attribute","setResponseAttributes","name","provider","attributes","mapped","map","a","formatDateToTimeZoneIso","date","offset","getTimezoneOffset","offsetHours","Math","floor","abs","offsetMinutes","Date","getTime","toISOString","slice","toString","padStart","constructor","Error","ThemeMode","ResponseAttribute","_default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeSurvicateModule.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAiBlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,mBAAmB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeSurvicateModule.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAmBlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,mBAAmB,CAAC","ignoreList":[]}
@@ -131,6 +131,51 @@ class Survicate {
131
131
  static setThemeMode(themeMode) {
132
132
  survicate.setThemeMode(themeMode);
133
133
  }
134
+
135
+ /**
136
+ * Sets custom fonts for use in surveys.
137
+ *
138
+ * @param fontSystem A font configuration to apply.
139
+ */
140
+ static setFonts(fontSystem) {
141
+ survicate.setFonts(fontSystem);
142
+ }
143
+
144
+ /**
145
+ * Shorthand version of {@link setResponseAttributes}.
146
+ */
147
+ static setResponseAttribute(attribute) {
148
+ survicate.setResponseAttributes([{
149
+ name: attribute.name,
150
+ value: attribute.value,
151
+ provider: attribute.provider ?? null
152
+ }]);
153
+ }
154
+
155
+ /**
156
+ * Sets response attributes that will be attached to survey responses.
157
+ *
158
+ * These can be arbitrary key-value pairs. Unlike {@link UserTrait}s, response attributes
159
+ * are session-scoped and are cleared upon a new app session. Response attributes are sent
160
+ * to the system along with the user's answers to survey questions.
161
+ *
162
+ * To change a {@link ResponseAttribute} send the same key with a different value.
163
+ */
164
+ static setResponseAttributes(attributes) {
165
+ const mapped = attributes.map(a => ({
166
+ name: a.name,
167
+ value: a.value,
168
+ provider: a.provider ?? null
169
+ }));
170
+ survicate.setResponseAttributes(mapped);
171
+ }
172
+ }
173
+ function formatDateToTimeZoneIso(date) {
174
+ const offset = date.getTimezoneOffset();
175
+ const offsetHours = Math.floor(Math.abs(offset) / 60);
176
+ const offsetMinutes = Math.abs(offset) % 60;
177
+ date = new Date(date.getTime() - offset * 60 * 1000);
178
+ return date.toISOString().slice(0, -5) + (offset > 0 ? "-" : "+") + offsetHours.toString().padStart(2, "0") + ":" + offsetMinutes.toString().padStart(2, "0");
134
179
  }
135
180
  export class UserTrait {
136
181
  constructor(key, value) {
@@ -139,18 +184,11 @@ export class UserTrait {
139
184
  }
140
185
  this.key = key;
141
186
  if (value instanceof Date) {
142
- this.value = this.formatDateToTimeZoneIso(value);
187
+ this.value = formatDateToTimeZoneIso(value);
143
188
  } else {
144
189
  this.value = value.toString();
145
190
  }
146
191
  }
147
- formatDateToTimeZoneIso(date) {
148
- const offset = date.getTimezoneOffset();
149
- const offsetHours = Math.floor(Math.abs(offset) / 60);
150
- const offsetMinutes = Math.abs(offset) % 60;
151
- date = new Date(date.getTime() - offset * 60 * 1000);
152
- return date.toISOString().slice(0, -5) + (offset > 0 ? "-" : "+") + offsetHours.toString().padStart(2, "0") + ":" + offsetMinutes.toString().padStart(2, "0");
153
- }
154
192
  }
155
193
  export let ThemeMode = /*#__PURE__*/function (ThemeMode) {
156
194
  ThemeMode["light"] = "light";
@@ -158,5 +196,36 @@ export let ThemeMode = /*#__PURE__*/function (ThemeMode) {
158
196
  ThemeMode["auto"] = "auto";
159
197
  return ThemeMode;
160
198
  }({});
199
+
200
+ /**
201
+ * Represents a complete set of fonts used by the SDK.
202
+ *
203
+ * @property regular Standard font for normal body text.
204
+ * @property regularItalic Standard font with italic slant.
205
+ * @property bold Bold style font for emphasized content.
206
+ * @property boldItalic Bold style font with italic slant.
207
+ */
208
+
209
+ /**
210
+ * Represents a response attribute attached to a survey response.
211
+ *
212
+ * @property name The attribute identifier.
213
+ * @property value The attribute value.
214
+ * @property provider Optional source or provider of the attribute.
215
+ */
216
+ export class ResponseAttribute {
217
+ constructor(name, value, provider) {
218
+ if (name === null || value === null) {
219
+ throw new Error("Name and value cannot be null");
220
+ }
221
+ this.name = name;
222
+ if (value instanceof Date) {
223
+ this.value = formatDateToTimeZoneIso(value);
224
+ } else {
225
+ this.value = value.toString();
226
+ }
227
+ this.provider = provider;
228
+ }
229
+ }
161
230
  export default Survicate;
162
231
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","NativeEventEmitter","SurvicateBindings","isTurboModuleEnabled","global","__turboModuleProxy","survicate","require","default","SurvicateIntegrations","Survicate","integrations","setWorkspaceKey","workspaceKey","initializeSdk","invokeEvent","eventName","eventProperties","enterScreen","screenName","leaveScreen","setUserId","userId","setUserTrait","traitNameOrUserTrait","traitValue","undefined","UserTrait","key","value","reset","addSurvicateEventListener","listener","eventEmitter","onSurveyDisplayedCallback","nativeEvent","event","surveyId","onSurveyDisplayed","onSurveyDisplayedListener","addListener","onQuestionAnsweredCallback","answer","type","answerType","id","answerId","ids","answerIds","answerValue","surveyName","visitorUuid","responseUuid","questionId","question","panelAnswerUrl","onQuestionAnswered","onQuestionAnsweredListener","onSurveyCompletedCallback","onSurveyCompleted","onSurveyCompletedListener","onSurveyClosedCallback","onSurveyClosed","onSurveyClosedListener","remove","setLocale","languageTag","setThemeMode","themeMode","constructor","Error","Date","formatDateToTimeZoneIso","toString","date","offset","getTimezoneOffset","offsetHours","Math","floor","abs","offsetMinutes","getTime","toISOString","slice","padStart","ThemeMode"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","NativeEventEmitter","SurvicateBindings","isTurboModuleEnabled","global","__turboModuleProxy","survicate","require","default","SurvicateIntegrations","Survicate","integrations","setWorkspaceKey","workspaceKey","initializeSdk","invokeEvent","eventName","eventProperties","enterScreen","screenName","leaveScreen","setUserId","userId","setUserTrait","traitNameOrUserTrait","traitValue","undefined","UserTrait","key","value","reset","addSurvicateEventListener","listener","eventEmitter","onSurveyDisplayedCallback","nativeEvent","event","surveyId","onSurveyDisplayed","onSurveyDisplayedListener","addListener","onQuestionAnsweredCallback","answer","type","answerType","id","answerId","ids","answerIds","answerValue","surveyName","visitorUuid","responseUuid","questionId","question","panelAnswerUrl","onQuestionAnswered","onQuestionAnsweredListener","onSurveyCompletedCallback","onSurveyCompleted","onSurveyCompletedListener","onSurveyClosedCallback","onSurveyClosed","onSurveyClosedListener","remove","setLocale","languageTag","setThemeMode","themeMode","setFonts","fontSystem","setResponseAttribute","attribute","setResponseAttributes","name","provider","attributes","mapped","map","a","formatDateToTimeZoneIso","date","offset","getTimezoneOffset","offsetHours","Math","floor","abs","offsetMinutes","Date","getTime","toISOString","slice","toString","padStart","constructor","Error","ThemeMode","ResponseAttribute"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -37,12 +37,31 @@ declare class Survicate {
37
37
  * @param themeMode The theme mode to apply: ThemeMode.light, ThemeMode.dark, or ThemeMode.auto (default).
38
38
  */
39
39
  static setThemeMode(themeMode: ThemeMode): void;
40
+ /**
41
+ * Sets custom fonts for use in surveys.
42
+ *
43
+ * @param fontSystem A font configuration to apply.
44
+ */
45
+ static setFonts(fontSystem: SurvicateFontSystem): void;
46
+ /**
47
+ * Shorthand version of {@link setResponseAttributes}.
48
+ */
49
+ static setResponseAttribute(attribute: ResponseAttribute): void;
50
+ /**
51
+ * Sets response attributes that will be attached to survey responses.
52
+ *
53
+ * These can be arbitrary key-value pairs. Unlike {@link UserTrait}s, response attributes
54
+ * are session-scoped and are cleared upon a new app session. Response attributes are sent
55
+ * to the system along with the user's answers to survey questions.
56
+ *
57
+ * To change a {@link ResponseAttribute} send the same key with a different value.
58
+ */
59
+ static setResponseAttributes(attributes: ResponseAttribute[]): void;
40
60
  }
41
61
  export declare class UserTrait {
42
62
  key: string;
43
63
  value: string;
44
64
  constructor(key: string, value: string | number | boolean | Date);
45
- private formatDateToTimeZoneIso;
46
65
  }
47
66
  export type SurveyDisplayedEvent = {
48
67
  surveyId: string;
@@ -80,5 +99,32 @@ export declare enum ThemeMode {
80
99
  dark = "dark",
81
100
  auto = "auto"
82
101
  }
102
+ /**
103
+ * Represents a complete set of fonts used by the SDK.
104
+ *
105
+ * @property regular Standard font for normal body text.
106
+ * @property regularItalic Standard font with italic slant.
107
+ * @property bold Bold style font for emphasized content.
108
+ * @property boldItalic Bold style font with italic slant.
109
+ */
110
+ export type SurvicateFontSystem = {
111
+ regular: string;
112
+ regularItalic: string;
113
+ bold: string;
114
+ boldItalic: string;
115
+ };
116
+ /**
117
+ * Represents a response attribute attached to a survey response.
118
+ *
119
+ * @property name The attribute identifier.
120
+ * @property value The attribute value.
121
+ * @property provider Optional source or provider of the attribute.
122
+ */
123
+ export declare class ResponseAttribute {
124
+ name: string;
125
+ value: string;
126
+ provider?: string;
127
+ constructor(name: string, value: string | number | boolean | Date, provider?: string);
128
+ }
83
129
  export default Survicate;
84
130
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAWA,qBAAa,qBAAqB;CAAG;AAErC,cAAM,SAAS;IACb,MAAM,CAAC,YAAY,wBAA+B;IAElD,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIlD,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B,MAAM,CAAC,WAAW,CAChB,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,IAAI;IAIP,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5C,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAChE,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAe/C,MAAM,CAAC,KAAK,IAAI,IAAI;IAIpB,MAAM,CAAC,yBAAyB,CAC9B,QAAQ,EAAE,sBAAsB,GAC/B,MAAM,IAAI;IAwEb;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI3C;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;CAGhD;AAED,qBAAa,SAAS;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;gBAEF,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI;IAchE,OAAO,CAAC,uBAAuB;CAahC;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC1D,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC5D,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC1D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACrD;AAED,oBAAY,SAAS;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@survicate/react-native-survicate",
3
3
  "title": "React Native Survicate Bindings",
4
- "version": "7.1.0",
4
+ "version": "7.3.0",
5
5
  "description": "React Native bindings for Survicate Mobile SDK",
6
6
  "main": "lib/commonjs/index.js",
7
7
  "module": "lib/module/index.js",
@@ -21,7 +21,7 @@ Pod::Spec.new do |s|
21
21
  s.requires_arc = true
22
22
 
23
23
  s.dependency "React"
24
- s.dependency "Survicate", "7.1.1"
24
+ s.dependency "Survicate", "7.3.0"
25
25
  # ...
26
26
  # s.dependency "..."
27
27
 
@@ -14,6 +14,8 @@ export interface Spec extends TurboModule {
14
14
  removeListeners(count: number): void;
15
15
  setLocale(locale: string): void;
16
16
  setThemeMode(themeMode: string): void;
17
+ setFonts(fontSystem: Object): void;
18
+ setResponseAttributes(attributes: ReadonlyArray<{ name: string; value: string; provider: string | null }>): void;
17
19
  }
18
20
 
19
21
  export default TurboModuleRegistry.get<Spec>("SurvicateBindings");
package/src/index.ts CHANGED
@@ -165,6 +165,58 @@ class Survicate {
165
165
  static setThemeMode(themeMode: ThemeMode): void {
166
166
  survicate.setThemeMode(themeMode);
167
167
  }
168
+
169
+ /**
170
+ * Sets custom fonts for use in surveys.
171
+ *
172
+ * @param fontSystem A font configuration to apply.
173
+ */
174
+ static setFonts(fontSystem: SurvicateFontSystem): void {
175
+ survicate.setFonts(fontSystem);
176
+ }
177
+
178
+ /**
179
+ * Shorthand version of {@link setResponseAttributes}.
180
+ */
181
+ static setResponseAttribute(attribute: ResponseAttribute): void {
182
+ survicate.setResponseAttributes([{
183
+ name: attribute.name,
184
+ value: attribute.value,
185
+ provider: attribute.provider ?? null,
186
+ }]);
187
+ }
188
+
189
+ /**
190
+ * Sets response attributes that will be attached to survey responses.
191
+ *
192
+ * These can be arbitrary key-value pairs. Unlike {@link UserTrait}s, response attributes
193
+ * are session-scoped and are cleared upon a new app session. Response attributes are sent
194
+ * to the system along with the user's answers to survey questions.
195
+ *
196
+ * To change a {@link ResponseAttribute} send the same key with a different value.
197
+ */
198
+ static setResponseAttributes(attributes: ResponseAttribute[]): void {
199
+ const mapped = attributes.map((a) => ({
200
+ name: a.name,
201
+ value: a.value,
202
+ provider: a.provider ?? null,
203
+ }));
204
+ survicate.setResponseAttributes(mapped);
205
+ }
206
+ }
207
+
208
+ function formatDateToTimeZoneIso(date: Date): string {
209
+ const offset = date.getTimezoneOffset();
210
+ const offsetHours = Math.floor(Math.abs(offset) / 60);
211
+ const offsetMinutes = Math.abs(offset) % 60;
212
+ date = new Date(date.getTime() - offset * 60 * 1000);
213
+ return (
214
+ date.toISOString().slice(0, -5) +
215
+ (offset > 0 ? "-" : "+") +
216
+ offsetHours.toString().padStart(2, "0") +
217
+ ":" +
218
+ offsetMinutes.toString().padStart(2, "0")
219
+ );
168
220
  }
169
221
 
170
222
  export class UserTrait {
@@ -179,25 +231,11 @@ export class UserTrait {
179
231
  this.key = key;
180
232
 
181
233
  if (value instanceof Date) {
182
- this.value = this.formatDateToTimeZoneIso(value);
234
+ this.value = formatDateToTimeZoneIso(value);
183
235
  } else {
184
236
  this.value = value.toString();
185
237
  }
186
238
  }
187
-
188
- private formatDateToTimeZoneIso(date: Date): string {
189
- const offset = date.getTimezoneOffset();
190
- const offsetHours = Math.floor(Math.abs(offset) / 60);
191
- const offsetMinutes = Math.abs(offset) % 60;
192
- date = new Date(date.getTime() - offset * 60 * 1000);
193
- return (
194
- date.toISOString().slice(0, -5) +
195
- (offset > 0 ? "-" : "+") +
196
- offsetHours.toString().padStart(2, "0") +
197
- ":" +
198
- offsetMinutes.toString().padStart(2, "0")
199
- );
200
- }
201
239
  }
202
240
 
203
241
  export type SurveyDisplayedEvent = {
@@ -243,4 +281,52 @@ export enum ThemeMode {
243
281
  auto = "auto",
244
282
  }
245
283
 
284
+ /**
285
+ * Represents a complete set of fonts used by the SDK.
286
+ *
287
+ * @property regular Standard font for normal body text.
288
+ * @property regularItalic Standard font with italic slant.
289
+ * @property bold Bold style font for emphasized content.
290
+ * @property boldItalic Bold style font with italic slant.
291
+ */
292
+ export type SurvicateFontSystem = {
293
+ regular: string;
294
+ regularItalic: string;
295
+ bold: string;
296
+ boldItalic: string;
297
+ };
298
+
299
+ /**
300
+ * Represents a response attribute attached to a survey response.
301
+ *
302
+ * @property name The attribute identifier.
303
+ * @property value The attribute value.
304
+ * @property provider Optional source or provider of the attribute.
305
+ */
306
+ export class ResponseAttribute {
307
+ name: string;
308
+ value: string;
309
+ provider?: string;
310
+
311
+ constructor(
312
+ name: string,
313
+ value: string | number | boolean | Date,
314
+ provider?: string
315
+ ) {
316
+ if (name === null || value === null) {
317
+ throw new Error("Name and value cannot be null");
318
+ }
319
+
320
+ this.name = name;
321
+
322
+ if (value instanceof Date) {
323
+ this.value = formatDateToTimeZoneIso(value);
324
+ } else {
325
+ this.value = value.toString();
326
+ }
327
+
328
+ this.provider = provider;
329
+ }
330
+ }
331
+
246
332
  export default Survicate;