social_cheesecake 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,36 @@
1
+ var socialCheesecake = socialCheesecake || {};
2
+ (function() {
3
+ //General variable settings (with default values)
4
+ socialCheesecake.colors = {
5
+ normalSector : {
6
+ background : "#FEEEBD",
7
+ border : "#D19405",
8
+ font : "#D19405",
9
+ click : "#FFE481",
10
+ mouseover : "#FFE481",
11
+ mouseup : "#FEEEBD",
12
+ mouseout : "#FEEEBD"
13
+ },
14
+ extraSector : {
15
+ background : "#FFBABA",
16
+ border : "#BD1823",
17
+ font : "#BD1823",
18
+ click : "#FF5964",
19
+ mouseover : "#FF5964",
20
+ mouseup : "#FFBABA",
21
+ mouseout : "#FFBABA"
22
+ },
23
+ greySector : {
24
+ background : "#f5f5f5",
25
+ click : "#f5f5f5",
26
+ mouseover : "#f5f5f5",
27
+ mouseout : "#f5f5f5",
28
+ mouseup : "#f5f5f5",
29
+ font : "#666",
30
+ border : "#666"
31
+ }
32
+ };
33
+ socialCheesecake.colors.normalSubsector = socialCheesecake.colors.normalSector;
34
+ socialCheesecake.colors.extraSubsector = socialCheesecake.colors.extraSector;
35
+ socialCheesecake.colors.greySubsector = socialCheesecake.colors.greySector;
36
+ }) ();
@@ -0,0 +1,116 @@
1
+ var socialCheesecake = socialCheesecake || {};
2
+ (function() {
3
+ socialCheesecake.eventCallbackHandlers = {
4
+ normalSector : {
5
+ mouseover : function(sector) {
6
+ var cheesecake = sector.getCheesecake();
7
+
8
+ document.body.style.cursor = "pointer";
9
+ cheesecake.grid.focus(sector.actors);
10
+ sector.focus();
11
+ if(cheesecake.highlightedSector != null) {
12
+ cheesecake.highlightedSector.fan(false, function() {
13
+ sector.fan(true);
14
+ });
15
+ } else {
16
+ sector.fan(true);
17
+ }
18
+ cheesecake.setHighlightedSector(sector);
19
+ },
20
+ mouseout : function(sector) {
21
+ var cheesecake = sector.getCheesecake();
22
+
23
+ document.body.style.cursor = "default";
24
+ cheesecake.grid.unfocusAll();
25
+ sector.unfocus();
26
+ cheesecake.setHighlightedSector(null);
27
+ sector.fan(false);
28
+ },
29
+ click : function(sector) {
30
+ var cheesecake = sector.getCheesecake();
31
+ cheesecake.focusAndBlurCheesecake(sector);
32
+ cheesecake.grid.unfocus(sector.actors);
33
+ }
34
+ },
35
+ extraSector : {
36
+ mouseover : function(sector) {
37
+ var cheesecake = sector.getCheesecake();
38
+
39
+ document.body.style.cursor = "pointer";
40
+ sector.focus();
41
+ },
42
+ mouseout : function(sector) {
43
+ var cheesecake = sector.getCheesecake();
44
+
45
+ document.body.style.cursor = "default";
46
+ sector.unfocus();
47
+ },
48
+ click : function(sector) {
49
+ var cheesecake = sector.getCheesecake();
50
+
51
+ cheesecake.focusAndBlurCheesecake(sector);
52
+ cheesecake.addNewSector();
53
+ }
54
+ },
55
+ greySector : {
56
+ mouseout : function() {
57
+ document.body.style.cursor = "default";
58
+ },
59
+ click : function() {
60
+ return;
61
+ },
62
+ mouseup : function() {
63
+ return;
64
+ },
65
+ mouseover : function() {
66
+ document.body.style.cursor = "pointer";
67
+ }
68
+ },
69
+ normalSubsector : {
70
+ mouseover : function(subsector) {
71
+ var cheesecake = subsector.getCheesecake();
72
+ document.body.style.cursor = "pointer";
73
+ if(subsector.parent.subsectors.length < 1) cheesecake.grid.focus(subsector.actors);
74
+ cheesecake.setHighlightedSector(subsector);
75
+ },
76
+ mouseout : function(subsector) {
77
+ var cheesecake = subsector.getCheesecake();
78
+ document.body.style.cursor = "default";
79
+ if(subsector.parent.subsectors.length < 1) cheesecake.grid.unfocus(subsector.actors);
80
+ cheesecake.setHighlightedSector(subsector.parent);
81
+ },
82
+ click : function(subsector) {
83
+ var cheesecake = subsector.getCheesecake();
84
+ var selectedActors = cheesecake.grid.getSelectedActors();
85
+ if(selectedActors.length > 0)
86
+ subsector.changeMembership(selectedActors);
87
+ },
88
+ mouseup : function() {
89
+ return;
90
+ }
91
+ },
92
+ extraSubsector : {
93
+ mouseover : function(sector) {
94
+ sector.resizeWidth({
95
+ width : (sector.originalAttr.rOut - sector.originalAttr.rIn) * 1.5,
96
+ anchor : "m",
97
+ step : 1
98
+ });
99
+ },
100
+ mouseout : function(sector) {
101
+ sector.resizeWidth({
102
+ width : (sector.originalAttr.rOut - sector.originalAttr.rIn),
103
+ anchor : (sector.rIn == 0 ) ? "rin" : "m",
104
+ step : 1,
105
+ priority : true
106
+ })
107
+ },
108
+ click : function(subsector) {
109
+ subsector.parent.turnExtraIntoNewSubsector(subsector.simulate);
110
+ },
111
+ mouseup : function() {
112
+ return;
113
+ }
114
+ }
115
+ }
116
+ })();
@@ -1,89 +1,85 @@
1
- var socialCheesecake = socialCheesecake || {};
2
- (function() {
3
- socialCheesecake.Grid = function (settings){
4
- if (!settings) throw "No arguments passed to the function";
5
-
1
+ var socialCheesecake = socialCheesecake || {};
2
+ (function() {
3
+
4
+ socialCheesecake.Grid = function(settings) {
5
+ if(!settings)
6
+ throw "No arguments passed to the function";
7
+
6
8
  //Actors dimensions and positions
7
9
  this.actors = [];
8
10
  this.parent = settings.parent;
9
11
  this.id = settings.grid_id;
10
12
  this.divIdPrefix = settings.divIdPrefix;
11
- this.visibleActors = [];
13
+ socialCheesecake.Grid.maxOpacity = settings.maxOpacity;
14
+ socialCheesecake.Grid.minOpacity = settings.minOpacity;
12
15
  }
13
-
14
- socialCheesecake.Grid.prototype.addActor = function (actor_info, subsector) {
16
+
17
+ socialCheesecake.Grid.prototype.addActor = function(actor_info, subsector) {
15
18
  var actors = this.actors;
16
- var visibleActors = this.visibleActors;
17
- var maxVisibleActors = socialCheesecake.Cheesecake.getMaxVisibleActors();
18
19
  var actor;
19
-
20
+
20
21
  //Check if the actor is already in the array
21
22
  var actorAlreadyDeclared = false;
22
- for (var i in actors){
23
- if (actors[i].id == actor_info.id){
23
+ for(var i in actors) {
24
+ if(actors[i].id == actor_info.id) {
24
25
  actorAlreadyDeclared = true;
25
26
  actor = actors[i];
26
27
  //Check if the subsector has already been declared a parent of the actor
27
28
  var subsectorAlreadyDeclared = false;
28
- for ( var parent in actor.parents){
29
- if (actor.parents[parent] == subsector) subsectorAlreadyDeclared=true;
29
+ for(var parent in actor.parents) {
30
+ if(actor.parents[parent] == subsector)
31
+ subsectorAlreadyDeclared = true;
30
32
  }
31
- if (!subsectorAlreadyDeclared) actor.parents.push(subsector);
33
+ if(!subsectorAlreadyDeclared)
34
+ actor.parents.push(subsector);
32
35
  }
33
36
  }
34
37
  // If the actor was not in the array, create it and add it to the array
35
- if(!actorAlreadyDeclared){
38
+ if(!actorAlreadyDeclared) {
36
39
  actor_info.parent = subsector;
37
40
  actor = new socialCheesecake.Actor(actor_info);
38
41
  actors.push(actor);
39
- if(actors.length <= maxVisibleActors ){
40
- actor.show();
41
- visibleActors.push(actor);
42
- }
43
42
  }
44
43
  return actor;
45
44
  }
46
-
47
- socialCheesecake.Grid.prototype.removeActor = function(actor){
45
+
46
+ socialCheesecake.Grid.prototype.removeActor = function(actor) {
48
47
  var actors = this.actors;
49
- for(var actorIndex in actors){
50
- if((actors[actorIndex].id==actor.id)&&(actor.parents.length <= 0 )){
51
- actors.splice(actorIndex,1);
48
+ for(var actorIndex in actors) {
49
+ if((actors[actorIndex].id == actor.id) && (actor.parents.length <= 0 )) {
50
+ actors.splice(actorIndex, 1);
52
51
  }
53
52
  }
54
53
  }
55
-
56
- socialCheesecake.Grid.prototype.getActor = function (id) {
54
+
55
+ socialCheesecake.Grid.prototype.getActor = function(id) {
57
56
  var actors = this.actors;
58
- for (var i in actors){
59
- if (this.actors[i].id == id){
57
+ for(var i in actors) {
58
+ if(this.actors[i].id == id) {
60
59
  return this.actors[i];
61
60
  }
62
61
  }
63
62
  return null
64
63
  }
65
-
66
- socialCheesecake.Grid.prototype.getSelectedActors = function(){
67
- var actors = this.visibleActors;
64
+
65
+ socialCheesecake.Grid.prototype.getSelectedActors = function() {
66
+ var actors = this.actors;
68
67
  var selectedActors = [];
69
- for (var i in actors){
70
- if(actors[i] && actors[i].isSelected()) selectedActors.push(actors[i]);
68
+ for(var i in actors) {
69
+ if(actors[i] && actors[i].isSelected())
70
+ selectedActors.push(actors[i]);
71
71
  }
72
72
  return selectedActors;
73
73
  }
74
-
75
- socialCheesecake.Grid.prototype.getShownActors = function(){
76
- return this.visibleActors;
77
- }
78
-
79
- socialCheesecake.Grid.prototype.select = function (actor_ids) {
74
+
75
+ socialCheesecake.Grid.prototype.select = function(actor_ids) {
80
76
  var actor;
81
-
82
- if (actor_ids instanceof Array) {
83
- for(var i in actor_ids){
77
+
78
+ if( actor_ids instanceof Array) {
79
+ for(var i in actor_ids) {
84
80
  actor = actor_ids[i];
85
- if (actor){
86
- if(!(actor instanceof socialCheesecake.Actor)){
81
+ if(actor) {
82
+ if(!( actor instanceof socialCheesecake.Actor)) {
87
83
  actor = this.getActor(actor);
88
84
  }
89
85
  actor.select();
@@ -91,25 +87,25 @@ var socialCheesecake = socialCheesecake || {};
91
87
  }
92
88
  } else {
93
89
  actor = actor_ids;
94
- if(!(actor_ids instanceof socialCheesecake.Actor)){
90
+ if(!( actor_ids instanceof socialCheesecake.Actor)) {
95
91
  actor = this.getActor(actor_ids);
96
92
  }
97
93
  actor.select();
98
94
  }
99
95
  }
100
-
101
- socialCheesecake.Grid.prototype.selectAll = function () {
102
- this.select(this.visibleActors);
96
+
97
+ socialCheesecake.Grid.prototype.selectAll = function() {
98
+ this.select(this.actors);
103
99
  }
104
-
105
- socialCheesecake.Grid.prototype.unselect = function (actor_ids) {
100
+
101
+ socialCheesecake.Grid.prototype.unselect = function(actor_ids) {
106
102
  var actor;
107
-
108
- if (actor_ids instanceof Array) {
109
- for(var i in actor_ids){
103
+
104
+ if( actor_ids instanceof Array) {
105
+ for(var i in actor_ids) {
110
106
  actor = actor_ids[i];
111
- if (actor){
112
- if(!(actor instanceof socialCheesecake.Actor)){
107
+ if(actor) {
108
+ if(!( actor instanceof socialCheesecake.Actor)) {
113
109
  actor = this.getActor(actor);
114
110
  }
115
111
  actor.unselect();
@@ -117,25 +113,25 @@ var socialCheesecake = socialCheesecake || {};
117
113
  }
118
114
  } else {
119
115
  actor = actor_ids;
120
- if(!(actor_ids instanceof socialCheesecake.Actor)){
116
+ if(!( actor_ids instanceof socialCheesecake.Actor)) {
121
117
  actor = this.getActor(actor_ids);
122
118
  }
123
119
  actor.unselect();
124
120
  }
125
121
  }
126
-
127
- socialCheesecake.Grid.prototype.unselectAll = function () {
128
- this.unselect(this.visibleActors);
122
+
123
+ socialCheesecake.Grid.prototype.unselectAll = function() {
124
+ this.unselect(this.actors);
129
125
  }
130
-
131
- socialCheesecake.Grid.prototype.focus = function (actor_ids) {
126
+
127
+ socialCheesecake.Grid.prototype.focus = function(actor_ids) {
132
128
  var actor;
133
-
134
- if (actor_ids instanceof Array) {
135
- for(var i in actor_ids){
129
+
130
+ if( actor_ids instanceof Array) {
131
+ for(var i in actor_ids) {
136
132
  actor = actor_ids[i];
137
- if (actor){
138
- if(!(actor instanceof socialCheesecake.Actor)){
133
+ if(actor) {
134
+ if(!( actor instanceof socialCheesecake.Actor)) {
139
135
  actor = this.getActor(actor);
140
136
  }
141
137
  actor.focus();
@@ -143,189 +139,156 @@ var socialCheesecake = socialCheesecake || {};
143
139
  }
144
140
  } else {
145
141
  actor = actor_ids;
146
- if(!(actor_ids instanceof socialCheesecake.Actor)){
142
+ if(!( actor_ids instanceof socialCheesecake.Actor)) {
147
143
  actor = this.getActor(actor_ids);
148
144
  }
149
145
  actor.focus();
150
146
  }
151
147
  }
152
-
153
- socialCheesecake.Grid.prototype.focusAll = function () {
154
- this.focus(this.visibleActors);
148
+
149
+ socialCheesecake.Grid.prototype.focusAll = function() {
150
+ this.focus(this.actors);
155
151
  }
156
-
157
- socialCheesecake.Grid.prototype.hide = function (actor_ids, ignoreSelected) {
152
+
153
+ socialCheesecake.Grid.prototype.hide = function(actor_ids, ignoreSelected) {
158
154
  var actor;
159
- var visibleActors = this.visibleActors;
160
- var visibleActorIndex = -1;
161
-
162
- if (actor_ids instanceof Array) {
163
- for(var i in actor_ids){
155
+
156
+ if( actor_ids instanceof Array) {
157
+ for(var i in actor_ids) {
164
158
  actor = actor_ids[i];
165
- if (actor){
166
- if (!(actor instanceof socialCheesecake.Actor)){
159
+ if(actor) {
160
+ if(!( actor instanceof socialCheesecake.Actor)) {
167
161
  actor = this.getActor(actor);
168
162
  }
169
- if((!actor.isSelected())||(ignoreSelected)){
163
+ if((!actor.isSelected()) || (ignoreSelected)) {
170
164
  actor.hide();
171
- visibleActors[visibleActors.indexOf(actor)] = false;
172
165
  }
173
166
  }
174
- }
167
+ }
175
168
  } else {
176
- if(actor_ids instanceof socialCheesecake.Actor){
169
+ if( actor_ids instanceof socialCheesecake.Actor) {
177
170
  actor = actor_ids;
178
- }else{
171
+ } else {
179
172
  actor = this.getActor(actor_ids);
180
173
  }
181
174
  actor.hide();
182
- visibleActors[visibleActors.indexOf(actor)] = false;
183
- }
184
- visibleActorIndex = visibleActors.indexOf(false);
185
- while(visibleActorIndex >= 0){
186
- visibleActors.splice(visibleActorIndex,1);
187
- visibleActorIndex = visibleActors.indexOf(false);
188
175
  }
189
176
  }
190
-
191
- socialCheesecake.Grid.prototype.hideAll = function () {
192
- this.hide(this.visibleActors);
177
+
178
+ socialCheesecake.Grid.prototype.hideAll = function() {
179
+ this.hide(this.actors);
193
180
  }
194
-
195
- socialCheesecake.Grid.prototype.show = function (actor_ids) {
181
+
182
+ socialCheesecake.Grid.prototype.show = function(actor_ids, ignoreSelected) {
196
183
  var actor;
197
- var visibleActors = this.visibleActors;
198
- var maxActors = Math.min(actor_ids.length, socialCheesecake.Cheesecake.getMaxVisibleActors());
199
-
200
- if (actor_ids instanceof Array) {
201
- for(var i = 0; visibleActors.length < maxActors ; i++){
184
+
185
+ if( actor_ids instanceof Array) {
186
+ for(var i = 0; i < actor_ids.length; i++) {
202
187
  actor = actor_ids[i];
203
- if (actor){
204
- if (!(actor instanceof socialCheesecake.Actor)){
205
- actor = this.getActor(actor);
206
- }
207
- if((!actor.isSelected())||(ignoreSelected)){
208
- actor.show();
209
- if(visibleActors.indexOf(actor) == -1) visibleActors.push(actor);
210
- }
188
+ if(!( actor instanceof socialCheesecake.Actor)) {
189
+ actor = this.getActor(actor);
190
+ }
191
+ if((!actor.isSelected()) || (ignoreSelected)) {
192
+ actor.show();
211
193
  }
212
194
  }
213
- } else if(visibleActors.length < maxActors){
214
- if(actor_ids instanceof socialCheesecake.Actor){
195
+ } else {
196
+ if( actor_ids instanceof socialCheesecake.Actor) {
215
197
  actor = actor_ids;
216
- }else{
198
+ } else {
217
199
  actor = this.getActor(actor_ids);
218
- }
219
- if((!actor.isSelected())||(ignoreSelected)){
200
+ }
201
+ if((!actor.isSelected()) || (ignoreSelected)) {
220
202
  actor.show();
221
- if(visibleActors.indexOf(actor) == -1) visibleActors.push(actor);
222
203
  }
223
204
  }
224
205
  }
225
-
226
- socialCheesecake.Grid.prototype.showAll = function () {
206
+
207
+ socialCheesecake.Grid.prototype.showAll = function() {
227
208
  this.show(this.actors);
228
209
  }
229
-
230
- socialCheesecake.Grid.prototype.unfocus = function (actor_ids) {
210
+
211
+ socialCheesecake.Grid.prototype.unfocus = function(actor_ids) {
231
212
  var actor;
232
-
233
- if (actor_ids instanceof Array) {
234
- for(var i in actor_ids){
213
+
214
+ if( actor_ids instanceof Array) {
215
+ for(var i in actor_ids) {
235
216
  actor = actor_ids[i];
236
- if (actor){
237
- if(!(actor instanceof socialCheesecake.Actor)){
238
- actor = this.getActor(actor);
239
- }
240
- actor.unfocus();
241
- }
217
+ if(!( actor instanceof socialCheesecake.Actor)) {
218
+ actor = this.getActor(actor);
219
+ }
220
+ actor.unfocus();
242
221
  }
243
222
  } else {
244
223
  actor = actor_ids;
245
- if(!(actor_ids instanceof socialCheesecake.Actor)){
224
+ if(!( actor_ids instanceof socialCheesecake.Actor)) {
246
225
  actor = this.getActor(actor_ids);
247
226
  }
248
227
  actor.unfocus();
249
228
  }
250
229
  }
251
-
252
- socialCheesecake.Grid.prototype.unfocusAll = function () {
253
- this.unfocus(this.visibleActors);
230
+
231
+ socialCheesecake.Grid.prototype.unfocusAll = function() {
232
+ this.unfocus(this.actors);
254
233
  }
255
-
256
- socialCheesecake.Grid.prototype.fadeOut = function (actor_ids, time, modifyDisplay, ignoreSelected) {
234
+
235
+ socialCheesecake.Grid.prototype.fadeOut = function(actor_ids, time, modifyDisplay, ignoreSelected) {
257
236
  var actor;
258
- var visibleActors = this.visibleActors;
259
- var visibleActorIndex = -1;
260
-
261
- if (actor_ids instanceof Array) {
262
- for(var i in actor_ids){
237
+
238
+ if( actor_ids instanceof Array) {
239
+ for(var i in actor_ids) {
263
240
  actor = actor_ids[i];
264
- if (actor){
265
- if (!(actor instanceof socialCheesecake.Actor)){
241
+ if(actor) {
242
+ if(!( actor instanceof socialCheesecake.Actor)) {
266
243
  actor = this.getActor(actor);
267
- }
268
- if((!actor.isSelected())||(ignoreSelected)){
244
+ }
245
+ if((!actor.isSelected()) || (ignoreSelected)) {
269
246
  actor.fadeOut(time, modifyDisplay);
270
- visibleActors[visibleActors.indexOf(actor)] = false;
271
247
  }
272
248
  }
273
249
  }
274
250
  } else {
275
- if(actor_ids instanceof socialCheesecake.Actor){
251
+ if( actor_ids instanceof socialCheesecake.Actor) {
276
252
  actor = actor_ids;
277
- }else{
253
+ } else {
278
254
  actor = this.getActor(actor_ids);
279
255
  }
280
- if((!actor.isSelected())||(ignoreSelected)){
256
+ if((!actor.isSelected()) || (ignoreSelected)) {
281
257
  actor.fadeOut(time, modifyDisplay);
282
- visibleActors[visibleActors.indexOf(actor)] = false;
283
258
  }
284
259
  }
285
- visibleActorIndex = visibleActors.indexOf(false);
286
- while(visibleActorIndex >= 0){
287
- visibleActors.splice(visibleActorIndex,1);
288
- visibleActorIndex = visibleActors.indexOf(false);
289
- }
290
260
  }
291
-
292
- socialCheesecake.Grid.prototype.fadeOutAll = function (time, modifyDisplay) {
293
- this.fadeOut(this.visibleActors, time, modifyDisplay);
261
+
262
+ socialCheesecake.Grid.prototype.fadeOutAll = function(time, modifyDisplay) {
263
+ this.fadeOut(this.actors, time, modifyDisplay);
294
264
  }
295
-
296
- socialCheesecake.Grid.prototype.fadeIn = function (actor_ids, time, modifyDisplay, ignoreSelected) {
265
+
266
+ socialCheesecake.Grid.prototype.fadeIn = function(actor_ids, time, modifyDisplay, ignoreSelected) {
297
267
  var actor;
298
- var visibleActors = this.visibleActors;
299
- var maxActors = Math.min(actor_ids.length, socialCheesecake.Cheesecake.getMaxVisibleActors());
300
- if (actor_ids instanceof Array) {
301
- for(var i = 0; visibleActors.length < maxActors ; i++){
268
+
269
+ if( actor_ids instanceof Array) {
270
+ for(var i = 0; i < actor_ids.length; i++) {
302
271
  actor = actor_ids[i];
303
- if (actor){
304
- if (!(actor instanceof socialCheesecake.Actor)){
305
- actor = this.getActor(actor);
306
- }
307
- if((!actor.isSelected())||(ignoreSelected)){
308
- actor.fadeIn(time, modifyDisplay);
309
- if(visibleActors.indexOf(actor) == -1) visibleActors.push(actor);
310
- }
272
+ if(!( actor instanceof socialCheesecake.Actor)) {
273
+ actor = this.getActor(actor);
274
+ }
275
+ if((!actor.isSelected()) || (ignoreSelected)) {
276
+ actor.fadeIn(time, modifyDisplay);
311
277
  }
312
278
  }
313
- } else if(visibleActors.length < maxActors){
314
- if(actor_ids instanceof socialCheesecake.Actor){
279
+ } else {
280
+ if( actor_ids instanceof socialCheesecake.Actor) {
315
281
  actor = actor_ids;
316
- }else{
282
+ } else {
317
283
  actor = this.getActor(actor_ids);
318
- }
319
- if((!actor.isSelected())||(ignoreSelected)){
284
+ }
285
+ if((!actor.isSelected()) || (ignoreSelected)) {
320
286
  actor.fadeIn(time, modifyDisplay);
321
- if(visibleActors.indexOf(actor) == -1) visibleActors.push(actor);
322
287
  }
323
288
  }
324
289
  }
325
-
326
- socialCheesecake.Grid.prototype.fadeInAll = function (time, modifyDisplay) {
290
+
291
+ socialCheesecake.Grid.prototype.fadeInAll = function(time, modifyDisplay) {
327
292
  this.fadeIn(this.actors, time, modifyDisplay);
328
293
  }
329
-
330
294
  })();
331
-