Skip to content

Commit f389248

Browse files
committed
Add built files, disable jshint on src due to jshint/jshint#2411
1 parent f437a4e commit f389248

File tree

5 files changed

+111
-2
lines changed

5 files changed

+111
-2
lines changed

dist/angular-zendesk-widget.js

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
(function(angular) {
2+
3+
angular.module('zendeskWidget', [])
4+
.run([
5+
'$window',
6+
'zendeskWidgetSettings',
7+
function($window, zendeskWidgetSettings) {
8+
if (!zendeskWidgetSettings.accountUrl) {
9+
throw new Error('Missing accountUrl. Please set in app config via ZendeskWidgetProvider');
10+
}
11+
12+
var window = $window;
13+
// Following is essentially a copy paste of JS portion of the Zendesk embed code
14+
// with our settings subbed in. For more info, see:
15+
// https://support.zendesk.com/hc/en-us/articles/203908456-Using-Web-Widget-to-embed-customer-service-in-your-website
16+
17+
// Note that JSHint ignore is not working in latest release, so can't actually turn
18+
// on JSHint yet. See https://github.com/jshint/jshint/issues/2411
19+
/* jshint ignore:start */
20+
21+
window.zEmbed || function(e, t) {
22+
var n, o, d, i, s, a = [],
23+
r = document.createElement("iframe");
24+
window.zEmbed = function() {
25+
a.push(arguments)
26+
}, window.zE = window.zE || window.zEmbed, r.src = "javascript:false", r.title = "", r.role = "presentation", (r.frameElement || r).style.cssText = "display: none", d = document.getElementsByTagName("script"), d = d[d.length - 1], d.parentNode.insertBefore(r, d), i = r.contentWindow, s = i.document;
27+
try {
28+
o = s
29+
} catch (c) {
30+
n = document.domain, r.src = 'javascript:var d=document.open();d.domain="' + n + '";void(0);', o = s
31+
}
32+
o.open()._l = function() {
33+
var o = this.createElement("script");
34+
n && (this.domain = n), o.id = "js-iframe-async", o.src = e, this.t = +new Date, this.zendeskHost = t, this.zEQueue = a, this.body.appendChild(o)
35+
}, o.write('<body onload="document._l();">'), o.close()
36+
}("https://assets.zendesk.com/embeddable_framework/main.js", zendeskWidgetSettings.accountUrl);
37+
38+
/* jshint ignore:end */
39+
40+
$window.zE(function() {
41+
zendeskWidgetSettings.beforePageLoad($window.zE);
42+
});
43+
}
44+
]);
45+
46+
})(angular);
47+
48+
(function(angular) {
49+
var
50+
settings = {
51+
accountUrl: '',
52+
beforePageLoad: angular.noop
53+
},
54+
apiMethods = [
55+
'setLocale',
56+
'identify',
57+
'hide',
58+
'show',
59+
'activate'
60+
];
61+
62+
angular.module('zendeskWidget')
63+
.value('zendeskWidgetSettings', settings)
64+
.provider('ZendeskWidget', [function() {
65+
/**
66+
* Configure the widget
67+
* @param {Object} opts settings
68+
* @param {String} accountUrl Zendesk account url
69+
* @param {Function} [beforePageLoad] Callback to run after
70+
* widget instantiated but before page load, such as hiding
71+
* the widget immediately. Receives the raw zE API object.
72+
* Callback does *not* need to wrap calls in a zE() closure.
73+
* For more info, see:
74+
* https://developer.zendesk.com/embeddables/docs/widget/api#ze.hide).
75+
*/
76+
this.init = function(opts) {
77+
angular.extend(settings, opts);
78+
};
79+
80+
this.$get = [
81+
'$window',
82+
function($window) {
83+
/**
84+
* Thin wrapper over Zendesk's Web Widget API:
85+
* https://developer.zendesk.com/embeddables/docs/widget/api
86+
* @class ZendeskWidgetApi
87+
*/
88+
function ZendeskWidgetApi() {}
89+
90+
angular.forEach(apiMethods, function(method) {
91+
ZendeskWidgetApi.prototype[method] = function() {
92+
$window.zE[method].apply($window.zE, arguments);
93+
};
94+
});
95+
96+
return new ZendeskWidgetApi();
97+
}
98+
];
99+
}]);
100+
101+
})(angular);

dist/angular-zendesk-widget.min.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gulpfile.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ var lintFiles = [
3131
'gulpfile.js',
3232
// Karma configuration
3333
'karma-*.conf.js'
34-
].concat(sourceFiles);
34+
]; // .concat(sourceFiles);
3535

3636
gulp.task('build', function() {
3737
gulp.src(sourceFiles)

src/angular-zendesk-widget/services/zendeskWidgetProvider.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
* https://developer.zendesk.com/embeddables/docs/widget/api
3939
* @class ZendeskWidgetApi
4040
*/
41-
function ZendeskWidgetApi() {};
41+
function ZendeskWidgetApi() {}
4242

4343
angular.forEach(apiMethods, function(method) {
4444
ZendeskWidgetApi.prototype[method] = function() {

src/angular-zendesk-widget/zendeskWidget.module.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@
1313
// Following is essentially a copy paste of JS portion of the Zendesk embed code
1414
// with our settings subbed in. For more info, see:
1515
// https://support.zendesk.com/hc/en-us/articles/203908456-Using-Web-Widget-to-embed-customer-service-in-your-website
16+
17+
// Note that JSHint ignore is not working in latest release, so can't actually turn
18+
// on JSHint yet. See https://github.com/jshint/jshint/issues/2411
19+
/* jshint ignore:start */
20+
1621
window.zEmbed || function(e, t) {
1722
var n, o, d, i, s, a = [],
1823
r = document.createElement("iframe");
@@ -30,6 +35,8 @@
3035
}, o.write('<body onload="document._l();">'), o.close()
3136
}("https://assets.zendesk.com/embeddable_framework/main.js", zendeskWidgetSettings.accountUrl);
3237

38+
/* jshint ignore:end */
39+
3340
$window.zE(function() {
3441
zendeskWidgetSettings.beforePageLoad($window.zE);
3542
});

0 commit comments

Comments
 (0)