groundworkcss-rails 0.2.2 → 0.2.3

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 (40) hide show
  1. data/lib/groundworkcss/rails/version.rb +1 -1
  2. data/lib/groundworkcss/rails/version.rb~ +1 -1
  3. data/vendor/assets/javascripts/groundwork-hook.js +1 -1
  4. data/vendor/assets/javascripts/groundworkcss/groundwork.all.js +654 -0
  5. data/vendor/assets/javascripts/groundworkcss/groundwork.js +1 -430
  6. data/vendor/assets/javascripts/groundworkcss/plugins/jquery.tooltip.js +1 -1
  7. data/vendor/assets/stylesheets/groundworkcss-scss/_classes.scss +72 -78
  8. data/vendor/assets/stylesheets/groundworkcss-scss/_helpers.scss +78 -0
  9. data/vendor/assets/stylesheets/groundworkcss-scss/_mixins.scss +40 -0
  10. data/vendor/assets/stylesheets/groundworkcss-scss/_reset.scss +2 -3
  11. data/vendor/assets/stylesheets/groundworkcss-scss/_responsive.scss +26 -9
  12. data/vendor/assets/stylesheets/groundworkcss-scss/_tabs.scss +1 -1
  13. data/vendor/assets/stylesheets/groundworkcss-scss/_typography.scss +6 -6
  14. data/vendor/assets/stylesheets/groundworkcss-scss/groundwork.scss +9 -4
  15. metadata +296 -319
  16. data/app/helpers/breadcrumbs_helper.rb~ +0 -5
  17. data/app/helpers/flash_block_helper.rb~ +0 -18
  18. data/app/helpers/flash_helper.rb~ +0 -21
  19. data/app/helpers/groundwork_flash_helper.rb~ +0 -21
  20. data/app/helpers/modal_helper.rb~ +0 -42
  21. data/app/helpers/social_glyph_helper.rb~ +0 -12
  22. data/lib/generators/groundworkcss/install/install_generator.rb~ +0 -44
  23. data/lib/generators/groundworkcss/install/templates/application.css.scss~ +0 -8
  24. data/lib/generators/groundworkcss/install/templates/application.css~ +0 -7
  25. data/lib/generators/groundworkcss/install/templates/application.js~ +0 -10
  26. data/lib/generators/groundworkcss/install/templates/groundwork-and-overrides.scss~ +0 -12
  27. data/lib/generators/groundworkcss/install/templates/groundwork-overrides.scss~ +0 -7
  28. data/lib/generators/groundworkcss/install/templates/groundwork.coffee~ +0 -0
  29. data/lib/generators/groundworkcss/install/templates/groundwork.js~ +0 -1
  30. data/lib/generators/groundworkcss/layout/layout_generator.rb~ +0 -21
  31. data/lib/generators/groundworkcss/layout/templates/_header.html.erb~ +0 -24
  32. data/lib/generators/groundworkcss/layout/templates/_sidebar.html.erb~ +0 -18
  33. data/lib/generators/groundworkcss/layout/templates/layout.html.erb~ +0 -44
  34. data/lib/groundworkcss/rails/bootstrap.rb~ +0 -2
  35. data/lib/groundworkcss/rails/engine.rb~ +0 -30
  36. data/lib/twitter-bootstrap-rails.rb~ +0 -10
  37. data/vendor/assets/javascripts/groundwork.js~ +0 -8
  38. data/vendor/assets/javascripts/groundworkcss/groundwork.js~ +0 -7
  39. data/vendor/assets/stylesheets/groundworkcss-scss/_font-awesome.scss~ +0 -534
  40. data/vendor/assets/stylesheets/groundworkcss-scss/_social-icons.scss~ +0 -92
@@ -136,7 +136,7 @@
136
136
  }
137
137
  }
138
138
  });
139
- $('.tabs > ul > li > a').not('.disabled').click(function(e) {
139
+ $('.tabs > ul > li > a').not('.disabled').on('click', function(e) {
140
140
  var tabs;
141
141
  tabs = $(this).parents('.tabs');
142
142
  tabs.find('> ul li a').removeClass('active');
@@ -222,433 +222,4 @@
222
222
  });
223
223
  };
224
224
 
225
- /* --------------------------------------------
226
- Begin jquery.tooltip.coffee
227
- --------------------------------------------
228
- */
229
-
230
-
231
- /*
232
- *
233
- * jQuery Tooltips by Gary Hepting - https://github.com/ghepting/jquery-tooltips
234
- *
235
- * Open source under the BSD License.
236
- *
237
- * Copyright © 2013 Gary Hepting. All rights reserved.
238
- *
239
- */
240
-
241
-
242
- (function($) {
243
- return $.fn.tooltip = function(options) {
244
- var closetooltip, defaults, delayShow, getElementPosition, resettooltip, setPosition, showtooltip, tooltip, trigger;
245
- defaults = {
246
- topOffset: 0,
247
- delay: 100,
248
- speed: 100
249
- };
250
- options = $.extend(defaults, options);
251
- tooltip = $('#tooltip');
252
- delayShow = '';
253
- trigger = '';
254
- if ($('#tooltip').length !== 1) {
255
- tooltip = $("<div id=\"tooltip\"></div>");
256
- tooltip.appendTo("body").hide();
257
- }
258
- getElementPosition = function(el) {
259
- var bottom, left, offset, right, top, win;
260
- offset = el.offset();
261
- win = $(window);
262
- return {
263
- top: top = offset.top - win.scrollTop(),
264
- left: left = offset.left - win.scrollLeft(),
265
- bottom: bottom = win.height() - top - el.outerHeight(),
266
- right: right = win.width() - left - el.outerWidth()
267
- };
268
- };
269
- setPosition = function(trigger) {
270
- var attrs, coords, height, width;
271
- coords = getElementPosition(trigger);
272
- if (tooltip.outerWidth() > ($(window).width() - 20)) {
273
- tooltip.css('width', $(window).width() - 20);
274
- }
275
- attrs = {};
276
- tooltip.css('max-width', Math.min($(window).width() - parseInt($('body').css('padding-left')) - parseInt($('body').css('padding-right')), parseInt(tooltip.css('max-width'))));
277
- width = tooltip.outerWidth();
278
- height = tooltip.outerHeight();
279
- if (coords.left <= coords.right) {
280
- tooltip.addClass('left');
281
- attrs.left = coords.left;
282
- } else {
283
- tooltip.addClass('right');
284
- attrs.right = coords.right;
285
- }
286
- if ((coords.top - options.topOffset) > (height + 20)) {
287
- tooltip.addClass('top');
288
- attrs.top = (trigger.offset().top - height) - 20;
289
- } else {
290
- tooltip.addClass('bottom');
291
- attrs.top = trigger.offset().top + trigger.outerHeight() - 4;
292
- }
293
- return tooltip.css(attrs);
294
- };
295
- resettooltip = function() {
296
- return tooltip.text('').removeClass('left right top bottom').css({
297
- left: 'auto',
298
- right: 'auto',
299
- top: 'auto',
300
- bottom: 'auto',
301
- width: 'auto',
302
- 'padding-left': 'auto',
303
- 'padding-right': 'auto'
304
- });
305
- };
306
- closetooltip = function() {
307
- tooltip.stop().hide();
308
- resettooltip();
309
- return $('[role=tooltip]').removeClass('on');
310
- };
311
- showtooltip = function(trigger) {
312
- clearTimeout(delayShow);
313
- return delayShow = setTimeout(function() {
314
- tooltip.css({
315
- "opacity": 0,
316
- "display": "block"
317
- }).text(trigger.attr('data-title'));
318
- setPosition(trigger);
319
- trigger.addClass('on');
320
- console.log(tooltip.css('display'));
321
- return tooltip.animate({
322
- top: "+=10",
323
- opacity: 1
324
- }, options.speed);
325
- }, options.delay);
326
- };
327
- this.each(function() {
328
- var $this;
329
- $this = $(this);
330
- $this.attr('role', 'tooltip').attr('data-title', $this.attr('title'));
331
- return $this.removeAttr("title");
332
- });
333
- $('body').on('focus', '[role=tooltip]', function() {
334
- return showtooltip($(this));
335
- }).on('blur', '[role=tooltip]', function() {
336
- clearTimeout(delayShow);
337
- return closetooltip();
338
- }).on('mouseenter', '[role=tooltip]:not(input,select,textarea)', function() {
339
- return showtooltip($(this));
340
- }).on('mouseleave', '[role=tooltip]:not(input,select,textarea)', function() {
341
- clearTimeout(delayShow);
342
- return closetooltip();
343
- });
344
- return $(window).on({
345
- scroll: function() {
346
- trigger = $('[role=tooltip].on');
347
- if (trigger.length) {
348
- setPosition(trigger);
349
- return $('#tooltip').css({
350
- top: "+=10"
351
- });
352
- }
353
- }
354
- });
355
- };
356
- })(jQuery);
357
-
358
- /* --------------------------------------------
359
- Begin jquery.responsiveText.coffee
360
- --------------------------------------------
361
- */
362
-
363
-
364
- /*
365
- *
366
- * jQuery ResponsiveText by Gary Hepting - https://github.com/ghepting/responsiveText
367
- *
368
- * Open source under the BSD License.
369
- *
370
- * Copyright © 2013 Gary Hepting. All rights reserved.
371
- *
372
- */
373
-
374
-
375
- (function($) {
376
- var elems;
377
- elems = [];
378
- $.fn.responsiveText = function(options) {
379
- var settings;
380
- settings = {
381
- compressor: options.compressor || 10,
382
- minSize: options.minSize || Number.NEGATIVE_INFINITY,
383
- maxSize: options.maxSize || Number.POSITIVE_INFINITY
384
- };
385
- return this.each(function() {
386
- var elem;
387
- elem = $(this);
388
- elem.attr('data-compression', settings.compressor);
389
- elem.attr('data-min', settings.minSize);
390
- elem.attr('data-max', settings.maxSize);
391
- elem.css("font-size", Math.floor(Math.max(Math.min(elem.width() / settings.compressor, parseFloat(settings.maxSize)), parseFloat(settings.minSize))));
392
- return elems.push(elem);
393
- });
394
- };
395
- return $(window).on("resize", function() {
396
- return $(elems).each(function() {
397
- var elem;
398
- elem = $(this);
399
- return elem.css("font-size", Math.floor(Math.max(Math.min(elem.width() / (elem.attr('data-compression')), parseFloat(elem.attr('data-max'))), parseFloat(elem.attr('data-min')))));
400
- });
401
- });
402
- })(jQuery);
403
-
404
- /* --------------------------------------------
405
- Begin jquery.responsiveTables.coffee
406
- --------------------------------------------
407
- */
408
-
409
-
410
- /*
411
- *
412
- * jQuery ResponsiveTables by Gary Hepting - https://github.com/ghepting/responsiveTables
413
- *
414
- * Open source under the BSD License.
415
- *
416
- * Copyright © 2013 Gary Hepting. All rights reserved.
417
- *
418
- */
419
-
420
-
421
- (function($) {
422
- var elems;
423
- elems = [];
424
- $.fn.responsiveTable = function(options) {
425
- var settings;
426
- settings = {
427
- compressor: options.compressor || 10,
428
- minSize: options.minSize || Number.NEGATIVE_INFINITY,
429
- maxSize: options.maxSize || Number.POSITIVE_INFINITY,
430
- padding: 2,
431
- height: "auto",
432
- adjust_parents: true
433
- };
434
- return this.each(function() {
435
- var columns, elem, fontSize, rows;
436
- elem = $(this);
437
- elem.attr('data-compression', settings.compressor);
438
- elem.attr('data-min', settings.minSize);
439
- elem.attr('data-max', settings.maxSize);
440
- elem.attr('data-padding', settings.padding);
441
- columns = $("tr", elem).first().children("th, td").length;
442
- rows = $("tr", elem).length;
443
- if (settings.height !== "auto") {
444
- $this.css("height", settings.height);
445
- if (settings.adjust_parents) {
446
- $this.parents().each(function() {
447
- return $(this).css("height", "100%");
448
- });
449
- }
450
- }
451
- $("tr th, tr td", elem).css("width", Math.floor(100 / columns) + "%");
452
- $("tr th, tr td", elem).css("height", Math.floor(100 / rows) + "%");
453
- fontSize = Math.floor(Math.max(Math.min(elem.width() / settings.compressor, parseFloat(settings.maxSize)), parseFloat(settings.minSize)));
454
- $("tr th, tr td", elem).css("font-size", fontSize + "px");
455
- return elems.push(elem);
456
- });
457
- };
458
- return $(window).on("resize", function() {
459
- return $(elems).each(function() {
460
- var elem, fontSize;
461
- elem = $(this);
462
- fontSize = Math.floor(Math.max(Math.min(elem.width() / (elem.attr('data-compression')), parseFloat(elem.attr('data-max'))), parseFloat(elem.attr('data-min'))));
463
- return $("tr th, tr td", elem).css("font-size", fontSize + "px");
464
- });
465
- });
466
- })(jQuery);
467
-
468
- /* --------------------------------------------
469
- Begin jquery.modals.coffee
470
- --------------------------------------------
471
- */
472
-
473
-
474
- /*
475
- *
476
- * jQuery Modals by Gary Hepting
477
- * https://github.com/ghepting/modal
478
- *
479
- * Based on Avgrund by Hakim El Hattab <3
480
- *
481
- */
482
-
483
-
484
- (function($) {
485
- var elems, modals;
486
- if ($('div#iframeModal').length < 1) {
487
- $('body').append('<div class="iframe modal" id="iframeModal"><iframe marginheight="0" marginwidth="0" frameborder="0"></iframe></div>');
488
- $('div#iframeModal').prepend('<i class="close icon-remove"></i>').prepend('<i class="fullscreen icon-resize-full"></i>');
489
- }
490
- $('a.modal').each(function() {
491
- $(this).attr('data-url', $(this).attr('href'));
492
- return $(this).attr('href', '#iframeModal');
493
- });
494
- $('a.modal').on("click", function(e) {
495
- $('div#iframeModal iframe').replaceWith('<iframe marginheight="0" marginwidth="0" frameborder="0" width="100%" height="100%" src="' + $(this).attr('data-url') + '"></iframe>');
496
- e.preventDefault();
497
- return false;
498
- });
499
- elems = [];
500
- $.fn.modal = function() {
501
- this.each(function() {
502
- $(this).not('#iframeModal').wrapInner('<div class="modal-content"></div>');
503
- $(this).prepend('<i class="close icon-remove"></i>').prepend('<i class="fullscreen icon-resize-full"></i>').appendTo('body');
504
- return $('[href=#' + $(this).attr('id') + ']').on("click", function(e) {
505
- modals.open($(this).attr('href'));
506
- e.preventDefault();
507
- return false;
508
- });
509
- });
510
- $('div.modal .close').on("click", function() {
511
- return modals.close();
512
- });
513
- return $('div.modal .fullscreen').on("click", function() {
514
- return modals.fullscreen($(this).parent('div.modal'));
515
- });
516
- };
517
- modals = (function() {
518
- var close, fullscreen, open;
519
- $('html').addClass('modal-ready');
520
- if ($("#overlay").length < 1) {
521
- $('body').append('<div id="overlay"></div>');
522
- }
523
- $('#overlay, div.modal .close').bind("click", function(e) {
524
- return close();
525
- });
526
- open = function(elem) {
527
- $(window).bind("keydown", function(e) {
528
- var keyCode;
529
- keyCode = (e.which ? e.which : e.keyCode);
530
- if (keyCode === 27) {
531
- return close();
532
- }
533
- });
534
- $(elem).addClass("active");
535
- if (!$(elem).hasClass('iframe')) {
536
- $(elem).css({
537
- width: 'auto',
538
- height: 'auto'
539
- });
540
- $(elem).css({
541
- height: $(elem).outerHeight()
542
- });
543
- }
544
- $(elem).css({
545
- top: '50%',
546
- left: '50%',
547
- 'margin-top': ($(elem).outerHeight() / -2) + 'px',
548
- 'margin-left': ($(elem).outerWidth() / -2) + 'px'
549
- });
550
- setTimeout(function() {
551
- return $('html').addClass("modal-active");
552
- }, 0);
553
- setTimeout(function() {
554
- return $('html').removeClass('modal-ready');
555
- }, 400);
556
- };
557
- close = function() {
558
- var modal;
559
- modal = $('div.modal.active');
560
- $(window).unbind("keydown");
561
- $('html').removeClass("modal-active").addClass('modal-ready');
562
- if (modal.hasClass('iframe')) {
563
- $('div#iframeModal iframe').replaceWith('<iframe marginheight="0" marginwidth="0" frameborder="0"></iframe>');
564
- modal.css({
565
- width: '80%',
566
- height: '80%'
567
- });
568
- } else {
569
- modal.css({
570
- width: 'auto',
571
- height: 'auto'
572
- });
573
- }
574
- modal.css({
575
- top: '10%',
576
- left: '10%',
577
- 'max-width': '80%',
578
- 'max-height': '80%',
579
- 'margin-top': 0,
580
- 'margin-left': 0
581
- });
582
- modal.removeClass("active").removeClass("fullscreen");
583
- $('i.fullscreen', modal).removeClass('icon-resize-small').addClass('icon-resize-full');
584
- };
585
- fullscreen = function(elem) {
586
- if ($('div.modal.active').hasClass('fullscreen')) {
587
- $('div.modal i.fullscreen').removeClass('icon-resize-small').addClass('icon-resize-full');
588
- if ($('div.modal.active').hasClass('iframe')) {
589
- $('div.modal.active').css({
590
- width: '80%',
591
- height: '80%'
592
- });
593
- } else {
594
- $('div.modal.active').css({
595
- width: 'auto',
596
- height: 'auto'
597
- });
598
- $('div.modal.active').css({
599
- height: $('div.modal.active').outerHeight()
600
- });
601
- }
602
- $('div.modal.active').removeClass('fullscreen').css({
603
- 'max-width': '80%',
604
- 'max-height': '80%'
605
- });
606
- $('div.modal.active').delay(100).css({
607
- top: '50%',
608
- left: '50%',
609
- 'margin-top': ($('div.modal.active').outerHeight() / -2) + 'px',
610
- 'margin-left': ($('div.modal.active').outerWidth() / -2) + 'px'
611
- });
612
- } else {
613
- $('div.modal i.fullscreen').addClass('icon-resize-small').removeClass('icon-resize-full');
614
- $('div.modal.active').addClass('fullscreen').css({
615
- top: 0,
616
- left: 0,
617
- 'margin-top': 0,
618
- 'margin-left': 0,
619
- width: '100%',
620
- height: '100%',
621
- 'max-width': '100%',
622
- 'max-height': '100%'
623
- });
624
- }
625
- };
626
- return {
627
- open: open,
628
- close: close,
629
- fullscreen: fullscreen
630
- };
631
- })();
632
- return $(window).resize(function() {
633
- return $('div.modal.active').each(function() {
634
- if (!$(this).hasClass('fullscreen')) {
635
- $(this).removeClass('active').css({
636
- top: '50%',
637
- left: '50%',
638
- 'margin-top': ($(this).outerHeight() / -2) + 'px',
639
- 'margin-left': ($(this).outerWidth() / -2) + 'px'
640
- }).addClass('active');
641
- if (!$(this).hasClass('iframe')) {
642
- $(this).css({
643
- height: 'auto'
644
- });
645
- return $(this).css({
646
- height: $(this).outerHeight()
647
- });
648
- }
649
- }
650
- });
651
- });
652
- })(jQuery);
653
-
654
225
  }).call(this);
@@ -67,7 +67,7 @@
67
67
  return tooltip.css(attrs);
68
68
  };
69
69
  resettooltip = function() {
70
- return tooltip.text('').css({
70
+ return tooltip.text('').removeClass('left right top bottom').css({
71
71
  left: 'auto',
72
72
  right: 'auto',
73
73
  top: 'auto',
@@ -61,89 +61,83 @@
61
61
  .twelfth, .twelfths {
62
62
  @if $both {
63
63
  &:not(.small-tablet):not(.mobile) {
64
- width:100% !important;
65
- float:none;
66
- clear:both;
67
- // reset push
68
- &.right-one,
69
- &.right-two,
70
- &.right-three,
71
- &.right-four,
72
- &.right-five,
73
- &.right-six,
74
- &.right-seven,
75
- &.right-eight,
76
- &.right-nine,
77
- &.right-ten,
78
- &.right-eleven { left:0; }
79
- // reset pull
80
- &.left-one,
81
- &.left-two,
82
- &.left-three,
83
- &.left-four,
84
- &.left-five,
85
- &.left-six,
86
- &.left-seven,
87
- &.left-eight,
88
- &.left-nine,
89
- &.left-ten,
90
- &.left-eleven { right:0; }
91
- // reset offset
92
- &.skip-one,
93
- &.skip-two,
94
- &.skip-three,
95
- &.skip-four,
96
- &.skip-five,
97
- &.skip-six,
98
- &.skip-seven,
99
- &.skip-eight,
100
- &.skip-nine,
101
- &.skip-ten,
102
- &.skip-eleven { margin-left:0; }
64
+ @include grid-collapse();
103
65
  }
104
66
  }
105
67
  @else {
106
68
  &:not(.mobile) {
107
- width:100% !important;
108
- float:none;
109
- clear:both;
110
- // reset push
111
- &.right-one,
112
- &.right-two,
113
- &.right-three,
114
- &.right-four,
115
- &.right-five,
116
- &.right-six,
117
- &.right-seven,
118
- &.right-eight,
119
- &.right-nine,
120
- &.right-ten,
121
- &.right-eleven { left:0; }
122
- // reset pull
123
- &.left-one,
124
- &.left-two,
125
- &.left-three,
126
- &.left-four,
127
- &.left-five,
128
- &.left-six,
129
- &.left-seven,
130
- &.left-eight,
131
- &.left-nine,
132
- &.left-ten,
133
- &.left-eleven { right:0; }
134
- // reset offset
135
- &.skip-one,
136
- &.skip-two,
137
- &.skip-three,
138
- &.skip-four,
139
- &.skip-five,
140
- &.skip-six,
141
- &.skip-seven,
142
- &.skip-eight,
143
- &.skip-nine,
144
- &.skip-ten,
145
- &.skip-eleven { margin-left:0; }
69
+ @include grid-collapse();
146
70
  }
147
71
  }
148
72
  }
149
73
  }
74
+
75
+ @mixin grid-collapse() {
76
+ width:100% !important;
77
+ float:none;
78
+ clear:both;
79
+ // reset push
80
+ &.right-one,
81
+ &.right-two,
82
+ &.right-three,
83
+ &.right-four,
84
+ &.right-five,
85
+ &.right-six,
86
+ &.right-seven,
87
+ &.right-eight,
88
+ &.right-nine,
89
+ &.right-ten,
90
+ &.right-eleven { left:0; }
91
+ // reset pull
92
+ &.left-one,
93
+ &.left-two,
94
+ &.left-three,
95
+ &.left-four,
96
+ &.left-five,
97
+ &.left-six,
98
+ &.left-seven,
99
+ &.left-eight,
100
+ &.left-nine,
101
+ &.left-ten,
102
+ &.left-eleven { right:0; }
103
+ // reset offset
104
+ &.skip-one,
105
+ &.skip-two,
106
+ &.skip-three,
107
+ &.skip-four,
108
+ &.skip-five,
109
+ &.skip-six,
110
+ &.skip-seven,
111
+ &.skip-eight,
112
+ &.skip-nine,
113
+ &.skip-ten,
114
+ &.skip-eleven { margin-left:0; }
115
+ }
116
+
117
+ // helper classes
118
+ @mixin helper-classes() {
119
+
120
+ $helpers: inline block zero pull-right pull-left border-right border-left border-top border-bottom align-top align-right align-bottom align-left align-center justify center clear clearfix space round rotate-90 rotate-180 rotate-270 rotate-90-ctr rotate-180-ctr rotate-270-ctr;
121
+ // function to generate the helpers
122
+ @for $i from 1 through length($helpers) {
123
+ .#{nth($helpers, $i)} { @extend %#{nth($helpers, $i)}; }
124
+ }
125
+
126
+ $spacers: padded pad-top pad-right pad-bottom pad-left gapped gap-top gap-right gap-bottom gap-left;
127
+ $modifiers: double triple;
128
+ // function to generate the spacers
129
+ @for $i from 1 through length($spacers) {
130
+ .#{nth($spacers, $i)} { @extend %#{nth($spacers, $i)}; }
131
+
132
+ }
133
+
134
+ .stick { @extend %stick;
135
+ &.middle { @extend %middle; }
136
+ &.center { @extend %center; }
137
+ &.right { @extend %right; }
138
+ &.left { @extend %left; }
139
+ &.top { @extend %top; }
140
+ &.bottom { @extend %bottom; }
141
+ }
142
+
143
+ }