Note 12 - Share-based Compensation (Tables)
|
12 Months Ended |
Dec. 31, 2021 |
| Notes Tables |
|
| Share-based Payment Arrangement, Option, Activity [Table Text Block] |
| | | | | | | Weighted Average | | | | | |
| | | Options on | | | | | | | Remaining | | | Aggregate | |
| | | Common | | | Exercise | | | Contractual | | | Intrinsic | |
| | | Shares | | | Price | | | Term | | | Value | |
| Outstanding January 1, 2020 | | | 2,928,750 | | | $ | 2.96 | | | | 3.71 | | | | | |
| Granted | | | 1,423,836 | | | $ | 6.66 | | | | - | | | | | |
| Exercised | | | (371,000 | ) | | $ | 1.90 | | | | - | | | | | |
| Forfeited, cancelled, expired | | | (50,000 | ) | | $ | 3.00 | | | | - | | | | | |
| Outstanding December 31, 2020 | | | 3,931,586 | | | $ | 4.41 | | | | 4.80 | | | | | |
| Granted | | | 1,254,500 | | | $ | 5.33 | | | | | | | | | |
| Exercised | | | (915,404 | ) | | $ | 1.83 | | | | | | | | | |
| Forfeited, cancelled, expired | | | (334,799 | ) | | $ | 5.14 | | | | | | | | | |
| Outstanding December 31, 2021 | | | 3,935,883 | | | $ | 5.24 | | | | 4.79 | | | $ | 1,608 | |
| Exercisable December 31, 2021 | | | 2,415,063 | | | $ | 5.19 | | | | 2.44 | | | $ | 1,608 | |
|
| Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block] |
| | | For the Year Ended | |
| | | December 31, | |
| | | 2021 | | | 2020 | |
| Expected stock price volatility | | | 50 | % | | | 47 | % |
| Risk-free interest rate | | | 0.90 | % | | | 0.38 | % |
| Expected dividend yield | | | 0 | % | | | 0 | % |
| Expected life of options - years | | | 5.74 | | | | 5.64 | |
| Weighted-average fair value of options granted | | $ | 2.57 | | | $ | 2.90 | |
|
| Share-based Payment Arrangement, Option, Exercise Price Range [Table Text Block] |
| | | | | | | | | Weighted | | | | | | | | | | | | | |
| | | | | | | | | Average | | | Weighted | | | | | | | Weighted | |
| | | | | | | | | Remaining | | | Average | | | | | | | Average | |
| Range of | | | Number | | | Contractual | | | Exercise | | | Number | | | Exercise | |
| Exercise Prices | | | Outstanding | | | Life (Years) | | | Price | | | Exercisable | | | Price | |
| $ | 1.50 - 3.61 | | | | 652,750 | | | | 1.32 | | | $ | 1.61 | | | | 652,750 | | | $ | 1.61 | |
| $ | 3.85 - 5.775 | | | | 2,638,133 | | | | 5.83 | | | $ | 5.20 | | | | 1,373,564 | | | $ | 5.33 | |
| $ | 5.88 - 8.82 | | | | 295,000 | | | | 8.45 | | | $ | 6.58 | | | | 38,749 | | | $ | 6.34 | |
| $ | 11.22 | | | | 350,000 | | | | 0.33 | | | $ | 11.22 | | | | 350,000 | | | $ | 11.22 | |
|
| Schedule of Nonvested Restricted Stock Units Activity [Table Text Block] |
| | | | | | | Weighted Average | | Weighted Average |
| | | Service-Based | | | Grant Date | | Vesting |
| | | RSU's | | | Fair Value | | Period (Years) |
| Unvested at January 1, 2020 | | | 308,087 | | | $ | 6.77 | | 3.0 |
| Granted - service based | | | 310,874 | | | $ | 6.02 | | |
| Granted - performance based | | | 35,211 | | | $ | 4.26 | | |
| Vested | | | (144,687 | ) | | $ | 5.17 | | |
| Forfeited and cancelled | | | (81,479 | ) | | $ | 6.47 | | |
| Unvested at December 31, 2020 | | | 428,006 | | | $ | 6.13 | | 2.3 |
| Granted - service based | | | 398,662 | | | $ | 5.59 | | |
| Vested | | | (524,491 | ) | | $ | 5.55 | | |
| Forfeited and cancelled | | | (32,874 | ) | | $ | 6.10 | | |
| Unvested at December 31, 2021 | | | 269,303 | | | $ | 6.47 | | 2.0 |
|
| Disclosure of Share-based Compensation Arrangements by Share-based Payment Award [Table Text Block] |
| | | For the Year Ended | |
| | | December 31, | |
| | | 2021 | | | 2020 | |
| Selling, general and administrative | | $ | 4,558 | | | $ | 1,957 | |
| Research and development | | | 798 | | | | 280 | |
| Total share-based expense | | $ | 5,356 | | | $ | 2,237 | |
|