workarea-slick_slider 1.0.2

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 (90) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +15 -0
  3. data/.eslintrc +34 -0
  4. data/.gitignore +10 -0
  5. data/.rubocop.yml +8 -0
  6. data/.scss-lint.yml +188 -0
  7. data/CHANGELOG.md +52 -0
  8. data/Gemfile +5 -0
  9. data/README.md +284 -0
  10. data/Rakefile +63 -0
  11. data/app/assets/images/workarea/storefront/icons/arrow_left.svg +4 -0
  12. data/app/assets/images/workarea/storefront/icons/arrow_right.svg +4 -0
  13. data/app/assets/javascripts/workarea/storefront/slick_slider/config.js +17 -0
  14. data/app/assets/javascripts/workarea/storefront/slick_slider/modules/slick_slider.js +71 -0
  15. data/app/assets/javascripts/workarea/storefront/slick_slider/modules/slick_slider_analytics.js +88 -0
  16. data/app/assets/javascripts/workarea/storefront/slick_slider/templates/slick_slider_nav_next.jst.ejs.ruby +5 -0
  17. data/app/assets/javascripts/workarea/storefront/slick_slider/templates/slick_slider_nav_prev.jst.ejs.ruby +5 -0
  18. data/app/assets/stylesheets/workarea/storefront/slick_slider/components/_slick_slider.scss +132 -0
  19. data/app/helpers/workarea/storefront/slider_helper.rb +57 -0
  20. data/app/views/workarea/storefront/style_guides/components/_slick_slider.html.haml +48 -0
  21. data/bin/rails +18 -0
  22. data/config/initializers/appends.rb +33 -0
  23. data/config/locales/en.yml +6 -0
  24. data/lib/workarea/slick_slider/engine.rb +12 -0
  25. data/lib/workarea/slick_slider/version.rb +5 -0
  26. data/lib/workarea/slick_slider.rb +13 -0
  27. data/script/admin_ci +9 -0
  28. data/script/ci +11 -0
  29. data/script/core_ci +9 -0
  30. data/script/plugins_ci +9 -0
  31. data/script/storefront_ci +9 -0
  32. data/test/dummy/Rakefile +6 -0
  33. data/test/dummy/app/assets/config/manifest.js +4 -0
  34. data/test/dummy/app/assets/images/.keep +0 -0
  35. data/test/dummy/app/assets/javascripts/application.js +13 -0
  36. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  37. data/test/dummy/app/controllers/application_controller.rb +3 -0
  38. data/test/dummy/app/controllers/concerns/.keep +0 -0
  39. data/test/dummy/app/helpers/application_helper.rb +2 -0
  40. data/test/dummy/app/jobs/application_job.rb +2 -0
  41. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  42. data/test/dummy/app/models/concerns/.keep +0 -0
  43. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  44. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  45. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  46. data/test/dummy/bin/bundle +3 -0
  47. data/test/dummy/bin/rails +4 -0
  48. data/test/dummy/bin/rake +4 -0
  49. data/test/dummy/bin/setup +34 -0
  50. data/test/dummy/bin/update +29 -0
  51. data/test/dummy/config/application.rb +28 -0
  52. data/test/dummy/config/boot.rb +5 -0
  53. data/test/dummy/config/cable.yml +9 -0
  54. data/test/dummy/config/environment.rb +5 -0
  55. data/test/dummy/config/environments/development.rb +54 -0
  56. data/test/dummy/config/environments/production.rb +86 -0
  57. data/test/dummy/config/environments/test.rb +43 -0
  58. data/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
  59. data/test/dummy/config/initializers/assets.rb +11 -0
  60. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  61. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  62. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  63. data/test/dummy/config/initializers/inflections.rb +16 -0
  64. data/test/dummy/config/initializers/mime_types.rb +4 -0
  65. data/test/dummy/config/initializers/new_framework_defaults.rb +21 -0
  66. data/test/dummy/config/initializers/session_store.rb +3 -0
  67. data/test/dummy/config/initializers/workarea.rb +5 -0
  68. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  69. data/test/dummy/config/locales/en.yml +23 -0
  70. data/test/dummy/config/puma.rb +47 -0
  71. data/test/dummy/config/routes.rb +5 -0
  72. data/test/dummy/config/secrets.yml +22 -0
  73. data/test/dummy/config/spring.rb +6 -0
  74. data/test/dummy/config.ru +5 -0
  75. data/test/dummy/lib/assets/.keep +0 -0
  76. data/test/dummy/log/.keep +0 -0
  77. data/test/dummy/public/404.html +67 -0
  78. data/test/dummy/public/422.html +67 -0
  79. data/test/dummy/public/500.html +66 -0
  80. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  81. data/test/dummy/public/apple-touch-icon.png +0 -0
  82. data/test/dummy/public/favicon.ico +0 -0
  83. data/test/javascripts/fixtures/slick_slider.html.haml +3 -0
  84. data/test/javascripts/fixtures/slick_slider_with_options.html.haml +3 -0
  85. data/test/javascripts/slick_slider_spec.js +37 -0
  86. data/test/javascripts/spec_helper.js +2 -0
  87. data/test/teaspoon_env.rb +10 -0
  88. data/test/test_helper.rb +10 -0
  89. data/workarea-slick_slider.gemspec +23 -0
  90. metadata +159 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a9b4d3295d203350d0d5bef6b77088209cd4e453dcbe2133519c68452488a90f
4
+ data.tar.gz: 3d056f6d1b07239464600f30d2d47fd7e807ca45ad4c5543f06e49d991d4a13c
5
+ SHA512:
6
+ metadata.gz: 1f83c389a98b9deeff7a03c9d8874676cfcd09cdd560b0a74dfc888c635055d5479790c996ee9a5f21e49b93b970ab03e46fff77ceab8c14a4deb19b21947f53
7
+ data.tar.gz: f9f0a891f8ee7379a6327a5138d1ecfe6093cd129160d259c5e3d827325b89cc0fc484a6c4cad3087932a9425fb3a59f9495b0904579ac608bf51cd0edf17489
data/.editorconfig ADDED
@@ -0,0 +1,15 @@
1
+ # editorconfig.org
2
+ root = true
3
+
4
+ [*]
5
+ charset = utf-8
6
+ indent_style = space
7
+ end_of_line = lf
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+
11
+ [{*.rb,*.haml}]
12
+ indent_size = 2
13
+
14
+ [{*.js,*.jst,*.ejs,*.scss}]
15
+ indent_size = 4
data/.eslintrc ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "extends": "eslint:recommended",
3
+ "rules": {
4
+ "semi": [1, "always"]
5
+ },
6
+ "globals": {
7
+ "window": true,
8
+ "document": true,
9
+ "WORKAREA": true,
10
+ "$": true,
11
+ "jQuery": true,
12
+ "_": true,
13
+ "feature": true,
14
+ "JST": true,
15
+ "Turbolinks": true,
16
+ "I18n": true,
17
+ "Chart": true,
18
+ "Dropzone": true,
19
+ "strftime": true,
20
+ "Waypoint": true,
21
+ "wysihtml": true,
22
+ "LocalTime": true,
23
+ "describe": true,
24
+ "after": true,
25
+ "afterEach": true,
26
+ "before": true,
27
+ "beforeEach": true,
28
+ "it": true,
29
+ "expect": true,
30
+ "sinon": true,
31
+ "fixture": true,
32
+ "chai": true
33
+ }
34
+ }
data/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ .bundle/
2
+ log/*.log
3
+ pkg/
4
+ test/dummy/db/*.sqlite3
5
+ test/dummy/db/*.sqlite3-journal
6
+ test/dummy/log/*.log
7
+ test/dummy/tmp/
8
+ Gemfile.lock
9
+ test/dummy/public/system/
10
+ .DS_STORE
data/.rubocop.yml ADDED
@@ -0,0 +1,8 @@
1
+ inherit_gem:
2
+ workarea-ci: rubocop.yml
3
+
4
+ AllCops:
5
+ Exclude:
6
+ - 'test/dummy/**/*'
7
+ - 'lib/workarea/slick_slider.rb'
8
+ - 'lib/workarea/slick_slider/**/*'
data/.scss-lint.yml ADDED
@@ -0,0 +1,188 @@
1
+ # Extension of the default configuration:
2
+ # https://github.com/causes/scss-lint/blob/master/config/default.yml
3
+
4
+ linters:
5
+ Comment:
6
+ enabled: false
7
+
8
+ DeclarationOrder:
9
+ enabled: true
10
+
11
+ ElsePlacement:
12
+ enabled: true
13
+ style: new_line
14
+
15
+ EmptyRule:
16
+ enabled: false
17
+
18
+ HexLength:
19
+ enabled: true
20
+ style: long
21
+
22
+ Indentation:
23
+ enabled: true
24
+ allow_non_nested_indentation: true
25
+ character: space
26
+ width: 4
27
+
28
+ LeadingZero:
29
+ enabled: true
30
+ style: include_zero
31
+
32
+ MergeableSelector:
33
+ enabled: true
34
+ force_nesting: false
35
+
36
+ PropertySortOrder:
37
+ enabled: true
38
+ ignore_unspecified: false
39
+ separate_groups: false
40
+ order:
41
+ - display
42
+ -
43
+ - position
44
+ - top
45
+ - right
46
+ - bottom
47
+ - left
48
+ - z-index
49
+ -
50
+ - margin
51
+ - margin-top
52
+ - margin-right
53
+ - margin-bottom
54
+ - margin-left
55
+ -
56
+ - margin-collapse
57
+ - margin-top-collapse
58
+ - margin-right-collapse
59
+ - margin-bottom-collapse
60
+ - margin-left-collapse
61
+ -
62
+ - padding
63
+ - padding-top
64
+ - padding-right
65
+ - padding-bottom
66
+ - padding-left
67
+ -
68
+ - width
69
+ - height
70
+ - max-width
71
+ - max-height
72
+ - min-width
73
+ - min-height
74
+ -
75
+ - float
76
+ - clear
77
+ -
78
+ - color
79
+ -
80
+ - font
81
+ - font-size
82
+ - font-style
83
+ - font-family
84
+ - font-weight
85
+ - font-variant
86
+ - font-smoothing
87
+ -
88
+ - line-height
89
+ - letter-spacing
90
+ - word-spacing
91
+ -
92
+ - text-align
93
+ - text-indent
94
+ - text-shadow
95
+ - text-overflow
96
+ - text-rendering
97
+ - text-transform
98
+ - text-decoration
99
+ - text-size-adjust
100
+ -
101
+ - word-break
102
+ - word-wrap
103
+ -
104
+ - white-space
105
+ -
106
+ - background
107
+ - background-size
108
+ - background-color
109
+ - background-image
110
+ - background-repeat
111
+ - background-position
112
+ - background-attachment
113
+ -
114
+ - border
115
+ - border-top
116
+ - border-right
117
+ - border-bottom
118
+ - border-left
119
+ -
120
+ - border-image
121
+ - border-spacing
122
+ - border-collapse
123
+ -
124
+ - border-color
125
+ - border-top-color
126
+ - border-right-color
127
+ - border-bottom-color
128
+ - border-left-color
129
+ -
130
+ - border-style
131
+ - border-top-style
132
+ - border-right-style
133
+ - border-bottom-style
134
+ - border-left-style
135
+ -
136
+ - border-width
137
+ - border-top-width
138
+ - border-right-width
139
+ - border-bottom-width
140
+ - border-left-width
141
+ -
142
+ - border-radius
143
+ - border-top-right-radius
144
+ - border-bottom-right-radius
145
+ - border-bottom-left-radius
146
+ - border-top-left-radius
147
+ - border-radius-topright
148
+ - border-radius-bottomright
149
+ - border-radius-bottomleft
150
+ - border-radius-topleft
151
+ -
152
+ - box-shadow
153
+
154
+ SelectorFormat:
155
+ enabled: true
156
+ convention: hyphenated_BEM
157
+
158
+ SingleLinePerSelector:
159
+ enabled: false
160
+
161
+ SpaceAfterPropertyColon:
162
+ enabled: true
163
+ style: at_least_one_space
164
+
165
+ SpaceBeforeBrace:
166
+ enabled: true
167
+ style: space
168
+ allow_single_line_padding: true
169
+
170
+ VariableForProperty:
171
+ enabled: true
172
+ properties:
173
+ - color
174
+ - font-family
175
+ - background-color
176
+
177
+ # These default settings may be problematic to implementors. They are not
178
+ # ommitted so that they may be adjusted as needed during an implementation.
179
+ #
180
+ # For documentation:
181
+ # https://github.com/causes/scss-lint/blob/master/lib/scss_lint/linter/README.md
182
+
183
+ DuplicateProperty:
184
+ enabled: true
185
+
186
+ PropertySpelling:
187
+ enabled: true
188
+ extra_properties: [] # Add experimental CSS to this array, if needed
data/CHANGELOG.md ADDED
@@ -0,0 +1,52 @@
1
+ Workarea Slick Slider 1.0.2 (2019-08-21)
2
+ --------------------------------------------------------------------------------
3
+
4
+ * Open Source!
5
+
6
+
7
+
8
+ Workarea Slick Slider 1.0.1 (2019-04-30)
9
+ --------------------------------------------------------------------------------
10
+
11
+ * Updates to README
12
+
13
+ * Use haml for markup examples
14
+ * Provide example for mounting helper
15
+ * Update readme language to read better
16
+
17
+ SLICKSLIDE-12
18
+ Jake Beresford
19
+
20
+ * Removed arrows from CSS background image
21
+
22
+ Arrows were being rendered twice in slick slider buttons, preferred implementation is to use inline SVG.
23
+ Updates to CSS should not be included when upgrading this plugin as implementations have typically changed this.
24
+
25
+ SLICKSLIDE-14
26
+ Jake Beresford
27
+
28
+
29
+
30
+ Workarea Slick Slider 1.0.0 (2018-04-11)
31
+ --------------------------------------------------------------------------------
32
+
33
+ * Remove style guide append - this is now handled automatically by the platform
34
+
35
+ SLICKSLIDE-10
36
+ Jake Beresford
37
+
38
+
39
+ Workarea Slick Slider 0.4.0 (2018-03-06)
40
+ --------------------------------------------------------------------------------
41
+
42
+
43
+ Workarea Slick Slider 0.3.0 (2017-11-06)
44
+ --------------------------------------------------------------------------------
45
+
46
+
47
+ Workarea Slick Slider 0.2.0 (2017-10-13)
48
+ --------------------------------------------------------------------------------
49
+
50
+
51
+ Workarea Slick Slider 0.1.0 (2017-07-13)
52
+ --------------------------------------------------------------------------------
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem 'workarea', source: 'https://gems.weblinc.com'
data/README.md ADDED
@@ -0,0 +1,284 @@
1
+ # Workarea Slick Slider
2
+
3
+ Slick Slider plugin for the Workarea platform.
4
+
5
+ This will include [Ken Wheeler's jQuery Slick](http://kenwheeler.github.io/slick/)
6
+ in your project and make available a data attribute that will initailize a
7
+ rotating slider on an element with several items inside of it.
8
+
9
+ Example markup using haml:
10
+
11
+ ```haml
12
+ %div{ data: { slick_slider: '' } }
13
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_1')
14
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_2')
15
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_3')
16
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_4')
17
+ ```
18
+
19
+ ## Using Workarea Slick Slider
20
+
21
+ Apply a `data-slick-slider` attribute to any element that is meant to become a
22
+ slider. If no value is passed to the data attribute, then the default
23
+ `Workarea.config.slickSlider` options will be used to init the accordion.
24
+
25
+ ### Modifying Options
26
+
27
+ Options can be passed in to the `WORKAREA.slickSlider` module by providing a
28
+ JSON object as the value for `data-slick-slider`. If these objects become large
29
+ and begin cluttering your view, feel free to move them into a helper or a view
30
+ model.
31
+
32
+ The following code shows an example of creating a new helper with some slider
33
+ configuration. Note that helpers need to be mounted in application.rb like this:
34
+
35
+ ```ruby
36
+ config.to_prepare do
37
+ Workarea::Storefront::ApplicationController.helper(Workarea::Storefront::SliderHelper)
38
+ end
39
+ ```
40
+
41
+ ```ruby
42
+ # `app/helpers/workarea/storefront/slider_options.rb`
43
+
44
+ module Workarea
45
+ module Storefront
46
+ module SliderHelper
47
+ def style_guide_slider_options
48
+ {
49
+ options: {
50
+ slidesToShow: 1,
51
+ slidesToScroll: 1,
52
+ autoplay: true,
53
+ mobileFirst: true,
54
+ responsive: [
55
+ {
56
+ breakpoint: Workarea.config.storefront_break_points[:medium] - 1,
57
+ settings: {
58
+ arrows: false,
59
+ dots: true,
60
+ slidesToShow: 2,
61
+ slidesToScroll: 2
62
+ }
63
+ },
64
+ {
65
+ breakpoint: Workarea.config.storefront_break_points[:wide] - 1,
66
+ settings: {
67
+ arrows: false,
68
+ dots: true,
69
+ slidesToShow: 4,
70
+ slidesToScroll: 4
71
+ }
72
+ }
73
+ ]
74
+ }
75
+ }.to_json
76
+ end
77
+ end
78
+ end
79
+ end
80
+ ```
81
+
82
+ Now you can call the newly created style_guide_slider_options helper method
83
+ as the value for `data-slick-slider` and a new slider will be rendered with the
84
+ provided options.
85
+
86
+ ```haml
87
+ %div{ data: { slick_slider: style_guide_slider_options } }
88
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_1')
89
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_2')
90
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_3')
91
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_4')
92
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_5')
93
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_6')
94
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_7')
95
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_8')
96
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_9')
97
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_10')
98
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_11')
99
+ = image_tag url_to_image('workarea/storefront/path/to/image.jpg'), alt: t('workarea.storefront.example.alt_text_12')
100
+ ```
101
+
102
+ ### Additional Options
103
+
104
+ There is an additional option called `stopOnInteraction` which will permanently
105
+ stop autoplay on your slider when it is interacted with (click or swipe event).
106
+ By default it is set to false in `config.js`. To set this option to true provide
107
+ the following options:
108
+
109
+ ```ruby
110
+ module Workarea
111
+ module Storefront
112
+ module SliderHelper
113
+ def style_guide_autoplay_stop_options
114
+ {
115
+ options: {
116
+ autoplay: true
117
+ },
118
+ stopOnInteraction: true
119
+ }.to_json
120
+ end
121
+ end
122
+ end
123
+ end
124
+ ```
125
+
126
+ Another additional option `waitForImages` will delay the init until the images
127
+ are loaded. This is helpful when experiencing a delay and slick automatically
128
+ sets the height to 0 or something incorrect. This is set to false by default in
129
+ config.js, this can be overridden for a single slider in Ruby, or for all slider
130
+ in JS configuration.
131
+
132
+ ```ruby
133
+ module Workarea
134
+ module Storefront
135
+ module SliderHelper
136
+ def style_guide_wait_for_images
137
+ {
138
+ waitForImages: true
139
+ }.to_json
140
+ end
141
+ end
142
+ end
143
+ end
144
+ ```
145
+
146
+ ```javascript
147
+ _.merge(WORKAREA.config.slickSlider, {
148
+ waitForImages: true
149
+ });
150
+ ```
151
+
152
+ ## Analytics Tracking
153
+
154
+ Slider Analytics gets initialized on slider init. There are 4 different types of
155
+ events that get tracked:
156
+
157
+ * Drag / Swipe on slider
158
+ * Click on a slide
159
+ * Click on arrow navigation
160
+ * Click on dot navigation.
161
+
162
+ ### Drag/Swipe
163
+
164
+ When a user drags or swipes (on mobile) a slide, a few things are tracked:
165
+
166
+ 1. The action (swipe)
167
+ The action is used to track how a user interacted with the slider
168
+ 2. The category (swipe)
169
+ The category is to categorize the type of action, mainly important for click actions
170
+ 3. The target slider
171
+ This allows the tracker to send data if there are multiple sliders on a page
172
+ 4. In which direction the user swiped (left or right)
173
+ This is tracked mainly to determine if a user decided to go back a slide or
174
+ wanted to speed up to see the next slide
175
+ 5. The slide the user ended on
176
+ This is tracked to determine what the user wanted to view in the slider
177
+
178
+ ### Clicking on a Slide
179
+
180
+ When a user clicks on a particular slide these events are tracked:
181
+
182
+ 1. The category (click)
183
+ The click even is tracked to determine that only a slide was clicked
184
+ 2. The target slider
185
+ This allows the tracker to send data if there are multiple sliders on a page
186
+ 3. The current slide
187
+ Which slide was clicked, if there was a link leading to another page
188
+
189
+ ### Clicking on Arrow Navigation
190
+
191
+ When a user drags or swipes (on mobile) a slide, a few things are tracked:
192
+
193
+ 1. The action (navigation click)
194
+ The action is used to track how a user interacted with the slider
195
+ 2. The category (click)
196
+ The category is to categorize the type of action, mainly important for click actions
197
+ 3. The target slider
198
+ This allows the tracker to send data if there are multiple sliders on a page
199
+ 4. In which direction the slider moved (left or right)
200
+ This is tracked mainly to determine if a user decided to go back a slide or
201
+ wanted to speed up to see the next slide
202
+ 5. The slide the user ended on
203
+ This is tracked to determine what the user wanted to view in the slider
204
+ 6. Click Target (navigation arrows)
205
+ This is tracked to note that the arrows were targeted
206
+
207
+ ### Clicking on Dots Navigation
208
+
209
+ When a user drags or swipes (on mobile) a slide, a few things are tracked:
210
+
211
+ 1. The action (dots click)
212
+ The action is used to track how a user interacted with the slider
213
+ 2. The category (click)
214
+ The category is to categorize the type of action, mainly important for click actions
215
+ 3. The target slider
216
+ This allows the tracker to send data if there are multiple sliders on a page
217
+ 4. The slide the user ended on
218
+ This is tracked to determine what the user wanted to view in the slider
219
+ 5. Click Target (navigation dots)
220
+ This is tracked to note that the dots were targeted
221
+
222
+ ## Gotchas
223
+
224
+ ### Using Mobile First
225
+
226
+ If using the `mobileFirst` option, you need to subtract 1 from your target
227
+ breakpoint otherwise, options will be applied too soon. For example, when
228
+ targeting wide devices and using mobile first you should define the breakpoint
229
+ value as:
230
+
231
+ ```javascript
232
+ breakpoint: Workarea.config.storefront_break_points[:wide] - 1
233
+ ```
234
+
235
+ If you are not using `mobileFirst`, this isn't necessary.
236
+
237
+ Also when using `mobileFirst` and adding multiple breakpoints, options will need
238
+ to be repeated if they will continue to the next breakpoint as seen in the
239
+ "Modifying Options" example where arrows and dots needs to be repeated for it to
240
+ show correctly in the `wide` breakpoint.
241
+
242
+ ## Getting Started
243
+
244
+ This gem contains a rails engine that must be mounted onto a host Rails
245
+ application.
246
+
247
+ You must have access to a Workarea gems server to use this gem. Add your gems
248
+ server credentials to Bundler:
249
+
250
+ bundle config gems.weblinc.com my_username:my_password
251
+
252
+ Or set the appropriate environment variable in a shell startup file:
253
+
254
+ export BUNDLE_GEMS__WEBLINC__COM='my_username:my_password'
255
+
256
+ Then add the gem to your application's Gemfile specifying the source:
257
+
258
+ # ...
259
+ gem 'workarea-slick_slider', source: 'https://gems.weblinc.com'
260
+ # ...
261
+
262
+ Or use a source block:
263
+
264
+ # ...
265
+ source 'https://gems.weblinc.com' do
266
+ gem 'workarea-slick_slider'
267
+ end
268
+ # ...
269
+
270
+ Update your application's bundle.
271
+
272
+ cd path/to/application
273
+ bundle
274
+
275
+ ## Workarea Platform Documentation
276
+
277
+ See [http://developer.weblinc.com](http://developer.weblinc.com) for Workarea
278
+ platform documentation.
279
+
280
+ ## Copyright & Licensing
281
+
282
+ Copyright WebLinc 2017. All rights reserved.
283
+
284
+ For licensing, contact sales@workarea.com.
data/Rakefile ADDED
@@ -0,0 +1,63 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'Slick Slider'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.md')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
18
+ load 'rails/tasks/engine.rake'
19
+ load 'rails/tasks/statistics.rake'
20
+ load 'workarea/changelog.rake'
21
+
22
+ require 'rake/testtask'
23
+
24
+ Rake::TestTask.new(:test) do |t|
25
+ t.libs << 'lib'
26
+ t.libs << 'test'
27
+ t.pattern = 'test/**/*_test.rb'
28
+ t.verbose = false
29
+ end
30
+
31
+ task default: :test
32
+
33
+ $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
34
+ require 'workarea/slick_slider/version'
35
+
36
+ desc "Release version #{Workarea::SlickSlider::VERSION} of the gem"
37
+ task :release do
38
+ host = "https://#{ENV['BUNDLE_GEMS__WEBLINC__COM']}@gems.weblinc.com"
39
+
40
+ #Rake::Task['workarea:changelog'].execute
41
+ #system 'git add CHANGELOG.md'
42
+ #system 'git commit -m "Update CHANGELOG"'
43
+ #system 'git push origin HEAD'
44
+
45
+ system "git tag -a v#{Workarea::SlickSlider::VERSION} -m 'Tagging #{Workarea::SlickSlider::VERSION}'"
46
+ system 'git push --tags'
47
+
48
+ system "gem build workarea-slick_slider.gemspec"
49
+ system "gem push workarea-slick_slider-#{Workarea::SlickSlider::VERSION}.gem"
50
+ system "gem push workarea-slick_slider-#{Workarea::SlickSlider::VERSION}.gem --host #{host}"
51
+ system "rm workarea-slick_slider-#{Workarea::SlickSlider::VERSION}.gem"
52
+ end
53
+
54
+ desc 'Run the JavaScript tests'
55
+ ENV['TEASPOON_RAILS_ENV'] = File.expand_path('../test/dummy/config/environment', __FILE__)
56
+ task teaspoon: 'app:teaspoon'
57
+
58
+ desc 'Start a server at http://localhost:3000/teaspoon for JavaScript tests'
59
+ task :teaspoon_server do
60
+ Dir.chdir("test/dummy")
61
+ teaspoon_env = File.expand_path('../test/teaspoon_env.rb', __FILE__)
62
+ system "RAILS_ENV=test TEASPOON_ENV=#{teaspoon_env} rails s"
63
+ end
@@ -0,0 +1,4 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
2
+ <path d="M21,27.4c0,0.4-0.2,0.8-0.5,1.1c-0.6,0.5-1.5,0.4-2-0.2L8.9,15.9l9.6-12.2c0.5-0.6,1.4-0.7,2-0.2
3
+ s0.7,1.4,0.2,2l-8.2,10.4l8.2,10.5C20.9,26.6,21,27.1,21,27.4z"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 40 40" enable-background="new 0 0 40 40" xml:space="preserve">
2
+ <path d="M14.3,37c-0.4,0-0.8-0.1-1.2-0.4c-0.9-0.7-1.1-1.9-0.4-2.8l10.4-13.9L12.7,6.2c-0.7-0.9-0.5-2.1,0.4-2.8
3
+ c0.9-0.7,2.1-0.5,2.8,0.4l11.3,14.9c0.5,0.7,0.5,1.7,0,2.4L15.9,36.2C15.5,36.7,14.9,37,14.3,37z"/>
4
+ </svg>