const NoticeComponent = { name: 'cx-vui-notice', template: '#cx-vui-notice', data: function() { return { stack: {}, destroyQueue: {}, } }, methods: { addToStack: function( item, itemID ) { var self = this; var destroyTimeout = setTimeout( function() { self.destroyItem( itemID ); }, item.duration ); self.$set( self.stack, itemID, item ); self.$set( self.destroyQueue, itemID, destroyTimeout ); }, destroyItem: function( itemID ) { this.$delete( this.stack, itemID ); if ( this.destroyQueue[ itemID ] ) { clearTimeout( this.destroyQueue[ itemID ] ); this.$delete( this.destroyQueue, itemID ); } }, destroyAll: function() { for ( var itemID in this.destroyQueue ) { console.log( this.destroyQueue[ itemID ] ); clearTimeout( this.destroyQueue[ itemID ] ); } this.stack = {}; this.destroyQueue = {}; }, getIcon: function( type ) { var icon; switch ( type ) { case 'success': icon = '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6.38498 12.0188L13.5962 4.80751L12.4695 3.64319L6.38498 9.7277L3.53052 6.87324L2.40376 8L6.38498 12.0188ZM2.32864 2.3662C3.9061 0.788732 5.79656 0 8 0C10.2034 0 12.0814 0.788732 13.6338 2.3662C15.2113 3.91862 16 5.79656 16 8C16 10.2034 15.2113 12.0939 13.6338 13.6714C12.0814 15.2238 10.2034 16 8 16C5.79656 16 3.9061 15.2238 2.32864 13.6714C0.776213 12.0939 0 10.2034 0 8C0 5.79656 0.776213 3.91862 2.32864 2.3662Z"/></svg>'; break; case 'error': icon = '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.71489 10.1136V6.71605H7.28511V10.1136H8.71489ZM8.71489 13.4716V11.7728H7.28511V13.4716H8.71489ZM0 16L8 0L16 16H0Z"/></svg>'; break; default: icon = '<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.78873 5.59624V3.98122H7.21127V5.59624H8.78873ZM8.78873 12.0188V7.21127H7.21127V12.0188H8.78873ZM2.32864 2.3662C3.9061 0.788732 5.79656 0 8 0C10.2034 0 12.0814 0.788732 13.6338 2.3662C15.2113 3.91862 16 5.79656 16 8C16 10.2034 15.2113 12.0939 13.6338 13.6714C12.0814 15.2238 10.2034 16 8 16C5.79656 16 3.9061 15.2238 2.32864 13.6714C0.776213 12.0939 0 10.2034 0 8C0 5.79656 0.776213 3.91862 2.32864 2.3662Z"/></svg>'; break; } return icon; } }, }; export default NoticeComponent;