1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-04-29 06:49:55 +00:00
bramw_baserow/premium/web-frontend/modules/baserow_premium/paidFeatures.js
2025-04-14 13:40:52 +00:00

337 lines
5.6 KiB
JavaScript

import { Registerable } from '@baserow/modules/core/registry'
export class PaidFeature extends Registerable {
getPlan() {
throw new Error('The `getPlan` method must be added to the paid feature.')
}
getName() {
throw new Error('The `getName` method must be added to the paid feature.')
}
getIconClass() {
throw new Error(
'The `getIconClass` method must be added to the paid feature.'
)
}
getImage() {
return null
}
getContent() {
return ''
}
}
export class KanbanViewPaidFeature extends PaidFeature {
static getType() {
return 'kanban_view'
}
getPlan() {
return 'Premium'
}
getIconClass() {
return 'baserow-icon-kanban'
}
getName() {
return this.app.i18n.t('premiumFeatures.kanbanView')
}
getImage() {
return '/img/features/kanban_view.png'
}
getContent() {
return this.app.i18n.t('premiumFeatures.kanbanViewContent')
}
}
export class CalendarViewPaidFeature extends PaidFeature {
static getType() {
return 'calendar_view'
}
getPlan() {
return 'Premium'
}
getIconClass() {
return 'baserow-icon-calendar'
}
getName() {
return this.app.i18n.t('premiumFeatures.calendarView')
}
getImage() {
return '/img/features/calendar_view.png'
}
getContent() {
return this.app.i18n.t('premiumFeatures.calendarViewContent')
}
}
export class TimelineViewPaidFeature extends PaidFeature {
static getType() {
return 'timeline_view'
}
getPlan() {
return 'Premium'
}
getIconClass() {
return 'baserow-icon-timeline'
}
getName() {
return this.app.i18n.t('premiumFeatures.timelineView')
}
getImage() {
return '/img/features/timeline_view.png'
}
getContent() {
return this.app.i18n.t('premiumFeatures.timelineViewContent')
}
}
export class RowColoringPaidFeature extends PaidFeature {
static getType() {
return 'row_coloring'
}
getPlan() {
return 'Premium'
}
getIconClass() {
return 'iconoir-palette'
}
getName() {
return this.app.i18n.t('premiumFeatures.rowColoring')
}
getImage() {
return '/img/features/row_coloring.png'
}
getContent() {
return this.app.i18n.t('premiumFeatures.rowColoringContent')
}
}
export class RowCommentsPaidFeature extends PaidFeature {
static getType() {
return 'row_comments'
}
getPlan() {
return 'Premium'
}
getIconClass() {
return 'iconoir-multi-bubble'
}
getName() {
return this.app.i18n.t('premiumFeatures.rowComments')
}
getImage() {
return '/img/features/row_comments.png'
}
getContent() {
return this.app.i18n.t('premiumFeatures.rowCommentsContent')
}
}
export class RowNotificationsPaidFeature extends PaidFeature {
static getType() {
return 'row_notifications'
}
getPlan() {
return 'Premium'
}
getIconClass() {
return 'iconoir-bell'
}
getName() {
return this.app.i18n.t('premiumFeatures.rowNotifications')
}
getImage() {
return '/img/features/row_notifications.png'
}
getContent() {
return this.app.i18n.t('premiumFeatures.rowNotificationsContent')
}
}
export class AIPaidFeature extends PaidFeature {
static getType() {
return 'ai_features'
}
getPlan() {
return 'Premium'
}
getIconClass() {
return 'iconoir-magic-wand'
}
getName() {
return this.app.i18n.t('premiumFeatures.aiFeatures')
}
getImage() {
return '/img/features/ai_features.png'
}
getContent() {
return this.app.i18n.t('premiumFeatures.aiFeaturesContent')
}
}
export class PersonalViewsPaidFeature extends PaidFeature {
static getType() {
return 'personal_views'
}
getPlan() {
return 'Premium'
}
getIconClass() {
return 'iconoir-lock'
}
getName() {
return this.app.i18n.t('premiumFeatures.personalViews')
}
getImage() {
return '/img/features/personal_views.png'
}
getContent() {
return this.app.i18n.t('premiumFeatures.personalViewsContent')
}
}
export class ExportsPaidFeature extends PaidFeature {
static getType() {
return 'exports'
}
getPlan() {
return 'Premium'
}
getIconClass() {
return 'iconoir-database-export'
}
getName() {
return this.app.i18n.t('premiumFeatures.exports')
}
getImage() {
return '/img/features/table_exports.png'
}
getContent() {
return this.app.i18n.t('premiumFeatures.exportsContent')
}
}
export class PublicLogoRemovalPaidFeature extends PaidFeature {
static getType() {
return 'public_logo_removal'
}
getPlan() {
return 'Premium'
}
getIconClass() {
return 'iconoir-eye-close'
}
getName() {
return this.app.i18n.t('premiumFeatures.publicLogoRemoval')
}
getImage() {
return '/img/features/public_view_logo_removal.png'
}
getContent() {
return this.app.i18n.t('premiumFeatures.publicLogoRemovalContent')
}
}
export class FormSurveyModePaidFeature extends PaidFeature {
static getType() {
return 'form_survey_mode'
}
getPlan() {
return 'Premium'
}
getIconClass() {
return 'iconoir-reports'
}
getName() {
return this.app.i18n.t('premiumFeatures.surveyForm')
}
getImage() {
return '/img/features/survey_form.png'
}
getContent() {
return this.app.i18n.t('premiumFeatures.surveyFormContent')
}
}
export class ChartPaidFeature extends PaidFeature {
static getType() {
return 'chart'
}
getPlan() {
return 'Premium'
}
getIconClass() {
return 'baserow-icon-dashboard'
}
getName() {
return this.app.i18n.t('premiumFeatures.chartWidget')
}
getImage() {
return '/img/features/chart_widget.png'
}
getContent() {
return this.app.i18n.t('premiumFeatures.chartWidgetContent')
}
}