@fullsession.io/fs-feedback-widget 1.3.3 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,298 @@
1
+ fsContainer{
2
+ width: 100%;
3
+ display: flex;
4
+ flex-direction: var(--wgPositionVertical);
5
+ position: fixed;
6
+ top: 0; right: 0; bottom: 0; left: 0;
7
+ height: 100%;
8
+ pointer-events: none;
9
+ align-items: var(--wgPositionHorizintal);
10
+ padding: 0;
11
+ z-index: 100000;
12
+ }
13
+ .fsWidget {
14
+ pointer-events: auto;
15
+ background-color: var(--widgetColor);
16
+ width: 34px;
17
+ height: 112px;
18
+ border-top-left-radius:var(--widgetLeftSideBorder) ;
19
+ border-bottom-left-radius: var(--widgetLeftSideBorder);
20
+ border-top-right-radius: var(--widgetRightSideBorder) ;
21
+ border-bottom-right-radius: var(--widgetRightSideBorder);
22
+ box-shadow: 0.2px 0.2px 0.2px rgb(133, 130, 130);
23
+ display: flex;
24
+ flex-direction: column;
25
+ align-items: center;
26
+ justify-content: space-evenly;
27
+ cursor: pointer;
28
+ margin-top: 5px;
29
+ }
30
+ #fsMainIcon {
31
+ width: 60%;
32
+ margin-left: 4%;
33
+ cursor: pointer;
34
+ }
35
+ #fsFeedbackTxt {
36
+ color: var(--widgetTextColor);
37
+ font-size: 15px;
38
+ writing-mode: vertical-lr;
39
+ transform: rotate(180deg);
40
+ cursor: pointer;
41
+ font-size-adjust: 0.40;
42
+ }
43
+ .fsWidget:hover {
44
+ width: 35px;
45
+ -webkit-box-shadow: 0px 0px 35px 2px rgba(0, 0, 0, 0.24);
46
+ box-shadow: 0px 0px 35px 2px rgba(0, 0, 0, 0.24);
47
+ }
48
+ .fsCont {
49
+ pointer-events: auto;
50
+ width: 320px;
51
+ height: fit-content;
52
+ background-color: rgb(255, 255, 255);
53
+ margin-right: var(--widgetMarginRight);
54
+ margin-left: var(--widgetMarginLeft);
55
+ -webkit-box-shadow: rgba(0, 0, 0, 0.35) 0px 6px 100px 0px;
56
+ box-shadow: rgba(0, 0, 0, 0.35) 0px 6px 100px 0px;
57
+ }
58
+ .fsThanksMessageCont{
59
+ pointer-events: auto;
60
+ width: 320px;
61
+ height: 104px;
62
+ background-color: rgb(255, 255, 255);
63
+ margin-right: var(--widgetMarginRight);
64
+ margin-left: var(--widgetMarginLeft);
65
+ -webkit-box-shadow: rgba(0, 0, 0, 0.35) 0px 6px 100px 0px;
66
+ box-shadow: rgba(0, 0, 0, 0.35) 0px 6px 100px 0px;
67
+ }
68
+ #fsCloseIcon{
69
+ font-size: 15px;
70
+ color: #ffff;
71
+ font-weight: 600;
72
+ font-family: system-ui;
73
+ cursor: pointer;
74
+
75
+ }
76
+ .fsCloseCont{
77
+ pointer-events: auto;
78
+ background-color: #4d5167;
79
+ width: 27px;
80
+ height: 27px;
81
+ border-radius: 50%;
82
+ display: flex;
83
+ justify-content: center;
84
+ align-items: center;
85
+ margin-top: -15px;
86
+ margin-left: 85%;
87
+ cursor: pointer;
88
+ }
89
+
90
+
91
+
92
+
93
+
94
+ /* @media (min-width: 640px) {
95
+ body {
96
+ max-width: none;
97
+ }
98
+ } */.fsReactionsContainer {
99
+ pointer-events: auto;
100
+ display: flex;
101
+ flex-direction: column;
102
+ height: 190px;
103
+ }
104
+ .fsIcons {
105
+ display: flex;
106
+ flex-direction: row;
107
+ justify-content: space-evenly;
108
+ margin-top: 11%;
109
+ }
110
+ #fsTxt {
111
+ font-size: 17px;
112
+ display: flex;
113
+ text-align: center;
114
+ margin-top: 5%;
115
+ width: 61%;
116
+ margin-left: 19%;
117
+ }
118
+
119
+ .fsIconTextCont {
120
+ pointer-events: auto;
121
+ display: flex;
122
+ flex-direction: column;
123
+ align-items: center;
124
+ height: 22px;
125
+ }
126
+
127
+ .fsReactionText {
128
+ font-size: 12px;
129
+ display: none;
130
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
131
+ margin-top: 0px;
132
+
133
+ }
134
+ .fsIconTextCont:hover{
135
+ pointer-events: auto;
136
+ cursor: pointer;
137
+ }
138
+ .fsReactionIcon:hover + .fsReactionText {
139
+ display: block;
140
+ opacity: 0.8;
141
+ }
142
+
143
+ .fsCommentContainer{
144
+ pointer-events: auto;
145
+ display: flex;
146
+ flex-direction: column;
147
+ height: 291px;
148
+ pointer-events: auto;
149
+ }
150
+ .fsTextAreaCont{
151
+ pointer-events: auto;
152
+ width: 100%;
153
+ height: 140px;
154
+ background-color: #eaeaeb;
155
+ margin-top: 17%;
156
+ }
157
+ .fsTextArea{
158
+ border: 0px;
159
+ width: 85%;
160
+ height: 120px;
161
+ background-color: #eaeaeb;
162
+ margin-left: 6%;
163
+ outline: none;
164
+ margin-top: 4%;
165
+ resize: none;
166
+
167
+ }
168
+ .fsSendButtonCommentComponent{
169
+ pointer-events: auto;
170
+ color: #ffff;
171
+ font-size: 12px;
172
+ text-align: center;
173
+ margin-top: 7px;
174
+
175
+ }
176
+ .fsSendButtonContCommentComp{
177
+ pointer-events: auto;
178
+ background-color: var(--buttonColor);
179
+ width: 50px;
180
+ height: 29px;
181
+ box-shadow: rgba(0, 0, 0, 0.15) 0px 2px 3px 0px;
182
+ border-radius: 3px;
183
+ margin-top: 13px;
184
+ margin-right: 11px;
185
+ cursor: pointer;
186
+ border: 0px;
187
+
188
+ }
189
+
190
+ .fsCommentButtonContDisable{
191
+ pointer-events: auto;
192
+ background-color: #cccccc;
193
+ width: 50px;
194
+ height: 29px;
195
+ box-shadow: rgba(0, 0, 0, 0.15) 0px 2px 3px 0px;
196
+ border-radius: 3px;
197
+ margin-top: 13px;
198
+ margin-right: 11px;
199
+ cursor:not-allowed;
200
+ border: 0px;
201
+ }
202
+ .fsCommentButtonTxtDisable{
203
+ pointer-events: auto;
204
+ color: black;
205
+ font-size: 12px;
206
+ text-align: center;
207
+ margin-top: 7px;
208
+ }
209
+ .fsFooter{
210
+ pointer-events: auto;
211
+ display: flex;
212
+ justify-content: flex-end;
213
+ }
214
+
215
+ .fsIcons-second{
216
+
217
+ display: flex;
218
+ flex-direction: row;
219
+ justify-content: space-evenly;
220
+ margin-top: 6%;
221
+ }
222
+ .fsPointerDiv{
223
+ width: 0;
224
+ height: 0;
225
+ border-left: 3px solid transparent;
226
+ margin-top: -8px;
227
+ border-right: 5px solid transparent;
228
+ border-bottom: 8px solid #eaeaeb;
229
+ margin-left: var(--pointerMargin);
230
+
231
+
232
+ }
233
+ #fsHateDiv{
234
+ display: var(--hateDisplay);
235
+ }
236
+ #fsDislikeDiv{
237
+ display: var(--dislikeDisplay);
238
+ }
239
+ #fsNeutralDiv{
240
+ display: var(--neutralDisplay);
241
+ }
242
+ #fsLikeDiv{
243
+ display: var(--likeDisplay);
244
+ }
245
+ #fsLoveDiv{
246
+ display: var(--loveDisplay);
247
+ }
248
+ .fsEmailContainer{
249
+ pointer-events: auto;
250
+ display: flex;
251
+ flex-direction: column;
252
+ height: 220px;
253
+ }
254
+ #fsEmailInputCont{
255
+ pointer-events: auto;
256
+ pointer-events: auto;
257
+ width: 100%;
258
+ height: 46px;
259
+ background-color: #eaeaeb;
260
+ display: flex;
261
+ /* align-items: center; */
262
+ justify-content: center;
263
+ margin-top: 10%;
264
+
265
+ }
266
+ #fsEmailTextArea{
267
+ pointer-events: auto;
268
+ text-align: center;
269
+ border: 0px;
270
+ background-color: #eaeaeb;
271
+ outline: none;
272
+ }
273
+ #fsEmailText{
274
+ width: 80%;
275
+ text-align: center;
276
+ margin-left: 11%;
277
+ margin-top: 8%;
278
+ line-height: 1.29;
279
+ font-size: 17px;
280
+ }
281
+ .fsEmailFooter{
282
+ pointer-events: auto;
283
+ display: flex;
284
+ justify-content: flex-end;
285
+ flex-direction: row;
286
+ }
287
+ #fsSkipText{
288
+ color: #908f8f;
289
+ cursor: pointer;
290
+ font-size: 13px;
291
+ margin-top: 6%;
292
+ margin-right: 4%;
293
+ letter-spacing: normal;
294
+
295
+ }
296
+ #fsSkipText:hover{
297
+ color: #666666;
298
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fullsession.io/fs-feedback-widget",
3
- "version": "1.3.3",
3
+ "version": "1.3.6",
4
4
  "scripts": {
5
5
  "build": "rollup -c",
6
6
  "dev": "rollup -c -w",
package/src/App.svelte CHANGED
@@ -1,194 +1,220 @@
1
1
  <script>
2
2
  import MainIcon from "./Icons/mainIcon.svelte";
3
- import ReactionPage from "./widgetPages/reactionPage.svelte"
3
+ import ReactionPage from "./widgetPages/reactionPage.svelte";
4
4
  export let feedback;
5
5
  console.log(feedback);
6
6
  import { fly } from "svelte/transition";
7
- import "../src/widgetPages/App.css"
8
- $:widgetColor = feedback.wgAccentColor;
9
- $:document.documentElement.style.setProperty('--widgetColor', widgetColor);
10
- let widgetTextColor="";
7
+ import "../src/widgetPages/App.css";
8
+ $: widgetColor = feedback.wgAccentColor;
9
+ $: document.documentElement.style.setProperty("--widgetColor", widgetColor);
10
+ let widgetTextColor = "";
11
11
  let iconColor = "";
12
- let widgetName="Feedback"
13
- if(feedback.wgLanguage == "en"){
14
- widgetName = " Feedback"
15
- } else if(feedback.wgLanguage == "ar"){
16
- widgetName = "رأي"
17
- } else{
18
- widgetName = "Rétroaction"
12
+ let widgetName = "Feedback";
13
+ if (feedback.wgLanguage == "en") {
14
+ widgetName = " Feedback";
15
+ } else if (feedback.wgLanguage == "ar") {
16
+ widgetName = "رأي";
17
+ } else {
18
+ widgetName = "Rétroaction";
19
19
  }
20
20
 
21
- if(feedback.wgAlternateColor === true){
21
+ if (feedback.wgAlternateColor === true) {
22
22
  widgetTextColor = "white";
23
- iconColor = "white"
24
- } else{
23
+ iconColor = "white";
24
+ } else {
25
25
  widgetTextColor = "black";
26
- iconColor ="black"
26
+ iconColor = "black";
27
27
  }
28
28
 
29
- $:document.documentElement.style.setProperty('--widgetTextColor', widgetTextColor);
29
+ $: document.documentElement.style.setProperty(
30
+ "--widgetTextColor",
31
+ widgetTextColor
32
+ );
30
33
 
31
- let wgPositionHorizintal="";
34
+ let wgPositionHorizintal = "";
32
35
  let wgPositionVertical = "";
33
- let widgetLeftSideBorder=0;
34
- let widgetRightSideBorder=0;
36
+ let widgetLeftSideBorder = 0;
37
+ let widgetRightSideBorder = 0;
35
38
  let widgetMarginRight = 0;
36
39
  let widgetMarginLeft = 0;
37
40
  let visible = false;
38
41
  let buttonVisible = true;
39
42
  let thanksMessageVisible = false;
40
- let inTransitionX = 0;
41
- let outTransitionX = 0;
43
+ let inTransitionX = 0;
44
+ let outTransitionX = 0;
42
45
 
43
- if(Number(feedback.wgPosition) == 0){
44
- wgPositionHorizintal = "center"
45
- wgPositionVertical = "row-reverse"
46
- widgetLeftSideBorder =5;
47
- widgetRightSideBorder=0;
46
+ if (Number(feedback.wgPosition) == 0) {
47
+ wgPositionHorizintal = "center";
48
+ wgPositionVertical = "row-reverse";
49
+ widgetLeftSideBorder = 5;
50
+ widgetRightSideBorder = 0;
48
51
  widgetMarginRight = 30;
49
52
  widgetMarginLeft = 0;
50
53
  inTransitionX = -100;
51
54
  outTransitionX = 20;
52
55
  }
53
- if(Number(feedback.wgPosition) == 1){
54
- wgPositionHorizintal = "center"
55
- wgPositionVertical = "row"
56
- widgetLeftSideBorder =0;
57
- widgetRightSideBorder=5;
56
+ if (Number(feedback.wgPosition) == 1) {
57
+ wgPositionHorizintal = "center";
58
+ wgPositionVertical = "row";
59
+ widgetLeftSideBorder = 0;
60
+ widgetRightSideBorder = 5;
58
61
  widgetMarginRight = 0;
59
62
  widgetMarginLeft = 30;
60
63
  inTransitionX = 100;
61
64
  outTransitionX = -20;
62
65
  }
63
- if(Number(feedback.wgPosition) == 2){
64
- wgPositionHorizintal = "flex-end"
65
- wgPositionVertical = "row-reverse"
66
- widgetLeftSideBorder =5;
67
- widgetMarginRight = 30
66
+ if (Number(feedback.wgPosition) == 2) {
67
+ wgPositionHorizintal = "flex-end";
68
+ wgPositionVertical = "row-reverse";
69
+ widgetLeftSideBorder = 5;
70
+ widgetMarginRight = 30;
68
71
  widgetMarginLeft = 0;
69
72
  inTransitionX = -100;
70
73
  outTransitionX = 20;
71
74
  }
72
- if(Number(feedback.wgPosition) == 3){
73
- wgPositionHorizintal = "flex-end"
74
- wgPositionVertical = "row"
75
- widgetLeftSideBorder =0;
76
- widgetRightSideBorder=5;
75
+ if (Number(feedback.wgPosition) == 3) {
76
+ wgPositionHorizintal = "flex-end";
77
+ wgPositionVertical = "row";
78
+ widgetLeftSideBorder = 0;
79
+ widgetRightSideBorder = 5;
77
80
  widgetMarginRight = 0;
78
81
  widgetMarginLeft = 30;
79
82
  inTransitionX = 100;
80
83
  outTransitionX = -20;
81
84
  }
82
- $: document.documentElement.style.setProperty('--wgPositionHorizintal', wgPositionHorizintal)
83
- $: document.documentElement.style.setProperty('--wgPositionVertical', wgPositionVertical)
84
- $: document.documentElement.style.setProperty('--widgetLeftSideBorder', widgetLeftSideBorder + 'px')
85
- $: document.documentElement.style.setProperty('--widgetRightSideBorder', widgetRightSideBorder + 'px')
86
- $: document.documentElement.style.setProperty('--widgetMarginRight', widgetMarginRight + 'px')
87
- $: document.documentElement.style.setProperty('--widgetMarginLeft', widgetMarginLeft + 'px')
85
+ $: document.documentElement.style.setProperty(
86
+ "--wgPositionHorizintal",
87
+ wgPositionHorizintal
88
+ );
89
+ $: document.documentElement.style.setProperty(
90
+ "--wgPositionVertical",
91
+ wgPositionVertical
92
+ );
93
+ $: document.documentElement.style.setProperty(
94
+ "--widgetLeftSideBorder",
95
+ widgetLeftSideBorder + "px"
96
+ );
97
+ $: document.documentElement.style.setProperty(
98
+ "--widgetRightSideBorder",
99
+ widgetRightSideBorder + "px"
100
+ );
101
+ $: document.documentElement.style.setProperty(
102
+ "--widgetMarginRight",
103
+ widgetMarginRight + "px"
104
+ );
105
+ $: document.documentElement.style.setProperty(
106
+ "--widgetMarginLeft",
107
+ widgetMarginLeft + "px"
108
+ );
88
109
 
89
110
  let userClosedWidget = 0;
90
111
  let emailx = "";
91
112
  let commentx = "";
92
- let reactionTypex ="";
93
- const closeOne = (email,comment,reactionType) => {
94
- let widgetResponse={
95
- email:email,
96
- comment:comment,
97
- reaction:reactionType
98
- }
113
+ let reactionTypex = "";
114
+ const closeOne = (email, comment, reactionType) => {
115
+ let widgetResponse = {
116
+ email: email,
117
+ comment: comment,
118
+ reaction: Number(reactionType),
119
+ };
99
120
 
100
-
101
121
  let event = new CustomEvent("fbEvent", {
102
- bubbles: false,
103
- detail: widgetResponse,
104
- });
122
+ bubbles: false,
123
+ detail: widgetResponse,
124
+ });
105
125
  window.dispatchEvent(event);
106
- console.log(widgetResponse);
107
- openThanksMessage()};
126
+ console.log(widgetResponse);
127
+ openThanksMessage();
128
+ };
108
129
 
109
- const closeBeforeFinsihing = (email,comment,reactionType) => {
130
+ const closeBeforeFinsihing = (email, comment, reactionType) => {
110
131
  emailx = email;
111
132
  commentx = comment;
112
- reactionTypex = reactionType
113
- let widgetResponse={
114
- email:email,
115
- comment:comment,
116
- reaction:reactionType
117
- }
118
-
119
- if(userClosedWidget == 1){
120
- let event = new CustomEvent("fbEvent", {
133
+ reactionTypex = Number(reactionType);
134
+ let widgetResponse = {
135
+ email: email,
136
+ comment: comment,
137
+ reaction: reactionType,
138
+ };
139
+ if (userClosedWidget == 1) {
140
+ console.log("hi", widgetResponse);
141
+ let event = new CustomEvent("fbEvent", {
121
142
  bubbles: false,
122
143
  detail: widgetResponse,
123
144
  });
124
- window.dispatchEvent(event);
125
- console.log(widgetResponse);
145
+ window.dispatchEvent(event);
146
+ console.log(widgetResponse);
126
147
  }
127
- };
128
-
129
-
148
+ };
130
149
 
131
150
  const openThanksMessage = () => {
132
151
  visible = !visible;
133
152
  thanksMessageVisible = !thanksMessageVisible;
134
-
135
- }
153
+ };
154
+
136
155
  const closeThanksMessage = () => {
137
156
  thanksMessageVisible = !thanksMessageVisible;
138
- setTimeout(function(){
139
- buttonVisible = !buttonVisible;
140
- },350);
141
- }
142
-
157
+ setTimeout(function () {
158
+ buttonVisible = !buttonVisible;
159
+ }, 350);
160
+ };
161
+
143
162
  const openWidget = () => {
144
163
  visible = !visible;
145
- buttonVisible = !buttonVisible;
164
+ buttonVisible = !buttonVisible;
146
165
  };
166
+
147
167
  const closeWidget = () => {
148
168
  userClosedWidget = 1;
149
- closeBeforeFinsihing(emailx,commentx,reactionTypex);
169
+ if (reactionTypex != 0) {
170
+ closeBeforeFinsihing(emailx, commentx, reactionTypex);
171
+ }
150
172
  visible = !visible;
151
- setTimeout(function(){
152
- buttonVisible = !buttonVisible;
153
- },350);
173
+ setTimeout(function () {
174
+ buttonVisible = !buttonVisible;
175
+ }, 350);
154
176
  };
155
- </script>
156
177
 
178
+ </script>
157
179
 
158
- <container>
159
-
180
+ <fsContainer>
160
181
  {#if buttonVisible}
161
- <div class="widget" on:click={openWidget}>
162
- <div id="feedbackTxt">{widgetName}</div>
163
- <div id="mainIcon">
164
- <MainIcon bind:fill={iconColor}/>
182
+ <div class="fsWidget" on:click={openWidget}>
183
+ <div id="fsFeedbackTxt">{widgetName}</div>
184
+ <div id="fsMainIcon">
185
+ <MainIcon bind:fill={iconColor} />
165
186
  </div>
166
187
  </div>
167
188
  {/if}
168
189
 
169
190
  {#if visible}
170
- <div
171
-
172
- class="cont"
173
- in:fly="{{ x: inTransitionX, duration: 500 }}"
174
- >
175
- <div class="closeCont" on:click={closeWidget}>
176
- <p id="closeIcon">X</p>
177
- </div>
178
- <ReactionPage closeHandler={closeOne} bind:feedbackData={feedback} closeHandlerBeforeFinishing={closeBeforeFinsihing}/>
179
-
191
+ <div class="fsCont" in:fly={{ x: inTransitionX, duration: 500 }}>
192
+ <div class="fsCloseCont" on:click={closeWidget}>
193
+ <p id="fsCloseIcon">X</p>
194
+ </div>
195
+ <ReactionPage
196
+ closeHandler={closeOne}
197
+ bind:feedbackData={feedback}
198
+ closeHandlerBeforeFinishing={closeBeforeFinsihing}
199
+ />
180
200
  </div>
181
201
  {/if}
182
202
  {#if thanksMessageVisible}
183
- <div class ="thanksMessageCont" out:fly="{{ x: outTransitionX, duration: 300 }}">
184
- <div class="closeCont" on:click={closeThanksMessage}>
185
- <p id="closeIcon">X</p>
186
- </div>
187
- <div style=" width: 61%;
203
+ <div
204
+ class="fsThanksMessageCont"
205
+ out:fly={{ x: outTransitionX, duration: 300 }}
206
+ >
207
+ <div class="fsCloseCont" on:click={closeThanksMessage}>
208
+ <p id="fsCloseIcon">X</p>
209
+ </div>
210
+ <div
211
+ style=" width: 61%;
188
212
  text-align: center;
189
213
  margin-top: 7%;
190
- margin-left: 20%;">{feedback.wgThanksMsg}</div>
191
- </div>
214
+ margin-left: 20%;"
215
+ >
216
+ {feedback.wgThanksMsg}
217
+ </div>
218
+ </div>
192
219
  {/if}
193
- </container>
194
-
220
+ </fsContainer>