Skip to content

Commit d5e41cc

Browse files
committed
feat(fontSmiley): Smiley class to insert font smileys implemented
1 parent ba952ae commit d5e41cc

5 files changed

Lines changed: 305 additions & 66 deletions

File tree

dist/embed.js

Lines changed: 181 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -42,26 +42,30 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'd
4242

4343
var _modulesEmoticonsEmojiEs62 = _interopRequireDefault(_modulesEmoticonsEmojiEs6);
4444

45-
console.log(_modulesEmoticonsEmojiEs62['default'], _modulesUtilsEs62['default']);
45+
var _modulesEmoticonsSmileyEs6 = require('./modules/emoticons/smiley.es6');
46+
47+
var _modulesEmoticonsSmileyEs62 = _interopRequireDefault(_modulesEmoticonsSmileyEs6);
48+
49+
console.log(_modulesEmoticonsEmojiEs62['default'], _modulesUtilsEs62['default'], _modulesEmoticonsSmileyEs62['default']);
4650
});
4751
//SOFTWARE.
4852

49-
},{"./modules/emoticons/emoji.es6":2,"./modules/utils.es6":3}],2:[function(require,module,exports){
53+
},{"./modules/emoticons/emoji.es6":2,"./modules/emoticons/smiley.es6":3,"./modules/utils.es6":4}],2:[function(require,module,exports){
5054
'use strict';
5155

5256
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
5357

5458
var Emoji = (function () {
55-
function Emoji() {
59+
function Emoji(input) {
5660
_classCallCheck(this, Emoji);
5761

58-
this.input = string;
62+
this.input = input;
5963

6064
this.emojiList = ['bowtie', 'smile', 'laughing', 'blush', 'smiley', 'relaxed', 'smirk', 'heart_eyes', 'kissing_heart', 'kissing_closed_eyes', 'flushed', 'relieved', 'satisfied', 'grin', 'wink', 'stuck_out_tongue_winking_eye', 'stuck_out_tongue_closed_eyes', 'grinning', 'kissing', 'winky_face', 'kissing_smiling_eyes', 'stuck_out_tongue', 'sleeping', 'worried', 'frowning', 'anguished', 'open_mouth', 'grimacing', 'confused', 'hushed', 'expressionless', 'unamused', 'sweat_smile', 'sweat', 'wow', 'disappointed_relieved', 'weary', 'pensive', 'disappointed', 'confounded', 'fearful', 'cold_sweat', 'persevere', 'cry', 'sob', 'joy', 'astonished', 'scream', 'neckbeard', 'tired_face', 'angry', 'rage', 'triumph', 'sleepy', 'yum', 'mask', 'sunglasses', 'dizzy_face', 'imp', 'smiling_imp', 'neutral_face', 'no_mouth', 'innocent', 'alien', 'yellow_heart', 'blue_heart', 'purple_heart', 'heart', 'green_heart', 'broken_heart', 'heartbeat', 'heartpulse', 'two_hearts', 'revolving_hearts', 'cupid', 'sparkling_heart', 'sparkles', 'star', 'star2', 'dizzy', 'boom', 'collision', 'anger', 'exclamation', 'question', 'grey_exclamation', 'grey_question', 'zzz', 'dash', 'sweat_drops', 'notes', 'musical_note', 'fire', 'hankey', 'poop', 'shit', '\\+1', 'thumbsup', '-1', 'thumbsdown', 'ok_hand', 'punch', 'facepunch', 'fist', 'v', 'wave', 'hand', 'raised_hand', 'open_hands', 'point_up', 'point_down', 'point_left', 'point_right', 'raised_hands', 'pray', 'point_up_2', 'clap', 'muscle', 'metal', 'fu', 'walking', 'runner', 'running', 'couple', 'family', 'two_men_holding_hands', 'two_women_holding_hands', 'dancer', 'dancers', 'ok_woman', 'no_good', 'information_desk_person', 'raising_hand', 'bride_with_veil', 'person_with_pouting_face', 'person_frowning', 'bow', 'couplekiss', 'couple_with_heart', 'massage', 'haircut', 'nail_care', 'boy', 'girl', 'woman', 'man', 'baby', 'older_woman', 'older_man', 'person_with_blond_hair', 'man_with_gua_pi_mao', 'man_with_turban', 'construction_worker', 'cop', 'angel', 'princess', 'smiley_cat', 'smile_cat', 'heart_eyes_cat', 'kissing_cat', 'smirk_cat', 'scream_cat', 'crying_cat_face', 'joy_cat', 'pouting_cat', 'japanese_ogre', 'japanese_goblin', 'see_no_evil', 'hear_no_evil', 'speak_no_evil', 'guardsman', 'skull', 'feet', 'lips', 'kiss', 'droplet', 'ear', 'eyes', 'nose', 'tongue', 'love_letter', 'bust_in_silhouette', 'busts_in_silhouette', 'speech_balloon', 'thought_balloon', 'feelsgood', 'finnadie', 'goberserk', 'godmode', 'hurtrealbad', 'rage1', 'rage2', 'rage3', 'rage4', 'suspect', 'trollface', 'sunny', 'umbrella', 'cloud', 'snowflake', 'snowman', 'zap', 'cyclone', 'foggy', 'ocean', 'cat', 'dog', 'mouse', 'hamster', 'rabbit', 'wolf', 'frog', 'tiger', 'koala', 'bear', 'pig', 'pig_nose', 'cow', 'boar', 'monkey_face', 'monkey', 'horse', 'racehorse', 'camel', 'sheep', 'elephant', 'panda_face', 'snake', 'bird', 'baby_chick', 'hatched_chick', 'hatching_chick', 'chicken', 'penguin', 'turtle', 'bug', 'honeybee', 'ant', 'beetle', 'snail', 'octopus', 'tropical_fish', 'fish', 'whale', 'whale2', 'dolphin', 'cow2', 'ram', 'rat', 'water_buffalo', 'tiger2', 'rabbit2', 'dragon', 'goat', 'rooster', 'dog2', 'pig2', 'mouse2', 'ox', 'dragon_face', 'blowfish', 'crocodile', 'dromedary_camel', 'leopard', 'cat2', 'poodle', 'paw_prints', 'bouquet', 'cherry_blossom', 'tulip', 'four_leaf_clover', 'rose', 'sunflower', 'hibiscus', 'maple_leaf', 'leaves', 'fallen_leaf', 'herb', 'mushroom', 'cactus', 'palm_tree', 'evergreen_tree', 'deciduous_tree', 'chestnut', 'seedling', 'blossom', 'ear_of_rice', 'shell', 'globe_with_meridians', 'sun_with_face', 'full_moon_with_face', 'new_moon_with_face', 'new_moon', 'waxing_crescent_moon', 'first_quarter_moon', 'waxing_gibbous_moon', 'full_moon', 'waning_gibbous_moon', 'last_quarter_moon', 'waning_crescent_moon', 'last_quarter_moon_with_face', 'first_quarter_moon_with_face', 'moon', 'earth_africa', 'earth_americas', 'earth_asia', 'volcano', 'milky_way', 'partly_sunny', 'octocat', 'squirrel', 'bamboo', 'gift_heart', 'dolls', 'school_satchel', 'mortar_board', 'flags', 'fireworks', 'sparkler', 'wind_chime', 'rice_scene', 'jack_o_lantern', 'ghost', 'santa', 'christmas_tree', 'gift', 'bell', 'no_bell', 'tanabata_tree', 'tada', 'confetti_ball', 'balloon', 'crystal_ball', 'cd', 'dvd', 'floppy_disk', 'camera', 'video_camera', 'movie_camera', 'computer', 'tv', 'iphone', 'phone', 'telephone', 'telephone_receiver', 'pager', 'fax', 'minidisc', 'vhs', 'sound', 'speaker', 'mute', 'loudspeaker', 'mega', 'hourglass', 'hourglass_flowing_sand', 'alarm_clock', 'watch', 'radio', 'satellite', 'loop', 'mag', 'mag_right', 'unlock', 'lock', 'lock_with_ink_pen', 'closed_lock_with_key', 'key', 'bulb', 'flashlight', 'high_brightness', 'low_brightness', 'electric_plug', 'battery', 'calling', 'email', 'mailbox', 'postbox', 'bath', 'bathtub', 'shower', 'toilet', 'wrench', 'nut_and_bolt', 'hammer', 'seat', 'moneybag', 'yen', 'dollar', 'pound', 'euro', 'credit_card', 'money_with_wings', 'e-mail', 'inbox_tray', 'outbox_tray', 'envelope', 'incoming_envelope', 'postal_horn', 'mailbox_closed', 'mailbox_with_mail', 'mailbox_with_no_mail', 'door', 'smoking', 'bomb', 'gun', 'hocho', 'pill', 'syringe', 'page_facing_up', 'page_with_curl', 'bookmark_tabs', 'bar_chart', 'chart_with_upwards_trend', 'chart_with_downwards_trend', 'scroll', 'clipboard', 'calendar', 'date', 'card_index', 'file_folder', 'open_file_folder', 'scissors', 'pushpin', 'paperclip', 'black_nib', 'pencil2', 'straight_ruler', 'triangular_ruler', 'closed_book', 'green_book', 'blue_book', 'orange_book', 'notebook', 'notebook_with_decorative_cover', 'ledger', 'books', 'bookmark', 'name_badge', 'microscope', 'telescope', 'newspaper', 'football', 'basketball', 'soccer', 'baseball', 'tennis', '8ball', 'rugby_football', 'bowling', 'golf', 'mountain_bicyclist', 'bicyclist', 'horse_racing', 'snowboarder', 'swimmer', 'surfer', 'ski', 'spades', 'hearts', 'clubs', 'diamonds', 'gem', 'ring', 'trophy', 'musical_score', 'musical_keyboard', 'violin', 'space_invader', 'video_game', 'black_joker', 'flower_playing_cards', 'game_die', 'dart', 'mahjong', 'clapper', 'memo', 'pencil', 'book', 'art', 'microphone', 'headphones', 'trumpet', 'saxophone', 'guitar', 'shoe', 'sandal', 'high_heel', 'lipstick', 'boot', 'shirt', 'tshirt', 'necktie', 'womans_clothes', 'dress', 'running_shirt_with_sash', 'jeans', 'kimono', 'bikini', 'ribbon', 'tophat', 'crown', 'womans_hat', 'mans_shoe', 'closed_umbrella', 'briefcase', 'handbag', 'pouch', 'purse', 'eyeglasses', 'fishing_pole_and_fish', 'coffee', 'tea', 'sake', 'baby_bottle', 'beer', 'beers', 'cocktail', 'tropical_drink', 'wine_glass', 'fork_and_knife', 'pizza', 'hamburger', 'fries', 'poultry_leg', 'meat_on_bone', 'spaghetti', 'curry', 'fried_shrimp', 'bento', 'sushi', 'fish_cake', 'rice_ball', 'rice_cracker', 'rice', 'ramen', 'stew', 'oden', 'dango', 'egg', 'bread', 'doughnut', 'custard', 'icecream', 'ice_cream', 'shaved_ice', 'birthday', 'cake', 'cookie', 'chocolate_bar', 'candy', 'lollipop', 'honey_pot', 'apple', 'green_apple', 'tangerine', 'lemon', 'cherries', 'grapes', 'watermelon', 'strawberry', 'peach', 'melon', 'banana', 'pear', 'pineapple', 'sweet_potato', 'eggplant', 'tomato', 'corn', 'house', 'house_with_garden', 'school', 'office', 'post_office', 'hospital', 'bank', 'convenience_store', 'love_hotel', 'hotel', 'wedding', 'church', 'department_store', 'european_post_office', 'city_sunrise', 'city_sunset', 'japanese_castle', 'european_castle', 'tent', 'factory', 'tokyo_tower', 'japan', 'mount_fuji', 'sunrise_over_mountains', 'sunrise', 'stars', 'themoreyouknow', 'tmyk', 'statue_of_liberty', 'bridge_at_night', 'carousel_horse', 'rainbow', 'ferris_wheel', 'fountain', 'roller_coaster', 'ship', 'speedboat', 'boat', 'sailboat', 'rowboat', 'anchor', 'rocket', 'airplane', 'helicopter', 'steam_locomotive', 'tram', 'mountain_railway', 'bike', 'aerial_tramway', 'suspension_railway', 'mountain_cableway', 'tractor', 'blue_car', 'oncoming_automobile', 'car', 'red_car', 'taxi', 'oncoming_taxi', 'articulated_lorry', 'bus', 'oncoming_bus', 'rotating_light', 'police_car', 'oncoming_police_car', 'fire_engine', 'ambulance', 'minibus', 'truck', 'train', 'station', 'train2', 'bullettrain_front', 'bullettrain_side', 'light_rail', 'monorail', 'railway_car', 'trolleybus', 'ticket', 'fuelpump', 'vertical_traffic_light', 'traffic_light', 'warning', 'construction', 'beginner', 'atm', 'slot_machine', 'busstop', 'barber', 'hotsprings', 'checkered_flag', 'crossed_flags', 'izakaya_lantern', 'moyai', 'circus_tent', 'performing_arts', 'round_pushpin', 'triangular_flag_on_post', 'jp', 'kr', 'cn', 'us', 'fr', 'es', 'it', 'ru', 'gb', 'uk', 'de', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'keycap_ten', '1234', 'zero', 'hash', 'symbols', 'arrow_backward', 'arrow_down', 'arrow_forward', 'arrow_left', 'capital_abcd', 'abcd', 'abc', 'arrow_lower_left', 'arrow_lower_right', 'arrow_right', 'arrow_up', 'arrow_upper_left', 'arrow_upper_right', 'arrow_double_down', 'arrow_double_up', 'arrow_down_small', 'arrow_heading_down', 'arrow_heading_up', 'leftwards_arrow_with_hook', 'arrow_right_hook', 'left_right_arrow', 'arrow_up_down', 'arrow_up_small', 'arrows_clockwise', 'arrows_counterclockwise', 'rewind', 'fast_forward', 'information_source', 'ok', 'twisted_rightwards_arrows', 'repeat', 'repeat_one', 'new', 'top', 'up', 'cool', 'free', 'ng', 'cinema', 'koko', 'signal_strength', 'u5272', 'u5408', 'u55b6', 'u6307', 'u6708', 'u6709', 'u6e80', 'u7121', 'u7533', 'u7a7a', 'u7981', 'sa', 'restroom', 'mens', 'womens', 'baby_symbol', 'no_smoking', 'parking', 'wheelchair', 'metro', 'baggage_claim', 'accept', 'wc', 'potable_water', 'put_litter_in_its_place', 'secret', 'congratulations', 'm', 'passport_control', 'left_luggage', 'customs', 'ideograph_advantage', 'cl', 'sos', 'id', 'no_entry_sign', 'underage', 'no_mobile_phones', 'do_not_litter', 'non-potable_water', 'no_bicycles', 'no_pedestrians', 'children_crossing', 'no_entry', 'eight_spoked_asterisk', 'eight_pointed_black_star', 'heart_decoration', 'vs', 'vibration_mode', 'mobile_phone_off', 'chart', 'currency_exchange', 'aries', 'taurus', 'gemini', 'cancer', 'leo', 'virgo', 'libra', 'scorpius', 'sagittarius', 'capricorn', 'aquarius', 'pisces', 'ophiuchus', 'six_pointed_star', 'negative_squared_cross_mark', 'a', 'b', 'ab', 'o2', 'diamond_shape_with_a_dot_inside', 'recycle', 'end', 'on', 'soon', 'clock1', 'clock130', 'clock10', 'clock1030', 'clock11', 'clock1130', 'clock12', 'clock1230', 'clock2', 'clock230', 'clock3', 'clock330', 'clock4', 'clock430', 'clock5', 'clock530', 'clock6', 'clock630', 'clock7', 'clock730', 'clock8', 'clock830', 'clock9', 'clock930', 'heavy_dollar_sign', 'copyright', 'registered', 'tm', 'x', 'heavy_exclamation_mark', 'bangbang', 'interrobang', 'o', 'heavy_multiplication_x', 'heavy_plus_sign', 'heavy_minus_sign', 'heavy_division_sign', 'white_flower', '100', 'heavy_check_mark', 'ballot_box_with_check', 'radio_button', 'link', 'curly_loop', 'wavy_dash', 'part_alternation_mark', 'trident', 'black_square', 'white_square', 'white_check_mark', 'black_square_button', 'white_square_button', 'black_circle', 'white_circle', 'red_circle', 'large_blue_circle', 'large_blue_diamond', 'large_orange_diamond', 'small_blue_diamond', 'small_orange_diamond', 'small_red_triangle', 'small_red_triangle_down', 'shipit'];
6165
this.emojiRegex = new RegExp(':(' + this.emojiList.join('|') + '):', 'g');
6266
}
6367

64-
Emoji.prototype.insert = function insert() {
68+
Emoji.prototype.process = function process() {
6569
return this.input.replace(this.emojiRegex, function (match, text) {
6670
return '<span class="emoticon emoticon-' + text + '" title=":' + text + ':"></span>';
6771
});
@@ -75,68 +79,182 @@ module.exports = Emoji;
7579
},{}],3:[function(require,module,exports){
7680
'use strict';
7781

82+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
83+
84+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
85+
86+
var _utilsEs6 = require('../utils.es6');
87+
88+
var _utilsEs62 = _interopRequireDefault(_utilsEs6);
89+
90+
var Smiley = (function () {
91+
function Smiley(input) {
92+
_classCallCheck(this, Smiley);
93+
94+
this.input = input;
95+
96+
this.icons = [{
97+
'text': ':)',
98+
'code': 'e60a'
99+
}, {
100+
'text': ':D',
101+
'code': 'e608'
102+
}, {
103+
'text': ':d',
104+
'code': 'e608'
105+
}, {
106+
'text': ':(',
107+
'code': 'e60e'
108+
}, {
109+
'text': ':/',
110+
'code': 'e620'
111+
112+
}, {
113+
'text': ':P',
114+
'code': 'e60c'
115+
}, {
116+
'text': ':p',
117+
'code': 'e60c'
118+
}, {
119+
'text': '3:)',
120+
'code': 'e618'
121+
}, {
122+
'text': '(^)',
123+
'code': 'e607'
124+
}, {
125+
'text': ';)',
126+
'code': 'e610'
127+
}, {
128+
'text': ':o',
129+
'code': 'e61a'
130+
}, {
131+
'text': '-_-',
132+
'code': 'e61e'
133+
}, {
134+
'text': '(y)',
135+
'code': 'e606'
136+
}, {
137+
'text': ':*',
138+
'code': 'e604'
139+
}, {
140+
'text': '&lt;3',
141+
'code': 'e604'
142+
}, {
143+
'text': '<3',
144+
'code': 'e604'
145+
}, {
146+
'text': '&lt;/3',
147+
'code': 'e605'
148+
}, {
149+
'text': '</3',
150+
'code': 'e605'
151+
}, {
152+
'text': '^_^',
153+
'code': 'e612'
154+
}, {
155+
'text': '8-)',
156+
'code': 'e614'
157+
}, {
158+
'text': '8|',
159+
'code': 'e614'
160+
}, {
161+
'text': ':S',
162+
'code': 'e61c'
163+
}, {
164+
'text': ':s',
165+
'code': 'e61c'
166+
}];
167+
168+
this.EscapedSymbols = this.icons.map(function (val) {
169+
return _utilsEs62['default'].escapeRegExp(val.text);
170+
});
171+
172+
this.smileyRegex = new RegExp('(' + this.EscapedSymbols.join('|') + ')', 'g');
173+
}
174+
175+
Smiley.prototype.process = function process() {
176+
var _this = this;
177+
178+
return this.input.replace(this.smileyRegex, function (match, text) {
179+
var index = _this.EscapedSymbols.indexOf(_utilsEs62['default'].escapeRegExp(text));
180+
var code = _this.icons[index].code;
181+
return '<span class="icon-emoticon" title="' + text + '">&#x' + code + '</span>';
182+
});
183+
};
184+
185+
return Smiley;
186+
})();
187+
188+
module.exports = Smiley;
189+
190+
},{"../utils.es6":4}],4:[function(require,module,exports){
191+
'use strict';
192+
78193
var utils = {
79194

80-
/**
81-
* Trucates the string and adds ellipsis at the end.
82-
* @param string The string to be truncated
83-
* @param n Length to which it should be truncated
84-
* @returns {string} The truncated string
85-
*/
86-
truncate: function truncate(string, n) {
87-
return string.substr(0, n - 1) + (string.length > n ? '...' : '');
88-
},
89-
90-
/**
91-
* Returns an array after removing the duplicates.
92-
* @param array The array containing the duplicates
93-
* @returns {Array} Array with unique values.
94-
*/
95-
getUnique: function getUnique(array) {
96-
var u = {},
97-
a = [];
98-
99-
array.forEach(function (value) {
100-
if (!u.hasOwnProperty(value)) {
101-
a.push(value);
102-
u[value] = 1;
103-
}
104-
});
105-
return a;
106-
},
107-
108-
/**
109-
* Converts a string into legitimate url.
110-
* @param string
111-
*/
112-
toUrl: function toUrl(string) {
113-
var url;
114-
if (string.indexOf('//') == -1) {
115-
url = '//' + string;
116-
} else {
117-
url = string;
118-
}
119-
return url;
120-
},
121-
122-
/**
123-
* Extends an Object
124-
* @param destination
125-
* @param source
126-
* @returns {*}
127-
*/
128-
deepExtend: function deepExtend(destination, source) {
129-
for (var property in source) {
130-
if (source[property] && source[property].constructor === Object) {
131-
destination[property] = destination[property] || {};
132-
this.deepExtend(destination[property], source[property]);
133-
} else {
134-
destination[property] = source[property];
135-
}
136-
}
137-
return destination;
195+
/**
196+
* Trucates the string and adds ellipsis at the end.
197+
* @param string The string to be truncated
198+
* @param n Length to which it should be truncated
199+
* @returns {string} The truncated string
200+
*/
201+
truncate: function truncate(string, n) {
202+
return string.substr(0, n - 1) + (string.length > n ? '...' : '');
203+
},
204+
205+
/**
206+
* Returns an array after removing the duplicates.
207+
* @param array The array containing the duplicates
208+
* @returns {Array} Array with unique values.
209+
*/
210+
getUnique: function getUnique(array) {
211+
var u = {},
212+
a = [];
213+
214+
array.forEach(function (value) {
215+
if (!u.hasOwnProperty(value)) {
216+
a.push(value);
217+
u[value] = 1;
218+
}
219+
});
220+
return a;
221+
},
222+
223+
/**
224+
* Converts a string into legitimate url.
225+
* @param string
226+
*/
227+
toUrl: function toUrl(string) {
228+
var url;
229+
if (string.indexOf('//') == -1) {
230+
url = '//' + string;
231+
} else {
232+
url = string;
233+
}
234+
return url;
235+
},
236+
237+
/**
238+
* Extends an Object
239+
* @param destination
240+
* @param source
241+
* @returns {*}
242+
*/
243+
deepExtend: function deepExtend(destination, source) {
244+
for (var property in source) {
245+
if (source[property] && source[property].constructor === Object) {
246+
destination[property] = destination[property] || {};
247+
this.deepExtend(destination[property], source[property]);
248+
} else {
249+
destination[property] = source[property];
250+
}
138251
}
252+
return destination;
253+
},
139254

255+
escapeRegExp: function escapeRegExp(str) {
256+
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
257+
}
140258
};
141259

142260
module.exports = utils;

0 commit comments

Comments
 (0)