Skip to content

Commit 6a08520

Browse files
fix: setDefaults is not defined when passing options (#2)
1 parent 919fb5b commit 6a08520

File tree

3 files changed

+56
-67
lines changed

3 files changed

+56
-67
lines changed

src/directive.js

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,32 @@ const clampy = clampy_.default || clampy_;
88
// const resizeDetector = elementResizeDetectorMaker({ strategy: 'scroll' });
99
var clampValue;
1010

11+
var _extends = Object.assign ||
12+
function(target) {
13+
for (var i = 1; i < arguments.length; i++) {
14+
var source = arguments[i];
15+
16+
for (var key in source) {
17+
if (Object.prototype.hasOwnProperty.call(source, key)) {
18+
target[key] = source[key];
19+
}
20+
}
21+
}
22+
23+
return target;
24+
};
25+
26+
var defaults = {
27+
clamp: 'auto',
28+
truncationChar: '…',
29+
splitOnChars: ['.', '-', '–', '—', ' '],
30+
useNativeClamp: false
31+
};
32+
33+
export function setDefaults(options) {
34+
defaults = _extends({}, defaults, options);
35+
}
36+
1137
function setInitialContent(el) {
1238
if (el.clampInitialContent === undefined) {
1339
el.clampInitialContent = el.innerHTML.trim();
@@ -30,18 +56,11 @@ function clampElement(el, clamp) {
3056
el.innerHTML = el.clampInitialContent;
3157
}
3258

33-
const options = {
34-
clamp: clamp ? clamp : 'auto',
35-
truncationChar: '…',
36-
// Clampy will try to use native clamp if available in the browser
37-
// however this can leads to unexpected results so we need to explicitely
38-
// disable it.
39-
useNativeClamp: false
40-
};
59+
defaults = _extends({}, defaults, { clamp: clamp ? clamp : 'auto' });
4160

4261
// Set the opactity to 0 to avoid content to flick when clamping.
4362
el.style.opacity = '0';
44-
const result = clampy.clamp(el, options);
63+
const result = clampy.clamp(el, defaults);
4564

4665
// Set the opacity back to 1 now that the content is clamped.
4766
el.style.opacity = '1';

src/index.js

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,5 @@
11
import VueClampy from './directive';
2-
3-
var _extends = Object.assign ||
4-
function(target) {
5-
for (var i = 1; i < arguments.length; i++) {
6-
var source = arguments[i];
7-
8-
for (var key in source) {
9-
if (Object.prototype.hasOwnProperty.call(source, key)) {
10-
target[key] = source[key];
11-
}
12-
}
13-
}
14-
15-
return target;
16-
};
17-
18-
var defaults = {
19-
clamp: 'auto',
20-
truncationChar: '…',
21-
splitOnChars: ['.', '-', '–', '—', ' ']
22-
};
23-
24-
function setDefaults(options) {
25-
defaults = _extends({}, defaults, options);
26-
}
2+
import { setDefaults } from './directive';
273

284
const install = function(Vue, options) {
295
if (options) setDefaults(options);

vue-clampy.js

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,31 @@ var clampy = clampy_umd$1 || clampy_;
296296
// const resizeDetector = elementResizeDetectorMaker({ strategy: 'scroll' });
297297
var clampValue;
298298

299+
var _extends = Object.assign || function (target) {
300+
for (var i = 1; i < arguments.length; i++) {
301+
var source = arguments[i];
302+
303+
for (var key in source) {
304+
if (Object.prototype.hasOwnProperty.call(source, key)) {
305+
target[key] = source[key];
306+
}
307+
}
308+
}
309+
310+
return target;
311+
};
312+
313+
var defaults = {
314+
clamp: 'auto',
315+
truncationChar: '…',
316+
splitOnChars: ['.', '-', '–', '—', ' '],
317+
useNativeClamp: false
318+
};
319+
320+
function setDefaults(options) {
321+
defaults = _extends({}, defaults, options);
322+
}
323+
299324
function setInitialContent(el) {
300325
if (el.clampInitialContent === undefined) {
301326
el.clampInitialContent = el.innerHTML.trim();
@@ -318,18 +343,11 @@ function clampElement(el, clamp) {
318343
el.innerHTML = el.clampInitialContent;
319344
}
320345

321-
var options = {
322-
clamp: clamp ? clamp : 'auto',
323-
truncationChar: '…',
324-
// Clampy will try to use native clamp if available in the browser
325-
// however this can leads to unexpected results so we need to explicitely
326-
// disable it.
327-
useNativeClamp: false
328-
};
346+
defaults = _extends({}, defaults, { clamp: clamp ? clamp : 'auto' });
329347

330348
// Set the opactity to 0 to avoid content to flick when clamping.
331349
el.style.opacity = '0';
332-
var result = clampy.clamp(el, options);
350+
var result = clampy.clamp(el, defaults);
333351

334352
// Set the opacity back to 1 now that the content is clamped.
335353
el.style.opacity = '1';
@@ -369,30 +387,6 @@ var VueClampy$1 = {
369387
}
370388
};
371389

372-
var _extends = Object.assign || function (target) {
373-
for (var i = 1; i < arguments.length; i++) {
374-
var source = arguments[i];
375-
376-
for (var key in source) {
377-
if (Object.prototype.hasOwnProperty.call(source, key)) {
378-
target[key] = source[key];
379-
}
380-
}
381-
}
382-
383-
return target;
384-
};
385-
386-
var defaults = {
387-
clamp: 'auto',
388-
truncationChar: '…',
389-
splitOnChars: ['.', '-', '–', '—', ' ']
390-
};
391-
392-
function setDefaults(options) {
393-
defaults = _extends({}, defaults, options);
394-
}
395-
396390
var install = function install(Vue, options) {
397391
if (options) setDefaults(options);
398392
Vue.directive('clampy', VueClampy$1);

0 commit comments

Comments
 (0)