Release Notes
v3.1.0
February 2026
New Features
GetTemplateDefinitionListInput Interface
New typed interface for template definition list queries:
import {
GetTemplateDefinitionListInput,
createGetTemplateDefinitionListInput,
} from '@abpjs/text-template-management';
// Using the interface directly
const params: GetTemplateDefinitionListInput = {
filterText: 'email',
skipCount: 0,
maxResultCount: 10,
sorting: 'name asc',
};
// Using the factory function with defaults
const params = createGetTemplateDefinitionListInput({
filterText: 'email',
});
// Result: { filterText: 'email', skipCount: 0, maxResultCount: 10, sorting: undefined }
Properties:
| Property | Type | Default | Description |
|---|---|---|---|
filterText | string | - | Filter text for searching templates |
skipCount | number | 0 | Number of items to skip (pagination) |
maxResultCount | number | 10 | Maximum items to return |
sorting | string | - | Sort expression (e.g., 'name asc') |
New Exports
GetTemplateDefinitionListInput- Interface for template list queriescreateGetTemplateDefinitionListInput(initialValues?)- Factory function with defaults
v3.0.0
February 2026
Breaking Changes
Route Names Changes
eTextTemplateManagementRouteNames.Administrationremoved - UseeThemeSharedRouteNames.Administrationfrom@abpjs/theme-sharedinstead.
// Before (v2.9.0)
import { eTextTemplateManagementRouteNames } from '@abpjs/text-template-management';
const admin = eTextTemplateManagementRouteNames.Administration; // ❌ Removed
// After (v3.0.0)
import { eThemeSharedRouteNames } from '@abpjs/theme-shared';
const admin = eThemeSharedRouteNames.Administration; // ✅ Use this instead
New Features
Route Providers
New route configuration system using RoutesService from @abpjs/core:
import {
configureRoutes,
initializeTextTemplateManagementRoutes,
TEXT_TEMPLATE_MANAGEMENT_ROUTE_CONFIG,
} from '@abpjs/text-template-management';
import { getRoutesService } from '@abpjs/core';
// Option 1: Use configureRoutes with RoutesService
const routes = getRoutesService();
const addRoutes = configureRoutes(routes);
addRoutes();
// Option 2: Use initializeTextTemplateManagementRoutes helper
initializeTextTemplateManagementRoutes(routes);
// Option 3: Access the route configuration directly
console.log(TEXT_TEMPLATE_MANAGEMENT_ROUTE_CONFIG);
// { path: '/text-template-management', name: '...', iconClass: 'fas fa-file-alt', ... }
Also available as a provider object:
import { TEXT_TEMPLATE_MANAGEMENT_ROUTE_PROVIDERS } from '@abpjs/text-template-management';
const configure = TEXT_TEMPLATE_MANAGEMENT_ROUTE_PROVIDERS.useFactory(routes);
configure();
Policy Names
New constants for permission checking:
import { eTextTemplateManagementPolicyNames } from '@abpjs/text-template-management';
// Available policies:
// eTextTemplateManagementPolicyNames.TextTemplates = 'TextTemplateManagement.TextTemplates'
Config Options
New TextTemplateManagementConfigOptions interface for module extensibility:
import {
TextTemplateManagementConfigOptions,
eTextTemplateManagementComponents,
} from '@abpjs/text-template-management';
const options: TextTemplateManagementConfigOptions = {
entityActionContributors: {
[eTextTemplateManagementComponents.TextTemplates]: [
(actions) => [...actions, { text: 'Custom Action', icon: 'fa fa-star' }]
]
},
entityPropContributors: {
[eTextTemplateManagementComponents.TextTemplates]: [
(props) => [...props, { name: 'customField', displayName: 'Custom' }]
]
}
};
Extensions System
New extension tokens and defaults for customizing text template management components:
Entity Actions - Row-level actions in grids:
import {
EntityAction,
DEFAULT_TEXT_TEMPLATES_ENTITY_ACTIONS,
DEFAULT_TEXT_TEMPLATE_MANAGEMENT_ENTITY_ACTIONS,
TEXT_TEMPLATE_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,
} from '@abpjs/text-template-management';
Toolbar Actions - Grid toolbar buttons:
import {
ToolbarAction,
DEFAULT_TEXT_TEMPLATES_TOOLBAR_ACTIONS,
DEFAULT_TEXT_TEMPLATE_MANAGEMENT_TOOLBAR_ACTIONS,
TEXT_TEMPLATE_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,
} from '@abpjs/text-template-management';
Entity Props - Grid column definitions:
import {
EntityProp,
DEFAULT_TEXT_TEMPLATES_ENTITY_PROPS,
DEFAULT_TEXT_TEMPLATE_MANAGEMENT_ENTITY_PROPS,
TEXT_TEMPLATE_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,
} from '@abpjs/text-template-management';
Extensions Guard
New guard for loading extensions before route activation:
import {
textTemplateManagementExtensionsGuard,
useTextTemplateManagementExtensionsGuard,
TextTemplateManagementExtensionsGuard,
} from '@abpjs/text-template-management';
// Function-based guard
const canActivate = await textTemplateManagementExtensionsGuard();
// React hook
function ProtectedRoute({ children }) {
const { isLoaded, loading } = useTextTemplateManagementExtensionsGuard();
if (loading) return <Loading />;
if (!isLoaded) return <Navigate to="/unauthorized" />;
return children;
}
New Exports
Config Subpackage:
eTextTemplateManagementPolicyNames- Policy name constantsTextTemplateManagementPolicyNameKey- Type for policy name valuesTEXT_TEMPLATE_MANAGEMENT_ROUTE_CONFIG- Default route configuration objectconfigureRoutes()- Configure routes with custom RoutesServiceinitializeTextTemplateManagementRoutes()- Initialize routes immediatelyTEXT_TEMPLATE_MANAGEMENT_ROUTE_PROVIDERS- Route providers object
Models:
TextTemplateManagementConfigOptions- Configuration options interfaceTextTemplateManagementEntityActionContributors- Entity action contributor typeTextTemplateManagementToolbarActionContributors- Toolbar action contributor type (typo fixed from v2.x)TextTemplateManagementEntityPropContributors- Entity prop contributor type
Tokens Subpackage:
EntityAction<T>,ToolbarAction<T>,EntityProp<T>- Extension interfacesDEFAULT_TEXT_TEMPLATES_ENTITY_ACTIONS,DEFAULT_TEXT_TEMPLATE_MANAGEMENT_ENTITY_ACTIONSDEFAULT_TEXT_TEMPLATES_TOOLBAR_ACTIONS,DEFAULT_TEXT_TEMPLATE_MANAGEMENT_TOOLBAR_ACTIONSDEFAULT_TEXT_TEMPLATES_ENTITY_PROPS,DEFAULT_TEXT_TEMPLATE_MANAGEMENT_ENTITY_PROPS- Contributor callback types:
EntityActionContributorCallback<T>,ToolbarActionContributorCallback<T>,EntityPropContributorCallback<T> - Token symbols:
TEXT_TEMPLATE_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,TEXT_TEMPLATE_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,TEXT_TEMPLATE_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS
Guards Subpackage:
textTemplateManagementExtensionsGuard()- Async guard functionuseTextTemplateManagementExtensionsGuard()- React hookTextTemplateManagementExtensionsGuard- Class-based guard
v2.9.0
February 2026
- Version alignment with @abpjs/core
v2.7.0 (Initial Release)
February 2026
Features
-
TextTemplatesComponent - Complete text template management UI with:
- Paginated template definition list with search
- Template details display (layout, default culture, inline localized status)
- Navigation to template content editing
-
TemplateContentsComponent - Template content editing interface with:
- Culture selection for multi-language templates
- Template content editor
- Save and restore to default functionality
- Layout template indicator
Hooks
- useTextTemplates - State management for text templates with:
templateDefinitions- List of template definitionstemplateContent- Current template contentfetchTemplateDefinitions()- Fetch template definitions with paginationgetTemplateContent()- Get template content by name and cultureupdateTemplateContent()- Update template contentrestoreToDefault()- Restore template to default value
Services
-
TemplateDefinitionService - REST API service for template definitions:
getList(params?)- Get paginated template definitionsapiNameproperty for multi-API configurations (defaults to'default')
-
TemplateContentService - REST API service for template content:
getByInput(params)- Get template contentupdateByInput(body)- Update template contentrestoreToDefaultByInput(body)- Restore template to defaultapiNameproperty for multi-API configurations (defaults to'default')
-
TextTemplateManagementStateService - Stateful facade for text template operations:
dispatchGetTemplateDefinitions(params?)- Fetch and cache template definitionsdispatchGetTemplateContent(params)- Fetch and cache template contentdispatchUpdateTemplateContent(body)- Update template contentdispatchRestoreToDefault(body)- Restore template to defaultgetTemplateDefinitions()/getTotalCount()- Access cached datagetSelectedTemplate()/getTemplateContent()- Access cached state
Constants
- TEXT_TEMPLATE_MANAGEMENT_ROUTES - Pre-configured route definitions with policies
Enums
-
eTextTemplateManagementComponents - Component keys for component replacement:
TextTemplates='TextTemplateManagement.TextTemplates'TemplateContents='TextTemplateManagement.TemplateContents'InlineTemplateContent='TextTemplateManagement.InlineTemplateContent'
-
eTextTemplateManagementRouteNames - Route name localization keys:
TextTemplates='TextTemplateManagement::Menu:TextTemplates'
Note:
Administrationwas removed in v3.0.0. UseeThemeSharedRouteNames.Administrationfrom@abpjs/theme-sharedinstead.
TypeScript
- TextTemplateManagement namespace with all types:
TemplateDefinitionDto- Template definition entityTextTemplateContentDto- Template content entityTemplateContentInput- Input for getting contentCreateOrUpdateTemplateContentDto- Input for updating contentGetTemplateDefinitionsInput- Query parametersState- State interface for state management
New Exports
TextTemplatesComponent- Main template list componentTemplateContentsComponent- Template content editor componentuseTextTemplates- Hook for text template managementTemplateDefinitionService- Template definition API serviceTemplateContentService- Template content API serviceTextTemplateManagementStateService- Stateful service for templatesTEXT_TEMPLATE_MANAGEMENT_ROUTES- Route configurationeTextTemplateManagementComponents- Component replacement keyseTextTemplateManagementRouteNames- Route name constantsTextTemplateManagementComponentKey- Type for component key valuesTextTemplateManagementRouteNameKey- Type for route name valuesTextTemplateManagement- Namespace with all TypeScript types