fastlane-plugin-polidea 2.2.0.pre → 3.0.1

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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -13
  3. data/lib/fastlane/plugin/polidea.rb +4 -0
  4. data/lib/fastlane/plugin/polidea/actions/fota_mail.rb +13 -3
  5. data/lib/fastlane/plugin/polidea/actions/fota_s3.rb +36 -29
  6. data/lib/fastlane/plugin/polidea/actions/release_notes.rb +1 -1
  7. data/lib/fastlane/plugin/polidea/actions/release_notes_from_commits.rb +1 -1
  8. data/lib/fastlane/plugin/polidea/helper/page_generator.rb +28 -56
  9. data/lib/fastlane/plugin/polidea/helper/qr_generator.rb +7 -42
  10. data/lib/fastlane/plugin/polidea/version.rb +1 -1
  11. data/templates/install.erb +238 -0
  12. data/{lib/fastlane/plugin/polidea/templates/download.erb → templates/mail.erb} +18 -23
  13. metadata +10 -111
  14. data/lib/fastlane/plugin/polidea/actions/extract_app_icon.rb +0 -172
  15. data/lib/fastlane/plugin/polidea/actions/extract_app_name.rb +0 -100
  16. data/lib/fastlane/plugin/polidea/actions/extract_version.rb +0 -106
  17. data/lib/fastlane/plugin/polidea/actions/get_binary_size.rb +0 -57
  18. data/lib/fastlane/plugin/polidea/templates/images/cover-shuttle.jpg +0 -0
  19. data/lib/fastlane/plugin/polidea/templates/images/icon-placeholder.png +0 -0
  20. data/lib/fastlane/plugin/polidea/templates/images/polidea-logo.png +0 -0
  21. data/lib/fastlane/plugin/polidea/templates/images/social-behance.png +0 -0
  22. data/lib/fastlane/plugin/polidea/templates/images/social-dribbble.png +0 -0
  23. data/lib/fastlane/plugin/polidea/templates/images/social-facebook.png +0 -0
  24. data/lib/fastlane/plugin/polidea/templates/images/social-github.png +0 -0
  25. data/lib/fastlane/plugin/polidea/templates/images/social-instagram.png +0 -0
  26. data/lib/fastlane/plugin/polidea/templates/images/social-linkedin.png +0 -0
  27. data/lib/fastlane/plugin/polidea/templates/images/social-twitter.png +0 -0
  28. data/lib/fastlane/plugin/polidea/templates/installation-page/css/installation-page.css +0 -4895
  29. data/lib/fastlane/plugin/polidea/templates/installation-page/css/installation-page.css.map +0 -7
  30. data/lib/fastlane/plugin/polidea/templates/installation-page/img/bg.png +0 -0
  31. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg.jpg +0 -0
  32. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1024.jpg +0 -0
  33. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1280.jpg +0 -0
  34. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1360.jpg +0 -0
  35. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1440.jpg +0 -0
  36. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1680.jpg +0 -0
  37. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_768.jpg +0 -0
  38. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_ipad_1024.jpg +0 -0
  39. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_ipad_768.jpg +0 -0
  40. data/lib/fastlane/plugin/polidea/templates/installation-page/img/logo.svg +0 -32
  41. data/lib/fastlane/plugin/polidea/templates/installation-page/img/logo_square.svg +0 -12
  42. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation.min.js +0 -10
  43. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.abide.js +0 -294
  44. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.accordion.js +0 -65
  45. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.alert.js +0 -43
  46. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.clearing.js +0 -558
  47. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.dropdown.js +0 -313
  48. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.equalizer.js +0 -74
  49. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.interchange.js +0 -344
  50. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.joyride.js +0 -915
  51. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.js +0 -625
  52. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.magellan.js +0 -189
  53. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.offcanvas.js +0 -139
  54. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.orbit.js +0 -472
  55. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.reveal.js +0 -443
  56. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.slider.js +0 -231
  57. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.tab.js +0 -167
  58. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.tooltip.js +0 -298
  59. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.topbar.js +0 -436
  60. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/aes.js +0 -35
  61. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/enc-base64-min.js +0 -8
  62. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/fastclick.js +0 -9
  63. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/jquery.cookie.js +0 -8
  64. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/jquery.js +0 -26
  65. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/modernizr.js +0 -8
  66. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/pbkdf2.js +0 -19
  67. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/placeholder.js +0 -2
  68. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/fonts.scss +0 -64
  69. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation.scss +0 -45
  70. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/_functions.scss +0 -101
  71. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/_settings.scss +0 -1441
  72. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_accordion.scss +0 -156
  73. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_alert-boxes.scss +0 -126
  74. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_block-grid.scss +0 -132
  75. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_breadcrumbs.scss +0 -132
  76. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_button-groups.scss +0 -200
  77. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_buttons.scss +0 -252
  78. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_clearing.scss +0 -247
  79. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_dropdown-buttons.scss +0 -129
  80. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_dropdown.scss +0 -248
  81. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_flex-video.scss +0 -51
  82. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_forms.scss +0 -570
  83. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_global.scss +0 -447
  84. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_grid.scss +0 -275
  85. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_icon-bar.scss +0 -293
  86. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_inline-lists.scss +0 -57
  87. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_joyride.scss +0 -222
  88. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_keystrokes.scss +0 -61
  89. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_labels.scss +0 -105
  90. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_magellan.scss +0 -34
  91. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_offcanvas.scss +0 -510
  92. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_orbit.scss +0 -368
  93. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_pagination.scss +0 -162
  94. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_panels.scss +0 -93
  95. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_pricing-tables.scss +0 -150
  96. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_progress-bars.scss +0 -79
  97. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_range-slider.scss +0 -168
  98. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_reveal.scss +0 -220
  99. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_side-nav.scss +0 -116
  100. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_split-buttons.scss +0 -191
  101. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_sub-nav.scss +0 -125
  102. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_switches.scss +0 -226
  103. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tables.scss +0 -135
  104. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tabs.scss +0 -123
  105. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_thumbs.scss +0 -66
  106. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_toolbar.scss +0 -70
  107. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tooltips.scss +0 -142
  108. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_top-bar.scss +0 -676
  109. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_type.scss +0 -523
  110. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_visibility.scss +0 -408
  111. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/installation-page.scss +0 -171
  112. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/normalize.scss +0 -425
  113. data/lib/fastlane/plugin/polidea/templates/installation_template.erb +0 -54
  114. data/lib/fastlane/plugin/polidea/templates/mailgun_template.erb +0 -1257
  115. data/lib/fastlane/plugin/polidea/templates/secure_installation_template.erb +0 -130
@@ -1,167 +0,0 @@
1
- ;(function ($, window, document, undefined) {
2
- 'use strict';
3
-
4
- Foundation.libs.tab = {
5
- name : 'tab',
6
-
7
- version : '5.3.3',
8
-
9
- settings : {
10
- active_class: 'active',
11
- callback : function () {},
12
- deep_linking: false,
13
- scroll_to_content: true,
14
- is_hover: false
15
- },
16
-
17
- default_tab_hashes: [],
18
-
19
- init : function (scope, method, options) {
20
- var self = this,
21
- S = this.S;
22
-
23
- this.bindings(method, options);
24
- this.handle_location_hash_change();
25
-
26
- // Store the default active tabs which will be referenced when the
27
- // location hash is absent, as in the case of navigating the tabs and
28
- // returning to the first viewing via the browser Back button.
29
- S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () {
30
- self.default_tab_hashes.push(this.hash);
31
- });
32
- },
33
-
34
- events : function () {
35
- var self = this,
36
- S = this.S;
37
-
38
- S(this.scope)
39
- .off('.tab')
40
- // Click event: tab title
41
- .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
42
- var settings = S(this).closest('[' + self.attr_name() +']').data(self.attr_name(true) + '-init');
43
- if (!settings.is_hover || Modernizr.touch) {
44
- e.preventDefault();
45
- e.stopPropagation();
46
- self.toggle_active_tab(S(this).parent());
47
- }
48
- })
49
- // Hover event: tab title
50
- .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
51
- var settings = S(this).closest('[' + self.attr_name() +']').data(self.attr_name(true) + '-init');
52
- if (settings.is_hover) self.toggle_active_tab(S(this).parent());
53
- });
54
-
55
- // Location hash change event
56
- S(window).on('hashchange.fndtn.tab', function (e) {
57
- e.preventDefault();
58
- self.handle_location_hash_change();
59
- });
60
- },
61
-
62
- handle_location_hash_change : function () {
63
- var self = this,
64
- S = this.S;
65
-
66
- S('[' + this.attr_name() + ']', this.scope).each(function () {
67
- var settings = S(this).data(self.attr_name(true) + '-init');
68
- if (settings.deep_linking) {
69
- // Match the location hash to a label
70
- var hash = self.scope.location.hash;
71
- if (hash != '') {
72
- // Check whether the location hash references a tab content div or
73
- // another element on the page (inside or outside the tab content div)
74
- var hash_element = S(hash);
75
- if (hash_element.hasClass('content') && hash_element.parent().hasClass('tab-content')) {
76
- // Tab content div
77
- self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent());
78
- } else {
79
- // Not the tab content div. If inside the tab content, find the
80
- // containing tab and toggle it as active.
81
- var hash_tab_container_id = hash_element.closest('.content').attr('id');
82
- if (hash_tab_container_id != undefined) {
83
- self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash);
84
- }
85
- }
86
- } else {
87
- // Reference the default tab hashes which were initialized in the init function
88
- for (var ind in self.default_tab_hashes) {
89
- self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent());
90
- }
91
- }
92
- }
93
- });
94
- },
95
-
96
- toggle_active_tab: function (tab, location_hash) {
97
- var S = this.S,
98
- tabs = tab.closest('[' + this.attr_name() + ']'),
99
- anchor = tab.children('a').first(),
100
- target_hash = '#' + anchor.attr('href').split('#')[1],
101
- target = S(target_hash),
102
- siblings = tab.siblings(),
103
- settings = tabs.data(this.attr_name(true) + '-init');
104
-
105
- // allow usage of data-tab-content attribute instead of href
106
- if (S(this).data(this.data_attr('tab-content'))) {
107
- target_hash = '#' + S(this).data(this.data_attr('tab-content')).split('#')[1];
108
- target = S(target_hash);
109
- }
110
-
111
- if (settings.deep_linking) {
112
- // Get the scroll Y position prior to moving to the hash ID
113
- var cur_ypos = $('body,html').scrollTop();
114
-
115
- // Update the location hash to preserve browser history
116
- // Note that the hash does not need to correspond to the
117
- // tab content ID anchor; it can be an ID inside or outside of the tab
118
- // content div.
119
- if (location_hash != undefined) {
120
- window.location.hash = location_hash;
121
- } else {
122
- window.location.hash = target_hash;
123
- }
124
-
125
- if (settings.scroll_to_content) {
126
- // If the user is requesting the content of a tab, then scroll to the
127
- // top of the title area; otherwise, scroll to the element within
128
- // the content area as defined by the hash value.
129
- if (location_hash == undefined || location_hash == target_hash) {
130
- tab.parent()[0].scrollIntoView();
131
- } else {
132
- S(target_hash)[0].scrollIntoView();
133
- }
134
- } else {
135
- // Adjust the scrollbar to the Y position prior to setting the hash
136
- // Only do this for the tab content anchor, otherwise there will be
137
- // conflicts with in-tab anchor links nested in the tab-content div
138
- if (location_hash == undefined || location_hash == target_hash) {
139
- $('body,html').scrollTop(cur_ypos);
140
- }
141
- }
142
- }
143
-
144
- // WARNING: The activation and deactivation of the tab content must
145
- // occur after the deep linking in order to properly refresh the browser
146
- // window (notably in Chrome).
147
- tab.addClass(settings.active_class).triggerHandler('opened');
148
- siblings.removeClass(settings.active_class);
149
- target.siblings().removeClass(settings.active_class).end().addClass(settings.active_class);
150
- settings.callback(tab);
151
- target.triggerHandler('toggled', [tab]);
152
- tabs.triggerHandler('toggled', [target]);
153
- },
154
-
155
- data_attr: function (str) {
156
- if (this.namespace.length > 0) {
157
- return this.namespace + '-' + str;
158
- }
159
-
160
- return str;
161
- },
162
-
163
- off : function () {},
164
-
165
- reflow : function () {}
166
- };
167
- }(jQuery, window, window.document));
@@ -1,298 +0,0 @@
1
- ;(function ($, window, document, undefined) {
2
- 'use strict';
3
-
4
- Foundation.libs.tooltip = {
5
- name : 'tooltip',
6
-
7
- version : '5.3.3',
8
-
9
- settings : {
10
- additional_inheritable_classes : [],
11
- tooltip_class : '.tooltip',
12
- append_to: 'body',
13
- touch_close_text: 'Tap To Close',
14
- disable_for_touch: false,
15
- hover_delay: 200,
16
- show_on : 'all',
17
- tip_template : function (selector, content) {
18
- return '<span data-selector="' + selector + '" class="'
19
- + Foundation.libs.tooltip.settings.tooltip_class.substring(1)
20
- + '">' + content + '<span class="nub"></span></span>';
21
- }
22
- },
23
-
24
- cache : {},
25
-
26
- init : function (scope, method, options) {
27
- Foundation.inherit(this, 'random_str');
28
- this.bindings(method, options);
29
- },
30
-
31
- should_show: function (target, tip) {
32
- var settings = $.extend({}, this.settings, this.data_options(target));
33
-
34
- if (settings.show_on === 'all') {
35
- return true;
36
- } else if (this.small() && settings.show_on === 'small') {
37
- return true;
38
- } else if (this.medium() && settings.show_on === 'medium') {
39
- return true;
40
- } else if (this.large() && settings.show_on === 'large') {
41
- return true;
42
- }
43
- return false;
44
- },
45
-
46
- medium : function () {
47
- return matchMedia(Foundation.media_queries['medium']).matches;
48
- },
49
-
50
- large : function () {
51
- return matchMedia(Foundation.media_queries['large']).matches;
52
- },
53
-
54
- events : function (instance) {
55
- var self = this,
56
- S = self.S;
57
-
58
- self.create(this.S(instance));
59
-
60
- $(this.scope)
61
- .off('.tooltip')
62
- .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip',
63
- '[' + this.attr_name() + ']', function (e) {
64
- var $this = S(this),
65
- settings = $.extend({}, self.settings, self.data_options($this)),
66
- is_touch = false;
67
-
68
- if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type) && S(e.target).is('a')) {
69
- return false;
70
- }
71
-
72
- if (/mouse/i.test(e.type) && self.ie_touch(e)) return false;
73
-
74
- if ($this.hasClass('open')) {
75
- if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) e.preventDefault();
76
- self.hide($this);
77
- } else {
78
- if (settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
79
- return;
80
- } else if(!settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
81
- e.preventDefault();
82
- S(settings.tooltip_class + '.open').hide();
83
- is_touch = true;
84
- }
85
-
86
- if (/enter|over/i.test(e.type)) {
87
- this.timer = setTimeout(function () {
88
- var tip = self.showTip($this);
89
- }.bind(this), self.settings.hover_delay);
90
- } else if (e.type === 'mouseout' || e.type === 'mouseleave') {
91
- clearTimeout(this.timer);
92
- self.hide($this);
93
- } else {
94
- self.showTip($this);
95
- }
96
- }
97
- })
98
- .on('mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', '[' + this.attr_name() + '].open', function (e) {
99
- if (/mouse/i.test(e.type) && self.ie_touch(e)) return false;
100
-
101
- if($(this).data('tooltip-open-event-type') == 'touch' && e.type == 'mouseleave') {
102
- return;
103
- }
104
- else if($(this).data('tooltip-open-event-type') == 'mouse' && /MSPointerDown|touchstart/i.test(e.type)) {
105
- self.convert_to_touch($(this));
106
- } else {
107
- self.hide($(this));
108
- }
109
- })
110
- .on('DOMNodeRemoved DOMAttrModified', '[' + this.attr_name() + ']:not(a)', function (e) {
111
- self.hide(S(this));
112
- });
113
- },
114
-
115
- ie_touch : function (e) {
116
- // How do I distinguish between IE11 and Windows Phone 8?????
117
- return false;
118
- },
119
-
120
- showTip : function ($target) {
121
- var $tip = this.getTip($target);
122
- if (this.should_show($target, $tip)){
123
- return this.show($target);
124
- }
125
- return;
126
- },
127
-
128
- getTip : function ($target) {
129
- var selector = this.selector($target),
130
- settings = $.extend({}, this.settings, this.data_options($target)),
131
- tip = null;
132
-
133
- if (selector) {
134
- tip = this.S('span[data-selector="' + selector + '"]' + settings.tooltip_class);
135
- }
136
-
137
- return (typeof tip === 'object') ? tip : false;
138
- },
139
-
140
- selector : function ($target) {
141
- var id = $target.attr('id'),
142
- dataSelector = $target.attr(this.attr_name()) || $target.attr('data-selector');
143
-
144
- if ((id && id.length < 1 || !id) && typeof dataSelector != 'string') {
145
- dataSelector = this.random_str(6);
146
- $target.attr('data-selector', dataSelector);
147
- }
148
-
149
- return (id && id.length > 0) ? id : dataSelector;
150
- },
151
-
152
- create : function ($target) {
153
- var self = this,
154
- settings = $.extend({}, this.settings, this.data_options($target)),
155
- tip_template = this.settings.tip_template;
156
-
157
- if (typeof settings.tip_template === 'string' && window.hasOwnProperty(settings.tip_template)) {
158
- tip_template = window[settings.tip_template];
159
- }
160
-
161
- var $tip = $(tip_template(this.selector($target), $('<div></div>').html($target.attr('title')).html())),
162
- classes = this.inheritable_classes($target);
163
-
164
- $tip.addClass(classes).appendTo(settings.append_to);
165
-
166
- if (Modernizr.touch) {
167
- $tip.append('<span class="tap-to-close">'+settings.touch_close_text+'</span>');
168
- $tip.on('touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', function(e) {
169
- self.hide($target);
170
- });
171
- }
172
-
173
- $target.removeAttr('title').attr('title','');
174
- },
175
-
176
- reposition : function (target, tip, classes) {
177
- var width, nub, nubHeight, nubWidth, column, objPos;
178
-
179
- tip.css('visibility', 'hidden').show();
180
-
181
- width = target.data('width');
182
- nub = tip.children('.nub');
183
- nubHeight = nub.outerHeight();
184
- nubWidth = nub.outerHeight();
185
-
186
- if (this.small()) {
187
- tip.css({'width' : '100%' });
188
- } else {
189
- tip.css({'width' : (width) ? width : 'auto'});
190
- }
191
-
192
- objPos = function (obj, top, right, bottom, left, width) {
193
- return obj.css({
194
- 'top' : (top) ? top : 'auto',
195
- 'bottom' : (bottom) ? bottom : 'auto',
196
- 'left' : (left) ? left : 'auto',
197
- 'right' : (right) ? right : 'auto'
198
- }).end();
199
- };
200
-
201
- objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', target.offset().left);
202
-
203
- if (this.small()) {
204
- objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', 12.5, $(this.scope).width());
205
- tip.addClass('tip-override');
206
- objPos(nub, -nubHeight, 'auto', 'auto', target.offset().left);
207
- } else {
208
- var left = target.offset().left;
209
- if (Foundation.rtl) {
210
- nub.addClass('rtl');
211
- left = target.offset().left + target.outerWidth() - tip.outerWidth();
212
- }
213
- objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', left);
214
- tip.removeClass('tip-override');
215
- if (classes && classes.indexOf('tip-top') > -1) {
216
- if (Foundation.rtl) nub.addClass('rtl');
217
- objPos(tip, (target.offset().top - tip.outerHeight()), 'auto', 'auto', left)
218
- .removeClass('tip-override');
219
- } else if (classes && classes.indexOf('tip-left') > -1) {
220
- objPos(tip, (target.offset().top + (target.outerHeight() / 2) - (tip.outerHeight() / 2)), 'auto', 'auto', (target.offset().left - tip.outerWidth() - nubHeight))
221
- .removeClass('tip-override');
222
- nub.removeClass('rtl');
223
- } else if (classes && classes.indexOf('tip-right') > -1) {
224
- objPos(tip, (target.offset().top + (target.outerHeight() / 2) - (tip.outerHeight() / 2)), 'auto', 'auto', (target.offset().left + target.outerWidth() + nubHeight))
225
- .removeClass('tip-override');
226
- nub.removeClass('rtl');
227
- }
228
- }
229
-
230
- tip.css('visibility', 'visible').hide();
231
- },
232
-
233
- small : function () {
234
- return matchMedia(Foundation.media_queries.small).matches &&
235
- !matchMedia(Foundation.media_queries.medium).matches;
236
- },
237
-
238
- inheritable_classes : function ($target) {
239
- var settings = $.extend({}, this.settings, this.data_options($target)),
240
- inheritables = ['tip-top', 'tip-left', 'tip-bottom', 'tip-right', 'radius', 'round'].concat(settings.additional_inheritable_classes),
241
- classes = $target.attr('class'),
242
- filtered = classes ? $.map(classes.split(' '), function (el, i) {
243
- if ($.inArray(el, inheritables) !== -1) {
244
- return el;
245
- }
246
- }).join(' ') : '';
247
-
248
- return $.trim(filtered);
249
- },
250
-
251
- convert_to_touch : function($target) {
252
- var self = this,
253
- $tip = self.getTip($target),
254
- settings = $.extend({}, self.settings, self.data_options($target));
255
-
256
- if ($tip.find('.tap-to-close').length === 0) {
257
- $tip.append('<span class="tap-to-close">'+settings.touch_close_text+'</span>');
258
- $tip.on('click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose', function(e) {
259
- self.hide($target);
260
- });
261
- }
262
-
263
- $target.data('tooltip-open-event-type', 'touch');
264
- },
265
-
266
- show : function ($target) {
267
- var $tip = this.getTip($target);
268
-
269
- if ($target.data('tooltip-open-event-type') == 'touch') {
270
- this.convert_to_touch($target);
271
- }
272
-
273
- this.reposition($target, $tip, $target.attr('class'));
274
- $target.addClass('open');
275
- $tip.fadeIn(150);
276
- },
277
-
278
- hide : function ($target) {
279
- var $tip = this.getTip($target);
280
-
281
- $tip.fadeOut(150, function() {
282
- $tip.find('.tap-to-close').remove();
283
- $tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose');
284
- $target.removeClass('open');
285
- });
286
- },
287
-
288
- off : function () {
289
- var self = this;
290
- this.S(this.scope).off('.fndtn.tooltip');
291
- this.S(this.settings.tooltip_class).each(function (i) {
292
- $('[' + self.attr_name() + ']').eq(i).attr('title', $(this).text());
293
- }).remove();
294
- },
295
-
296
- reflow : function () {}
297
- };
298
- }(jQuery, window, window.document));