@magicfeedback/native 2.1.7-alpha.8 → 2.2.0-alpha.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 (30) hide show
  1. package/dist/magicfeedback-sdk.browser.js +509 -1
  2. package/dist/magicfeedback-sdk.node.js +470 -1
  3. package/dist/styles/magicfeedback-default.css +235 -149
  4. package/dist/types/src/models/pageGraphs.d.ts +52 -0
  5. package/dist/types/src/models/types.d.ts +88 -3
  6. package/dist/types/src/render/helpers.d.ts +3 -0
  7. package/dist/types/src/render/ratingHelpers.d.ts +3 -0
  8. package/dist/types/src/render/registry.d.ts +3 -0
  9. package/dist/types/src/render/renderBoolean.d.ts +2 -0
  10. package/dist/types/src/render/renderChoice.d.ts +2 -0
  11. package/dist/types/src/render/renderConsent.d.ts +2 -0
  12. package/dist/types/src/render/renderDate.d.ts +2 -0
  13. package/dist/types/src/render/renderEmail.d.ts +2 -0
  14. package/dist/types/src/render/renderInfoPage.d.ts +2 -0
  15. package/dist/types/src/render/renderLongText.d.ts +2 -0
  16. package/dist/types/src/render/renderMatrix.d.ts +2 -0
  17. package/dist/types/src/render/renderMultipleChoiceImage.d.ts +2 -0
  18. package/dist/types/src/render/renderNumber.d.ts +2 -0
  19. package/dist/types/src/render/renderPassword.d.ts +2 -0
  20. package/dist/types/src/render/renderPointSystem.d.ts +2 -0
  21. package/dist/types/src/render/renderPriorityList.d.ts +2 -0
  22. package/dist/types/src/render/renderRatingEmoji.d.ts +2 -0
  23. package/dist/types/src/render/renderRatingNumber.d.ts +2 -0
  24. package/dist/types/src/render/renderRatingStar.d.ts +2 -0
  25. package/dist/types/src/render/renderSelect.d.ts +2 -0
  26. package/dist/types/src/render/renderText.d.ts +2 -0
  27. package/dist/types/src/render/renderUploadFile.d.ts +2 -0
  28. package/dist/types/src/render/renderUploadImage.d.ts +2 -0
  29. package/dist/types/src/render/types.d.ts +20 -0
  30. package/package.json +1 -1
@@ -38,10 +38,95 @@ export declare enum FEEDBACKAPPANSWERTYPE {
38
38
  export declare class QuestionType {
39
39
  conf: any;
40
40
  }
41
- export type NativeQuestion = {
41
+ export type QuestionAssetsBase = {
42
+ [key: string]: any;
43
+ placeholder?: string;
44
+ subtitle?: string | Record<string, string>;
45
+ subtitleStyle?: string | string[];
46
+ maxCharacters?: number;
47
+ randomPosition?: boolean;
48
+ direction?: "row" | "column" | string;
49
+ order?: "ltr" | "rtl" | string;
50
+ min?: number;
51
+ max?: number;
52
+ minPlaceholder?: string;
53
+ maxPlaceholder?: string;
54
+ extraOption?: boolean;
55
+ extraOptionText?: string;
56
+ extraOptionPlaceholder?: string;
57
+ };
58
+ export type QuestionAssetsByType = {
59
+ [FEEDBACKAPPANSWERTYPE.TEXT]: QuestionAssetsBase;
60
+ [FEEDBACKAPPANSWERTYPE.LONGTEXT]: QuestionAssetsBase & {
61
+ maxCharacters?: number;
62
+ };
63
+ [FEEDBACKAPPANSWERTYPE.NUMBER]: QuestionAssetsBase;
64
+ [FEEDBACKAPPANSWERTYPE.RADIO]: QuestionAssetsBase & {
65
+ exclusiveAnswers?: string[];
66
+ maxOptions?: number;
67
+ extraOption?: boolean;
68
+ extraOptionText?: string;
69
+ extraOptionPlaceholder?: string;
70
+ };
71
+ [FEEDBACKAPPANSWERTYPE.MULTIPLECHOICE]: QuestionAssetsByType[FEEDBACKAPPANSWERTYPE.RADIO];
72
+ [FEEDBACKAPPANSWERTYPE.SELECT]: QuestionAssetsBase;
73
+ [FEEDBACKAPPANSWERTYPE.DATE]: QuestionAssetsBase;
74
+ [FEEDBACKAPPANSWERTYPE.EMAIL]: QuestionAssetsBase;
75
+ [FEEDBACKAPPANSWERTYPE.PASSWORD]: QuestionAssetsBase;
76
+ [FEEDBACKAPPANSWERTYPE.BOOLEAN]: QuestionAssetsBase & {
77
+ addIcon?: boolean;
78
+ };
79
+ [FEEDBACKAPPANSWERTYPE.CONSENT]: QuestionAssetsBase;
80
+ [FEEDBACKAPPANSWERTYPE.RATING_EMOJI]: QuestionAssetsBase & {
81
+ min?: number;
82
+ max?: number;
83
+ minPlaceholder?: string;
84
+ maxPlaceholder?: string;
85
+ extraOption?: boolean;
86
+ extraOptionText?: string;
87
+ };
88
+ [FEEDBACKAPPANSWERTYPE.RATING_NUMBER]: QuestionAssetsBase & {
89
+ min?: number;
90
+ max?: number;
91
+ minPlaceholder?: string;
92
+ maxPlaceholder?: string;
93
+ numberPlaceholders?: Record<number, string>;
94
+ extraOption?: boolean;
95
+ extraOptionText?: string;
96
+ ariaLabel?: string;
97
+ };
98
+ [FEEDBACKAPPANSWERTYPE.RATING_STAR]: QuestionAssetsBase & {
99
+ minPlaceholder?: string;
100
+ maxPlaceholder?: string;
101
+ };
102
+ [FEEDBACKAPPANSWERTYPE.MULTIPLECHOISE_IMAGE]: QuestionAssetsBase & {
103
+ addTitle?: boolean;
104
+ multiOption?: boolean;
105
+ extraOption?: boolean;
106
+ extraOptionValue?: any[];
107
+ };
108
+ [FEEDBACKAPPANSWERTYPE.MULTI_QUESTION_MATRIX]: QuestionAssetsBase & {
109
+ options?: string[];
110
+ exclusiveAnswers?: string[];
111
+ };
112
+ [FEEDBACKAPPANSWERTYPE.PRIORITY_LIST]: QuestionAssetsBase & {
113
+ limitPriority?: boolean;
114
+ maxPriority?: number;
115
+ };
116
+ [FEEDBACKAPPANSWERTYPE.POINT_SYSTEM]: QuestionAssetsBase;
117
+ [FEEDBACKAPPANSWERTYPE.INFO_PAGE]: QuestionAssetsBase;
118
+ [FEEDBACKAPPANSWERTYPE.UPLOAD_FILE]: QuestionAssetsBase & {
119
+ multiple?: boolean;
120
+ maxFiles?: number;
121
+ };
122
+ [FEEDBACKAPPANSWERTYPE.UPLOAD_IMAGE]: QuestionAssetsByType[FEEDBACKAPPANSWERTYPE.UPLOAD_FILE];
123
+ [FEEDBACKAPPANSWERTYPE.CONTACT]: QuestionAssetsBase;
124
+ };
125
+ export type QuestionAssetsFor<T extends FEEDBACKAPPANSWERTYPE | string> = T extends FEEDBACKAPPANSWERTYPE ? QuestionAssetsByType[T] & QuestionAssetsBase : QuestionAssetsBase;
126
+ export type NativeQuestion<T extends FEEDBACKAPPANSWERTYPE | string = FEEDBACKAPPANSWERTYPE | string> = {
42
127
  id: string;
43
128
  title: string;
44
- type: FEEDBACKAPPANSWERTYPE | string;
129
+ type: T;
45
130
  questionType: QuestionType;
46
131
  ref: string;
47
132
  require: boolean;
@@ -51,7 +136,7 @@ export type NativeQuestion = {
51
136
  appId?: string;
52
137
  followup: boolean;
53
138
  position: number;
54
- assets: any;
139
+ assets: QuestionAssetsFor<T>;
55
140
  refMetric: string;
56
141
  integrationId: string;
57
142
  integrationPageId: string;
@@ -0,0 +1,3 @@
1
+ export declare function parseTitle(title: string, lang: string): string;
2
+ export declare function getBooleanOptions(lang: string): string[];
3
+ export declare function getUrlParam(key: string): string | null;
@@ -0,0 +1,3 @@
1
+ export declare function createRatingPlaceholder(min: number, max: number, minPlaceholder: string, maxPlaceholder: string, extraOption: boolean, mobile?: boolean, order?: string, direction?: string): HTMLDivElement;
2
+ export declare function createStarRating(ref: string, minPlaceholder: string, maxPlaceholder: string, send?: () => void, urlParamValue?: string | null): HTMLDivElement;
3
+ export declare function createRatingNumberElement(ref: string, assets: any, order: string, direction: string, isPhone: boolean, elementTypeClass: string, send?: () => void, urlParamValue?: string | null): HTMLElement;
@@ -0,0 +1,3 @@
1
+ import { FEEDBACKAPPANSWERTYPE } from "../models/types";
2
+ import { QuestionRenderer } from "./types";
3
+ export declare function getQuestionRenderer(type: FEEDBACKAPPANSWERTYPE | string): QuestionRenderer | undefined;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderBoolean: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderChoice: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderConsent: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderDate: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderEmail: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderInfoPage: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderLongText: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderMatrix: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderMultipleChoiceImage: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderNumber: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderPassword: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderPointSystem: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderPriorityList: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderRatingEmoji: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderRatingNumber: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderRatingStar: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderSelect: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderText: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderUploadFile: QuestionRenderer;
@@ -0,0 +1,2 @@
1
+ import { QuestionRenderer } from "./types";
2
+ export declare const renderUploadImage: QuestionRenderer;
@@ -0,0 +1,20 @@
1
+ import { NativeQuestion } from "../models/types";
2
+ export type RenderContext = {
3
+ question: NativeQuestion;
4
+ format: string;
5
+ language: string;
6
+ url: string;
7
+ send?: () => void;
8
+ isPhone: boolean;
9
+ urlParamValue: string | null;
10
+ placeholderText?: string;
11
+ maxCharacters: number;
12
+ randomPosition: boolean;
13
+ direction: string;
14
+ order: string;
15
+ };
16
+ export type RenderResult = {
17
+ element: HTMLElement;
18
+ elementTypeClass: string;
19
+ };
20
+ export type QuestionRenderer = (ctx: RenderContext) => RenderResult;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicfeedback/native",
3
- "version": "2.1.7-alpha.8",
3
+ "version": "2.2.0-alpha.0",
4
4
  "main": "./dist/magicfeedback-sdk.node.js",
5
5
  "browser": "./dist/magicfeedback-sdk.browser.js",
6
6
  "types": "./dist/types/src/index.d.ts",