You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					34 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					34 lines
				
				1.1 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								var baseRepeat = require('./_baseRepeat'),
							 | 
						||
| 
								 | 
							
								    baseToString = require('./_baseToString'),
							 | 
						||
| 
								 | 
							
								    castSlice = require('./_castSlice'),
							 | 
						||
| 
								 | 
							
								    hasUnicode = require('./_hasUnicode'),
							 | 
						||
| 
								 | 
							
								    stringSize = require('./_stringSize'),
							 | 
						||
| 
								 | 
							
								    stringToArray = require('./_stringToArray');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Built-in method references for those with the same name as other `lodash` methods. */
							 | 
						||
| 
								 | 
							
								var nativeCeil = Math.ceil;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Creates the padding for `string` based on `length`. The `chars` string
							 | 
						||
| 
								 | 
							
								 * is truncated if the number of characters exceeds `length`.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @private
							 | 
						||
| 
								 | 
							
								 * @param {number} length The padding length.
							 | 
						||
| 
								 | 
							
								 * @param {string} [chars=' '] The string used as padding.
							 | 
						||
| 
								 | 
							
								 * @returns {string} Returns the padding for `string`.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function createPadding(length, chars) {
							 | 
						||
| 
								 | 
							
								  chars = chars === undefined ? ' ' : baseToString(chars);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var charsLength = chars.length;
							 | 
						||
| 
								 | 
							
								  if (charsLength < 2) {
							 | 
						||
| 
								 | 
							
								    return charsLength ? baseRepeat(chars, length) : chars;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
							 | 
						||
| 
								 | 
							
								  return hasUnicode(chars)
							 | 
						||
| 
								 | 
							
								    ? castSlice(stringToArray(result), 0, length).join('')
							 | 
						||
| 
								 | 
							
								    : result.slice(0, length);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = createPadding;
							 |