// import moment from "moment"
// import _ from 'lodash'

// /**
//  * @class Birthdays
//  */
// class Income {

//     public _data: any
//     public day: any

//     constructor() {
//         /** @type {Birthday[][] | undefined} */
//         this._data = undefined
//     }

//     /**
//      * @type {Birthday[][]}
//      */
//     get data() {
//         return this._data
//     }

//     /**
//      * @typedef BirthdaysUpdateOptions
//      * @property {Birthday[][]} data
//      * @property {Birthday[][]} api
//      */
//     /**
//      * @param {BirthdaysUpdateOptions} options
//      * @param {*} callback
//      */

//     update(options : any) {

//         if (options.data) {
//             this._data = options.data
//         } else if (options.api) {
//             this._data = this.parseFromApi(options.api)
//         }
//     }

//     getAnniversaryFromMonth(apiData:any, month:any) {
//         let monthArray = []
//         for (let i  = 0; i < apiData.length; i++) {
//             let monthA = Number(moment(apiData[i].fechaInic, 'YYYY-MM-DD').format('M')) - 1
//             if (monthA === month) {
//                 let dayA = Number(moment(apiData[i].fechaInic, 'YYYY-MM-DD').format('D'))
//                 let income = new Ingress({
//                     day: dayA,
//                     month: month,
//                     name: `${apiData[i].nombre} ${apiData[i].apellidoPate}`,
//                     description: undefined,
//                     image: apiData[i].foto
//                 })
//                 monthArray.push(income)
//             }
//         }

//         monthArray.sort((a, b) => {
//             if (a.day < b.day) return -1
//             else if (a.day === b.day) return 0
//             else return 1
//         })
//         return monthArray
//     }

//     parseFromApi(apiData:any) {
//         let monthsArray = []
//         for (let month = 0; month < 12; month++) {
//             let monthArray = this.getAnniversaryFromMonth(apiData, month)
//             monthsArray.push(monthArray)
//         }

//         return monthsArray
//     }

//     /**
//      * @param {string} mode
//      * @param {boolean} excludePast
//      */
//     getList(mode :any, excludePast:any) {

//         if (!mode) mode = 'monthly'
//         let dd = moment()
//         let month = Number(dd.format('M'))
//         let today = Number(dd.format('D'))

//         /**
//          * Filter method
//          * @param {Anniversary[]} data
//          * @inner
//          */
//         let filter = (data:any) => {


//             const filterMonthDay = excludePast ? data.filter((da:any )=> da.month >= (month - 1)).filter((da:any) => da.day >= today) : data

//             return filterMonthDay
//         }


//         return filter(_.flatten(this._data))


//     }
// }


// class Ingress {

//     public day
//     public month
//     public name
//     public description
//     public image

//     constructor(options:any) {

//         this.day = options.day
//         this.month = options.month
//         this.name = options.name
//         this.description = options.description
//         this.image = options.image
//     }

// }

// module.exports = exports = Animation