fastlane-plugin-polidea 2.1.1.pre → 3.0.0.pre.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 (121) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -13
  3. data/lib/fastlane/plugin/polidea.rb +11 -0
  4. data/lib/fastlane/plugin/polidea/actions/add_prefix_schema.rb +3 -0
  5. data/lib/fastlane/plugin/polidea/actions/extract_app_info.rb +4 -0
  6. data/lib/fastlane/plugin/polidea/actions/fota_mail.rb +4 -0
  7. data/lib/fastlane/plugin/polidea/actions/fota_s3.rb +39 -28
  8. data/lib/fastlane/plugin/polidea/actions/import_provisioning.rb +5 -0
  9. data/lib/fastlane/plugin/polidea/actions/release_notes.rb +6 -1
  10. data/lib/fastlane/plugin/polidea/actions/release_notes_from_commits.rb +54 -0
  11. data/lib/fastlane/plugin/polidea/actions/shuttle.rb +6 -38
  12. data/lib/fastlane/plugin/polidea/helper/analytics.rb +43 -0
  13. data/lib/fastlane/plugin/polidea/helper/page_generator.rb +17 -56
  14. data/lib/fastlane/plugin/polidea/helper/qr_generator.rb +1 -1
  15. data/lib/fastlane/plugin/polidea/helper/shuttle.rb +39 -0
  16. data/lib/fastlane/plugin/polidea/version.rb +1 -1
  17. data/templates/install.erb +238 -0
  18. data/{lib/fastlane/plugin/polidea/templates/download.erb → templates/mail.erb} +19 -24
  19. metadata +21 -105
  20. data/lib/fastlane/plugin/polidea/actions/extract_app_icon.rb +0 -168
  21. data/lib/fastlane/plugin/polidea/actions/extract_app_name.rb +0 -97
  22. data/lib/fastlane/plugin/polidea/actions/extract_version.rb +0 -102
  23. data/lib/fastlane/plugin/polidea/actions/get_binary_size.rb +0 -53
  24. data/lib/fastlane/plugin/polidea/templates/images/cover-shuttle.jpg +0 -0
  25. data/lib/fastlane/plugin/polidea/templates/images/icon-placeholder.png +0 -0
  26. data/lib/fastlane/plugin/polidea/templates/images/polidea-logo.png +0 -0
  27. data/lib/fastlane/plugin/polidea/templates/images/social-behance.png +0 -0
  28. data/lib/fastlane/plugin/polidea/templates/images/social-dribbble.png +0 -0
  29. data/lib/fastlane/plugin/polidea/templates/images/social-facebook.png +0 -0
  30. data/lib/fastlane/plugin/polidea/templates/images/social-github.png +0 -0
  31. data/lib/fastlane/plugin/polidea/templates/images/social-instagram.png +0 -0
  32. data/lib/fastlane/plugin/polidea/templates/images/social-linkedin.png +0 -0
  33. data/lib/fastlane/plugin/polidea/templates/images/social-twitter.png +0 -0
  34. data/lib/fastlane/plugin/polidea/templates/installation-page/css/installation-page.css +0 -4895
  35. data/lib/fastlane/plugin/polidea/templates/installation-page/css/installation-page.css.map +0 -7
  36. data/lib/fastlane/plugin/polidea/templates/installation-page/img/bg.png +0 -0
  37. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg.jpg +0 -0
  38. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1024.jpg +0 -0
  39. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1280.jpg +0 -0
  40. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1360.jpg +0 -0
  41. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1440.jpg +0 -0
  42. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1680.jpg +0 -0
  43. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_768.jpg +0 -0
  44. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_ipad_1024.jpg +0 -0
  45. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_ipad_768.jpg +0 -0
  46. data/lib/fastlane/plugin/polidea/templates/installation-page/img/logo.svg +0 -32
  47. data/lib/fastlane/plugin/polidea/templates/installation-page/img/logo_square.svg +0 -12
  48. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation.min.js +0 -10
  49. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.abide.js +0 -294
  50. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.accordion.js +0 -65
  51. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.alert.js +0 -43
  52. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.clearing.js +0 -558
  53. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.dropdown.js +0 -313
  54. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.equalizer.js +0 -74
  55. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.interchange.js +0 -344
  56. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.joyride.js +0 -915
  57. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.js +0 -625
  58. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.magellan.js +0 -189
  59. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.offcanvas.js +0 -139
  60. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.orbit.js +0 -472
  61. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.reveal.js +0 -443
  62. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.slider.js +0 -231
  63. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.tab.js +0 -167
  64. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.tooltip.js +0 -298
  65. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.topbar.js +0 -436
  66. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/aes.js +0 -35
  67. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/enc-base64-min.js +0 -8
  68. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/fastclick.js +0 -9
  69. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/jquery.cookie.js +0 -8
  70. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/jquery.js +0 -26
  71. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/modernizr.js +0 -8
  72. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/pbkdf2.js +0 -19
  73. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/placeholder.js +0 -2
  74. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/fonts.scss +0 -64
  75. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation.scss +0 -45
  76. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/_functions.scss +0 -101
  77. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/_settings.scss +0 -1441
  78. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_accordion.scss +0 -156
  79. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_alert-boxes.scss +0 -126
  80. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_block-grid.scss +0 -132
  81. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_breadcrumbs.scss +0 -132
  82. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_button-groups.scss +0 -200
  83. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_buttons.scss +0 -252
  84. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_clearing.scss +0 -247
  85. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_dropdown-buttons.scss +0 -129
  86. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_dropdown.scss +0 -248
  87. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_flex-video.scss +0 -51
  88. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_forms.scss +0 -570
  89. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_global.scss +0 -447
  90. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_grid.scss +0 -275
  91. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_icon-bar.scss +0 -293
  92. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_inline-lists.scss +0 -57
  93. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_joyride.scss +0 -222
  94. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_keystrokes.scss +0 -61
  95. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_labels.scss +0 -105
  96. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_magellan.scss +0 -34
  97. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_offcanvas.scss +0 -510
  98. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_orbit.scss +0 -368
  99. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_pagination.scss +0 -162
  100. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_panels.scss +0 -93
  101. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_pricing-tables.scss +0 -150
  102. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_progress-bars.scss +0 -79
  103. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_range-slider.scss +0 -168
  104. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_reveal.scss +0 -220
  105. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_side-nav.scss +0 -116
  106. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_split-buttons.scss +0 -191
  107. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_sub-nav.scss +0 -125
  108. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_switches.scss +0 -226
  109. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tables.scss +0 -135
  110. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tabs.scss +0 -123
  111. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_thumbs.scss +0 -66
  112. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_toolbar.scss +0 -70
  113. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tooltips.scss +0 -142
  114. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_top-bar.scss +0 -676
  115. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_type.scss +0 -523
  116. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_visibility.scss +0 -408
  117. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/installation-page.scss +0 -171
  118. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/normalize.scss +0 -425
  119. data/lib/fastlane/plugin/polidea/templates/installation_template.erb +0 -54
  120. data/lib/fastlane/plugin/polidea/templates/mailgun_template.erb +0 -1257
  121. 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));