Index

gettext/gettext.ts

_
Default value : str => str

core/plugins/plugins-resolve.service.ts

__ORIGINAL_CONTEXT_PATH__
Type : string
__webpack_init_sharing__
Type : Promise<void>
__webpack_share_scopes__
Type : literal type

upgrade/ng1/downgraded.services.ts

absoluteDateServiceDowngradedInjectable
Default value : downgradeInjectable(AbsoluteDateService)
alertsServiceDowngradedInjectable
Default value : downgradeInjectable(AlertService)
apiServiceDowngradedInjectable
Default value : downgradeInjectable(ApiService)
appStateServiceDowngradedInjectable
Default value : downgradeInjectable(AppStateService)
assetLinkPipeDowngradedInjectable
Default value : downgradeInjectable(AssetLinkPipe)
authBridgeServiceDowngradedInjectable
Default value : downgradeInjectable(AuthBridgeService)
bridgeServiceDowngradedInjectable
Default value : downgradeInjectable(BridgeService)
cachedLocaleDictionaryServiceDowngradedInjectable
Default value : downgradeInjectable( CachedLocaleDictionaryService )
deviceGridServiceDowngradedInjectable
Default value : downgradeInjectable(DeviceGridService)
deviceTypeDetailEditedServiceDowngradedInjectable
Default value : downgradeInjectable( DeviceTypeDetailEditedService )
docsServiceDowngradedInjectable
Default value : downgradeInjectable(DocsService)
filesServiceDowngradedInjectable
Default value : downgradeInjectable(FilesService)
gainsightServiceDowngradedInjectable
Default value : downgradeInjectable(GainsightService)
globalConfigServiceDowngradedInjectable
Default value : downgradeInjectable(GlobalConfigService)
headerServiceDowngradedInjectable
Default value : downgradeInjectable(HeaderService)
modalServiceDowngradedInjectable
Default value : downgradeInjectable(ModalService)
passwordServiceDowngradedInjectable
Default value : downgradeInjectable(PasswordService)
propertyValueTransformServiceDowngradedInjectable
Default value : downgradeInjectable( PropertyValueTransformService )
serverMessagesServiceDowngradedInjectable
Default value : downgradeInjectable(ServerMessagesService)
serviceRegistryInjectable
Default value : downgradeInjectable(ServiceRegistry)
translateServiceDowngradedInjectable
Default value : downgradeInjectable(TranslateService)
userMenuServiceDowngradedInjectable
Default value : downgradeInjectable(UserMenuService)

upgrade/absolute-date.service.ts

absoluteDateServiceProvider
Type : object
Default value : { provide: AbsoluteDateService, useFactory: absoluteDateServiceFactory, deps: [DatePipe] }

operations/product-experience/operations-product-experience.constants.ts

ACTIONS_OPERATIONS
Default value : { FILTER: 'filter', OPEN_OPERATION_DETAILS: 'openOperationDetails', RETRY: 'retry' } as const
ACTIONS_OPERATIONS__SINGLE
Default value : { SCHEDULE_AS_BULK_OPERATION: 'scheduleAsBulkOperation' } as const
ACTIONS_OPERATIONS_BULK
Default value : { OPEN_ADD_BULK_OPERATION_DIALOG: 'openAddBulkOperationDialog', CANCEL_ADD_BULK_OPERATION_DIALOG: 'cancelAddBulkOperationDialog', SELECT_BULK_OPERTION_TYPE: 'selectBulkOperationType' } as const
BULK_OPERATION_DIALOG_STEPS
Default value : { SELECT_OPERATION_TYPE: 'selectOperationType' } as const
BULK_OPERATION_EVENT
Default value : `${DEVICE_CONTROL_EVENT_PREFIX}:bulk`
COMPONENTS
Default value : { OPERATION_DETAILS: 'operation-details', SINGLE_OPERATION_ITEM: 'single-operation-item' } as const
DEVICE_CONTROL_EVENT_PREFIX
Type : string
Default value : 'deviceControl'
DEVICE_CONTROL_EVENT_SINGLE_PREFIX
Default value : `${DEVICE_CONTROL_EVENT_PREFIX}:single`
SINGLE_OPERATION_EVENT_DEVICE_TAB
Default value : `${DEVICE_CONTROL_EVENT_SINGLE_PREFIX}:deviceTab`
SINGLE_OPERATION_EVENT_OVERVIEW
Default value : `${DEVICE_CONTROL_EVENT_SINGLE_PREFIX}:overview`

core/stepper/stepper-px.constants.ts

ACTIONS_STEPPER
Type : object
Default value : { CLICK_STEPPER_CANCEL_BTN: 'clickStepperCancelBtn', CLICK_STEPPER_NEXT_BTN: 'clickStepperNextBtn', CLICK_STEPPER_BACK_BTN: 'clickStepperBackBtn', CLICK_STEPPER_CUSTOM_BTN: 'clickStepperCustomBtn' }

branding/plain-branding-editor/plain-branding-editor-tab.factory.ts

advancedTabLabel
Default value : gettext('Advanced branding')

protocol-lwm2m/model/index.ts

agentBaseUrl
Default value : `/service/${agentName}`
agentName
Type : string
Default value : 'lwm2m-agent'
c8y_lwm2m
Type : string
Default value : 'c8y_lwm2m'
lwm2mRegisterDeviceStringsIncomingFromMS
Type : object
Default value : { '^Disable automated firmware update workflow$': { gettext: gettext('Disable automated firmware update workflow') }, '^Disable default internal object actions$': { gettext: gettext('Disable default internal object actions') }, '^Turns off the firmware update functionality over LWM2M for the given device.$': { gettext: gettext('Turns off the firmware update functionality over LWM2M for the given device') }, '^Turns off automatic handling of objects 3,4 and 6$': { gettext: gettext('Turns off automatic handling of objects 3, 4 and 6') }, '^Indicates the preferred content format for LWM2M-Agent to use to communicate with the device$': { gettext: gettext( 'Indicates the preferred content format for the LWM2M agent to use to communicate with the devices' ) }, '^If set to true, the LWM2M agent resets the firmware state machine before initiating the actual firmware update operation.$': { gettext: gettext( 'If set to true, the LWM2M agent resets the firmware state machine before initiating the actual firmware update operation' ) } }
permissionAlert
Type : Alert
Default value : { text: gettext('You do not have write permissions. This form is read-only.'), type: 'info' }

core/common/aggregation/aggregation.model.ts

AGGREGATION_ICONS
Type : Record<aggregationType | "undefined", string>
Default value : { undefined: 'line-chart', MINUTELY: 'hourglass', HOURLY: 'clock-o', DAILY: 'calendar-o' }
AGGREGATION_LABELS
Default value : { NONE: AGGREGATIONS[0].title, [aggregationType.MINUTELY]: AGGREGATIONS[1].title, [aggregationType.HOURLY]: AGGREGATIONS[2].title, [aggregationType.DAILY]: AGGREGATIONS[3].title } as const
AGGREGATION_LIMITS
Type : object
Default value : { MINUTELY_LIMIT: TimeSpanInMs.MINUTE * 10, HOURLY_LIMIT: TimeSpanInMs.DAY * 1, DAILY_LIMIT: TimeSpanInMs.DAY * 4 }
AGGREGATION_TEXTS
Type : Record<aggregationType | "undefined" | "disabled", string>
Default value : { disabled: gettext('No aggregation with realtime enabled'), undefined: gettext('No aggregation'), MINUTELY: gettext('Minutely aggregation'), HOURLY: gettext('Hourly aggregation'), DAILY: gettext('Daily aggregation') }
AGGREGATION_VALUES
Default value : { none: 'NONE', minutely: aggregationType.MINUTELY, hourly: aggregationType.HOURLY, daily: aggregationType.DAILY } as const
AGGREGATION_VALUES_ARR
Default value : [ AGGREGATION_VALUES.none, AGGREGATION_VALUES.minutely, AGGREGATION_VALUES.hourly, AGGREGATION_VALUES.daily ] as const
AGGREGATIONS
Type : Aggregation[]
Default value : [ { id: null, title: gettext('None') }, { id: aggregationType.MINUTELY, title: gettext('Minutely') }, { id: aggregationType.HOURLY, title: gettext('Hourly') }, { id: aggregationType.DAILY, title: gettext('Daily') } ]

alarms/alarms.model.ts

ALARM_DEFAULT_PROPERTIES
Default value : [ 'severity', 'source', 'type', 'time', 'text', 'id', 'status', 'count', 'name', 'history', 'self', 'creationTime', 'firstOccurrenceTime', 'lastUpdated' ] as const satisfies ReadonlyArray<keyof IAlarm>

Default properties of a alarm. Used to extract the custom properties from a Alarm object.

ALARM_SEVERITY_ICON
Default value : { CIRCLE: 'circle', HIGH_PRIORITY: 'high-priority', WARNING: 'warning', EXCLAMATION_CIRCLE: 'exclamation-circle' } as const
ALARM_SEVERITY_ICON_MAP
Type : Record<SeverityType, AlarmSeverityIcon>
Default value : { [Severity.CRITICAL]: ALARM_SEVERITY_ICON.EXCLAMATION_CIRCLE, [Severity.MAJOR]: ALARM_SEVERITY_ICON.WARNING, [Severity.MINOR]: ALARM_SEVERITY_ICON.HIGH_PRIORITY, [Severity.WARNING]: ALARM_SEVERITY_ICON.CIRCLE } as const

A lookup table to map alarm severity types to corresponding icons.

ALARM_STATUS_ICON
Default value : { ALERT_IDLE: 'c8y-alert-idle', BELL_SLASH: 'bell-slash', BELL: 'bell' } as const
AlarmIconMap
Type : Record<AlarmStatusType, AlarmStatusIcon>
Default value : { [AlarmStatus.CLEARED]: ALARM_STATUS_ICON.ALERT_IDLE, [AlarmStatus.ACKNOWLEDGED]: ALARM_STATUS_ICON.BELL_SLASH, [AlarmStatus.ACTIVE]: ALARM_STATUS_ICON.BELL } as const

A lookup table to map alarm statuses to corresponding icons.

ALARMS_MODULE_CONFIG
Default value : new InjectionToken('AlarmsModuleConfig')
ALARMS_PATH
Type : string
Default value : 'alarms'
DEFAULT_ALARM_COUNTS
Type : AlarmCount
Default value : { CRITICAL: 0, MAJOR: 0, MINOR: 0, WARNING: 0 }
DEFAULT_SEVERITY_VALUES
Type : SeverityFilter
Default value : { [Severity.CRITICAL]: true, [Severity.MAJOR]: true, [Severity.MINOR]: true, [Severity.WARNING]: true }
DEFAULT_STATUS_VALUES
Type : AlarmStatusSettings
Default value : { [AlarmStatus.ACTIVE]: true, [AlarmStatus.ACKNOWLEDGED]: true, [AlarmStatus.CLEARED]: true }
HELP_ICON
Type : string
Default value : 'help'
INTERVAL_TITLES_EXTENDED
Type : Record<, string>
Default value : { ...INTERVAL_TITLES, none: gettext('No date filter') }

Extended interval titles with an additional title for the case when no date is selected.

INTERVALS_EXTENDED
Type : AlarmFilterInterval[]
Default value : [ { id: 'none', title: gettext('No date filter') }, ...INTERVALS ]
THROTTLE_REALTIME_REFRESH
Type : number
Default value : 1_000

widgets/implementations/alarms/alarm-list-widget.model.ts

ALARM_ORDER_LABELS
Default value : { BY_ACTIVE: gettext('By active status') as 'By active status', BY_DATE_ASCENDING: gettext('By date (ascending)') as 'By date (ascending)', BY_DATE_DESCENDING: gettext('By date (descending)') as 'By date (descending)', BY_SEVERITY: gettext('By severity') as 'By severity' } as const
ALARM_ORDER_VALUES
Default value : { BY_ACTIVE: 'BY_ACTIVE', BY_DATE_ASCENDING: 'BY_DATE_ASCENDING', BY_DATE_DESCENDING: 'BY_DATE_DESCENDING', BY_SEVERITY: 'BY_SEVERITY' } as const
ASSET_ALARMS_WIDGET_ID
Type : string
Default value : 'Asset Alarms'
GLOBAL_INTERVAL_OPTION
Type : AlarmListRefreshOption
Default value : 'global-interval'
RECENT_ALARMS_WIDGET_ID
Type : string
Default value : 'Recent Alarms'

device-protocol-object-mappings/default-object-mapping-types/index.ts

ALARM_SEVERITY
Type : object
Default value : { WARNING: gettext('WARNING'), MINOR: gettext('MINOR'), MAJOR: gettext('MAJOR'), CRITICAL: gettext('CRITICAL') }
ALARM_STATUS
Type : object
Default value : { ACTIVE: gettext('ACTIVE'), ACKNOWLEDGED: gettext('ACKNOWLEDGED'), CLEARED: gettext('CLEARED') }

alarm-event-selector/alarm-event-selector.model.ts

ALARM_TEXTS
Type : TimelineTypeTexts
Default value : { listTitle: gettext('Alarms'), emptyStateIcon: 'c8y-alarm', emptyStateTitle: gettext('No alarms to display.'), emptyStateSubtitle: gettext('Add your first alarm.'), addButtonLabel: gettext('Add alarm'), addCustomItemButtonLabel: gettext('Add custom alarm'), selectorTitle: gettext('Alarms selector'), availableItemsTitle: gettext('Available alarms'), assetWithNoItemsEmptyStateSubtitle: gettext('Select an asset with alarms from the list.'), largeNumberOfItemsInfo: gettext( 'Due to the large number, only a subset of alarms are displayed. Use search to narrow down the number of results.' ), selectedItemsTitle: gettext('Selected alarms'), noSelectedItemsTitle: gettext('No alarms selected.'), recentItemsWarningTitle: gettext('The list below may not be complete.'), recentItemsWarningText: gettext( 'Recent alarms are displayed below. Past alarms might not be shown.' ), addCustomText: gettext('Optionally you can add a custom alarm.') }
EVENT_TEXTS
Type : TimelineTypeTexts
Default value : { listTitle: gettext('Events'), emptyStateIcon: 'c8y-events', emptyStateTitle: gettext('No events to display.'), emptyStateSubtitle: gettext('Add your first event.'), addButtonLabel: gettext('Add event'), addCustomItemButtonLabel: gettext('Add custom event'), selectorTitle: gettext('Events selector'), availableItemsTitle: gettext('Available events'), assetWithNoItemsEmptyStateSubtitle: gettext('Select an asset with events from the list.'), largeNumberOfItemsInfo: gettext( 'Due to the large number, only a subset of events are displayed. Use search to narrow down the number of results.' ), selectedItemsTitle: gettext('Selected events'), noSelectedItemsTitle: gettext('No events selected.'), recentItemsWarningTitle: gettext('The list below may not be complete.'), recentItemsWarningText: gettext( 'Recent events are displayed below. Past events might not be shown.' ), addCustomText: gettext('Optionally you can add a custom event.') }

widgets/definitions/alarms/alarm-list/index.ts

alarmListWidgetDefinition
Default value : { id: defaultWidgetIds.ALARM_LIST, label: gettext('Alarm list'), description: gettext(`Displays a list of alarms filtered by object, severity, status and date`), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/alarms').then( m => m.AlarmListWidgetComponent ), loadConfigComponent: () => import('@c8y/ngx-components/widgets/implementations/alarms').then( m => m.AlarmListWidgetConfigComponent ), previewImage: 'c8y-style-assets/alarms/alarm-list-widget.png', errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR, data: { settings: { alarmListWidget: true, noNewWidgets: false, widgetDefaults: { _width: 8, _height: 4 }, ng1: { options: { noDeviceTarget: false, groupsSelectable: true, deviceTargetNotRequired: true } } }, displaySettings: { globalAutoRefreshContext: true } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
alarmListWidgetProviders
Type : []
Default value : [hookWidget(alarmListWidgetDefinition)]

auth-configuration/sso-configuration/template-parts/signature-configuration.model.ts

algorithmTypeConfig
Type : object
Default value : { [AlgorithmType.PCKS]: { name: 'PCKS', value: 'PCKS', label: gettext('X.509 certificate (PEM format)') }, [AlgorithmType.RSA]: { name: 'RSA', value: 'RSA', label: gettext('RSA public key (X.509 Subject Public Key Info)') } }
certificateTypeConfig
Type : object
Default value : { [CertificateType.CUSTOM]: { name: 'CUSTOM', label: gettext('Custom'), value: 'CUSTOM', signatureVerificationConfigFragment: 'manual', ordinal: 0 }, [CertificateType.AZURE]: { name: 'AZURE', label: 'Azure', value: 'AZURE', signatureVerificationConfigFragment: 'aad', ordinal: 1 }, [CertificateType.ADFS]: { name: 'ADFS', label: gettext('ADFS manifest'), value: 'ADFS', signatureVerificationConfigFragment: 'adfsManifest', ordinal: 2 }, [CertificateType.JWKS]: { name: 'JWKS', label: 'JWKS', value: 'JWKS', signatureVerificationConfigFragment: 'jwks', ordinal: 3 } }

context-dashboard/context-dashboard.model.ts

ALL_GLOBAL_ROLES_SELECTED
Default value : 'all' as const
CONTEXT_DASHBOARD_CONFIG
Default value : new InjectionToken<any>('ContextDashboardConfig')
DASHBOARD_CHILDREN_STATE_NAME
Default value : { initial: gettext('Initial state'), config: gettext('Widget configuration changed'), removed: gettext('Widget removed'), added: gettext('Widget added'), arrangement: gettext('Widgets rearranged') } as const satisfies Record<keyof DashboardHistoryDescription['widgetChanges'] | 'initial', string>
DASHBOARD_SETTINGS_CHANGES
Default value : { classes: gettext('theme'), globalRolesIds: gettext('global roles'), widgetClasses: gettext('widget header style'), widgetMargin: gettext('widget margin'), icon: gettext('icon'), name: gettext('name'), priority: gettext('priority'), c8y_IsNavigatorNode: gettext('navigator item'), translateWidgetTitle: gettext('translate widget title') } as const satisfies Partial<Record<keyof ContextDashboard, string>>
DASHBOARD_THEME_CLASSES
Default value : [ { label: gettext('Match UI`theme`'), class: 'dashboard-theme-light', description: gettext('The dashboard appearance matches the UI appearance.') }, { label: gettext('Light`theme`'), class: 'dashboard-theme-white', description: gettext( 'The dashboard has light appearance, that is, dark text on light background.' ) }, { label: gettext('Dark`theme`'), class: 'dashboard-theme-dark', description: gettext( 'The dashboard has dark appearance, that is, light text on dark background.' ) }, // { // label: gettext('Transparent`theme`'), // class: 'dashboard-theme-transparent', // description: gettext( // 'The dashboard is styled with a transparent background and therefore is border-less.' // ) // }, { label: gettext('Branded`theme`'), class: 'dashboard-theme-branded', description: gettext('The dashboard is styled using the brand palette.') } ] as const
PRODUCT_EXPERIENCE
Default value : { DASHBOARD: { EVENTS: { DASHBOARDS: 'dashboards', REPORTS: 'reports' }, COMPONENTS: { DASHBOARD_VIEW: 'context-dashboard', DASHBOARD_AVAILABILITY: 'dashboard-availability', REPORTS_LIST: 'report-dashboard-list', ADD_REPORT: 'report-dashboard-list', ADD_DASHBOARD: 'add-dashboard', DELETE_DASHBOARD: 'context-dashboard' }, CONTEXT: { REPORT: 'report', DEVICE: 'device', ASSET: 'asset', GROUP: 'group' }, ACTIONS: { APPLY_GLOBAL_ROLES_CHANGES: 'applyGlobalRolesChanges', DELETE: 'delete', LOAD: 'load', CREATE: 'create' } } } as const
REPORT_DEFAULT_NAVIGATION_NODE_PRIORITY
Type : number
Default value : 30
STYLING_CLASS_PREFIXES
Default value : [ 'dashboard-theme-', 'panel-title-', 'panel-content-' ] as const
WIDGET_CONTENT_CLASSES
Default value : [ { label: gettext('Branded`style`'), class: 'panel-content-branded', description: gettext('The widget is styled with the main brand color.') }, { label: gettext('Match dashboard`style`'), class: 'panel-content-light', description: gettext('The widget appearance matches the dashboard appearance.') }, { label: gettext('Light`style`'), class: 'panel-content-white', description: gettext('The widget has light appearance, that is, dark text on light background.') }, { label: gettext('Dark`style`'), class: 'panel-content-dark', description: gettext('The widget has dark appearance, that is, light text on dark background.') }, { label: gettext('Transparent`style`'), class: 'panel-content-transparent', description: gettext('The widget has no background.') } ] as const
WIDGET_HEADER_CLASSES
Default value : [ { label: gettext('Regular`style`'), class: 'panel-title-regular', description: gettext('The widget has no border between header and content.') }, { label: gettext('Border`style`'), class: 'panel-title-border', description: gettext('The widget has a small separation border between header and content.') }, { label: gettext('Overlay`style`'), class: 'panel-title-overlay', description: gettext('The widget content overlays the header.') }, { label: gettext('Hidden`style`'), class: 'panel-title-hidden', description: gettext('The widget header is not shown.') } ] as const

branding/shared/data/branding.type.ts

allBrandingCSSVars
Default value : [ ...numberBrandingVars, ...stringBrandingVars, ...colorBrandingVars ] as const
brandingFormGroupTopLevelEntries
Default value : [ 'cookieBanner', 'genericApplicationOptions', 'darkThemeAvailable', 'messageBanner' ] as const satisfies ReadonlyArray<BrandingFormKeys>
brandingFormGroupTopLevelEntriesToUnpack
Default value : [ 'genericApplicationOptions' ] as const satisfies ReadonlyArray<(typeof brandingFormGroupTopLevelEntries)[number]>
colorBrandingVars
Default value : [ 'brand-dark', 'brand-light', 'brand-primary', 'c8y-brand-10', 'c8y-brand-20', 'c8y-brand-30', 'c8y-brand-40', 'c8y-brand-50', 'c8y-brand-60', 'c8y-brand-70', 'c8y-brand-80', 'palette-status-info', 'palette-status-warning', 'palette-status-success', 'palette-status-danger', 'palette-status-info-light', 'palette-status-warning-light', 'palette-status-success-light', 'palette-status-danger-light', 'palette-status-info-dark', 'palette-status-warning-dark', 'palette-status-success-dark', 'palette-status-danger-dark', 'body-background-color', 'text-color', 'text-muted', 'link-color', 'link-hover-color', 'action-bar-background-default', 'action-bar-color-actions-hover', 'action-bar-color-actions', 'action-bar-color-default', 'action-bar-icon-color', 'header-color', 'header-text-color', 'header-hover-color', 'navigator-bg-color', 'navigator-active-bg', 'navigator-border-active', 'navigator-header-bg', 'navigator-title-color', 'navigator-separator-color', 'navigator-text-color', 'navigator-color-active', 'right-drawer-background-default', 'right-drawer-text-color-default', 'right-drawer-separator-color', 'right-drawer-link-color', 'right-drawer-link-color-hover', 'right-drawer-text-muted' ] as const
numberBrandingVars
Default value : ['brand-logo-img-height', 'btn-border-radius-base'] as const
stringBrandingVars
Default value : ['brand-logo-img', 'navigator-platform-logo'] as const
stringOrNumberBrandingVars
Default value : ['navigator-platform-logo-height'] as const

icon-selector/icon-selector.component.ts

allIconCategory
Default value : gettext('All`icons-category`')

icon-selector/icons/index.ts

allIcons
Default value : [ arrowIconCategory, cityIconCategory, dataIconCategory, dateAndTimeIconCategory, devicesAndSensorsIconCategory, ecommerceIconCategory, editingIconCategory, filesAndFoldersIconCategory, financeIconCategory, handsIconCategory, locationIconCategory, messagingIconCategory, multimediaIconCategory, networkIconCategory, officeIconCategory, peopleIconCategory, platformIconCategory, programmingIconCategory, securityIconCategory, transportIconCategory, userInterfaceIconCategory, weatherIconCategory ] satisfies DefaultIconDefinition[]

core/i18n/i18n.module.ts

angularLocalesLanguageMap
Default value : { en: 'en-GB', 'en-EN': 'en-GB', 'en-US': 'en', 'ja-JP': 'ja', 'zh-CN': 'zh', 'zh-TW': 'zh', 'pt-BR': 'pt' } as const

The

ecosystem/shared/ecosystem.constants.ts

APP_STATE
Type : object
Default value : { SUBSCRIBED: { label: gettext('Subscribed`application`'), class: 'label-primary', tooltip: gettext('Provided by parent tenant.') }, CUSTOM: { label: gettext('Custom`application`'), class: 'label-info', tooltip: gettext('Manually uploaded to the platform.') }, EXTERNAL: { label: gettext('External`application`'), class: 'label-warning', tooltip: gettext('Application hosted outside of the platform.') }, UNPACKED: { label: gettext('Unpacked`application`'), class: 'label-success', tooltip: gettext('Deployed from a package available under "Packages".') }, PACKAGE_BLUEPRINT: { label: gettext('Blueprint'), class: 'label-success', tooltip: gettext('Contains an application and may include plugins.') }, PACKAGE_PLUGIN: { label: gettext('Plugins'), class: 'label-info', tooltip: gettext('Contains only plugins.') }, PACKAGE_UNKNOWN: { label: gettext('Unknown`package-type`'), class: 'label-info', tooltip: gettext('Package contents could not be determined.') } }
ERROR_MESSAGES
Type : object
Default value : { [ERROR_TYPE.ALREADY_EXIST]: gettext( 'Could not deploy the application, as an application with the same name`KEEP_ORIGINAL`, context-path`KEEP_ORIGINAL` or key`KEEP_ORIGINAL` exists already.' ), [ERROR_TYPE.TYPE_VALIDATION]: gettext( 'Wrong file format. Expected a *.zip file with a valid manifest.' ), [ERROR_TYPE.ALREADY_SUBSCRIBED]: gettext( 'Could not subscribe to the microservice because another application with the same context path is already subscribed.' ), [ERROR_TYPE.NO_MANIFEST_FILE]: gettext('Could not find a manifest.'), [ERROR_TYPE.INVALID_PACKAGE]: gettext('You have not uploaded a valid package.'), [ERROR_TYPE.INVALID_APPLICATION]: gettext('You have not uploaded a valid application.'), [ERROR_TYPE.INTERNAL_ERROR]: gettext('An internal error occurred, try to upload again.'), [ERROR_TYPE.MICROSERVICE_NAME_TOO_LONG]: gettext( 'Microservice name "{{ name }}" must not be longer than {{ maxChars }} characters.' ), [ERROR_TYPE.APPLICATION_CREATION_FAILED]: gettext('Application creation failed.'), [ERROR_TYPE.KEY_OR_CONTEXT_PATH_MISMATCH]: gettext( 'The "contextPath`KEEP_ORIGINAL`" or "key`KEEP_ORIGINAL`" of the uploaded archive do not match with the existing application.' ), [ERROR_TYPE.VERSION_NOT_FOUND]: gettext('The selected version was not found on the server.') }
PACKAGE_TYPE_LABELS
Type : object
Default value : { [PackageType.COMMUNITY]: { label: gettext('COMMUNITY`Package created by the developer community.`'), tooltip: gettext('Package created by the developer community.') }, [PackageType.OFFICIAL]: { label: gettext('OFFICIAL`Package maintained by Software AG.`'), tooltip: gettext('Package maintained by Software AG.') }, [PackageType.UNKNOWN]: { label: gettext('CUSTOM`Package maintained by an unknown source.`'), tooltip: gettext('Package maintainer unknown.') } }
packageProperties
Type : PropertiesListItem[]
Default value : [ { label: gettext('Latest version'), key: 'version' }, { label: gettext('Author'), key: 'author' }, { label: gettext('Keywords'), key: 'keywords' }, { label: gettext('Source'), key: 'repository', transform: (repository: any) => (repository?.url ? repository.url : repository), type: 'link', action: (e, link: string) => window.open(link, '_blank', 'noopener,noreferrer') }, { label: gettext('Homepage'), key: 'homepage', type: 'link', action: (e, link: string) => window.open(link, '_blank', 'noopener,noreferrer') }, { label: gettext('License'), key: 'license' } ]

ecosystem/ecosystem.module.ts

applicationDetailsRoutes
Type : Route[]
Default value : [ { path: 'properties', component: ApplicationPropertiesComponent, icon: 'list', label: gettext('Properties'), context: ViewContext.Application, priority: 5, canActivate: [ApplicationPropertiesGuard] }, { path: 'application-versions', component: PackageVersionsComponent, icon: 'c8y-modules', label: gettext('Versions'), context: ViewContext.Application, priority: 1, canActivate: [PackageVersionsGuard] }, { path: 'properties', component: ApplicationPropertiesComponent, icon: 'list', label: gettext('Properties'), context: ViewContext.Feature, priority: 5, canActivate: [ApplicationPropertiesGuard] }, { path: 'package-details', component: PackageDetailsComponent, icon: 'big-parcel', label: gettext('Extension package'), context: ViewContext.Extension, priority: 10, canActivate: [PackageGuard] }, { path: 'package-versions', component: PackageVersionsComponent, icon: 'c8y-modules', label: gettext('Versions'), context: ViewContext.Extension, priority: 1, canActivate: [PackageGuard, PackageVersionsGuard] }, { path: 'properties', component: ApplicationPropertiesComponent, icon: 'list', label: gettext('Properties'), context: ViewContext.Microservice, priority: 5, canActivate: [ApplicationPropertiesGuard] } ]
ecosystemMainRoutes
Type : Route[]
Default value : [ { path: 'ecosystem/application', redirectTo: 'ecosystem/application/applications', pathMatch: 'full' }, { // keeps legacy links functional path: 'ecosystem/applications', redirectTo: 'ecosystem/application/applications', pathMatch: 'full' }, { path: 'ecosystem/application/applications', component: ApplicationListComponent }, { path: 'ecosystem/extension/extensions', component: PackagesListComponent }, { path: 'ecosystem/application/features', component: FeatureListComponent }, { path: 'ecosystem/microservice/microservices', component: MicroserviceListComponent } ]

ecosystem/application-properties/application-properties.component.ts

APPLICATIONS_BASE_PATH
Type : string
Default value : '/ecosystem/application/applications'
MICROSERVICES_BASE_PATH
Type : string
Default value : '/ecosystem/microservice/microservices'

widgets/definitions/applications/index.ts

applicationsWidgetDefinition
Default value : { id: defaultWidgetIds.APPLICATIONS, label: gettext('Applications'), description: gettext('Displays the list of links to available applications.'), component: AppSwitcherInlineComponent, previewImage: 'c8y-style-assets/applications-widget-pr.png', data: { settings: { noNewWidgets: false, ng1: { options: { noDeviceTarget: true, groupsSelectable: false } } } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
applicationsWidgetProviders
Type : []
Default value : [hookWidget(applicationsWidgetDefinition)]

upgrade/ng1/downgraded.components.ts

appLogsAutoRefreshComponentDowngradedComponent
Default value : downgradeComponent({ component: AppLogsAutoRefreshComponent })
bootstrapComponentDowngradedComponent
Default value : downgradeComponent({ component: BootstrapComponent })
dataGridComponentDowngradedComponent
Default value : downgradeComponent({ component: DataGridComponent })
datapointSelectionListComponentDowngradedComponent
Default value : downgradeComponent({ component: DatapointSelectionListComponent })
emptyStateComponentDowngradedComponent
Default value : downgradeComponent({ component: EmptyStateComponent })
helpComponentDowngradedComponent
Default value : downgradeComponent({ component: HelpComponent })
highlightComponentDowngradedComponent
Default value : downgradeComponent({ component: HighlightComponent, inputs: ['pattern', 'text'] })
loadingComponentDowngradedComponent
Default value : downgradeComponent({ component: LoadingComponent })
paginationComponentDowngradedComponent
Default value : downgradeComponent({ component: PaginationComponent })
passwordInputComponentDowngradedComponent
Default value : downgradeComponent({ component: PasswordInputComponent })
platformConfigurationFormDowngradedComponent
Default value : downgradeComponent({ component: PlatformConfigurationFormComponent })
rangeDisplayComponentDowngradedComponent
Default value : downgradeComponent({ component: RangeDisplayComponent })
rolesAssetTreeComponentDowngradedComponent
Default value : downgradeComponent({ component: RolesAssetTreeComponent })
userTotpComponentDowngradedComponent
Default value : downgradeComponent({ component: UserTotpRevokeComponent })

core/forms/validate-array-elements.ts

ARRAY_VALIDATION_PREFIX
Type : string
Default value : 'INNER_ARRAY_ERROR_'

core/dynamic-forms/array/array.type.component.ts

arrayTypeConfig
Default value : (): EnvironmentProviders => importProvidersFrom( FormlyModule.forChild({ types: [{ name: 'array', component: ArrayTypeComponent }] }) )

icon-selector/icons/arrows/index.ts

arrowIconCategory
Default value : { label: gettext('Arrow`icons-category`'), icons: arrowIcons } as const
arrowIcons
Default value : [ ['collapse-arrow', 'angle-up', 'chevron-up'], ['forward', 'angle-right', 'chevron-right', 'chevron-breadcrumb'], ['expand-arrow', 'angle-down', 'chevron-down'], ['caret-back', 'angle-left', 'chevron-left'], ['chevron-double-left'], ['chevron-double-right'], ['chevron-double-up'], ['chevron-double-down'], ['chevron-circle-up'], ['chevron-circle-right'], ['chevron-circle-down'], ['chevron-circle-left'], ['arrow-up'], ['arrow-right'], ['arrow-down'], ['arrow-left'], ['panel-control-up', 'angle-double-up'], ['panel-control-right', 'angle-double-right'], ['panel-control-down', 'angle-double-down'], ['panel-control-left', 'angle-double-left'], ['download'], ['upload'], ['internal'], ['external'], ['undo'], ['redo'], ['signout'], ['signin'], ['login', 'sign-in'], ['logout', 'sign-out'], ['arrow-circle-up', 'arrow-circle-o-up'], ['arrow-circle-right', 'arrow-circle-o-right'], ['arrow-circle-down', 'arrow-circle-o-down'], ['arrow-circle-left', 'arrow-circle-o-left'], ['arrow-circle-up-left'], ['arrow-circle-down-left'], ['arrow-circle-up-right'], ['arrow-circle-bottom-right'], ['arrow-circle-diameter'], ['arrow-circle-divide-horizontal'], ['arrow-circle-minimize-horizontal'], ['caret-square-o-up', 'toggle-up'], ['caret-square-o-down', 'toggle-down'], ['caret-square-o-left', 'toggle-left'], ['caret-square-o-right', 'toggle-right'], ['enter-bottom'], ['enter-right'], ['enter-top'], ['enter-left'], ['exit-top'], ['exit-right'], ['exit-bottom'], ['exit-left'], ['input-output'], ['rotate-right', 'rotate', 'repeat'], ['reset', 'rotate-left'], ['restore'], ['refresh'], ['process', 'recycle'], ['refresh-exception'], ['lock-orientation'], ['arrow-dotted-up'], ['arrow-dotted-right', 'arrow-advance'], ['arrow-dotted-down'], ['arrow-dotted-left'], ['arrows-dotted-left-right'], ['arrows-dotted-up-down', 'up-down-arrows'], ['collect'], ['merge-horizontal'], ['split-horizontal'], ['merge-vertical'], ['divider', 'split-vertical'], ['drag', 'arrows', 'move-step'], ['resize-expand', 'arrows-alt', 'expand'], ['compress'], ['resize-collapse', 'collapse'], ['fullscreen'], ['fullscreen-exit'], ['long-arrow-up'], ['long-arrow-right'], ['long-arrow-down'], ['long-arrow-left'], ['arrows-v'], ['arrows-h'], ['enlarge'], ['data-transfer', 'exchange'], ['sort-arrow'], ['arrows-left-right-diagonal'], ['level-up'], ['level-down'], ['u-turn'], ['u-turn-right'], ['u-turn-left'], ['undo1'], ['redo1'], ['sort', 'unsorted'], ['sort-down', 'sort-desc'], ['sort-up', 'sort-asc'], ['caret-up'], ['caret-right'], ['caret-down'], ['caret-left'], ['squiggly-arrow'], ['curly-arrow'], ['swap'], ['environment'], ['shuffle', 'random'], ['swipe-up'], ['swipe-right'], ['swipe-down'], ['swipe-left'], ['two-finger-swipe-up'], ['two-finger-swipe-right'], ['two-finger-swipe-down'], ['two-finger-swipe-left'], ['pinch'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

assets-navigator/asset-node-config.model.ts

ASSET_NAVIGATOR_CONFIG
Default value : new InjectionToken<AssetNavigatorConfig>('AssetNodeConfig')

upgrade/auth-bridge.service.ts

authBridgeServiceProvider
Type : object
Default value : { provide: AuthBridgeService, useFactory: authBridgeServiceFactory, deps: ['$injector', BasicAuth, FetchClient, AppStateService, TenantUiService] }

datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.ts

AXIS_TYPES
Default value : [ { val: undefined, text: gettext('Auto') }, { val: 'left', text: gettext('Left') }, { val: 'right', text: gettext('Right') } ] as const
CHART_LINE_TYPES
Default value : [ { val: 'line', text: gettext('Line') }, { val: 'points', text: gettext('Points') }, { val: 'linePoints', text: gettext('Line and points') }, { val: 'bars', text: gettext('Bars') }, { val: 'step-before', text: gettext('Step before') }, { val: 'step-after', text: gettext('Step after') } ] as const
CHART_RENDER_TYPES
Default value : [ { val: 'min', text: gettext('Minimum') }, { val: 'max', text: gettext('Maximum') }, { val: 'area', text: gettext('Minimum and maximum') } ] as const

operations/bulk-operations-service/bulk-operations.service.ts

baseUrl
Type : string
Default value : 'devicecontrol/bulk/creation/'
HOOK_LIST_BULK_TYPE
Consider using the `hookListBulkType` function instead.
Default value : new InjectionToken<OperationType | OperationType[]>( 'HOOK_LIST_BULK_TYPE' )

branding/shared/shared-branding.module.ts

BRANDING_EDIT_CHILD_ROUTES
Type : Route[]
Default value : [ { path: '', pathMatch: 'full', redirectTo: 'generic' }, { path: 'generic', loadComponent: () => import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingFormComponent), data: { tabName: genericTabName } }, { path: 'light', loadComponent: () => import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingThemeFormComponent), data: { tabName: lightThemeTabName } } ]

upgrade/bridge.service.ts

bridgeServiceProvider
Type : object
Default value : { provide: BridgeService, useFactory: bridgeServiceFactory, deps: [ '$injector', AppStateService, Router, NgZone, RouterService, ActionService, PluginsResolveService ] }

operations/bulk-operation-list-item/bulk-operation-list-item.model.ts

BULK_OPERATION_STATUS_LABELS
Type : object
Default value : { SCHEDULED: gettext('Scheduled'), EXECUTING: gettext('Executing'), CANCELED: gettext('Canceled'), FAILED: gettext('Completed with failures'), SUCCESSFUL: gettext('Completed successfully'), DELETED: gettext('Deleted') }
BULK_OPERATION_STATUS_OPTIONS
Type : OperationStatusOptionsMap
Default value : { SCHEDULED: { label: BULK_OPERATION_STATUS_LABELS.SCHEDULED, generalStatuses: [OperationBulkGeneralStatus.SCHEDULED], icon: 'calendar', styleClass: 'text-info' }, EXECUTING: { label: BULK_OPERATION_STATUS_LABELS.EXECUTING, generalStatuses: [ OperationBulkGeneralStatus.EXECUTING, OperationBulkGeneralStatus.EXECUTING_WITH_ERROR ], icon: 'refresh', styleClass: 'text-primary' }, DELETED: { label: BULK_OPERATION_STATUS_LABELS.DELETED, generalStatuses: [OperationBulkGeneralStatus.DELETED], icon: 'delete-document', styleClass: 'text-muted' }, CANCELED: { label: BULK_OPERATION_STATUS_LABELS.CANCELED, generalStatuses: [OperationBulkGeneralStatus.CANCELED], icon: 'ban', styleClass: 'text-primary' }, FAILED: { label: BULK_OPERATION_STATUS_LABELS.FAILED, generalStatuses: [OperationBulkGeneralStatus.FAILED], icon: 'exclamation-circle', styleClass: 'text-danger' }, SUCCESSFUL: { label: BULK_OPERATION_STATUS_LABELS.SUCCESSFUL, generalStatuses: [OperationBulkGeneralStatus.SUCCESSFUL], icon: 'check-circle', styleClass: 'text-success' } }

operations/bulk-operation-list-item/bulk-operation-wrapper.model.ts

BULK_OPERATION_WRAPPER_MODAL_BODY_COMPONENT
Default value : new InjectionToken<BulkOperationDetailsModalBodyConfiguration>( 'BulkOperationWrapperModalBodyComponent' )

core/i18n/pattern-messages.data.ts

bulkOperationAuditLogTextPlaceholders
Type : object
Default value : { updatesList: { capture: '$1', translate: { "status='(.+?)'": { gettext: gettext('status: "{{ status | translate }}"'), placeholders: { status: '$1' } }, "generalStatus='(.+?)'": { gettext: gettext('general status: "{{ generalStatus | translate }}"'), placeholders: { generalStatus: '$1' } }, "progress='(.+?)'": { gettext: gettext('progress: "{{ progress }}"'), placeholders: { progress: '$1' } }, 'note=(.+?)': { gettext: gettext('note: "{{ note }}"'), placeholders: { note: '$1' } } } } }
MESSAGES_CORE_I18N
Default value : { '^Access is denied$': { gettext: gettext('Access denied.') }, '^Alarm created$': { gettext: gettext('Alarm created') }, '^Alarm updated$': { gettext: gettext('Alarm updated') }, '^API is not available with the new domain$': { gettext: gettext('Could not activate custom domain. DNS setup is incorrect.') }, '^Application with given name already exist$': { gettext: gettext('Application with given name already exists.') }, '^Application with id (.+?) is already assigned to the tenant (.+?)$': { gettext: gettext('This application is already assigned to tenant "{{tenant}}".'), placeholders: { tenant: '$2' } }, '^Apply software changes: (.+?)\\.?$': { gettext: gettext('Apply software changes: {{ softwareChanges }}'), placeholders: { softwareChanges: { capture: '$1', translate: { 'install "(.+?)" \\(version: (.+?)\\)': { gettext: gettext('install "{{ softwareName }}" (version: {{ softwareVersion }})'), placeholders: { softwareName: '$1', softwareVersion: '$2' } }, 'install "([^"]+)"(?! \\(version: .+?\\))': { gettext: gettext('install "{{ softwareName }}"'), placeholders: { softwareName: '$1' } }, 'delete "(.+?)" \\(version: (.+?)\\)': { gettext: gettext('delete "{{ softwareName }}" (version: {{ softwareVersion }})'), placeholders: { softwareName: '$1', softwareVersion: '$2' } }, 'delete "([^"]+)"(?! \\(version: .+?\\))': { gettext: gettext('delete "{{ softwareName }}"'), placeholders: { softwareName: '$1' } } } } } }, '^Assign device profile (.+?) to device (.+?)$': { gettext: gettext('Assign device profile {{profileName}} to device {{deviceName}}'), placeholders: { profileName: '$1', deviceName: '$2' } }, '^(.+)pplication for tenant (.+) with properties \\( (.+?) \\) already exists$': { gettext: gettext( 'Application for tenant "{{tenant}}" with the following values ({{valuesList}}) already exists.' ), placeholders: { tenant: '$2', valuesList: '$3' } }, '^Authentication failed! : User account is locked$': { gettext: gettext('Authentication failed due to: user account is locked.') }, '^Availability monitoring record$': { gettext: gettext('Availability monitoring record') }, '^Can not activate a certificate which is either expired or not yet valid$': { gettext: gettext('Cannot activate a certificate which is either expired or not yet valid.') }, '^Cannot add certificate - certificate with (.+?) fingerprint already exists. : Certificate with (.+?) fingerprint already exists.$': { gettext: gettext( 'Could not add certificate. Certificate with {{fingerprint}} fingerprint already exists.' ), placeholders: { fingerprint: '$1' } }, '^Cannot change password. : Provided token does not exist.$': { gettext: gettext('Cannot change password: provided token is invalid.') }, '^Cannot deploy module (.*)$': { gettext: gettext('Cannot deploy module due to error: "{{ errorMessage | translate }}".'), placeholders: { errorMessage: '$1' } }, "^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+) \\[([\\S\\s]+?)\\]$": { gettext: gettext( 'Could not deploy module "{{moduleName}}". Compilation failed in expression "{{expression}}": incorrect syntax near "{{incorrectExpression}}" at line {{line}} column {{column}}.' ), placeholders: { moduleName: '$1', expression: '$3', incorrectExpression: '$4', line: '$5', column: '$6' } }, "^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+) near reserved keyword '(.+?)' \\[([\\S\\s]+?)\\]$": { gettext: gettext( 'Could not deploy module "{{moduleName}}". Compilation failed in expression "{{expression}}": incorrect syntax near "{{incorrectExpression}}" at line {{line}} column {{column}} near reserved keyword "{{keyword}}".' ), placeholders: { moduleName: '$1', expression: '$3', incorrectExpression: '$4', line: '$5', column: '$6', keyword: '$7' } }, "^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+), please check the where clause \\[([\\S\\s]+?)\\]$": { gettext: gettext( 'Could not deploy module "{{moduleName}}". Compilation failed in expression "{{expression}}": incorrect syntax near "{{incorrectExpression}}" at line {{line}} column {{column}}, check "where" clause.' ), placeholders: { moduleName: '$1', expression: '$3', incorrectExpression: '$4', line: '$5', column: '$6' } }, "^Cannot deploy module (.+?)! : Deployment failed in module '(.+?)' in expression '(.+?)' : Exception compiling script '(.+?)' of dialect '(.+?)': missing (.+?) before statement \\((.+?)\\) \\[([\\S\\s]+?)\\]$": { gettext: gettext( 'Could not deploy module "{{moduleName}}". Compilation failed in expression "{{expression}}": exception compiling script "{{scriptName}}" of dialect "{{scriptDialect}}": missing "{{missingSyntax}}" before statement "{{affectedStatement}}".' ), placeholders: { moduleName: '$1', expression: '$3', scriptName: '$4', scriptDialect: '$5', missingSyntax: '$6', affectedStatement: '$7' } }, "^Cannot execute bulk operation on empty group. Group with id='(\\d+?)' doesn't have child assets.$": { gettext: gettext( 'Could not execute bulk operation on an empty group. Group with ID "{{groupId}}" has no child assets.' ), placeholders: { groupId: '$1' } }, "^Cannot execute bulk operation on empty group. DynamicGroup with id='(\\d+?)' doesn't have child assets$": { gettext: gettext( 'Could not execute bulk operation on an empty group. Smart group with ID "{{groupId}}" has no child assets.' ), placeholders: { groupId: '$1' } }, '^Cannot parse X509 certificate. : Could not parse certificate: (.+?)$': { gettext: gettext('Could not parse X.509 certificate: {{ failureReason | translate }}.'), placeholders: { failureReason: '$1' } }, '^Cannot reschedule bulk operation. All its operations are successful$': { gettext: gettext('Cannot reschedule bulk operation. All its operations are already successful.') }, '^Cannot reset user password : Cannot find user with such email.$': { gettext: gettext('Cannot reset password for user with such email: email not found.') }, '^Cannot update/delete application binary via this endpoint$': { gettext: gettext('Cannot update/delete application binary via this endpoint') }, "^Can't delete user because it is used by another managed object$": { gettext: gettext( 'Cannot delete device with associated device owner because this owner is still assigned to other device(s). Try to remove only the device.' ) }, '^Cep module created$': { gettext: gettext('CEP module created') }, '^Cep module updated$': { gettext: gettext('CEP module updated') }, '^Cep module deleted$': { gettext: gettext('CEP module deleted') }, '^Cep module "(.+?)" created$': { gettext: gettext('CEP module "{{name}}" created'), placeholders: { name: '$1' } }, '^Cep module "(.+?)" updated$': { gettext: gettext('CEP module "{{name}}" updated'), placeholders: { name: '$1' } }, '^Cep module "(.+?)" deleted$': { gettext: gettext('CEP module "{{name}}" deleted'), placeholders: { name: '$1' } }, '^Command state is invalid: (.+)$': { gettext: gettext('Command state is invalid: {{violations}}'), placeholders: { violations: { capture: '$1', translate: { '(\\w+?) - may not be null': { gettext: gettext('"{{field}}" must not be null'), placeholders: { field: '$1' } } } } } }, '^Could not connect to endpoint (.+)\\. Could not verify `(.+)` host key with fingerprint `(.+)` for `(.+)` on port (.+)\\. If you expected that key, please remove the previous one from configuration to allow for connection\\.$': { gettext: gettext( 'Could not connect to endpoint "{{endpointName}}". Could not verify {{keyType}} host key with fingerprint {{fingerprint}} for host {{host}} on port {{port}}. If you expected this key, please remove the previous one from configuration to allow for connection.' ), placeholders: { endpointName: '$1', keyType: '$2', fingerprint: '$3', host: '$4', port: '$5' } }, '^Could not login to ssh server on endpoint "(.+)"\\. Provided credential for user "(.+)" is incorrect\\.$': { gettext: gettext( 'Could not access SSH server on endpoint "{{endpointName}}". Provided credentials for user "{{userName}}" are incorrect.' ), placeholders: { endpointName: '$1', userName: '$2' } }, '^Could not save object remoteAccessUpdate: (.+)$': { gettext: '{{errorMessages}}', placeholders: { errorMessages: { capture: '$1', translate: { 'Could not recognize host-key format': { gettext: gettext('Could not recognize "Host key" format') }, 'Could not recognize key-pair format': { gettext: gettext('Could not recognize the format of "Public key" or "Private key"') } } } } }, '^Could not update user. : Error persisting user (.+?)!$': { gettext: gettext('Could not update user "{{username}}".'), placeholders: { username: '$1' } }, '^Create bulk operation$': { gettext: gettext('Create bulk operation') }, '^Create bulk operation: (.+)$': { gettext: gettext('Create bulk operation: {{updatesList}}'), placeholders: bulkOperationAuditLogTextPlaceholders }, '^Creation ramp must be greater than (\\d+?)$': { gettext: gettext('Bulk operation delay must be greater than {{minSeconds}} seconds.'), placeholders: { minSeconds: '$1' } }, '^Created container$': { gettext: gettext('Container created.') }, '^Created pod: (.+)$': { gettext: gettext('Pod "{{imageName}}" created.'), placeholders: { imageName: '$1' } }, '^Creating device on LoRa platform failed$': { gettext: gettext('Could not create the device in the LoRa platform.') }, '^CSV file contained empty dataset$': { gettext: gettext('No entries found in uploaded CSV file.') }, '^Cycle detected for route (.+?)!$': { gettext: gettext('Cycle detected for route {{route}}.'), placeholders: { route: '$1' } }, '^Data broker processing is currently overloaded and may stop forwarding your data\\. Please contact support\\.$': { gettext: gettext( 'Data broker processing is currently overloaded and may stop forwarding your data. Please contact support.' ) }, '^Data broker processing is not able to connect do destination tenant, thus data forwarding is not working\\. Please contact support\\.$': { gettext: gettext( 'Data broker processing is not able to connect to destination tenant, thus data forwarding is not working. Please contact support.' ) }, '^Delete bulk operation$': { gettext: gettext('Delete bulk operation') }, '^Delete bulk operation: (.+)$': { gettext: gettext('Delete bulk operation: {{updatesList}}'), placeholders: bulkOperationAuditLogTextPlaceholders }, "^Device id '(.+?)' contains '(.+?)' character which is not permitted.$": { gettext: gettext('ID "{{deviceId}}" contains invalid character: "{{invalidCharacter}}".'), placeholders: { deviceId: '$1', invalidCharacter: '$2' } }, "^Device name: '(.+?)', alarm text: '(.+?)'$": { gettext: gettext('Device name: "{{deviceName}}", alarm text: "{{alarmText | translate}}"'), placeholders: { deviceName: '$1', alarmText: '$2' } }, '^Device (.+?) already registered to a tenant.$': { gettext: gettext( 'Device {{ devEUI }} is already registered in your tenant or in another tenant in the platform.' ), placeholders: { devEUI: '$1' } }, '^Device with external ID(s) (.+?) was replaced by device with external ID(s) (.+?)$': { gettext: gettext( 'Device with external ID(s) {{ oldExtIds }} was replaced by device with external ID(s) {{ newExtIds }}.' ), placeholders: { oldExtIds: '$1', newExtIds: '$2' } }, '^Display name$': { gettext: gettext('Login alias') }, '^Domain name in uploaded certificate differs from the one in use$': { gettext: gettext( 'Domain name in uploaded certificate differs from the one in use. Please deactivate the custom domain before uploading new certificate.' ) }, '^Domain name is already in use by another tenant!$': { gettext: gettext('Domain name is already used by another tenant.') }, '^Duplicated connector for instanceUrl (.+?)!$': { gettext: gettext('Target URL {{targetUrl}} already used by another connector.'), placeholders: { targetUrl: '$1' } }, '^Duplicated connector for name (.+?)!$': { gettext: gettext('Connector name "{{name}}" already used by another connector.'), placeholders: { name: '$1' } }, '^Entry is outside of the target dir: (.+)$': { gettext: gettext('File entry outside of the target directory: "{{path}}".'), placeholders: { path: '$1' } }, '^Error during password validation. : Password must have at least (\\d+?) characters and no more than (\\d+?) and must contain only Latin1 characters.$': { gettext: gettext( 'Password is invalid. It must have at least {{minCharactersCount}} and no more than {{maxCharactersCount}} characters.' ), placeholders: { minCharactersCount: '$1', maxCharactersCount: '$2' } }, '^Error during password validation. : Your password has been used already. Choose another.$': { gettext: gettext('This password has already been used earlier. Use a different one.') }, "^Error in statement (.+?):(.+?)! : Incorrect syntax near '(.+?)' near reserved keyword '(.+?)' \\[([\\S\\s]+?)\\]$": { gettext: gettext( 'Error in statement {{moduleName}}:{{statementNumber}}. Incorrect syntax near expression "{{expression}}" near reserved keyword "{{keyword}}".' ), placeholders: { moduleName: '$1', statementNumber: '$2', expression: '$3', keyword: '$4' } }, '^External id not found; external id = ID \\[type=(.+?), value=(.+?)\\]$': { gettext: gettext('External ID not found for type "{{type}}" and value "{{value}}".'), placeholders: { type: '$1', value: '$2' } }, '^Error occurred when trying to find an Application for id ID (.+) : Could not find application by ID (\\d+)$': { gettext: gettext('Could not find application by ID {{applicationId}}.'), placeholders: { applicationId: '$2' } }, '^Http status code: 404\n{error="options/Not Found",message="Unable to find option by given key: sigfox-agent/provider.token",info="https://www.cumulocity.com/guides/reference-guide/#error_reporting",details="null"}$': { gettext: gettext('Unable to find option by given key: sigfox-agent/provider.token') }, '^Failed to delete application. : Cannot remove application assigned to other tenants.$': { gettext: gettext('Could not delete application assigned to other tenants.') }, '^Failed to extract certificate from PKCS12$': { gettext: gettext('Failed to extract certificate from PKCS12.') }, '^Failed to update domain at the platform$': { gettext: gettext('Failed to update domain at the platform.') }, "^Finding device data from database failed : No managedObject for id '(.+?)'!$": { gettext: gettext('Could not find managed object with ID "{{deviceId}}".'), placeholders: { deviceId: '$1' } }, '^Following mandatory fields should be included: (.+?)$': { gettext: gettext('Following mandatory fields should be included: {{fields}}'), placeholders: { fields: '$1' } }, '^Global Role updated$': { gettext: gettext('Global role updated') }, '^Global Role (.+?) updated$': { gettext: gettext('Global role "{{name}}" updated'), placeholders: { name: '$1' } }, '^Global Role (.+?) updated: (.+)$': { gettext: gettext('Global role "{{name}}" updated: {{updatesList}}'), placeholders: { name: '$1', updatesList: { capture: '$2', translate: { 'applications \\[([^\\]]+?)\\] added': { gettext: gettext('applications {{list}} added'), placeholders: { list: '$1' } }, 'applications \\[([^\\]]+?)\\] removed': { gettext: gettext('applications {{list}} removed'), placeholders: { list: '$1' } }, 'roles \\[([^\\]]+?)\\] added': { gettext: gettext('roles {{list}} added'), placeholders: { list: '$1' } }, 'roles \\[([^\\]]+?)\\] removed': { gettext: gettext('roles {{list}} removed'), placeholders: { list: '$1' } } } } } }, '^Global Roles$': { gettext: gettext('Global roles') }, '^Operation updated: (.+)$': { gettext: gettext('Operation updated: {{updatesList}}'), placeholders: { updatesList: { capture: '$1', translate: { "status='(.+?)'": { gettext: gettext('status: "{{ status | translate }}"'), placeholders: { status: '$1' } }, "description='(.+?)'": { gettext: gettext('description: "{{ description | translate }}"'), placeholders: { description: '$1' } }, "device name='(.+?)'": { gettext: gettext('device name: "{{ deviceName }}"'), placeholders: { deviceName: '$1' } }, "failure reason='(.+?)'": { gettext: gettext('failure reason: "{{ failureReason | translate }}"'), placeholders: { failureReason: '$1' } } } } } }, '^ID \\[type=(.+?), value=(.+?)\\] was already bound to different Global ID.$': { gettext: gettext('External ID "{{value}}" of the type "{{type}}" already exists.'), placeholders: { type: '$1', value: '$2' } }, '^Invalid credentials! : Bad credentials$': { gettext: gettext('Invalid credentials.') }, '^Invalid credentials! : No phone number provided$': { gettext: gettext('Log into the management tenant first and enter your phone number.') }, '^Inventory Role removed$': { gettext: gettext('Inventory role removed') }, '^Inventory Role (.+?) removed$': { gettext: gettext('Inventory role "{{name}}" deleted.'), placeholders: { name: '$1' } }, '^Inventory Role updated$': { gettext: gettext('Inventory role updated') }, '^Inventory Role (.+?) updated$': { gettext: gettext('Inventory role "{{name}}" updated.'), placeholders: { name: '$1' } }, '^I/O error: Connection refused; nested exception is Connection refused : Connection refused$': { gettext: gettext('Connection refused') }, '^I/O error: Read timed out; nested exception is Read timed out : Read timed out$': { gettext: gettext('Read timed out') }, '^Log file requested$': { gettext: gettext('Log file requested.') }, '^Managed object deleted$': { gettext: gettext('Managed object deleted') }, '^Managed object "(.+?)" deleted$': { gettext: gettext('Managed object "{{name}}" deleted'), placeholders: { name: '$1' } }, '^Maximum file size exceeded$': { gettext: gettext('Maximum file size exceeded.') }, "^Message with ID (.+?) doesn't exist in smart rest template (.+?)$": { gettext: gettext( 'Message with ID "{{messageId}}" doesn\'t exist in SmartREST template with ID "{{templateId}}"' ), placeholders: { messageId: '$1', templateId: '$2' } }, "^name of Application cannot start with '(.+)' prefix.$": { gettext: gettext('Application name must not start with "{{ prefix }}".'), placeholders: { prefix: '$1' } }, '^NewDeviceRequest for id = (.+?) already exists.$': { gettext: gettext('Device registration request with ID {{id}} already exists.'), placeholders: { id: '$1' } }, '^NewDeviceRequest for device id (.+?) is in state BLOCKED, not PENDING_ACCEPTANCE.$': { gettext: gettext( 'Device registration request with ID "{{deviceId}}" is in state "Blocked", not "Pending acceptance". Remove this registration request and start over.' ), placeholders: { deviceId: '$1' } }, '^No communication with device since (.+?)$': { gettext: gettext('No communication with device since {{timestamp | absoluteDate}}.'), placeholders: { timestamp: '$1' } }, '^No data received from device within required interval.$': { gettext: gettext('No data received from device within required interval.') }, '^No LoRa provider settings are found. Please configure the connectivity settings.$': { gettext: gettext( 'No LoRa provider settings are found. Please configure the connectivity settings.' ) }, '^Not within any context!$': { gettext: gettext('A problem occurred with microservice subscription.') }, '^Maximum age cannot be bigger than 10 years.$': { gettext: gettext('Maximum age cannot be bigger than 10 years.') }, '^Microservice application name incorrect. Please use only lower-case letters, digits and dashes. Maximum length is (\\d+) characters.$': { gettext: gettext( 'Microservice application name is incorrect: only lower case letters, digits and dashes allowed. Maximum length: {{maxLength}}.' ), placeholders: { maxLength: '$1' } }, '^Microservice not available.*$': { gettext: gettext('Microservice is not available.') }, '^Operation created$': { gettext: gettext('Operation created.') }, '^Operation updated$': { gettext: gettext('Operation updated.') }, "^Operation created: status='(.+?)'.$": { gettext: gettext('Operation created: status: "{{ status | translate }}".'), placeholders: { status: '$1' } }, '^Option created$': { gettext: gettext('Option created.') }, '^Option "(.+?)" created$': { gettext: gettext('Option "{{option}}" created.'), placeholders: { option: '$1' } }, '^Option deleted$': { gettext: gettext('Option deleted.') }, '^Option "(.+?)" deleted$': { gettext: gettext('Option "{{option}}" deleted.'), placeholders: { option: '$1' } }, '^Owner field error. : Cannot introduce cyclic dependency.$': { gettext: gettext('Could not introduce cyclic ownership dependency.') }, '^Password change is temporary blocked.$': { gettext: gettext('Password change is temporarily blocked.') }, '^Password cipher does not match$': { gettext: gettext('Password cipher does not match.') }, '^Platform application cannot be added to, nor removed from any tenant.$': { gettext: gettext('Platform application cannot be added to, nor removed from any tenant.') }, '^Private key must be provided in KEY_PAIR credentials$': { gettext: gettext('Private key must be provided when "Public/private keys" option is selected.') }, '^Private key cipher does not match$': { gettext: gettext('Private key cipher does not match') }, '^Protocol "(.+?)" does not support "(.+?)" credentials type$': { gettext: gettext( 'Protocol "{{protocol}}" does not support "{{credentialsType}}" credentials type.' ), placeholders: { protocol: '$1', credentialsType: '$2' } }, '^Provided security key does not match key stored for device (.+?).$': { gettext: gettext( 'Provided security token does not match the security token stored for this device "{{deviceId}}".' ), placeholders: { deviceId: '$1' } }, '^Provided security key does not match key stored for device (.+?).Reached maximum number of failed attempts while trying to register this device. Request will now be blocked and has to be removed manually to restart the process.$': { gettext: gettext( 'The provided security token does not match the token stored for device "{{deviceId}}". You have reached the maximum number of failed attempts while trying to register this device. The request will now be blocked and must be removed manually to restart the process.' ), placeholders: { deviceId: '$1' } }, '^pulling image "(.+)"$': { gettext: gettext('Pulling image: "{{imageName}}".'), placeholders: { imageName: '$1' } }, '^Real-time event processing is currently overloaded and may stop processing your events\\. Please contact support\\.$': { gettext: gettext( 'Real-time event processing is currently overloaded and may stop processing your events. Please contact support.' ) }, '^Resource ID \\[type=com_cumulocity_model_idtype_GId, value=(.+?)\\] for this request not found.$': { gettext: gettext('Could not find the resource with ID "{{id}}".'), placeholders: { id: '$1' } }, '^Retrieve configuration snapshot from device (.+?)$': { gettext: gettext('Retrieve configuration snapshot from device {{deviceName}}'), placeholders: { deviceName: '$1' } }, '^Retrieve (.+?) configuration snapshot from device (.+?)$': { gettext: gettext( 'Retrieve {{configurationType}} configuration snapshot from device {{deviceName}}' ), placeholders: { configurationType: '$1', deviceName: '$2' } }, '^Scaled up replica set (.+) to (\\d+)$': { gettext: gettext('Replica set "{{replicaSetName}}" scaled up to "{{scaleNumber}}".'), placeholders: { replicaSetName: '$1', scaleNumber: '$2' } }, '^Send configuration snapshot (.+?) of configuration type (.+?) to device (.+?)$': { gettext: gettext( 'Send configuration snapshot {{snapshotName}} of configuration type {{configurationType}} to device {{deviceName}}' ), placeholders: { snapshotName: '$1', configurationType: '$2', deviceName: '$3' } }, '^Send configuration snapshot (.+?) to device (.+?)$': { gettext: gettext('Send configuration snapshot {{snapshotName}} to device {{deviceName}}'), placeholders: { snapshotName: '$1', deviceName: '$2' } }, '^Simulator state is invalid: (.+)$': { gettext: gettext('Simulator state is invalid: {{violations}}'), placeholders: { violations: { capture: '$1', translate: { '(\\w+?) - may not be null': { gettext: gettext('"{{field}}" should not be null'), placeholders: { field: '$1' } }, '(\\w+?) - must be less than or equal to (\\d+)': { gettext: gettext('"{{field}}" must be less than or equal to {{maxValue}}'), placeholders: { field: '$1', maxValue: '$2' } }, '(\\w+?) - should not contain null values': { gettext: gettext('"{{field}}" should not contain null values'), placeholders: { field: '$1' } } } } } }, "^Smart rest template (.+?) doesn't exist$": { gettext: gettext('SmartREST template with ID "{{templateId}}" doesn\'t exist.'), placeholders: { templateId: '$1' } }, '^Smart rule created$': { gettext: gettext('Smart rule created.') }, '^Smart rule updated$': { gettext: gettext('Smart rule updated.') }, '^Smart rule enabled$': { gettext: gettext('Smart rule activated.') }, '^Smart rule disabled$': { gettext: gettext('Smart rule deactivated.') }, '^Smart rule deleted$': { gettext: gettext('Smart rule deleted.') }, '^Smart rule "(.+?)" created$': { gettext: gettext('Smart rule "{{name}}" created.'), placeholders: { name: '$1' } }, '^Smart rule "(.+?)" updated$': { gettext: gettext('Smart rule "{{name}}" updated.'), placeholders: { name: '$1' } }, '^Smart rule "(.+?)" enabled$': { gettext: gettext('Smart rule "{{name}}" activated.'), placeholders: { name: '$1' } }, '^Smart rule "(.+?)" disabled$': { gettext: gettext('Smart rule "{{name}}" deactivated.'), placeholders: { name: '$1' } }, '^Smart rule "(.+?)" deleted$': { gettext: gettext('Smart rule "{{name}}" deleted.'), placeholders: { name: '$1' } }, '^Started container$': { gettext: gettext('Container started.') }, '^Successfully assigned (.+) to (.+)$': { gettext: gettext('"{{imageName}}" assigned to "{{address}}".'), placeholders: { imageName: '$1', address: '$2' } }, '^Successfully pulled image "(.+)"$': { gettext: gettext('Image "{{imageName}}" pulled.'), placeholders: { imageName: '$1' } }, '^Tenant creation failed. : Tenant with given id already exists.$': { gettext: gettext('Could not create a tenant. Tenant with given domain/URL already exists.') }, '^Tenant id cannot be a reserved sql keyword "(.+?)".$': { gettext: gettext('Could not use a reserved SQL keyword "{{tenantId}}" as a domain name.'), placeholders: { tenantId: '$1' } }, '^Tenant "(.+?)" activated$': { gettext: gettext('Tenant "{{tenant}}" activated.'), placeholders: { tenant: '$1' } }, '^Tenant (.+?) has sub-tenants, please remove them first!$': { gettext: gettext('Could not remove tenant "{{tenant}}". Remove its subtenants first.'), placeholders: { tenant: '$1' } }, '^Tenant activated$': { gettext: gettext('Tenant activated.') }, '^Tenant "(.+?)" created$': { gettext: gettext('Tenant "{{tenant}}" created.'), placeholders: { tenant: '$1' } }, '^Tenant created$': { gettext: gettext('Tenant created.') }, '^Tenant "(.+?)" deleted$': { gettext: gettext('Tenant "{{tenant}}" deleted.'), placeholders: { tenant: '$1' } }, '^Tenant deleted$': { gettext: gettext('Tenant deleted.') }, '^Tenant "(.+?)" suspended$': { gettext: gettext('Tenant "{{tenant}}" suspended.'), placeholders: { tenant: '$1' } }, '^Tenant suspended$': { gettext: gettext('Tenant suspended') }, '^Tenant "(.+?)" updated: (.+?)$': { gettext: gettext('Tenant "{{tenant}}" updated: {{properties}}.'), placeholders: { tenant: '$1', properties: '$2' } }, '^Tenant updated$': { gettext: gettext('Tenant updated.') }, '^Too Many Requests$': { gettext: gettext('Too many requests. Try again later.') }, "^User alias equals username '(.+)'$": { gettext: gettext('Username and login alias must be different.') }, '^User created$': { gettext: gettext('User created') }, '^User (.+?) created$': { gettext: gettext('User "{{name}}" created'), placeholders: { name: '$1' } }, '^User deleted$': { gettext: gettext('User deleted') }, '^User (.+?) deleted$': { gettext: gettext('User "{{name}}" deleted'), placeholders: { name: '$1' } }, '^(.+?) user login with OAuth internal mode failed$': { gettext: gettext('"{{name}}" user login with OAI-Secure mode failed'), placeholders: { name: '$1' } }, '^User updated$': { gettext: gettext('User updated') }, '^User (.+?) updated: (.+)$': { gettext: gettext('User "{{name}}" updated: {{updatesList}}'), placeholders: { name: '$1', updatesList: { capture: '$2', translate: { "delegatedBy='(.+?)'": { gettext: gettext('delegated by: "{{delegate}}"'), placeholders: { delegate: '$1' } }, "owner='(.+?)'": { gettext: gettext('owner: "{{owner}}"'), placeholders: { owner: '$1' } }, 'inventory assignment \\[(.+?)\\] added': { gettext: gettext('inventory assignment [{{inventoryAssignment}}] added'), placeholders: { inventoryAssignment: '$1' } }, 'inventory assignment \\[(.+?)\\] removed': { gettext: gettext('inventory assignment [{{inventoryAssignment}}] removed'), placeholders: { inventoryAssignment: '$1' } }, 'applications \\[(.+?)\\] added': { gettext: gettext('applications [{{applicationsList}}] added'), placeholders: { applicationsList: '$1' } }, 'applications \\[(.+?)\\] removed': { gettext: gettext('applications [{{applicationsList}}] removed'), placeholders: { applicationsList: '$1' } }, 'global roles \\[(.+?)\\] added': { gettext: gettext('global roles [{{globalRolesList}}] added'), placeholders: { globalRolesList: '$1' } }, 'global roles \\[(.+?)\\] removed': { gettext: gettext('global roles [{{globalRolesList}}] removed'), placeholders: { globalRolesList: '$1' } } } } } }, "^User with username '(.+?)' already exists! : Duplicated: (.+?)$": { gettext: gettext('User "{{username}}" already exists.'), placeholders: { username: '$1' } }, "^User with username or alias '(.+)' already exists! : Duplicated: (.+)$": { gettext: gettext('User with username or login alias "{{usernameOrAlias}}" already exists.'), placeholders: { usernameOrAlias: '$1' } }, "^User with email '(.+?)' already exists! : Duplicated: (.+?)$": { gettext: gettext('User with email "{{email}}" already exists.'), placeholders: { email: '$1' } }, '^unable to find option with given key (.+?) : Could not find entity Option by ID (.+?)!$': { gettext: gettext('Unable to get tenant option: "{{option}}".'), placeholders: { option: '$2' } }, '^unable to find option with given key (.+?) : There is no system property for key (.+?)$': { gettext: gettext('Unable to get system option: "{{option}}".'), placeholders: { option: '$2' } }, '^Write failed with error code 16733 and error message \'trying to index text where term list is too big, max is 4mb _id: "(.+?)"\'$': { gettext: gettext( 'The uploaded image cannot be bigger than 4 MB. Please upload a smaller one.' ) }, '^Write failed with error code 17280 and error message \'WiredTigerIndex::insert: key too large to index, failing (.+?) { : "(.+?)" }\'$': { gettext: gettext('The selected name is too long. Please try a shorter one.') }, '^You have reached devices limit. No more devices can be registered.$': { gettext: gettext('You reached devices limit. No more devices can be registered.') }, '^(.+) succeeded for volume "(.+)"$': { gettext: gettext('Operation "{{operation}}" succeeded for volume "{{volume}}".'), placeholders: { operation: '$1', volume: '$2' } }, "^Exception on tenant (.+) in statement '(.+)': Invocation exception when invoking method '(.+)' of class '(.+)' passing parameters \\[(.+)\\] for statement '(.+)': (.+) : (.+)$": { gettext: gettext( 'Exception on tenant {{tenantId}} in statement "{{moduleName}}": Invocation exception when invoking method "{{methodName}}" of class "{{classPath}}" passing parameters [{{parameters}}] for statement "{{statement}}": {{exceptionType}} : {{exceptionMessage}}.' ), placeholders: { tenantId: '$1', moduleName: '$2', methodName: '$3', classPath: '$4', parameters: '$5', statement: '$6', exceptionType: '$7', exceptionMessage: '$8' } }, '^No nodes are available that match all of the predicates: (.+).$': { gettext: gettext('No nodes are available that match all of the predicates: [{{predicates}}].'), placeholders: { predicates: '$1' } }, '^Readiness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\(Client.Timeout exceeded while awaiting headers\\)$': { gettext: gettext( 'Readiness probe failed: {{requestMethod}} {{uri}}: {{protocol}}: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).' ), placeholders: { requestMethod: '$1', uri: '$2', protocol: '$3' } }, '^Liveness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\(Client.Timeout exceeded while awaiting headers\\)$': { gettext: gettext( 'Liveness probe failed: {{requestMethod}} {{uri}}: {{protocol}}: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).' ), placeholders: { requestMethod: '$1', uri: '$2', protocol: '$3' } }, '^Error syncing pod$': { gettext: gettext('Pod synchronization error.') }, '^Failed create pod sandbox.$': { gettext: gettext('Pod sandbox creation failed.') }, '^Exception on tenant (.+) in statement \'(.+)\': Http status code: (\\d+) \\{error="alarm/Unprocessable Entity",message="(.+)",info="https://www.cumulocity.com/guides/reference-guide/#error_reporting",details="null"\\}$': { gettext: gettext( 'Exception on tenant {{tenantId}} in statement "{{statement}}": HTTP status code: {{httpStatusCode}} : {{message | translate}}' ), placeholders: { tenantId: '$1', statement: '$2', httpStatusCode: '$3', message: '$4' } }, "^User '(.+)' is managed by a remote identity management service defined by an administrator, direct update is forbidden$": { gettext: gettext( 'User "{{userName}}" is managed by a remote identity management service defined by an administrator, direct update is forbidden.' ), placeholders: { userName: '$1' } }, '^Added new child device to "(.+)" \\(ID: (.+)\\).$': { gettext: gettext('Added new child device to "{{parentDeviceName}}" (ID: {{parentDeviceId}}).'), placeholders: { parentDeviceName: '$1', parentDeviceId: '$2' } }, '^Updated child device of "(.+)" \\(ID: (.+)\\).$': { gettext: gettext('Updated child device of "{{parentDeviceName}}" (ID: {{parentDeviceId}}).'), placeholders: { parentDeviceName: '$1', parentDeviceId: '$2' } }, '^Added child device "(.+)" \\(ID: (.+)\\).$': { gettext: gettext('Added child device "{{name}}" (ID: {{id}}).'), placeholders: { name: '$1', id: '$2' } }, '^Removed child device "(.+)" \\(ID: (.+)\\).$': { gettext: gettext('Removed child device "{{name}}" (ID: {{id}}).'), placeholders: { name: '$1', id: '$2' } }, '^Change value of "(.+)" to (.+) (.+).$': { gettext: gettext('Change value of "{{name}}" to {{value}}{{unit}}.'), placeholders: { name: '$1', value: '$2', unit: '$3' } }, '^Change value of "(.+)" to (.+).$': { gettext: gettext('Change value of "{{name}}" to {{value}}.'), placeholders: { name: '$1', value: '$2' } }, '^Change status of "(.+)" to "(.+)".$': { gettext: gettext('Change status of "{{name}}" to "{{label}}".'), placeholders: { name: '$1', label: '$2' } }, '^Send message "(.+)".$': { gettext: gettext('Send message "{{str}}".'), placeholders: { str: '$1' } }, '^Close relay (.+).$': { gettext: gettext('Close relay {{number}}.'), placeholders: { number: '$1' } }, '^Open relay (.+).$': { gettext: gettext('Open relay {{number}}.'), placeholders: { number: '$1' } }, '^Change trace status to (.+).$': { gettext: gettext('Change trace status to {{state | translate}}.'), placeholders: { state: '$1' } }, '^Change relay status to (.+).$': { gettext: gettext('Change relay status to {{status | translate}}.'), placeholders: { status: '$1' } }, '^Closing relay (.+).$': { gettext: gettext('Closing relay {{number}}.'), placeholders: { number: '$1' } }, '^Opening relay (.+).$': { gettext: gettext('Opening relay {{number}}.'), placeholders: { number: '$1' } }, '^Update bulk operation$': { gettext: gettext('Update bulk operation') }, '^Update bulk operation: (.+)$': { gettext: gettext('Update bulk operation: {{updatesList}}'), placeholders: bulkOperationAuditLogTextPlaceholders }, '^Update firmware to: "?(.+?)"? \\(version: (.+)\\)\\.?$': { gettext: gettext('Update firmware to: "{{ name }}" (version: {{ version }})'), placeholders: { name: '$1', version: '$2' } }, '^Update firmware to: "?(.+?)"?\\.?$': { gettext: gettext('Update firmware to: "{{ name }}"'), placeholders: { name: '$1' } }, '^Update configuration to (.+).$': { gettext: gettext('Update configuration to: {{ name }}.'), placeholders: { name: '$1' } }, '^Apply device profile: (.+).?$': { gettext: gettext('Apply device profile: {{ name }}'), placeholders: { name: '$1' } }, '^Execute generic command: (.+).?$': { gettext: gettext('Execute generic command: {{command}}'), placeholders: { command: '$1' } }, '^Failed to refresh application. : Cannot refresh non local-hosted application.$': { gettext: gettext('Could not reactivate the application as it is not hosted locally.') }, '^Failed to refresh application. : Cannot refresh application without active version id.$': { gettext: gettext('Could not reactivate the application as it has no active version.') }, // TODO: remove if we decide not to translate such messages: // '^Killing container with id (.+):Need to kill Pod$': { // gettext: gettext('Killing container with ID "{{containerId}}". Need to kill Pod.'), // placeholders: { // containerId: '$1' // } // }, '^Scaled down replica set (.+) to (\\d+)$': { gettext: gettext('Replica set "{{replicaSetName}}" scaled down to "{{scaleNumber}}".'), placeholders: { replicaSetName: '$1', scaleNumber: '$2' } }, '^Deleted pod: (.+)$': { gettext: gettext('Pod "{{imageName}}" deleted.'), placeholders: { imageName: '$1' } }, '^Container image "(.+)" already present on machine$': { gettext: gettext('Container image "{{imageName}}" already exists.'), placeholders: { imageName: '$1' } }, '^Error updating tenant! Cannot insert second configuration for Password code grant internal/Bad Request$': { gettext: gettext( 'This login mode was already set by another administrator. Refresh the page to update the data.' ) }, // Translations for audit logs '^Application deleted$': { gettext: gettext('Application deleted') }, '^Microservice application "(.+?)" deleted for tenant "(.+?)"$': { gettext: gettext('Microservice application "{{appName}}" deleted for tenant "{{tenant}}"'), placeholders: { appName: '$1', tenant: '$2' } }, '^Hosted application "(.+?)" deleted for tenant "(.+?)"$': { gettext: gettext('Hosted application "{{appName}}" deleted for tenant "{{tenant}}"'), placeholders: { appName: '$1', tenant: '$2' } }, '^External application "(.+?)" deleted for tenant "(.+?)"$': { gettext: gettext('External application "{{appName}}" deleted for tenant "{{tenant}}"'), placeholders: { appName: '$1', tenant: '$2' } }, '^Application activated$': { gettext: gettext('Application activated') }, '^Microservice application "(.+?)" activated: version \\[(.+?)\\] added, activeVersionId \\[(.+?)\\] added$': { gettext: gettext( 'Microservice application "{{appName}}" activated: version "{{version}}" added, activeVersionId "{{activeVersionId}}" added' ), placeholders: { appName: '$1', version: '$2', activeVersionId: '$3' } }, '^Hosted application "(.+?)" activated: version \\[(.+?)\\] added, activeVersionId \\[(.+?)\\] added$': { gettext: gettext( 'Hosted application "{{appName}}" activated: version "{{version}}" added, activeVersionId "{{activeVersionId}}" added' ), placeholders: { appName: '$1', version: '$2', activeVersionId: '$3' } }, '^External application "(.+?)" activated: version \\[(.+?)\\] added, activeVersionId \\[(.+?)\\] added$': { gettext: gettext( 'External application "{{appName}}" activated: version "{{version}}" added, activeVersionId "{{activeVersionId}}" added' ), placeholders: { appName: '$1', version: '$2', activeVersionId: '$3' } }, '^(.+?) user logged in to the platform with OAuth internal login mode$': { gettext: gettext('"{{name}}" user logged in to the platform with OAI-Secure login mode'), placeholders: { name: '$1' } }, "^Scaling application '(.+?)' from (.+?) to (.+?) instances$": { gettext: gettext('Scaling application "{{appName}}" from {{from}} to {{to}} instances'), placeholders: { appName: '$1', from: '$2', to: '$3' } }, '^User logout$': { gettext: gettext('User logout') }, '^(.+?) user logout$': { gettext: gettext('"{{name}}" user logout'), placeholders: { name: '$1' } }, '^Authentication with id: (.+?) configuration updated.$': { gettext: gettext('Authentication configuration with ID "{{id}}" updated.'), placeholders: { id: '$1' } }, '^Authentication configuration with id: (.+?) added.$': { gettext: gettext('Authentication configuration with ID "{{id}}" added.'), placeholders: { id: '$1' } }, '^Configuration type: basic.$': { gettext: gettext('Configuration type: Basic Auth.') }, '^Configuration type: oauth2_internal.$': { gettext: gettext('Configuration type: OAI-Secure.') }, '^Configuration type: oauth2.$': { gettext: gettext('Configuration type: Single sign-on.') }, '^Device put into maintenance state$': { gettext: gettext('Device put into maintenance state') }, '^device with id: (.+?) is put into maintenance state$': { gettext: gettext('Device with ID "{{deviceId}}" is put into maintenance state'), placeholders: { deviceId: '$1' } }, '^Connector updated$': { gettext: gettext('Connector updated') }, '^Connector (.+?) updated: filters [(.+?)] added$': { gettext: gettext('Connector "{{name}}" updated: filters [{{filters}}] added'), placeholders: { name: '$1', filters: '$2' } }, '^Connector deleted$': { gettext: gettext('Connector deleted') }, '^Connector (.+?) deleted$': { gettext: gettext('Connector "{{name}}" deleted'), placeholders: { name: '$1' } }, '^Connector created$': { gettext: gettext('Connector created') }, '^Connector (.+?) created: (.+?) added, (.+?)$': { gettext: gettext('Connector "{{name}}" created: {{configuration}} added, {{baseProperties}}'), placeholders: { name: '$1', configuration: '$2', baseProperties: '$3' } }, '^Connector (.+?) updated: (.+?) added, (.+?) removed$': { gettext: gettext('Connector "{{name}}" updated: {{newConfig}} added, {{oldConfig}} removed'), placeholders: { name: '$1', newConfig: '$2', oldConfig: '$3' } }, '^Connector (.+?) updated: (.+?) removed, (.+?) added$': { gettext: gettext('Connector "{{name}}" updated: {{newConfig}} added, {{oldConfig}} removed'), placeholders: { name: '$1', oldConfig: '$2', newConfig: '$3' } }, '^Can read all data of the asset and manage all inventory data, but cannot perform operations. Can also acknowledge and clear alarms. Can create and updates dashboards.$': { gettext: gettext( 'Can read all data of the asset and manage all inventory data, but cannot perform operations. Can also acknowledge and clear alarms. Can create and updates dashboards.' ) }, '^Operations: All$': { gettext: gettext('Operations: All') }, '^Can remotely manage the assets by sending operations to the device. This includes for example remote configuration, software update, etc.$': { gettext: gettext( 'Can remotely manage the assets by sending operations to the device. This includes remote configuration, software update and more.' ) }, '^Operations: Restart Device$': { gettext: gettext('Operations: Restart Device') }, '^Can restart devices.$': { gettext: gettext('Can restart devices.') }, '^Reader$': { gettext: gettext('Reader') }, '^Can read all data of the asset.$': { gettext: gettext('Can read all data of the asset.') }, // Default global roles' names and descriptions: // Description for 'admins' role '^Enables administrative permissions. The first user created for the tenant receives this role$': { gettext: gettext( 'Enables administrative permissions. The first user created for the tenant receives this role.' ) }, // Description for 'business' role '^Can access all devices and their data but has no management permission in the tenant$': { gettext: gettext( 'Can access all devices and their data but has no management permission in the tenant.' ) }, '^CEP Manager$': { gettext: gettext('CEP Manager') }, '^Has full access to all deployed CEP modules and SmartRules$': { gettext: gettext('Has full access to all deployed CEP modules and smart rules.') }, '^Devicemanagement User$': { gettext: gettext('Device Management User') }, '^Gives access to bulk operations and device management application. This does not include access to any device data.$': { gettext: gettext( 'Gives access to bulk operations and Device Management application. This does not include access to any device data.' ) }, // Description for 'devices' role '^A role marker for device users. After registration, a device automatically has this role$': { gettext: gettext( 'A role marker for device users. After registration, a device automatically has this role.' ) }, '^Global Manager$': { gettext: gettext('Global Manager') }, '^Can read and write all data from all devices$': { gettext: gettext('Can read and write all data from all devices.') }, '^Global Reader$': { gettext: gettext('Global Reader') }, '^Can read all data from all devices$': { gettext: gettext('Can read all data from all devices.') }, '^Cockpit User$': { gettext: gettext('Cockpit User') }, '^User to work in Cockpit application. This does not include the access to any device data.$': { gettext: gettext( 'User to work in Cockpit application. This does not include the access to any device data.' ) }, '^Global User Manager$': { gettext: gettext('Global User Manager') }, '^Can access and modify the full user hierarchy$': { gettext: gettext('Can access and edit the full user hierarchy.') }, // '^readers$': { // gettext: gettext('Reader') // }, '^Can read all data \\(including users, in contrast to "Global Reader"\\)$': { gettext: gettext('Can read all data (including users, in contrast to "Global Reader").') }, '^Shared User Manager$': { gettext: gettext('Shared User Manager') }, '^Can create new user as his own sub-users and manage this$': { gettext: gettext('Can create new own sub-users and manage them.') }, '^Tenant Manager$': { gettext: gettext('Tenant Manager') }, '^Can manage tenant wide configurations like applications, tenant options and retention rules$': { gettext: gettext( 'Can manage tenant wide configurations like applications, tenant options and retention rules.' ) }, // DataHub global roles' names and descriptions: '^DATAHUB_ADMINISTRATOR$': { gettext: gettext('DataHub Administrator') }, '^Can conduct administrative tasks and manage offloading pipelines$': { gettext: gettext('Can conduct administrative tasks and manage offloading pipelines.') }, '^DATAHUB_MANAGER$': { gettext: gettext('DataHub Manager') }, '^Can manage offloading pipelines$': { gettext: gettext('Can manage offloading pipelines.') }, '^DATAHUB_READER$': { gettext: gettext('DataHub Reader') }, '^Can execute SQL queries against the data in the data lake$': { gettext: gettext('Can execute SQL queries against the data in the data lake.') }, '^User "(.+?)" password was updated by user "(.+?)"$': { gettext: gettext( '"{{ targetUserName }}" user\'s password was updated by "{{ userName }}" user' ), placeholders: { targetUserName: '$1', userName: '$2' } }, '^User password update$': { gettext: gettext('User password update') }, '^User "(.+?)" password updated$': { gettext: gettext('"{{ userName }}" user changed own password'), placeholders: { userName: '$1' } }, // LWM2M strings (move to submodule when it's migrated from ng1) '^LWM2M device type$': { gettext: gettext('LWM2M device type') }, '^LWM2M server URI$': { gettext: gettext('LWM2M server URI') }, '^coaps://<LWM2M-server-domain>:<coaps-port>$': { gettext: gettext('coaps://<LWM2M-server-domain>:<coaps-port>') }, '^Endpoint client ID$': { gettext: gettext('Endpoint client ID') }, '^Server public key$': { gettext: gettext('Server public key') }, '^Generate bootstrap server config$': { gettext: gettext('Generate bootstrap server config') }, '^LWM2M bootstrap short server ID$': { gettext: gettext('LWM2M bootstrap short server ID') }, '^LWM2M short server ID$': { gettext: gettext('LWM2M short server ID') }, '^Registration lifetime$': { gettext: gettext('Registration lifetime') }, '^in seconds$': { gettext: gettext('in seconds') }, '^Security instance offset$': { gettext: gettext('Security instance offset') }, '^Default minimum period$': { gettext: gettext('Default minimum period') }, '^Default maximum period$': { gettext: gettext('Default maximum period') }, '^Binding mode$': { gettext: gettext('Binding mode') }, '^applicable for LWM2M 1\\.0$': { gettext: gettext('applicable for LWM2M 1.0') }, '^Awake time registration parameter$': { gettext: gettext('Awake time registration parameter') }, '^in milliseconds, 0 means device is always online$': { gettext: gettext('in milliseconds, 0 means device is always online') }, '^Use common timestamp resources 5518 and 6050 or object specific timestamp for object 6 reported by the device if available$': { gettext: gettext( 'Use common timestamp resources 5518 and 6050 or object specific timestamp for object 6 reported by the device if available' ) }, '^Notification storing when disabled or offline$': { gettext: gettext('Notification storing when disabled or offline') }, '^Disable timeout$': { gettext: gettext('Disable timeout') }, '^LWM2M request timeout$': { gettext: gettext('LWM2M request timeout') }, '^in milliseconds$': { gettext: gettext('in milliseconds') }, '^Binary delivery encoding$': { gettext: gettext('Binary delivery encoding') }, '^Firmware update delivery method$': { gettext: gettext('Firmware update delivery method') }, '^Firmware update supported device protocol$': { gettext: gettext('Firmware update supported device protocol') }, '^Firmware update reset mechanism$': { gettext: gettext('Firmware update reset mechanism') }, '^Firmware update URL$': { gettext: gettext('Firmware update URL') }, '^Failed to find operation data in the internal memory store\\. Try again!$': { gettext: gettext('Failed to find operation data in the internal memory store. Try again.') }, '^Security mode$': { gettext: gettext('Security mode') }, '^Bootstrap PSK ID$': { gettext: gettext('Bootstrap PSK ID') }, '^Bootstrap pre-shared key$': { gettext: gettext('Bootstrap pre-shared key') }, '^LWM2M PSK ID$': { gettext: gettext('LWM2M PSK ID') }, '^LWM2M pre-shared key$': { gettext: gettext('LWM2M pre-shared key') }, '^LWM2M bulk device upload operation$': { gettext: gettext('LWM2M bulk device upload operation') }, '^This operation is only triggered by the agent when user uploads a CSV file with all required information to register new LWM2M devices\\. The source of the operation is the LWM2M device connector\\. Users are not able to trigger this operation using the shell command\\.$': { gettext: gettext( 'This operation is only triggered by the agent when user uploads a CSV file with all required information to register new LWM2M devices. The source of the operation is the LWM2M device connector. Users are not able to trigger this operation using the shell command.' ) }, '^Write$': { gettext: gettext('Write') }, '^Execute$': { gettext: gettext('Execute') }, '^Execute with parameters$': { gettext: gettext('Execute with parameters') }, '^Execute with Parameters$': { gettext: gettext('Execute with parameters') }, '^Delete Instance$': { gettext: gettext('Delete instance') }, '^Create Instance$': { gettext: gettext('Create instance') }, '^Read Object$': { gettext: gettext('Read object') }, '^Read Instance$': { gettext: gettext('Read instance') }, '^LWM2M bulk device removal operation$': { gettext: gettext('LWM2M bulk device removal operation') }, '^This operation is only triggered by the agent when user uploads a CSV file with a list of endpoint IDs to delete from C8Y\\.The source of the operation is the LWM2M device connector\\. Users are not able to trigger this operation using the shell command\\.$': { gettext: gettext( 'This operation is only triggered by the agent when user uploads a CSV file with a list of endpoint IDs to delete from the platform. The source of the operation is the LWM2M device connector. Users are not able to trigger this operation using the shell command.' ) }, '^Could not find device$': { gettext: gettext('Could not find device') }, '^Exception occurred while removing device (.+?)$': { gettext: gettext('Exception occurred while removing device: {{ exceptionMessage }}'), placeholders: { exceptionMessage: '$1' } }, '^This command can be used to migrate LWM2M devices which are created in a non-standard way\\. It can take comma-separated device managed object IDs as parameters\\. If the IDs are specified then the migration will be done only for those devices\\. If the command is sent without any parameters then the agent will look up for possible Lwm2m devices that are not created in a standard way and try to migrate them\\. Usage: migrateLwm2mDevices 1122,3344 or migrateLwm2mDevices$': { gettext: gettext( 'This command can be used to migrate LWM2M devices which are created in a non-standard way. It can take comma-separated device managed object IDs as parameters. If the IDs are specified then the migration will be done only for those devices. If the command is sent without any parameters then the agent will look up for possible LWM2M devices that are not created in a standard way and try to migrate them. Usage: migrateLwm2mDevices 1122,3344 or migrateLwm2mDevices' ) }, '^Unable to migrate devices$': { gettext: gettext('Unable to migrate devices') }, '^Error while processing report$': { gettext: gettext('Error while processing report') }, '^Expected 1 endpointId argument$': { gettext: gettext('Expected 1 endpointId argument') }, '^LWM2M device registration$': { gettext: gettext('LWM2M device registration') }, '^The required and optional properties to register and setup LWM2M Devices$': { gettext: gettext('The required and optional properties to register and setup LWM2M devices') }, '^Bootstrap$': { gettext: gettext('Bootstrap') }, '^Advanced$': { gettext: gettext('Advanced') }, '^Bulk LWM2M device registration$': { gettext: gettext('Bulk LWM2M device registration') }, '^This command returns a list of shell commands with description that can be created for the Lwm2m device connector\\.$': { gettext: gettext( 'This command returns a list of shell commands with description that can be created for the LWM2M device connector.' ) }, '^The following operations are supported:$': { gettext: gettext('The following operations are supported:') }, '^PSK template$': { gettext: gettext('PSK template') }, '^A bulk registration CSV template showing all mandatory fields$': { gettext: gettext('A bulk registration CSV template showing all mandatory fields') }, '^Mandatory fields template$': { gettext: gettext('Mandatory fields template') }, '^General template$': { gettext: gettext('General template') }, '^A bulk registration CSV template for NO_SEC devices with all optional fields$': { gettext: gettext('A bulk registration CSV template for NO_SEC devices with all optional fields') }, '^A general bulk registration CSV template showing all possible fields$': { gettext: gettext('A general bulk registration CSV template showing all possible fields') }, '^A bulk registration CSV template for PSK devices with all optional fields$': { gettext: gettext('A bulk registration CSV template for PSK devices with all optional fields') }, '^NO_SEC template$': { gettext: gettext('NO_SEC template') }, // LPWAN device registration and connectivity strings '^Authentication to the Loriot platform failed with status code (.+?). Check if the credentials are correct or if Session ID is expired.$': { gettext: gettext( 'Authentication to the LORIOT platform failed with status code {{ statusCode }}. Check if the credentials are correct or if session ID is expired.' ), placeholders: { statusCode: '$1' } }, '^Authentication to the Loriot platform failed with status code (.+?). Check if the base URL, credentials are correct and the application with the given ID exists.$': { gettext: gettext( 'Authentication to the LORIOT platform failed with status code {{ statusCode }}. Check if the base URL, credentials are correct and the application with the given ID exists.' ), placeholders: { statusCode: '$1' } }, '^Application output creation failed due to status code (.+?)$': { gettext: gettext('Application output creation failed due to status code {{ statusCode }}.'), placeholders: { statusCode: '$1' } }, '^Application output update failed due to status code (.+?)$': { gettext: gettext('Application output update failed due to status code {{ statusCode }}.'), placeholders: { statusCode: '$1' } }, '^Error creating the device due to status code (.+?). Check if the application Id, devEui, appEui and appKey are in the correct format or the device limit has been exceeded or has been registered with another account in the Loriot provider$': { gettext: gettext( 'Error creating the device due to status code {{ statusCode }}. Check if the application name, Device EUI, Application EUI and Application key are in the correct format or the device limit has been exceeded or has been registered with another account in the LORIOT provider.' ), placeholders: { statusCode: '$1' } }, '^Error retrieving application with given ID: (.+?) with status code 400. Check if the applicationId provided is in the correct format$': { gettext: gettext( 'Error retrieving application with given ID: {{ applicationId }} with status code 400. Check if the selected application is correct' ), placeholders: { applicationId: '$1' } }, "^LNS connection name can't be null or blank.$": { gettext: gettext("LNS connection name can't be empty.") }, '^Unexpected error occurred while accessing the cached LNS connections map with key (.+?)$': { gettext: gettext( 'Unexpected error occurred while accessing the cached LNS connections map with key "{{ connectionName }}".' ), placeholders: { connectionName: '$1' } }, "^LNS connection named (.+?) doesn't exist.$": { gettext: gettext('LNS connection named "{{ connectionName }}" doesn\'t exist.'), placeholders: { connectionName: '$1' } }, '^LNS connection named (.+?) already exists.$': { gettext: gettext('LNS connection named "{{ connectionName }}" already exists.'), placeholders: { connectionName: '$1' } }, "^New LNS connection can't be null.$": { gettext: gettext("New LNS connection can't be empty.") }, "^LNS connection to update can't be null.$": { gettext: gettext("LNS connection to update can't be empty.") }, "^The name of the LNS connection to update can't be null.$": { gettext: gettext("The name of the LNS connection to update can't be empty.") }, '^Can not delete the LNS connection with name "(.+?)" as it\'s associated with (.+?) device(s).$': { gettext: gettext( 'Could not delete the LNS connection with the name "{{ connectionName }}" as it\'s associated with {{ numberOfDevices }} device(s).' ), placeholders: { connectionName: '$1', numberOfDevices: '$2' } }, '^Can not update the LNS connection with name "(.+?)" as it\'s associated with (.+?) device(s).$': { gettext: gettext( 'Could not update the LNS connection with the name "{{ connectionName }}" as it\'s associated with {{ numberOfDevices }} device(s).' ), placeholders: { connectionName: '$1', numberOfDevices: '$2' } }, '^Authentication to the Actility platform failed with status code (.+?). Check if the credentials are correct.$': { gettext: gettext( 'Authentication to the Actility platform failed with status code {{ statusCode }}. Check if the credentials are correct.' ), placeholders: { statusCode: '$1' } }, '^Authentication to the Actility platform failed with status code (.+?). Check if the profile Id is correct.$': { gettext: gettext( 'Authentication to the Actility platform failed with status code {{ statusCode }}. Check if the Profile ID is correct.' ), placeholders: { statusCode: '$1' } }, '^Authentication to the Actility platform failed. Check if the base URL (.+?) is correct.$': { gettext: gettext( 'Authentication to the Actility platform failed. Check if the base URL {{ baseUrl }} is correct.' ), placeholders: { baseUrl: '$1' } }, '^Authentication to the Sigfox platform failed. Check if the base URL (.+) is correct.$': { gettext: gettext( 'Authentication to the Sigfox platform failed. Check if the base URL {{ baseUrl }} is correct.' ), placeholders: { baseUrl: '$1' } }, '^Authentication to the Sigfox platform failed. Check if the Parent group Id and/or the credentials are correct.$': { gettext: gettext( 'Authentication to the Sigfox platform failed. Check if the Parent group ID and/or the credentials are correct.' ) }, '^Authentication to the Loriot platform failed with status code (.+?). Session Id might have expired.$': { gettext: gettext( 'Authentication to the LORIOT platform failed with status code {{ statusCode }}. Session ID might have expired.' ), placeholders: { statusCode: '$1' } }, '^Authentication to the Actility platform failed with status code (.+?). Check if the base URL and/or the credentials are correct.$': { gettext: gettext( 'Authentication to the Actility platform failed with status code {{ statusCode }}. Check if the base URL and/or the credentials are correct.' ), placeholders: { statusCode: '$1' } }, '^Error on deleting group: (.+?) : Role (.+?) is used in SSO dynamic access mapping$': { gettext: gettext( 'Role "{{ roleName }}" cannot be deleted because it is assigned to a dynamic access mapping in Single sign-on configuration.' ), placeholders: { roleName: '$1' } } } as const

operations/bulk-operation-from-single/bulk-operation-from-single.module.ts

bulkOperationCreateSingleRoutes
Type : Route[]
Default value : [ { path: 'devicecontrol/single/create-bulk/:operationId', component: BulkOperationFromSingleComponent } ]

operations/bulk-operations-list/bulk-operations-list.module.ts

bulkOperationListRoutes
Type : Route[]
Default value : [ { path: 'devicecontrol/bulk', component: BulkOperationsListComponent } ]

operations/bulk-operations-stepper-container/bulk-operations-stepper-container.module.ts

bulkOperatioStepperRoutes
Type : Route[]
Default value : [ { path: 'devicecontrol/bulk/creation/:type', component: BulkOperationsStepperContainerComponent } ]

core/i18n/load-locale.ts

cache
Default value : new Map()

icon-selector/icons/city/index.ts

cityIconCategory
Default value : { label: gettext('City`icons-category`'), icons: cityIcons } as const
cityIcons
Default value : [ ['hospital-o'], ['h-square'], ['university', 'institution', 'bank'], ['ios-themes'], ['building', 'building-o'], ['apartment'], ['department1'], ['organization'], ['office'], ['building-with-rooftop-terrace'], ['company'], ['warehouse'], ['shop'], ['work-from-home'], ['house'], ['dog-house'], ['home-automation'], ['garage-door'], ['depot'], ['garage'], ['open-garage-door'], ['close-garage-door'], ['barn'], ['bungalow'], ['exterior'], ['equal-housing-opportunity'], ['heating-room'], ['mortgage'], ['home-safety'], ['enterprise-resource-planning'], ['travel-agency'], ['department-shop'], ['book-shelf'], ['emergency-exit'], ['stairs'], ['stairs-down'], ['stairs-up'], ['temperature-inside'], ['treehouse', 'tree'], ['water-heater'], ['clean', 'magic'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

operations/shared/operations.model.ts

CLEAN_KEYS
Type : []
Default value : ['creationTime', 'deviceExternalIDs', 'id', 'self']
CLEAN_KEYS_UPDATE
Type : []
Default value : ['deviceId', 'deviceName', 'bulkOperationId']
OPERATION_STATUS_LABELS
Type : object
Default value : { PENDING: gettext('Pending'), EXECUTING: gettext('Executing'), FAILED: gettext('Failed'), SUCCESSFUL: gettext('Successful') }
OPERATION_STATUS_OPTIONS_MAP
Type : OperationStatusOptionsMapShared
Default value : { PENDING: { label: OPERATION_STATUS_LABELS.PENDING, status: OperationStatus.PENDING, icon: 'clock-o', styleClass: '' } as unknown as OperationStatusOption, EXECUTING: { label: OPERATION_STATUS_LABELS.EXECUTING, status: OperationStatus.EXECUTING, icon: 'refresh', styleClass: 'text-info' } as unknown as OperationStatusOption, SUCCESSFUL: { label: OPERATION_STATUS_LABELS.SUCCESSFUL, status: OperationStatus.SUCCESSFUL, icon: 'check-circle', styleClass: 'text-success' } as unknown as OperationStatusOption, FAILED: { label: OPERATION_STATUS_LABELS.FAILED, status: OperationStatus.FAILED, icon: 'exclamation-circle', styleClass: 'text-danger' } as unknown as OperationStatusOption }
RESERVED_KEYS
Default value : CLEAN_KEYS.concat(['deviceId', 'deviceName', 'bulkOperationId'])
STANDARD_KEYS
Type : object
Default value : { failureReason: gettext('Failure reason'), description: gettext('Description'), status: gettext('Status') }

cockpit-config/cockpit-config.model.ts

COCKPIT_CONFIG_PATH
Type : string
Default value : 'cockpit-application-configuration'
DEFAULT_CONFIG
Type : CockpitConfig
Default value : { rootNodes: [], features: { alarms: true, dataExplorer: true, groups: true, reports: true, exports: true, dataPointLibrary: true, globalSmartRules: true, smartRules: true, subassets: true, search: true, dashboardManager: true }, hideNavigator: false, homeDashboardName: DEFAULT_HOME_DASHBOARD_NAME, userSpecificHomeDashboard: false, icon: { class: 'c8y-cockpit' } }
DEFAULT_HOME_DASHBOARD_NAME
Type : string
Default value : 'home-cockpit1'
USER_HOME_DASHBOARD_NAME
Type : string
Default value : 'home-cockpit-user'

context-dashboard/cockpit-dashboard/cockpit-dashboard.model.ts

COCKPIT_HOME_DASHBOARD_CONFIG
Default value : new InjectionToken('CockpitHomeDashboardConfig')

A hook to define the default widgets of the home dashboard in the cockpit app.

DEFAULT_COCKPIT_HOME_WIDGETS
Default value : [ { name: 'cockpit.welcome.widget', title: gettext('Welcome to Cockpit'), _x: 0, _y: 0, _height: 5, _width: 24, classes: { 'panel-title-hidden': true } }, { name: 'Asset Alarms', title: gettext('Active, critical alarms'), _x: 0, _y: 5, _height: 4, _width: 12 }, { name: 'Recent Alarms', title: gettext('Recent alarms'), _x: 0, _y: 9, _height: 4, _width: 12 }, { name: 'Map', title: gettext('Map'), _x: 12, _y: 5, _height: 8, _width: 12 } ] as Partial<Widget>[] as Widget[]

An array of widgets that is per default placed on the home dashboard of the cockpit app.

widgets/cockpit/index.ts

cockpitDefaultWidgets
Default value : [ alarmListWidgetDefinition, criticalAlarmsWidgetDefinition, recentAlarmsDefinition, imageWidgetDefinition, kpiWidgetDefinition, markdownWidgetDefinition, cockpitWelcomeWidgetDefinition, legacyCockpitWelcomeWidgetDefinition, helpAndServiceWidgetDefinition, threeDRotationWidgetDefinition, mapWidgetDefinition, deviceControlMessageWidgetDefinition, infoGaugeWidgetDefinition, linearGaugeWidgetDefinition, siloWidgetDefinition, applicationsWidgetDefinition, dataPointsTableWidgetDefinition ] satisfies DynamicWidgetDefinition[]

widgets/definitions/cockpit-welcome/index.ts

cockpitWelcomeWidgetDefinition
Default value : { id: defaultWidgetIds.COCKPIT_WELCOME, label: gettext('Welcome to Cockpit'), description: gettext('Displays a welcome message for Cockpit'), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/cockpit-welcome').then( m => m.WelcomeToCockpitComponent ), previewImage: 'c8y-style-assets/welcome-widget-pr.png', data: { settings: { noNewWidgets: false, widgetDefaults: { _width: 24, _height: 6 }, ng1: { options: { noDeviceTarget: true, groupsSelectable: false } } } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
cockpitWelcomeWidgetProviders
Type : []
Default value : [hookWidget(cockpitWelcomeWidgetDefinition)]

widgets/cockpit-exports/index.ts

cockpitWidgetsExports
Default value : [ { name: 'Widgets: KPI widget', module: 'kpiWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/kpi', description: 'KPI widget', scope: 'self' }, { name: 'Widgets: Alarm list', module: 'alarmListWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/alarms/alarm-list', description: 'Alarm list widget', scope: 'self' }, { name: 'Widgets: All critical alarms', module: 'criticalAlarmsWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/alarms/all-critical-alarms', description: 'All critical alarms widget', scope: 'self' }, { name: 'Widgets: Recent alarms', module: 'recentAlarmsWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/alarms/recent-alarms', description: 'Recent alarms widget', scope: 'self' }, { name: 'Widgets: Applications', module: 'applicationsWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/applications', description: 'Applications widget', scope: 'self' }, { name: 'Widgets: Legacy welcome to Cockpit', module: 'legacyCockpitWelcomeWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/cockpit-legacy-welcome', description: 'Legacy welcome to Cockpit widget', scope: 'self' }, { name: 'Widgets: Welcome to Cockpit', module: 'cockpitWelcomeWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/cockpit-welcome', description: 'Welcome to Cockpit widget', scope: 'self' }, { name: 'Widgets: Message sending', module: 'deviceControlMessageWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/device-control-message', description: 'Message sending widget', scope: 'self' }, { name: 'Widgets: Help and service', module: 'helpAndServiceWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/help-and-service', description: 'Help and service widget', scope: 'self' }, { name: 'Widgets: Image', module: 'imageWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/image', description: 'Image widget', scope: 'self' }, { name: 'Widgets: Info gauge', module: 'infoGaugeWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/info-gauge', description: 'Info gauge widget', scope: 'self' }, { name: 'Widgets: Map', module: 'mapWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/map', description: 'Map widget', scope: 'self' }, { name: 'Widgets: Markdown', module: 'markdownWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/markdown', description: 'Markdown widget', scope: 'self' }, { name: 'Widgets: Rotation', module: 'threeDRotationWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/three-d-rotation', description: 'Rotation widget', scope: 'self' }, { name: 'Widgets: Silo', module: 'siloWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/silo', description: 'Silo widget', scope: 'self' }, { name: 'Widgets: Linear Gauge', module: 'linearGaugeWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/linear-gauge', description: 'Linear Gauge widget', scope: 'self' }, { name: 'Widgets: Data Points Table', module: 'dataPointsTableWidgetProviders', path: '@c8y/ngx-components/widgets/definitions/datapoints-table', description: 'Data Points Table widget', scope: 'self' } ] as const satisfies PluginsExports[]

assets-navigator/asset-selector/asset-selector.model.ts

CONFIG_OPTIONS_DEFAULT
Type : AssetSelectorOptions
Default value : { label: gettext('Asset selection'), multi: false, showFilter: false, columnHeaders: false, singleColumn: false, modelMode: 'simple', groupsOnly: false, groupsSelectable: false, search: false, showUnassignedDevices: false, view: 'tree', showChildDevices: false, showSelected: true }

test/test-config.helper.ts

configureTests
Default value : (configure: ConfigureFn, compilerOptions: CompilerOptions = {}) => { const compilerConfig: CompilerOptions = { preserveWhitespaces: false, ...compilerOptions }; TestBed.configureCompiler(compilerConfig); configure(TestBed); return TestBed.compileComponents().then(() => TestBed); }

connectivity/connectivity.module.ts

connectivityRoutes
Type : Route[]
Default value : [ { path: 'connectivitySettings', component: ConditionalTabsOutletComponent } ]

core/bootstrap/cookie-banner/cookie-banner.model.ts

CookieBannerDefaultTexts
Default value : { cookieBannerTitle: gettext('About cookies on this website'), cookieBannerText: gettext( 'Cookies are important to the proper functioning of a site. To improve your website experience, we use cookies to remember log-in details and provide secure log-in, collect statistics to optimize site functionality, and deliver content tailored to your interests. Click "Agree and proceed" to accept cookies and go directly to the site or click "Configure preferences" for further details and to manage your options. You can revoke your consent at any time.' ) } as const

core/dashboard/dashboard.model.ts

CopyDashboardDisabledReason
Default value : { PERMISSIONS: 'PERMISSIONS', WRONG_REFERENCE: 'WRONG_REFERENCE' } as const
NEW_DASHBOARD_QUERY_PARAM
Type : string
Default value : 'newDashboard'

widgets/definitions/alarms/all-critical-alarms/index.ts

criticalAlarmsWidgetDefinition
Default value : { id: defaultWidgetIds.ALL_CRITICAL_ALARMS, label: gettext('All critical alarms'), description: gettext(`Display all critical alarms from all devices`), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/alarms').then( m => m.AlarmListWidgetComponent ), loadConfigComponent: () => import('@c8y/ngx-components/widgets/implementations/alarms').then( m => m.AlarmListWidgetConfigComponent ), errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR, data: { settings: { criticalAlarmsWidget: true, noNewWidgets: true, widgetDefaults: { _width: 4, _height: 4 }, ng1: { options: { noDeviceTarget: false, groupsSelectable: true, deviceTargetNotRequired: true } } }, displaySettings: { globalAutoRefreshContext: true } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
criticalAlarmsWidgetProviders
Type : []
Default value : [hookWidget(criticalAlarmsWidgetDefinition)]

datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/csv-generator.ts

CSVGeneratorAdapter
Type : FileGenerator
Default value : { getLabel: CSVGenerator.getLabel.bind(CSVGenerator), getIcon: CSVGenerator.getIcon.bind(CSVGenerator), getFileExtension: CSVGenerator.getFileExtension.bind(CSVGenerator), getMimeType: CSVGenerator.getMimeType.bind(CSVGenerator), generateMerged: CSVGenerator.convertToMergedCSV.bind(CSVGenerator), getType: CSVGenerator.getType.bind(CSVGenerator), getTitle: CSVGenerator.getTitle.bind(CSVGenerator), getZipName: CSVGenerator.getZipName.bind(CSVGenerator), getAcceptType: CSVGenerator.getAcceptType.bind(CSVGenerator) }

ecosystem/shared/ecosystem.service.ts

CUMULOCITY_JSON
Type : string
Default value : 'cumulocity.json'
MICROSERVICE_NAME_MAX_LENGTH
Type : number
Default value : 23

core/time-interval/time-interval.model.ts

CUSTOM
Type : object
Default value : { label: gettext('Custom') }
INTERVAL_OPTIONS
Type : TimeIntervalOption[]
Default value : [ LAST_MINUTE, LAST_HOUR, LAST_DAY, LAST_WEEK, LAST_MONTH, CUSTOM ]
LAST_DAY
Type : object
Default value : { label: gettext('Last day'), getStartDate: () => { const start = new Date(); start.setDate(start.getDate() - 1); start.setHours(0, 0, 0, 0); return start; } }
LAST_HOUR
Type : object
Default value : { label: gettext('Last hour'), getStartDate: () => { const start = new Date(); start.setHours(start.getHours() - 1); return start; } }
LAST_MINUTE
Type : TimeIntervalOption
Default value : { label: gettext('Last minute'), getStartDate: () => { const start = new Date(); start.setMinutes(start.getMinutes() - 1); return start; } }
LAST_MONTH
Type : object
Default value : { label: gettext('Last month'), getStartDate: () => { const start = new Date(); start.setMonth(start.getMonth() - 1); start.setHours(0, 0, 0, 0); return start; } }
LAST_WEEK
Type : object
Default value : { label: gettext('Last week'), getStartDate: () => { const start = new Date(); start.setDate(start.getDate() - 7); start.setHours(0, 0, 0, 0); return start; } }

branding/dark-theme/dark-theme-tab.factory.ts

darkThemeTabName
Default value : gettext('Dark theme')

context-dashboard/dashboard-manager/dashboard-manager.module.ts

DASHBOARD_MANAGER_PATH
Type : string
Default value : 'dashboard-manager'

core/data-grid/data-grid-configuration.model.ts

DATA_GRID_CONFIGURATION_CONTEXT
Default value : new InjectionToken<GridConfigContext>( 'DataGridConfigurationContext' )

Injection token used to provide a context information needed by any configuration strategy service to retrieve/store configuration data. Use this token if your context data is static.

DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER
Default value : new InjectionToken<GridConfigContextProvider>('DataGridConfigurationContextProvider')

Injection token used to provide a context information provider needed by any configuration strategy service to retrieve/store configuration data. Use this token is your context data is dynamic.

DATA_GRID_CONFIGURATION_STRATEGY
Default value : new InjectionToken<DataGridConfigurationStrategy>( 'DataGridConfigurationStrategy' )

Injection token used to provide a configuration strategy service for data-grid component.

data-broker/ng1/downgraded.services.ts

dataBrokerSubscriptionsServiceDowngradedInjectable
Default value : downgradeInjectable( DataBrokerSubscriptionsService )

icon-selector/icons/data/index.ts

dataIconCategory
Default value : { label: gettext('Data`icons-category`'), icons: dataIcons } as const
dataIcons
Default value : [ ['storage'], ['60-degrees'], ['120-degrees'], ['225-degrees'], ['300-degrees'], ['360-degrees'], ['pie-chart'], ['bar-chart', 'bar-chart-o'], ['data-account'], ['data-decline'], ['increase'], ['neutral-trading'], ['decrease'], ['timeline'], ['increase-profits'], ['combo-chart', 'line-chart', 'graph'], ['area-chart'], ['sorting-slider', 'sliders'], ['hierarchy'], ['b2b'], ['flow-chart', 'sitemap'], ['tree-structure'], ['flow'], ['stacked-organizational-chart'], ['multicast'], ['unicast'], ['broadcasting'], ['genealogy'], ['filter'], ['conversion'], ['clear-filters'], ['descending-sorting', 'sort-amount-desc'], ['ascending-sorting', 'sort-amount-asc'], ['alphabetical-sorting', 'sort-alpha-asc'], ['alphabetical-sorting-2', 'sort-alpha-desc'], ['data-exchange'], ['filing-cabinet', 'database'], ['database-administrator'], ['data-export', 'export'], ['data-import', 'import'], ['grid-off'], ['gantt-chart'], ['data-grid'], ['grid-view'], ['grid-on'], ['row', 'rows'], ['column'], ['grid'], ['table'], ['split-table'], ['data-sheet'], ['blockchain-technology'], ['workflow'], ['parallel-workflow'], ['mind-map'], ['query-inner-join-left'], ['sankey'], ['creating'], ['creativity'], ['financial-growth-analysis'], ['input'], ['omnichannel'], ['string'], ['variable'], ['variable-on'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

datapoint-library/model/index.ts

DATAPOINT_LIBRARY_CONFIG
Default value : new InjectionToken<DatapointLibraryOptions>( 'DatapointLibraryOptions' )
pathToDatapointLibrary
Type : string
Default value : 'datapointlibrary'

datapoint-selector/datapoint-selection.model.ts

DATAPOINT_LIBRARY_FRAGMENT
Type : string
Default value : 'c8y_Kpi'

widgets/definitions/datapoints-table/index.ts

dataPointsTableWidgetDefinition
Default value : { id: defaultWidgetIds.DATA_POINTS_TABLE, label: gettext('Data points table'), description: gettext(`A table display of a collection of data points`), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/datapoints-table').then( m => m.DatapointsTableViewWidgetComponent ), loadConfigComponent: () => import('@c8y/ngx-components/widgets/implementations/datapoints-table').then( m => m.DatapointsTableWidgetConfigComponent ), previewImage: 'c8y-style-assets/data-points-table-widget.png', errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR, data: { settings: { noNewWidgets: false, widgetDefaults: { _width: 8, _height: 4 }, ng1: { options: { noDeviceTarget: true, minCol: 6, datapointAttributes: ['datapoints'] } } }, displaySettings: { globalTimeContext: true, globalRealtimeContext: true, globalAggregationContext: true } } as ContextWidgetConfig } satisfies DynamicComponentDefinition
dataPointsTableWidgetProviders
Type : []
Default value : [hookComponent(dataPointsTableWidgetDefinition)]

widgets/implementations/datapoints-table/datapoints-table-widget.model.ts

DATE_SELECTION_LABELS
Default value : { config: gettext('Widget configuration') as 'Widget configuration', view_and_config: gettext('Widget and widget configuration') as 'Widget and widget configuration', dashboard_context: gettext('Dashboard time range') as 'Dashboard time range' } as const
DATE_SELECTION_VALUES
Default value : { // Will be uncommented in MTM-61920 // dashboard_context: 'dashboard_context', config: 'config', view_and_config: 'view_and_config' } as const
DATE_SELECTION_VALUES_ARR
Default value : [ // Will be uncommented in MTM-61920 // DATE_SELECTION_VALUES.dashboard_context, DATE_SELECTION_VALUES.config, DATE_SELECTION_VALUES.view_and_config ] as const
DEFAULT_COUNTDOWN_VALUE
Type : number
Default value : 30_000
DURATION_OPTIONS
Type : []
Default value : [ { id: TIME_RANGE_INTERVAL_UNITS_VALUES.minutes, label: TIME_RANGE_INTERVAL_LABELS.minutes, unit: TIME_RANGE_INTERVAL_UNITS_VALUES.minutes, amount: 1 }, { id: TIME_RANGE_INTERVAL_UNITS_VALUES.hours, label: TIME_RANGE_INTERVAL_LABELS.hours, unit: TIME_RANGE_INTERVAL_UNITS_VALUES.hours, amount: 1 }, { id: TIME_RANGE_INTERVAL_UNITS_VALUES.days, label: TIME_RANGE_INTERVAL_LABELS.days, unit: TIME_RANGE_INTERVAL_UNITS_VALUES.days, amount: 1 }, { id: TIME_RANGE_INTERVAL_UNITS_VALUES.weeks, label: TIME_RANGE_INTERVAL_LABELS.weeks, unit: TIME_RANGE_INTERVAL_UNITS_VALUES.weeks, amount: 1 }, { id: TIME_RANGE_INTERVAL_UNITS_VALUES.months, label: TIME_RANGE_INTERVAL_LABELS.months, unit: TIME_RANGE_INTERVAL_UNITS_VALUES.months, amount: 1 }, { id: TIME_RANGE_INTERVAL_UNITS_VALUES.custom, label: TIME_RANGE_INTERVAL_LABELS.custom } ]
INTERVAL_VALUES_ARR
Default value : [ TIME_RANGE_INTERVAL_UNITS_VALUES.minutes, TIME_RANGE_INTERVAL_UNITS_VALUES.hours, TIME_RANGE_INTERVAL_UNITS_VALUES.days, TIME_RANGE_INTERVAL_UNITS_VALUES.weeks, TIME_RANGE_INTERVAL_UNITS_VALUES.months, TIME_RANGE_INTERVAL_UNITS_VALUES.custom ] as const
REFRESH_INTERVAL_VALUES_ARR
Type : []
Default value : [5_000, 10_000, 15_000, 30_000, 60_000]
RENDER_TYPES_LABELS
Default value : { min: gettext('Minimum') as 'Minimum', max: gettext('Maximum') as 'Maximum', area: gettext('Area') as 'Area' } as const
TIME_RANGE_INTERVAL_LABELS
Default value : { minutes: gettext('Last minute') as 'Last minute', hours: gettext('Last hour') as 'Last hour', days: gettext('Last day') as 'Last day', weeks: gettext('Last week') as 'Last week', months: gettext('Last month') as 'Last month', custom: gettext('Custom') as 'Custom' } as const

icon-selector/icons/dateAndTime/index.ts

dateAndTimeIconCategory
Default value : { label: gettext('Date and time`icons-category`'), icons: dateAndTimeIcons } as const
dateAndTimeIcons
Default value : [ ['future'], ['time-machine', 'history', 'delivery-time'], ['schedule', 'clock', 'clock-o'], ['watches-front-view'], ['clock1', 'clock11'], ['alarm1', 'timer'], ['wall-clock'], ['alarm-add'], ['alarm-on'], ['alarm-off'], ['calendar', 'calendar-o'], ['today', 'calendar-check-o'], ['calendar-1'], ['calendar-31'], ['monday'], ['sunday'], ['january'], ['december'], ['edit-calendar'], ['view-schedule'], ['calendar-add', 'calendar-plus', 'calendar-plus-o'], ['calendar-remove', 'calendar-minus', 'calendar-times', 'calendar-minus-o', 'calendar-times-o'], ['important-month'], ['schedule1'], [ 'sand-watch', 'hourglass-start', 'hourglass-o', 'hourglass-half', 'hourglass-end', 'hourglass', 'hourglass-1', 'hourglass-2', 'hourglass-3' ], ['timezone-globe'], ['timezone'], ['timetable'], ['day-view'], ['month-view'], ['week-view'], ['year-view'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.component.ts

dateRangeValidator
Type : ValidatorFn
Default value : ( control: AbstractControl ): ValidationErrors | null => { const dateFrom = control.get('dateFrom'); const dateTo = control.get('dateTo'); if (!dateFrom || !dateTo) { return null; } const dateFromValue = dateFrom.value; const dateToValue = dateTo.value; if (dateFromValue && dateToValue) { if (new Date(dateFromValue) > new Date(dateToValue)) { dateFrom.setErrors({ dateAfterRangeMax: true }); dateTo.setErrors({ dateBeforeRangeMin: true }); } else { dateFrom.setErrors(null); dateTo.setErrors(null); } } return null; }
FILE_GENERATORS
Default value : new InjectionToken<FileGenerator[]>('FILE_GENERATORS', { providedIn: 'root', factory: () => [ExcelGeneratorAdapter, CSVGeneratorAdapter] })

core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.model.ts

DEFAULT_INTERVAL_STATE
Default value : true
DEFAULT_INTERVAL_VALUE
Type : number
Default value : 30_000
DEFAULT_INTERVAL_VALUES
Type : []
Default value : [5_000, 10_000, 15_000, 30_000, 60_000]
GLOBAL_CONTEXT_AUTO_REFRESH
Type : string
Default value : 'globalContextAutoRefresh'

widgets/implementations/alarms/alarm-widget.service.ts

DEFAULT_PAGE_SIZE
Type : number
Default value : 20

ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.ts

DEFAULT_VERSIONS_LIMIT
Type : number
Default value : 20

alarms/alarms.module.ts

defaultAlarmsConfig
Type : AlarmsModuleConfig
Default value : { hybrid: true }

context-dashboard/context-dashboard.module.ts

defaultConfig
Default value : { allowFullscreen: true } as const satisfies ContextDashboardConfig

tenants/custom-properties/custom-properties.service.ts

defaultFilters
Type : object
Default value : { pageSize: 1000, type: 'c8y_JsonSchema', withTotalPages: true }

map/map.model.ts

defaultLayer
Type : MapTileLayer
Default value : { layerUrl: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', label: 'OpenStreetMap', priority: 1000, options: { maxZoom: 18, minZoom: 2, attribution: '&copy;<a href="http://www.openstreetmap.org/copyright" rel="noreferrer nofollow">OpenStreetMap</a>', noWrap: true } }
defaultMapConfig
Type : MapDefaultConfig
Default value : { center: [51.23544, 6.79599], // Düsseldorf zoomLevel: 2 }
MAP_DEFAULT_CONFIG
Default value : new InjectionToken<Observable<MapDefaultConfig>>( 'MAP_DEFAULT_CONFIG' )
MAP_TILE_LAYER
Default value : new InjectionToken<Observable<MapTileLayer[]>>('MAP_TILE_LAYER')

sub-assets/location/asset-location.component.ts

defaultMapLocation
Default value : { lat: defaultMapConfig.center[0], lng: defaultMapConfig.center[1] } as const

sub-assets/sub-assets.model.ts

defaultModuleConfig
Type : SubAssetsConfig
Default value : { showAddGroupBtn: true, showAssignDeviceBtn: true, name: gettext('Groups'), baseQuery: {}, showDetails: true, showProperties: true, showGroupsContextHelp: true }
SUB_ASSETS_CONFIG
Default value : new InjectionToken<SubAssetsConfig>('SubAssetsConfig')

widgets/implementations/image/image-widget.model.ts

defaultObjectFitValue
Type : string
Default value : 'contain'
defaultObjectPositionValue
Type : string
Default value : 'center'

ecosystem/shared/list-filters/list-filters.model.ts

defaultPackageAvailabilities
Type : []
Default value : [ APP_STATE.SUBSCRIBED.label, APP_STATE.UNPACKED.label, APP_STATE.EXTERNAL.label, APP_STATE.CUSTOM.label ]
defaultPackageContents
Type : []
Default value : [ APP_STATE.PACKAGE_BLUEPRINT.label, APP_STATE.PACKAGE_PLUGIN.label ]
defaultPackageTypes
Type : []
Default value : [ PackageType.OFFICIAL, PackageType.COMMUNITY ]

auth-configuration/sso-configuration/template-parts/external-token-config.model.ts

defaultTokenValidationRequest
Type : SSORequest
Default value : { body: 'token=${accessToken}&client_id=${clientId}&client_secret=', url: '', headers: {}, method: 'POST', operation: 'EXECUTE', requestParams: {} }
defaultUserIdConfig
Type : UserIdConfig
Default value : { jwtField: '', useConstantValue: true }
validationMethodConfig
Type : object
Default value : { [ValidationMethod.INTROSPECTION]: { name: 'INTROSPECTION', value: 'INTROSPECTION', label: gettext('Introspection`Method of validating access token from external IAM system`'), defaults: { method: 'POST', body: 'token=${accessToken}&client_id=${clientId}&client_secret=', url: '', headers: {}, operation: 'EXECUTE', requestParams: {} } }, [ValidationMethod.USERINFO]: { name: 'USERINFO', value: 'USERINFO', label: gettext('User info`Method of validating access token from external IAM system`'), defaults: { url: '', method: 'GET', body: '', headers: { Authorization: 'Bearer ${accessToken}' }, operation: 'EXECUTE', requestParams: {} } } }

widgets/definitions/index.ts

defaultWidgetIds
Default value : { APPLICATIONS: 'Applications', LEGACY_COCKPIT_WELCOME: 'Cockpit Welcome', COCKPIT_WELCOME: 'cockpit.welcome.widget', DATA_POINTS_TABLE: 'Data points table', DEVICE_MANAGEMENT_WELCOME: 'devicemanagement.welcome.widget', IMAGE: 'Image', KPI: 'kpi.widget', MARKDOWN: 'markdown', HELP_AND_SERVICE: 'HelpAndService', THREE_D_ROTATION: 'rotation3d', MAP: 'Map', DEVICE_CONTROL_MESSAGE_WIDGET: 'deviceControlMessageWidget', INFO_GAUGE: 'infoGauge', ALARM_LIST: 'Alarm list', ALL_CRITICAL_ALARMS: 'Asset Alarms', RECENT_ALARMS: 'Recent Alarms', LINEAR_GAUGE: 'KPI Linear Gauge', SILO: 'KPI Silo' } as const

device-shell/device-shell.module.ts

DEVICE_SHELL_ROUTE
Type : Route
Default value : { path: 'shell', context: ViewContext.Device, component: DeviceShellComponent, label: gettext('Shell'), icon: 'terminal', canActivate: [DeviceShellGuard] }

core/device-status/device-availability.ts

deviceAvailabilityIconMap
Type : object
Default value : { sendData: { [SendStatus.AVAILABLE]: { icon: 'long-arrow-right', class: 'statusOk' }, [SendStatus.UNAVAILABLE]: { icon: 'long-arrow-right', class: 'statusNok' }, [SendStatus.UNKNOWN]: { icon: 'long-arrow-right', class: 'statusUnknown' }, [SendStatus.NOT_MONITORED]: { icon: 'long-arrow-right', class: 'statusUnknown' } }, push: { [PushStatus.CONNECTED]: { icon: 'long-arrow-left', class: 'statusOk' }, [PushStatus.DISCONNECTED]: { icon: 'long-arrow-left', class: 'statusUnknown' }, [PushStatus.UNKNOWN]: { icon: 'long-arrow-left', class: 'statusUnknown' }, [PushStatus.MAINTENANCE]: { icon: 'wrench', class: 'statusAlert' } }, device: { MAINTENANCE: { icon: 'wrench', class: 'statusAlert' } } }
PushStatusLabels
Default value : { CONNECTED: gettext('Push connection: active'), DISCONNECTED: gettext('Push connection: inactive'), UNKNOWN: gettext('Push connection: inactive'), MAINTENANCE: gettext('Device is under maintenance') } as const
SendStatusLabels
Default value : { AVAILABLE: gettext('Send connection: online'), NOT_MONITORED: gettext('Send connection: not monitored'), UNAVAILABLE: gettext('Send connection: offline'), UNKNOWN: gettext('Send connection status unknown'), MAINTENANCE: gettext('Device is under maintenance') } as const
tooltips
Type : object
Default value : { sendStatusConnected: (lastMessage, translateService) => { const date = formatDate( new Date(lastMessage), 'medium', translateService.currentLang || TranslateService.defaultLang() ); return translateService.instant(gettext('Device last request:\n{{date}}'), { date }); }, sendStatusDisconnected: gettext('Connection not monitored'), pushStatusConnected: gettext('Connection to device established'), pushStatusDisconnected: gettext( 'Connection to device not established (not supported by device or no connectivity)' ), maintenance: gettext('Device is under maintenance') }

widgets/definitions/device-control-message/index.ts

deviceControlMessageWidgetDefinition
Default value : { id: defaultWidgetIds.DEVICE_CONTROL_MESSAGE_WIDGET, label: gettext('Message sending'), description: gettext(`Remotely send a message to a device`), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/device-control-message').then( m => m.DeviceControlMessageWidgetViewComponent ), resolve: { device: DynamicManagedObjectResolver }, previewImage: 'c8y-style-assets/device-control-message-widget.png', errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR, data: { settings: { noNewWidgets: false, widgetDefaults: { _width: 8, _height: 4 }, ng1: { options: { groupsSelectable: false } } } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
deviceControlMessageWidgetProviders
Type : []
Default value : [ hookWidget(deviceControlMessageWidgetDefinition) ]

device-list/device-list.module.ts

deviceListRoutes
Type : Route[]
Default value : [ { path: 'device', component: DeviceListComponent } ]

widgets/device-management/index.ts

deviceManagementDefaultWidgets
Default value : [ deviceManagementWelcomeWidgetDefinition ] satisfies DynamicWidgetDefinition[]

widgets/definitions/device-management-welcome/index.ts

deviceManagementWelcomeWidgetDefinition
Default value : { id: defaultWidgetIds.DEVICE_MANAGEMENT_WELCOME, label: gettext('Quick links'), description: gettext('Displays quick links for Device Management'), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/device-management-welcome').then( m => m.WelcomeToDeviceManagementComponent ), previewImage: 'c8y-style-assets/dm-welcome-widget-pr.png', data: { settings: { noNewWidgets: false, widgetDefaults: { _width: 12, _height: 4 }, ng1: { options: { noDeviceTarget: true, groupsSelectable: false } } } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition

device-profile/device-profile.module.ts

deviceProfilesRoutes
Type : Route[]
Default value : [ { path: 'device-profiles/:id', component: DeviceProfileComponent }, { path: 'device-profiles', component: DeviceProfileListComponent } ]
deviceTabProfileRoutes
Type : any[]
Default value : [ { context: ViewContext.Device, path: 'device-profile', component: DeviceTabProfileComponent, label: gettext('Device profile'), icon: 'c8y-device-profile', canActivate: [DeviceProfileGuard] } ]

protocol-opcua/opcua-protocol.module.ts

deviceProtocolRoutes
Type : Route[]
Default value : [ { path: 'deviceprotocols/opcuaV2/:id', component: OpcuaDeviceProtocolDetailComponent } ]
opcuaRoutes
Type : Route[]
Default value : [ { context: ViewContext.Device, path: 'opcua-servers', component: OpcuaServersComponent, label: gettext('OPC UA server'), icon: 'server', canActivate: [OpcuaAgentGuard, OpcuaMicroserviceGuard] }, { context: ViewContext.Device, path: 'address-space', component: OpcuaAddressSpaceComponent, label: gettext('Address space'), icon: 'cloud-network', canActivate: [OpcuaServerGuard, OpcuaMicroserviceGuard] } ]

icon-selector/icons/devicesAndSensors/index.ts

devicesAndSensorsIconCategory
Default value : { label: gettext('Devices and sensors`icons-category`'), icons: devicesAndSensorsIcons } as const
devicesAndSensorsIcons
Default value : [ ['thermometer-0', 'thermometer-empty'], ['thermometer-3', 'thermometer-three-quarters'], ['thermometer-2', 'thermometer-half'], ['thermometer-1', 'thermometer-quarter'], ['thermometer', 'thermometer-4', 'thermometer-full'], ['sensor'], ['package'], ['packages'], ['blockly'], ['objects'], ['monitoring'], ['qr-code'], ['online'], ['temperature'], ['air-conditioner'], ['air-shaft'], ['fan'], ['light'], ['light-automation'], ['light-off'], ['reflector-bulb'], ['spiral-bulb'], ['mirrored-reflector-bulb'], ['light-bulb', 'lightbulb-o'], ['light-on'], ['plumbing'], ['wi-fi-router'], ['gas-bottle'], ['grater'], ['air-quality'], ['central-heating'], ['light-dimmer'], ['radio-station'], ['relay-home-automation'], ['remote-control'], ['tv-off'], ['wall-socket'], ['washing-machine'], ['light-dimming-100-percent'], ['light-dimming-10-percent'], ['work-light'], ['plug'], ['electrical'], ['water-pipe'], ['thermometer-automation'], ['fire-extinguisher'], ['temperature-sensitive'], ['calculator'], ['humidity'], ['system-information'], ['system-report'], ['system-task'], ['imac-clock'], ['imac-exit'], ['imac-settings'], ['macbook-settings'], ['connected'], ['disconnected'], ['mobile'], ['multiple-devices'], ['client-management'], ['nfc'], ['mobile-email'], ['empty-battery', 'battery-empty', 'battery-0'], ['low-battery', 'battery-quarter', 'battery-1'], ['battery-level', 'battery-2', 'battery-half'], ['charged-battery', 'battery-3', 'battery-three-quarters'], ['full-battery', 'battery-full', 'battery-4', 'battery'], ['no-battery'], ['charging-battery'], ['no-connection'], ['low-connection'], ['signal'], ['factory', 'industry'], ['robot'], ['bot'], ['fork-lift'], ['gear-complex', 'cog-complex'], ['gears', 'cogs'], ['automation'], ['automatic'], ['electronics'], ['gas'], ['water', 'tint'], ['greentech'], ['radio-tower'], ['industrial-scales', 'balance-scale'], ['iphone', 'mobile-phone', 'smartphone'], ['smartphone-approve'], ['smartphone-decline'], ['phonelink-lock'], ['tablet-mac', 'tablet'], ['devices'], ['imac', 'desktop'], ['desktop1'], ['monitor', 'tv', 'television'], ['laptop'], ['checked-laptop'], ['laptop-alert'], ['laptop-error'], ['computer-support'], ['programming'], ['keyboard', 'keyboard-o'], ['video-conference'], ['remote-desktop'], ['workspace'], ['workstation'], ['microchip'], ['processor'], ['smartphone-ram'], ['bios'], ['micro-sd'], ['hdd', 'hdd-o'], ['financial-dynamic-presentation'], ['presentation'], ['room-finder'], ['statistics'], ['server'], ['stack'], ['critical-thinking'], ['environment1'], ['network-card'], ['network-cable'], ['usb-on'], ['ssd'], ['asterisk-key', 'asterisk'], ['end-button'], ['hub'], ['individual-server'], ['data-center'], ['root-server'], ['switch'], ['nas'], ['shutdown', 'power-off'], ['hibernate'], ['phone-square', 'phone'], ['no-idea'], ['network'], ['mind-map'], ['centralized-network'], ['customer-insights-manager'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

core/docs/defaults.items.ts

documentationItems
Type : DocLinkWithLabel[]
Default value : [ { icon: 'c8y-c8y-data', // double c8y- is correct! label: gettext('Concepts`KEEP_ORIGINAL`'), url: '/docs/concepts/introduction', type: 'doc' }, { icon: 'c8y-user', label: gettext('Getting started`KEEP_ORIGINAL`'), url: '/docs/section/getting_started', type: 'doc' }, { icon: 'c8y-administration', label: gettext('Platform administration`KEEP_ORIGINAL`'), url: '/docs/section/platform_administration', type: 'doc' }, { icon: 'c8y-device-management', label: gettext('Device Management'), url: '/docs/section/device_management', type: 'doc' }, { icon: 'c8y-cockpit', label: gettext('Application enablement`KEEP_ORIGINAL`'), url: '/docs/section/app_enablement', type: 'doc' }, { icon: 'c8y-book', label: gettext('Cumulocity IoT Edge`KEEP_ORIGINAL`'), url: '/docs/edge/edge-introduction', type: 'doc' }, { icon: 'c8y-data-explorer', label: gettext('Streaming analytics`KEEP_ORIGINAL`'), url: '/docs/streaming-analytics/overview-analytics', type: 'doc' }, { icon: 'rest-api', label: gettext('OpenAPI specification`KEEP_ORIGINAL`'), url: '/api', type: 'doc' }, legalNoticesItem ]
legalNoticesItem
Type : DocLinkWithLabel
Default value : { icon: 'gavel', label: gettext('Legal notices'), url: 'https://cumulocity.com/docs/legal-notices/', type: 'doc' }

file-preview/download-emitter.token.ts

DOWNLOAD_EMITTER
Default value : new InjectionToken<EventEmitter<string>>('downloadEmitter')

Provides InjectionToken used in FilePreviewModule. This token is used to inject EventEmitter instance, that is shared among all instances of FilePreviewComponent. These components communicate between each other using this emitter, which enables them to clear downloaded files from memory, if other instance of FilePreviewComponent started downloading different file. Value emitted by this EventEmitter is ID of downloaded file.

file-preview/file-preview.module.ts

downloadEmitter
Default value : new EventEmitter<string>()

core/bottom-drawer/bottom-drawer-ref.ts

DRAWER_ANIMATION_TIME
Type : number
Default value : 400

icon-selector/icons/ecommerce/index.ts

ecommerceIconCategory
Default value : { label: gettext('e-commerce`icons-category`'), icons: ecommerceIcons } as const
ecommerceIcons
Default value : [ ['gift'], ['small-business'], ['pricing'], ['free-trial'], ['buy1', 'cart-plus', 'cart-arrow-down'], ['return-purchase'], ['shopping-cart-with-money'], ['buying', 'shopping-cart'], ['procurement'], ['delivery-handcart'], ['cheap-21'], ['average-2'], ['stripe1'], ['loyalty-card'], ['shopping-check'], ['shopping-bag'], ['atm'], ['bank-card-dollar'], ['bank-card-euro'], ['contactless-payment'], ['qr-code', 'qrcode'], ['data-matrix-code'], ['barcode'], ['no-barcode'], ['refresh-barcode'], ['touch-id'], ['redeem'], ['card-exchange'], ['card-security'], ['cash-register'], ['cost'], ['create-order'], ['online-payment1'], ['rent1'], ['package-settings'], ['product-loading'], ['purchase-order'], ['receipt1'], ['scan-stock'], ['shipment-logistic'], ['shipping-center'], ['shipping-centre-loading-belt'], ['shopaholic'], ['basket'], ['shopping-basket'], ['add-basket'], ['paid'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

icon-selector/icons/editing/index.ts

editingIconCategory
Default value : { label: gettext('Editing`icons-category`'), icons: editingIcons } as const
editingIcons
Default value : [ ['text-width'], ['text-height'], ['paragraph', 'pilcrow'], ['text-input'], ['unavailable'], ['save'], ['save-commit'], ['delete'], ['copy'], ['paste'], ['more-menu'], ['password-hide'], ['password-show'], ['zoom-in'], ['zoom-out'], ['buy'], ['list', 'list-alt', 'list-ul'], ['format-align-justify', 'align-justify'], ['format-align-left', 'align-left'], ['format-align-center', 'align-center'], ['format-align-right', 'align-right'], ['radio-button-on', 'dot-circle-o'], ['colorize', 'eyedropper'], ['brush', 'paint-brush'], ['file-create', 'edit'], ['email-sign', 'at'], ['get-quote', 'quote-right'], ['quote-left'], ['format-bold', 'bold'], ['format-underlined', 'underline'], ['strikethrough-s', 'strikethrough'], ['title', 'header'], ['subscript'], ['superscript'], ['format-italic', 'italic'], ['font-download', 'font'], ['questionnaire', 'th-list'], ['tasklist'], ['communication-sorting'], ['todo-list', 'tasks'], ['numbered-list', 'list-ol'], ['search-in-list'], ['table-of-content'], ['index'], ['tiles'], ['edit1', 'pencil', 'pencil-square', 'pencil-square-o'], ['edit11'], ['no-edit'], ['cut', 'scissors'], ['coupon'], ['crop'], ['erase', 'eraser'], ['add-white-space'], ['blur'], ['paint-palette'], ['contrast', 'adjust'], ['bring-forward'], ['snap-background-to-white'], ['rename'], ['text-cursor', 'i-cursor'], ['large-icons'], ['comma'], ['compare'], ['content'], ['document-body'], ['merge-docunemts'], ['unit'], ['group', 'group-objects', 'object-group', 'object-ungroup'], ['ungroup'], ['hexagonal-pattern'], ['diagonal-lines'], ['line-width'], ['long-words'], ['indent', 'indent-left'], ['indent-decrease', 'dedent', 'dedent-left'], ['outdent', 'indent-right'], ['dedent-right'], ['drag-reorder'], ['drag-list-up'], ['pull-down'], ['page'], ['rearrange'], ['resize-file'], ['resize'], ['rich-text-converter'], ['select-all'], ['select-none'], ['ruler'], ['length'], ['send-backward'], ['send-to-back'], ['replace'], ['separated-lists'], ['short-words'], ['mix-words'], ['line-style'], ['design'], ['view-stream'], ['four-squares', 'th-large'], ['thumbnails', 'th'], ['view-module'], ['top-view'], ['orthogonal-view'], ['rectangular'], ['square'], ['view-column', 'columns'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

core/common/date.pipe.ts

ES_MAX_TIME_MILLISECONDS
Type : number
Default value : 8640000000000000

The range of times supported by ECMAScript Date objects in milliseconds.

datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/excel-generator.ts

ExcelGeneratorAdapter
Type : FileGenerator
Default value : { getLabel: ExcelGenerator.getLabel.bind(ExcelGenerator), getIcon: ExcelGenerator.getIcon.bind(ExcelGenerator), getFileExtension: ExcelGenerator.getFileExtension.bind(ExcelGenerator), getMimeType: ExcelGenerator.getMimeType.bind(ExcelGenerator), generateMerged: ExcelGenerator.convertToMergedExcel.bind(ExcelGenerator), getType: ExcelGenerator.getType.bind(ExcelGenerator), getTitle: ExcelGenerator.getTitle.bind(ExcelGenerator), getZipName: ExcelGenerator.getZipName.bind(ExcelGenerator), getAcceptType: ExcelGenerator.getAcceptType.bind(ExcelGenerator) }

datapoints-export-selector/datapoints-export-selector.model.ts

EXPORT_MODE_LABELS
Default value : { FULL: gettext('Full`export type`') as 'Full', COMPACT: gettext('Compact`export type`') as 'Compact' } as const
EXPORT_MODE_VALUES
Default value : { full: 'FULL', compact: 'COMPACT' } as const

Each export type is based on a different API:

  • COMPACT - series
  • FULL - measurements All differences between export modes: Compact: Processes up to 5,000 records per data point, or up to the data retention limit (API limit) Creates a single merged file containing all the data Provides minimum and maximum values (API feature) Preview is not available Supports optional data aggregation (API feature) Full: Processes up to 1,000,000 records per data point, or up to the data retention limit (API limit) For exports exceeding 50,000 records, data will be sent via email Creates a compressed ZIP file containing separate data files for each selected data point Preview is available Does not support data aggregation
FILE_COMPRESSION_TYPES_VALUES
Default value : { store: 'STORE', deflate: 'DEFLATE' } as const
HAS_ERROR
Type : string
Default value : 'has-error'
MEASUREMENTS_PREVIEW_ITEMS_LIMIT
Type : number
Default value : 5
SERIES_DATA_MERGED_FILE_NAME
Type : string
Default value : 'seriesDataMergedFileName'
TIME_RANGE_INTERVAL_UNITS_VALUES
Default value : { minutes: 'minutes', hours: 'hours', days: 'days', weeks: 'weeks', months: 'months', custom: 'custom' } as const

reports/ng1/downgraded.components.ts

exportSchedulesComponentDowngradedComponent
Default value : downgradeComponent({ component: ExportSchedulesComponent })

register-device/extensible/bulk/extensible-bulk-device-registration-modal.component.ts

extensibleDeviceRegistrationBulkSchema
Type : object
Default value : { $schema: 'https://json-schema.org/draft/2019-09/schema', type: 'object', properties: { csvBulkFile: { type: 'array', title: gettext('CSV file upload'), description: gettext( 'You can use file upload component to let users send files. This input accepts only a single CSV file.' ), contentMediaType: 'csv' } }, required: ['csvBulkFile'], additionalProperties: false }

branding/extra-css-branding-editor/extra-css-branding-editor-tab.factory.ts

extraCssTabLabel
Default value : gettext('Custom CSS')

core/router/router.module.ts

extraRoutes
Type : Route[]
Default value : [ { path: 'users/new', component: EmptyComponent }, { path: 'tenants/new', component: EmptyComponent } ]
viewContextRoutes
Type : ViewContextRootRoute[]
Default value : []

core/dynamic-forms/dynamic-forms-ui-theme.module.ts

FIELD_TYPES
Type : Array<Type<FieldType>>
Default value : [ ArrayTypeComponent, FieldCheckbox, WrapperFormField, FieldFile, FieldInput, FieldRadio, ObjectTypeComponent, FieldDate, FieldDateTime, TypeaheadTypeComponent, SelectTypeComponent, FieldTextArea, LegendFieldWrapper ]

device-protocols/device-protocols.module.ts

fieldbusTypes
Type : []
Default value : [ 'actility', 'canbus', 'canopen', 'lora', 'lpwan', 'modbus', 'opcua', 'profibus', 'sigfox', 'snmp' ]
protocolRoutes
Type : Route[]
Default value : fieldbusTypes.map(protocol => ({ path: `deviceprotocols/${protocol}/:id`, component: DeviceTypeDetailComponent, canDeactivate: [DeviceProtocolsGuard] }))

core/dynamic-forms/checkbox/checkbox.type.component.ts

fieldCheckboxTypeConfig
Default value : (): EnvironmentProviders => importProvidersFrom( FormlyModule.forChild({ types: [ { name: 'checkbox', component: FieldCheckbox }, { name: 'boolean', extends: 'checkbox' }, { name: 'switch', extends: 'checkbox', defaultOptions: { templateOptions: { switchMode: false, indeterminate: false } } } ] }) )

core/dynamic-forms/date-time/date-time.type.component.ts

fieldDateTimeTypeConfig
Default value : (): EnvironmentProviders => importProvidersFrom( FormlyModule.forChild({ types: [ { name: 'date-time', component: FieldDateTime, wrappers: ['c8y-form-field'] } ] }) )

core/dynamic-forms/date/date.type.component.ts

fieldDateTypeConfig
Default value : (): EnvironmentProviders => importProvidersFrom( FormlyModule.forChild({ types: [ { name: 'date', component: FieldDate } ] }) )

core/dynamic-forms/file/file.type.component.ts

fieldFileTypeConfig
Default value : (): EnvironmentProviders => importProvidersFrom( FormlyModule.forChild({ types: [ { name: 'file', component: FieldFile } ] }) )

core/dynamic-forms/input/input.type.component.ts

fieldInputTypeConfig
Default value : (): EnvironmentProviders => importProvidersFrom( FormlyModule.forChild({ types: [ { name: 'input', component: FieldInput, wrappers: ['c8y-form-field'] }, { name: 'string', extends: 'input' }, { name: 'typeahead', extends: 'input' }, { name: 'number', extends: 'input', defaultOptions: { templateOptions: { type: 'number' } } }, { name: 'integer', extends: 'input', defaultOptions: { templateOptions: { type: 'number' } } } ] }) )

core/dynamic-forms/radio/radio.type.component.ts

fieldRadioTypeConfig
Default value : (): EnvironmentProviders => importProvidersFrom( FormlyModule.forChild({ types: [ { name: 'radio', component: FieldRadio, wrappers: ['c8y-form-field'] } ] }) )

core/dynamic-forms/textarea/textarea.type.component.ts

fieldTextareaTypeConfig
Default value : (): EnvironmentProviders => importProvidersFrom( FormlyModule.forChild({ types: [ { name: 'textarea', component: FieldTextArea, wrappers: ['c8y-form-field'] } ] }) )

icon-selector/icons/filesAndFolders/index.ts

filesAndFoldersIconCategory
Default value : { label: gettext('Files and folders`icons-category`'), icons: filesAndFoldersIcons } as const
filesAndFoldersIcons
Default value : [ ['file-archive-o', 'file-zip-o'], ['file-video-o', 'file-movie-o'], ['file-audio-o', 'file-sound-o'], ['microsoft-access'], ['microsoft-onenote'], ['microsoft-outlook'], ['microsoft-project'], ['microsoft-publisher'], ['microsoft-sharepoint'], ['microsoft-visio'], ['word', 'file-word-o'], ['excel', 'file-excel-o'], ['ppt', 'file-powerpoint-o'], ['create-archive'], ['save-archive'], ['delete-archive'], ['gif'], ['gis'], ['gpx'], ['heic-filetype'], ['dmg'], ['jpg'], ['kmz'], ['kml'], ['mp3'], ['dng'], ['nef'], ['nmea'], ['tar'], ['ttf'], ['tif'], ['obj'], ['webp'], ['ogg'], ['woff'], ['xls'], ['xps'], ['zip'], ['wma'], ['osm'], ['otf'], ['dwg'], ['png'], ['eps'], ['ps'], ['rar'], ['raw'], ['psd'], ['exe'], ['fbx'], ['pdf-2'], ['3fr'], ['aac'], ['7zip'], ['cr2'], ['ai'], ['apk'], ['wav'], ['jp2'], ['java-file'], ['fff'], ['folder-aggregate'], ['book'], ['package-delivery-logistics', 'cube'], ['resume'], ['insert-drive-file', 'file', 'file-o', 'sheet-of-paper'], ['edit-file'], ['documents'], ['file-copy', 'files', 'files-o'], ['profile'], ['pdf', 'file-pdf-o'], ['export-pdf'], ['file-type-document', 'file-text-o', 'file-text', 'document'], ['submit-document1'], ['privacy-policy'], ['selective-highlighting1'], ['brief'], ['document-with-code'], ['image-file', 'file-image-o', 'file-picture-o', 'file-photo-o'], ['image-file-add'], ['image-file-checked'], ['image-file-remove'], ['check-document', 'document-with-a-check-mark'], ['delete-file'], ['file-delete'], ['file-settings'], ['file-preview'], ['open-document'], ['submit-document'], ['restore-page1'], ['document-exchange'], ['import-file'], ['share-document'], ['idea'], ['mark-as-favorite'], ['email-document'], ['file-view'], ['policy-document'], ['business-report'], ['graph-report'], ['edit-graph-report'], ['download-graph-report'], ['agreement'], ['estimates'], ['winking-document'], ['insert-page'], ['note'], ['brochure'], ['read'], ['cashbook'], ['price-tag', 'tag'], ['add-tag'], ['tag1', 'tags'], ['open-folder', 'opened-folder', 'folder-open', 'folder-open-o'], ['folder', 'folder-o'], ['folder-open1'], ['add-folder'], ['delete-folder'], ['search-folder'], ['folder-settings'], ['extensions-folder'], ['private-folder'], ['edit-folder'], ['e-mail-folder'], ['documents-folder'], ['downloads-folder'], ['favorite-folder'], ['user-folder'], ['download-from-ftp'], ['upload-to-ftp'], ['ftp'], ['big-parcel'], ['open-parcel'], ['packing'], ['unpacking'], ['cardboard-box', 'archive', 'archive-o', 'file-archive-o1'], ['box', 'case'], ['empty-box'], ['box-settings'], ['secured-delivery'], ['remove-delivery'], ['out-of-stock'], ['new-product'], ['product'], ['product-management'], ['stacking'], ['cv'], ['unarchive', 'upload-archive'], ['archive-file', 'download-archive'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

icon-selector/icons/finance/index.ts

financeIconCategory
Default value : { label: gettext('Finance`icons-category`'), icons: financeIcons } as const
financeIcons
Default value : [ ['cc-stripe'], ['google-wallet'], ['paypal'], ['cc-paypal'], ['cc-amex'], ['cc-discover'], ['cc-visa'], ['cc-mastercard'], ['try', 'turkish-lira'], ['rouble', 'rub', 'ruble'], ['krw', 'won'], ['inr', 'rupee'], ['ils', 'shekel', 'sheqel'], ['gbp'], ['eur', 'euro'], ['cny', 'jpy', 'rmb', 'yen'], ['bitcoin', 'btc'], ['dollar', 'usd'], ['calculator1'], ['accounting'], ['contract'], ['sales-performance'], ['bank-safe'], ['mobile-payment'], ['money-yours'], ['online-payment'], ['us-dollar-circled'], ['credit-card', 'credit-card-alt'], ['only-cash'], ['credit-control'], ['bank-cards'], ['check-for-payment'], ['paper-money', 'money'], ['cash-euro'], ['stack-of-money'], ['wallet'], ['certificate'], ['card-security1'], ['bill'], ['paid-bill'], ['token-card-code1'], ['receipt'], ['add-receipt'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

repository/firmware/device-tab/firmware-device-tab.guard.ts

FIRMWARE_FRAGMENT
Type : string
Default value : 'c8y_Firmware'
SUPPORTED_OPERATIONS_FRAGMENT
Type : string
Default value : 'c8y_SupportedOperations'

branding/shared/lazy/branding-theme-form/branding-theme-form-structure.ts

formStructure
Default value : { brandColors: { label: gettext('Brand colors'), brandColors: { label: gettext('Brand colors'), colors: [ { label: gettext('Brand primary'), formControlName: 'brand-primary' }, { label: gettext('Brand light'), formControlName: 'brand-light' }, { label: gettext('Brand dark'), formControlName: 'brand-dark' } ] as const satisfies Color[] }, shades: { label: gettext('Shades'), colorColumn: [ [ { label: 'c8y-brand-10', formControlName: 'c8y-brand-10' }, { label: 'c8y-brand-20', formControlName: 'c8y-brand-20' }, { label: 'c8y-brand-30', formControlName: 'c8y-brand-30' }, { label: 'c8y-brand-40', formControlName: 'c8y-brand-40' } ], [ { label: 'c8y-brand-50', formControlName: 'c8y-brand-50' }, { label: 'c8y-brand-60', formControlName: 'c8y-brand-60' }, { label: 'c8y-brand-70', formControlName: 'c8y-brand-70' }, { label: 'c8y-brand-80', formControlName: 'c8y-brand-80' } ] ] as const satisfies Color[][] } }, statusColors: { label: gettext('Status colors'), subCategories: [ { label: gettext('Info colors'), colors: [ { label: gettext('Info'), formControlName: 'palette-status-info' }, { label: gettext('Info light'), formControlName: 'palette-status-info-light' }, { label: gettext('Info dark'), formControlName: 'palette-status-info-dark' } ] as const satisfies Color[] }, { label: gettext('Warning colors'), colors: [ { label: gettext('Warning'), formControlName: 'palette-status-warning' }, { label: gettext('Warning light'), formControlName: 'palette-status-warning-light' }, { label: gettext('Warning dark'), formControlName: 'palette-status-warning-dark' } ] as const satisfies Color[] }, { label: gettext('Danger colors'), colors: [ { label: gettext('Danger'), formControlName: 'palette-status-danger' }, { label: gettext('Danger light'), formControlName: 'palette-status-danger-light' }, { label: gettext('Danger dark'), formControlName: 'palette-status-danger-dark' } ] as const satisfies Color[] }, { label: gettext('Success colors'), colors: [ { label: gettext('Success'), formControlName: 'palette-status-success' }, { label: gettext('Success light'), formControlName: 'palette-status-success-light' }, { label: gettext('Success dark'), formControlName: 'palette-status-success-dark' } ] as const satisfies Color[] } ] }, actionBar: { label: gettext('Action bar'), colorColumns: [ { label: gettext('Action bar'), colorColumns: [ [ { label: gettext('Background color'), formControlName: 'action-bar-background-default' }, { label: gettext('Text color'), formControlName: 'action-bar-color-default' }, { label: gettext('Icon color'), formControlName: 'action-bar-icon-color' } ], [ { label: gettext('Button color'), formControlName: 'action-bar-color-actions' }, { label: gettext('Button hover color'), formControlName: 'action-bar-color-actions-hover' } ] ] as const satisfies Color[][] } ] }, mainHeader: { label: gettext('Main header'), colorColumns: [ { label: gettext('Main header'), colorColumns: [ [ { label: gettext('Background color'), formControlName: 'header-color' }, { label: gettext('Text color'), formControlName: 'header-text-color' } ], [ { label: gettext('Button hover color'), formControlName: 'header-hover-color' } ] ] as const satisfies Color[][] } ] }, navigator: { label: gettext('Navigator'), colorColumns: [ { label: gettext('Navigation'), colors: [ { label: gettext('Background color'), formControlName: 'navigator-bg-color' }, { label: gettext('Text color'), formControlName: 'navigator-text-color' }, { label: gettext('Separator color'), formControlName: 'navigator-separator-color' } ] as const satisfies Color[] }, { label: gettext('Header'), colors: [ { label: gettext('Header background color'), formControlName: 'navigator-header-bg' }, { label: gettext('Title color'), formControlName: 'navigator-title-color' } ] as const satisfies Color[] }, { label: gettext('Active node'), colors: [ { label: gettext('Active background color'), formControlName: 'navigator-active-bg' }, { label: gettext('Active border color'), formControlName: 'navigator-border-active' }, { label: gettext('Active text color'), formControlName: 'navigator-color-active' } ] as const satisfies Color[] } ] }, rightDrawer: { label: gettext('Right drawer'), colorColumns: [ { label: gettext('Panel'), colors: [ { label: gettext('Background color'), formControlName: 'right-drawer-background-default' }, { label: gettext('Text color'), formControlName: 'right-drawer-text-color-default' }, { label: gettext('Text muted color'), formControlName: 'right-drawer-text-muted' }, { label: gettext('Separator color'), formControlName: 'right-drawer-separator-color' } ] as const satisfies Color[] }, { label: gettext('Interactive'), colors: [ { label: gettext('Link color'), formControlName: 'right-drawer-link-color' }, { label: gettext('Link hover color'), formControlName: 'right-drawer-link-color-hover' } ] as const satisfies Color[] } ] } } as const

register-device/bulk/bulk-device-registration-modal.component.ts

fullCsvHeaders
Type : string[]
Default value : [ 'ID', 'CREDENTIALS', 'TYPE', 'NAME', 'ICCID', 'IDTYPE', 'PATH', 'SHELL', 'AUTH_TYPE' ]
registerDeviceBulkSchema
Type : object
Default value : { $schema: 'https://json-schema.org/draft/2019-09/schema', type: 'object', properties: { csvBulkFile: { type: 'array', title: gettext('CSV file upload'), description: gettext( 'You can use file upload component to let users send files. This input accepts only a single CSV file.' ), contentMediaType: 'csv' } }, required: ['csvBulkFile'], additionalProperties: false }
simpleCsvHeaders
Type : string[]
Default value : ['ID', 'PATH']

branding/shared/branding-tab.factory.ts

genericTabName
Default value : gettext('Generic')
lightThemeTabName
Default value : gettext('Light theme')

operations/device-selector/device-selector.component.ts

GRID_CONFIG_KEY
Type : string
Default value : 'device-grid-bulk'

icon-selector/icons/hands/index.ts

handsIconCategory
Default value : { label: gettext('Hands`human hands, icons-category`'), icons: handsIcons } as const
handsIcons
Default value : [ ['sign-language', 'signing'], ['hand-o-down'], ['hand-o-left'], ['hand-o-up'], ['hand-o-right'], ['hand-peace-o'], ['hand-pointer-o'], ['hand-spock-o'], ['hand-lizard-o'], ['hand-scissors-o'], ['hand-paper-o', 'hand-stop-o'], ['hand-grab-o', 'hand-rock-o'], ['thumbs-up', 'thumbs-o-up'], ['thumbs-down', 'thumbs-o-down'], ['do-not-touch'], ['hand'], ['disclaimer'], ['touchpad'], ['holding-box'], ['recieve'], ['sell'], ['get-revenue'], ['handshake', 'handshake-o', 'partners'], ['wearable-technology'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

widgets/definitions/help-and-service/index.ts

helpAndServiceWidgetDefinition
Default value : { id: defaultWidgetIds.HELP_AND_SERVICE, label: gettext('Help and service'), description: gettext(`Displays links to help and service resources.`), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/help-and-service-widget').then( m => m.HelpAndServiceViewComponent ), previewImage: 'c8y-style-assets/help-and-service-widget-pr.png', data: { settings: { noNewWidgets: false, widgetDefaults: { _width: 8, _height: 4 }, ng1: { options: { noDeviceTarget: true, groupsSelectable: false } } } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
helpAndServiceWidgetProviders
Type : []
Default value : [hookWidget(helpAndServiceWidgetDefinition)]

core/action/action.service.ts

HOOK_ACTION
Consider using the `hookAction` function instead.
Default value : new InjectionToken('HOOK_ACTION')

A hook to add an action using the multi-provider extension concept.

core/action-bar/action-bar.service.ts

HOOK_ACTION_BAR
Consider using the `hookActionBar` function instead.
Default value : new InjectionToken<ActionBarExtension>('HOOK_ACTION_BAR')

A hook to add ActionBarItems using the multi provider extension concept. Consider using the hookActionBar function instead.

Example :
providers: [
  {
    provide: HOOK_ACTION_BAR,
    useValue: [{ template: SomeComponent, priority: 10, placement: 'left' } as ActionBarItem],
    multi: true
  }
]

core/data-grid/action-controls-extension.service.ts

HOOK_ACTION_CONTROLS
Default value : new InjectionToken('ActionControlHook')

core/breadcrumb/breadcrumb.service.ts

HOOK_BREADCRUMB
Consider using the `hookBreadcrumb` function instead.
Default value : new InjectionToken('HOOK_BREADCRUMB')

core/dynamic-component/dynamic-component.model.ts

HOOK_COMPONENTS
Consider using the `hookComponent` function instead.
Default value : new InjectionToken<DynamicComponentExtension[]>('HOOK_COMPONENTS')

A hook to add dynamic components to the UI (e.g. widgets).

RESOLVING_COMPONENT_WAIT_TIME
Default value : new InjectionToken<number>( 'RESOLVING_COMPONENT_WAIT_TIME' )

Time the hook waits until it emits an undefined value. Used for not defined widgets -> by default after 5s we show an error that the widget could not be loaded.

device-list/device-list-extension.service.ts

HOOK_DEVICE_LIST_COLUMNS
Default value : new InjectionToken<GenericHookType<Column>>( 'HOOK_ALL_DEVICES_LIST_COLUMNS' )

register-device/dropdown/register-device-extension.service.ts

HOOK_DEVICE_REGISTRATION
Consider using the `hookDeviceRegistration` function instead.
Default value : new InjectionToken<RegisterDeviceExtension>( 'HOOK_DEVICE_REGISTRATION' )

A hook to use for Multi Provider extension.

core/docs/docs.models.ts

HOOK_DOCS
Default value : new InjectionToken<DocLinkExtension[]>('HOOK_DOCS')

core/drawer/drawer.service.ts

HOOK_DRAWER
Default value : new InjectionToken<DrawerItem[]>('HOOK_DRAWER')

A hook to use for Multi Provider extension. Consider using the hookDrawer function instead.

core/provider-configuration/provider-configuration-hook.ts

HOOK_DYNAMIC_PROVIDER_CONFIG
Consider using the `hookDynamicProviderConfig` function instead.
Default value : new InjectionToken('HOOK_DYNAMIC_PROVIDER_CONFIG')

core/data-grid/filter-chip/filter-mapper.factory.ts

HOOK_FILTER_MAPPER
Default value : new InjectionToken<FilterMapperExtension>('HOOK_FILTER_MAPPER')

core/navigator/navigator.service.ts

HOOK_NAVIGATOR_NODES
Consider using the `hookNavigator` function instead.
Default value : new InjectionToken<NavigatorExtension[]>( 'HOOK_NAVIGATOR_NODES' )

A hook to use for Multi Provider extension.

core/common/options.service.ts

HOOK_OPTIONS
Consider using the `hookOptions` function instead.
Default value : new InjectionToken<ExtensionFactory<ApplicationOptions>>( 'HOOK_OPTIONS' )

core/i18n/patterns-message.hook.ts

HOOK_PATTERN_MESSAGES
Consider using the `hookPatternMessages` function instead.
Default value : new InjectionToken('HOOK_PATTERN_MESSAGES')

core/router/router.service.ts

HOOK_ROUTE
Consider using the `hookRoute` function instead.
Default value : new InjectionToken<RouteFactory>('HOOK_ROUTE')

A hook to use for Multi Provider extension.

core/search/search.service.ts

HOOK_SEARCH
Please don't use the search factory. It will be refactored soon.
Default value : new InjectionToken('HOOK_SEARCH')

A hook to use for Multi Provider extension. Consider using the hookSearch function instead.

services/status-options/status-options.model.ts

HOOK_SERVICE_STATUS
Consider using the `hookServiceStatus` function instead.
Default value : new InjectionToken<StatusOption | StatusOption[]>( 'HOOK_SERVICE_STATUS' )

Extension hook allowing to register custom service statuses and configure their visual presentation.

SERVICE_STATUS_OPTIONS
Type : StatusOption[]
Default value : [ { key: 'up', label: gettext('Up'), icon: 'check-circle', class: 'text-success' }, { key: 'down', label: gettext('Down'), icon: 'exclamation-circle', class: 'text-danger' }, { key: 'unknown', label: gettext('Unknown'), icon: 'inactive-state' } ]

Standard status options supported by the platform.

core/stepper/stepper.service.ts

HOOK_STEPPER
Consider using the `hookStepper` function instead.
Default value : new InjectionToken<StepperExtension[]>('HOOK_STEPPER')

A hook to use for Multi Provider extension.

core/tabs/tabs.service.ts

HOOK_TABS
Consider using the `hookTab` function instead.
Default value : new InjectionToken<TabExtension[]>('HOOK_TABS')

A hook to use for Multi Provider extension.

core/version/version.model.ts

HOOK_VERSION
Consider using the `hookVersion` function instead.
Default value : new InjectionToken<Version[]>('HOOK_VERSION')

An extension HOOK can use either a pure value:

Example :
 { provide: HOOK_X, useValue: { ...hookValue }, multi: true }

Or an array to directly register multiple:

Example :
 { provide: HOOK_X, useValue: [{ ...hookValues }], multi: true }

Or an ExtensionFactory which allows to define a get() function. This function gets called on each navigation with the current route and can return values async (observable or promise).

Example :
 { provide: HOOK_X, useFactory: { get: (route) => doSomethingAsync(route) }, multi: true }
VERSION_MODULE_CONFIG
Default value : new InjectionToken<VersionModuleConfig>( 'VERSION_MODULE_CONFIG' )

core/wizard/wizard.model.ts

HOOK_WIZARD
Consider using the `hookWizard` function instead.
Default value : new InjectionToken<WizardExtension[]>('HOOK_WIZARD')

A hook to add wizard entries.

widgets/definitions/image/index.ts

imageWidgetDefinition
Default value : { id: defaultWidgetIds.IMAGE, label: gettext('Image'), description: gettext(`Display a single image selected from the user's file system.`), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/image').then( m => m.ImageWidgetViewComponent ), loadConfigComponent: () => import('@c8y/ngx-components/widgets/implementations/image').then( m => m.ImageWidgetConfigComponent ), previewImage: 'c8y-style-assets/image-widget.png', data: { settings: { noNewWidgets: false, widgetDefaults: { _width: 8, _height: 4 }, ng1: { options: { noDeviceTarget: true, groupsSelectable: false } } } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
imageWidgetProviders
Type : []
Default value : [hookWidget(imageWidgetDefinition)]

widgets/implementations/info-gauge/current-measurement.pipe.ts

INFO_GAUGE_COLORS
Default value : { GREEN: 'var(--c8y-brand-50)', YELLOW: 'var(--c8y-palette-status-warning)', RED: 'var(--c8y-palette-status-danger)' } as const

widgets/definitions/info-gauge/index.ts

infoGaugeWidgetDefinition
Default value : { id: defaultWidgetIds.INFO_GAUGE, label: gettext('Info gauge'), description: gettext('Radial gauge and multiple label and value pairs for data points'), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/info-gauge').then( m => m.InfoGaugeWidgetViewComponent ), loadConfigComponent: () => import('@c8y/ngx-components/widgets/implementations/info-gauge').then( m => m.InfoGaugeWidgetConfigComponent ), previewImage: 'c8y-style-assets/info-gauge-widget-pr.png', resolve: { datapointsLabels: DynamicDatapointsResolver, datapointsGauge: DynamicDatapointsResolver }, data: { settings: { noNewWidgets: false, widgetDefaults: { _width: 4, _height: 2 }, ng1: { options: { noDeviceTarget: true, groupsSelectable: false } } } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
infoGaugeWidgetProviders
Type : []
Default value : [hookWidget(infoGaugeWidgetDefinition)]

core/common/humanize-app-name.model.ts

internalApps
Default value : { administration: gettext('Administration'), cockpit: gettext('Cockpit'), devicemanagement: gettext('Device Management'), 'digital-twin-manager': gettext('Digital Twin Manager'), streaminganalytics: gettext('Streaming Analytics') } as const

interval-picker/interval-picker.model.ts

INTERVAL_TITLES
Type : Record<, string>
Default value : { minutes: gettext('Last minute'), hours: gettext('Last hour'), days: gettext('Last day'), weeks: gettext('Last week'), months: gettext('Last month'), custom: gettext('Custom') }
INTERVALS
Type : Interval[]
Default value : [ { id: 'minutes', title: gettext('Last minute'), timespanInMs: TimeSpanInMs.MINUTE }, { id: 'hours', title: gettext('Last hour'), timespanInMs: TimeSpanInMs.HOUR }, { id: 'days', title: gettext('Last day'), timespanInMs: TimeSpanInMs.DAY }, { id: 'weeks', title: gettext('Last week'), timespanInMs: TimeSpanInMs.WEEK }, { id: 'months', title: gettext('Last month'), timespanInMs: TimeSpanInMs.MONTH }, { id: 'custom', title: gettext('Custom') } ]
todayDate
Default value : new Date()

widgets/definitions/kpi/index.ts

kpiWidgetDefinition
Default value : { id: defaultWidgetIds.KPI, label: gettext('KPI'), description: gettext('Displays the last measurement value of a device.'), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/kpi').then(m => m.KpiWidgetViewComponent), loadConfigComponent: () => import('@c8y/ngx-components/widgets/implementations/kpi').then(m => m.KpiWidgetConfigComponent), previewImage: 'c8y-style-assets/kpi-widget.png', resolve: { datapoints: DynamicDatapointsResolver }, data: { settings: { noNewWidgets: false, widgetDefaults: { _width: 4, _height: 2 }, ng1: { options: { noDeviceTarget: true, groupsSelectable: false } } } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
kpiWidgetProviders
Type : []
Default value : [hookWidget(kpiWidgetDefinition)]

core/i18n/languages.ts

LANGUAGES
Default value : new InjectionToken('Languages')

widgets/definitions/cockpit-legacy-welcome/index.ts

legacyCockpitWelcomeWidgetDefinition
Default value : { id: defaultWidgetIds.LEGACY_COCKPIT_WELCOME, label: gettext('Welcome to Cockpit'), description: gettext('Displays a welcome message for Cockpit'), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/cockpit-legacy-welcome').then( m => m.CockpitLegacyWelcomeWidgetComponent ), data: { settings: { noNewWidgets: true, ng1: { options: { noDeviceTarget: true, groupsSelectable: false } } } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
legacyCockpitWelcomeWidgetProviders
Type : []
Default value : [ hookWidget(legacyCockpitWelcomeWidgetDefinition) ]

widgets/definitions/linear-gauge/index.ts

linearGaugeWidgetDefinition
Default value : { id: defaultWidgetIds.LINEAR_GAUGE, label: gettext('Linear Gauge'), description: gettext('A linear gauge graph displaying current values for selected measurements'), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/linear-gauge').then( m => m.LinearGaugeWidgetViewComponent ), loadConfigComponent: () => import('@c8y/ngx-components/widgets/implementations/linear-gauge').then( m => m.LinearGaugeWidgetConfigComponent ), previewImage: 'c8y-style-assets/linear-gauge-widget-pr.png', resolve: { datapoints: DynamicDatapointsResolver }, errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR, data: { settings: { noNewWidgets: false, widgetDefaults: { _width: 4, _height: 3 }, ng1: { options: { noDeviceTarget: true, groupsSelectable: false } } } } as ContextWidgetConfig } satisfies DynamicComponentDefinition
linearGaugeWidgetProviders
Type : []
Default value : [hookComponent(linearGaugeWidgetDefinition)]

core/i18n/locale.path.ts

LOCALE_PATH
Default value : new InjectionToken('Locale path')

tracking/tracking.service.ts

LOCATION_UPDATE_EVENT_TYPE
Type : string
Default value : 'c8y_LocationUpdate'

icon-selector/icons/location/index.ts

locationIconCategory
Default value : { label: gettext('Location`icons-category`'), icons: locationIcons } as const
locationIcons
Default value : [ ['america', 'globe'], ['location'], ['globe1'], ['compass-north', 'compass'], ['marker'], ['marker-off'], ['find-clinic'], ['tesla-supercharger-pin'], ['address'], ['cab-stand'], ['map', 'map-o'], ['map-editing'], ['map-marker'], ['quest'], ['waypoint-map'], ['anchor-nodes'], ['map-pin'], ['signpost-tourist', 'map-signs'], ['gps'], ['near-me', 'location-arrow'], ['navigation'], ['target1'], ['hunt'], ['location-off'], ['location-update'], ['layers'], ['journey'], ['here', 'street-view'], ['parking'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

protocol-lpwan/lpwan-protocol.module.ts

lpwanRoutes
Type : Route[]
Default value : [ { context: ViewContext.Device, path: 'assign-protocol', component: LpwanAssignDeviceProtocolComponent, label: gettext('LPWAN'), icon: 'c8y-device-protocols', canActivate: [LpwanAgentGuard] } ]

protocol-lwm2m/ng1/plugin-checker.service.ts

lwm2mPluginCheckerServiceDowngradedInjectable
Default value : downgradeInjectable(Lwm2mPluginCheckerService)

widgets/definitions/map/index.ts

mapWidgetDefinition
Default value : { id: defaultWidgetIds.MAP, label: gettext('Map'), description: gettext('Shows the position of a device or all devices in a group.'), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/map').then(m => m.MapWidgetComponent), loadConfigComponent: () => import('@c8y/ngx-components/widgets/implementations/map').then(m => m.MapWidgetConfigComponent), /*providers: [ ],*/ resolve: { device: DynamicManagedObjectResolver }, previewImage: 'c8y-style-assets/map-widget-pr.png', errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR, data: { settings: { noNewWidgets: false, widgetDefaults: { _width: 8, _height: 4 }, ng1: { options: { noDeviceTarget: false, groupsSelectable: true, deviceTargetNotRequired: true } } }, displaySettings: { globalTimeContext: false, globalAutoRefreshContext: true, globalRealtimeContext: true } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
mapWidgetProviders
Type : []
Default value : [hookWidget(mapWidgetDefinition)]

widgets/definitions/markdown/index.ts

markdownWidgetDefinition
Default value : { id: defaultWidgetIds.MARKDOWN, label: gettext('Markdown widget'), description: gettext( 'Display content provided as Markdown. You can either upload a file, or provide a file path.' ), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/markdown').then( m => m.MarkdownWidgetViewComponent ), loadConfigComponent: () => import('@c8y/ngx-components/widgets/implementations/markdown').then( m => m.MarkdownWidgetConfigComponent ), previewImage: 'c8y-style-assets/markdown-widget.png', data: { settings: { noNewWidgets: false, widgetDefaults: { _width: 8, _height: 4 }, ng1: { options: { noDeviceTarget: true, groupsSelectable: false } } } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
markdownWidgetProviders
Type : []
Default value : [hookWidget(markdownWidgetDefinition)]

core/common/common.constants.ts

MAX_PAGE_SIZE
Type : number
Default value : 2000

The maximum pageSize used in API queries to c8y.

auth-configuration/pattern-messages.data.ts

MESSAGES_AUTH_CONFIGURATION
Default value : { '^The tenant option: configuration/tenant.login.ignore-case cannot be enabled : Username or alias is duplicated when case sensitivity is ignored.$': { gettext: gettext( 'Could not enable the "Ignore case when logging in" feature. Duplicate usernames or aliases were detected when ignoring case sensitivity. Resolve conflicting names and try again.' ) }, "^The tenant option: configuration/tenant.login.ignore-case cannot be managed : Feature 'Ignore case on username or alias login' is not available.$": { gettext: gettext('The feature "Ignore case when logging in" is not available.') }, "^The tenant option: configuration/tenant.login.ignore-case cannot be managed : Only a tenant administrator can change the state of the 'Ignore case on username or alias login' feature.$": { gettext: gettext( 'Only a tenant administrator can configure the "Ignore case when logging in" option.' ) } } as const

connectivity/sim/pattern-messages.data.ts

MESSAGES_CONNECTIVITY_SIM
Default value : { '^Cache duration$': { gettext: gettext('Cache duration') }, '^Sets the duration how long information from the provider may be cached in seconds$': { gettext: gettext( 'Sets the duration in seconds how long the information from the provider may be cached.' ) }, '^Certificate$': { gettext: gettext('Certificate') }, '^Certificate file$': { gettext: gettext('Certificate file') }, '^API URL$': { gettext: gettext('API URL') }, '^Sim source$': { gettext: gettext('SIM source') }, '^source$': { gettext: gettext('source') }, '^Password$': { gettext: gettext('Password') }, '^Trust store password$': { gettext: gettext('Trust store password') }, '^Trust store type$': { gettext: gettext('Trust store type') }, '^License key$': { gettext: gettext('License key') }, '^Username$': { gettext: gettext('Username') } } as const

sms-gateway/pattern-messages.data.ts

MESSAGES_SMS_GATEWAY
Default value : { '^Sender name$': { gettext: gettext('Sender name') }, '^Sender name used for sent SMS$': { gettext: gettext('Sender name used for sent SMS') }, '^Sender address$': { gettext: gettext('Sender address') }, '^Sender address used for sent SMS$': { gettext: gettext('Sender address used for sent SMS') }, '^Username$': { gettext: gettext('Username') }, '^Password$': { gettext: gettext('Password') }, '^Licence key$': { gettext: gettext('License key') }, '^Key$': { gettext: gettext('Key') }, '^API base URL$': { gettext: gettext('API base URL') }, '^API URL$': { gettext: gettext('API URL') }, '^oauth$': { gettext: gettext('OAuth') }, '^basic$': { gettext: gettext('Basic') }, '^Authentication method$': { gettext: gettext('Authentication method') }, '^Defines which authentication method is used with the provider$': { gettext: gettext('Defines which authentication method is used with the provider') }, '^Static headers$': { gettext: gettext('Static headers') }, '^Static headers that should be added to requests towards the provider$': { gettext: gettext('Static headers that should be added to requests towards the provider') }, '^OAuth token URL$': { gettext: gettext('OAuth token URL') }, '^URL where the OAuth token is requested from (required if OAuth method is chosen)$': { gettext: gettext( 'URL where the OAuth token is requested from (required if OAuth method is selected)' ) }, '^OAuth toke mime type$': { gettext: gettext('OAuth token mime type') }, '^Overrides the OAuth token response mime type$': { gettext: gettext('Overrides the OAuth token response mime type') }, '^OAuth access toke type$': { gettext: gettext('OAuth access token type') }, '^Overrides the OAuth access token type$': { gettext: gettext('Overrides the OAuth access token type') }, '^Global configuration$': { gettext: gettext('Global configuration') }, '^Enables or disables if the settings may be used globally for all tenants (Only possible in management tenant)$': { gettext: gettext( 'Enables or disables the settings globally for all tenants (only possible in management tenant)' ) }, '^API key$': { gettext: gettext('API key') }, '^Inherit to subtenants$': { gettext: gettext('Inherit to subtenants') }, "^Enables or disables if this tenant's configuration may be inherited to subtenants$": { gettext: gettext( 'Enables or disables the option to inherit the tenant configuration to subtenants' ) }, '^Login$': { gettext: gettext('Login') }, '^Source business unit ID$': { gettext: gettext('Source business unit ID') }, '^Client ID$': { gettext: gettext('Client ID') }, '^Client secret$': { gettext: gettext('Client secret') } } as const

trusted-certificates/pattern-messages.data.ts

MESSAGES_TRUSTED_CERTIFICATES
Default value : { '^Cannot find certificate with fingerprint (.+?).$': { gettext: gettext('Could not find {{ fingerprint }} certificate.'), placeholders: { fingerprint: '$1' } }, '^Wrong proof of possession verification code used for tenant (.+?). Certificate (.+?), usage not granted.$': { gettext: gettext( 'Could not confirm the ownership of {{ fingerprint }} certificate: invalid proof of possession verification code provided, sign verification code with private key.' ), placeholders: { tenant: '$1', fingerprint: '$2' } }, '^Proof of possession verification code used for tenant (.+?) expired. Certificate (.+?), usage not granted.': { gettext: gettext( 'Could not confirm the ownership of {{ fingerprint }} certificate: proof of possession verification code has expired, generate a new code and try again.' ), placeholders: { tenant: '$1', fingerprint: '$2' } } } as const

icon-selector/icons/messaging/index.ts

messagingIconCategory
Default value : { label: gettext('Messaging`icons-category`'), icons: messagingIcons } as const
messagingIcons
Default value : [ ['reply', 'mail-reply'], ['forward1', 'mail-forward'], ['reply-all', 'mail-reply-all'], ['communication'], ['multichannel'], ['chat'], ['topic', 'comment', 'comment-o'], ['typing'], ['quote'], ['delete-message'], ['poll'], ['popular'], ['speaker-notes', 'audio-description'], ['comment1', 'comments', 'comments-o'], ['speaker-notes-off'], ['new-topic'], ['ask-question'], ['chat-bubble', 'commenting', 'commenting-o'], ['mail', 'important-mail', 'envelope', 'envelope-o', 'envelope-open-o', 'envelope-open'], ['edit-message'], ['received'], ['deleted-message'], ['group-message'], ['subscription'], ['unsubscribe'], ['send-email'], ['read-message'], ['inbox'], ['add-to-inbox'], ['check-inbox'], ['remove-from-inbox'], ['outbox'], ['post', 'envelope-square'], ['sheet', 'sticky-note', 'sticky-note-o'], ['note1'], ['secure'], ['retweet'], ['rss', 'rss-square', 'feed'], ['cancel-subscription'], ['link', 'chain'], ['link-off', 'chain-broken', 'unlink'], ['sent'], ['send', 'email-send', 'send-o', 'paper-plane', 'paper-plane-o'], ['hashtag'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

core/data-grid/data-grid.model.ts

minColumnGridTrackSize
Type : number
Default value : 80
ratiosByColumnTypes
Type : object
Default value : { /** The width ration for icon column type. */ icon: 1, /** The width ration for numeric column type. */ numeric: 1, /** The width ration for short text column type. */ 'text-short': 1.67, /** The width ration for long text column type. */ 'text-long': 3.33 }

Maps column types to relative widths.

core/common/group.service.ts

MO_TYPES
Default value : [ 'asset', 'dynamicGroup', 'brokerSource', 'brokerSourceInactive', 'group', 'other' ] as const

test/jest-global-mocks.ts

mock
Default value : () => { let storage = {}; return { getItem: key => (key in storage ? storage[key] : null), setItem: (key, value) => (storage[key] = value || ''), removeItem: key => delete storage[key], clear: () => (storage = {}) }; }
nodeCrypto
Default value : require('crypto')

data-broker/data-broker-subscriptions.service.mock.ts

mockResponse
Type : object
Default value : { inventoryMOListResponse: [ { id: '12345', name: 'Test', owner: 'user', creationTime: '2023-03-04', lastUpdated: '2023-03-04', self: '', additionParents: { references: [] }, assetParents: { references: [] }, deviceParents: { references: [] }, childAdditions: { references: [] }, childAssets: { references: [] }, childDevices: { references: [] }, c8y_BrokerSource: { status: DataBrokerConnectorStatus.SUSPENDED } }, { id: '12346', name: 'Test', owner: 'user', creationTime: '2023-03-04', lastUpdated: '2023-03-04', self: '', additionParents: { references: [] }, assetParents: { references: [] }, deviceParents: { references: [] }, childAdditions: { references: [] }, childAssets: { references: [] }, childDevices: { references: [] }, c8y_BrokerSource: { status: DataBrokerConnectorStatus.ACTIVE } } ], deviceRegistrationRequestsListResponse: [ { owner: 'iiar', customProperties: { c8y_BrokerSource: { domain: 'iiar3.basic.stage.c8y.io', connectorName: 'From iiar3.basic.stage.c8y.io', connectorDescription: '', tenant: 't1904475', status: 'ACTIVE' } }, creationTime: '2023-03-01T14:15:56.669Z', tenantId: 't56293', self: 'https://t56293.latest.stage.c8y.io/devicecontrol/newDeviceRequests/P46Nh', id: 'P46Nh', type: 'c8y_DataBroker', status: 'PENDING_ACCEPTANCE' }, { owner: 'iiar', customProperties: { c8y_BrokerSource: { domain: 'iiar1.basic.stage.c8y.io', connectorName: 'From iiar1.basic.stage.c8y.io', connectorDescription: '', tenant: 't1904476', status: 'ACTIVE' } }, creationTime: '2023-03-01T14:12:56.669Z', tenantId: 't56293', self: 'https://t56293.latest.stage.c8y.io/devicecontrol/newDeviceRequests/P46Nh', id: 'P46Nh', type: 'c8y_DataBroker', status: 'WAITING_FOR_CONNECTION' }, { owner: 'iiar', customProperties: { c8y_BrokerSource: { domain: 'iiar2.basic.stage.c8y.io', connectorName: 'From iiar2.basic.stage.c8y.io', connectorDescription: '', tenant: 't1904477', status: 'ACTIVE' } }, creationTime: '2023-03-01T14:10:56.669Z', tenantId: 't56293', self: 'https://t56293.latest.stage.c8y.io/devicecontrol/newDeviceRequests/P46Nh', id: 'P46Nh', type: 'c8y_DataBroker', status: 'PENDING_ACCEPTANCE' } ] }

icon-selector/icons/multimedia/index.ts

multimediaIconCategory
Default value : { label: gettext('Multimedia`icons-category`'), icons: multimediaIcons } as const
multimediaIcons
Default value : [ ['podcast'], ['headphones'], ['volume-control-phone'], ['volume-off', 'volume-mute', 'volume-zero'], ['volume-low', 'volume-down'], ['volume'], ['speaker', 'volume-up', 'volume-high'], ['sound'], ['headset'], ['play-circle'], ['pause-circle'], ['stop-circle'], ['skip-previous', 'step-backward'], ['fast-rewind'], ['rewind', 'fast-rewind1', 'fast-backward', 'backward'], ['play-arrow', 'play', 'play-circle1', 'play-circle-o'], ['pause'], ['stop'], ['forward11', 'fast-forward', 'forward111'], ['fast-forward1'], ['skip-next', 'step-forward'], ['no-image'], ['local-movies', 'theaters', 'film'], ['mic', 'microphone'], ['block-microphone', 'microphone-slash'], ['music-note', 'music'], ['photo-camera-front', 'video-camera'], ['camera', 'camera-retro', 'cam'], ['image', 'picture', 'picture-o', 'photo'], ['photo-gallery'], ['albums', 'cubes'], ['slides'], ['bursts'], ['exposure'], ['gallery'], ['insert-clip'], ['memories'], ['overwrite-clip'], ['selfies'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

data-broker/ng1/index.ts

NAME_DATA_BROKER
Type : string
Default value : 'c8y.upgrade.dataBroker'
ng1ModulesDataBroker
Type : []
Default value : [NAME_DATA_BROKER]

protocol-lwm2m/ng1/index.ts

NAME_LWM2M
Type : string
Default value : 'c8y.upgrade.lwm2m'
ng1ModulesLWM2M
Type : []
Default value : [NAME_LWM2M]

protocol-opcua/ng1/index.ts

NAME_OPCUA
Type : string
Default value : 'c8y.upgrade.opcua'
ng1ModulesOPCUA
Type : []
Default value : [NAME_OPCUA]

reports/ng1/index.ts

NAME_REPORTS
Type : string
Default value : 'c8y.upgrade.reports'
ng1ModulesReports
Type : []
Default value : [NAME_REPORTS]

upgrade/ng1/index.ts

NAME_UPGRADE
Type : string
Default value : 'c8y.upgrade'
ng1ModulesUpgrade
Type : []
Default value : ['app', NAME_UPGRADE]

core/setup/setup.model.ts

NEEDED_ROLE_FOR_SETUP
Type : string
Default value : 'ROLE_APPLICATION_MANAGEMENT_ADMIN'
SETUP_FINISHED_STEP_ID
Type : string
Default value : 'c8ySetupFinished'

icon-selector/icons/network/index.ts

networkIconCategory
Default value : { label: gettext('Network`icons-category`'), icons: networkIcons } as const
networkIcons
Default value : [ ['facebook'], ['instagram'], ['linkedin'], ['pinterest'], ['twitter'], ['youtube', 'youtube-play'], ['google'], ['github'], ['cloud'], ['cloud-search', 'search-in-cloud'], ['cloud-settings'], ['cloud-checked'], ['cloud-restricted'], ['cloud-plus'], ['cloud-minus'], ['cloud-error'], ['cloud-unavailable'], ['cloud-upload', 'backup'], ['cloud-download'], ['cloud-backup-restore'], ['cloud-remote-working'], ['cloud-bar-chart'], ['cloud-binary-code'], ['cloud-broadcasting'], ['secure-cloud'], ['error-cloud'], ['cloud-cross'], ['dashed-cloud'], ['cloud-connection'], ['cloud-firewall'], ['cloud-link'], ['cloud-waiting'], ['public-cloud'], ['delete-from-cloud'], ['cloud-refresh'], ['cloud-right-u-arrow'], ['cloud-share-symbol'], ['cloud-development'], ['cloud-sync'], ['cloud-user'], ['cloud-computing'], ['cloud-storage'], ['cloud-network'], ['computer'], ['connected-people'], ['connection-sync'], ['network-2'], ['incoming-data'], ['outgoing-data'], ['remote-desktop1'], ['security-wi-fi'], ['server1'], ['server-shutdown1'], ['ftp-server'], ['thin-client'], ['wi-fi', 'wifi', 'wireless-network'], ['wi-fi-off'], ['wi-fi-connected'], ['wi-fi-disconnected'], ['wi-fi-lock'], ['scan-wi-fi'], ['bluetooth', 'bluetooth-b', 'bluetooth-symbol'], ['decentralized-network'], ['centralized-network'], ['light-bulb-outline'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

context-dashboard/new-dashboard.guard.ts

newDashboardTab
Type : Tab
Default value : { featureId: 'newDashboard', icon: 'th', label: gettext('New dashboard'), path: 'dashboard/new-dashboard', // place tab as last one and hide it so it won't be opened until user initiates adding new dashboard hide: true, priority: -Infinity }

core/common/relative-time.pipe.ts

NULL_VALUE_PLACEHOLDER
Type : string
Default value : '--'

core/common/number.pipe.ts

NUMBER_FORMAT_REGEXP
Default value : /^(\d+)?\.((\d+)(-(\d+))?)?$/

core/dynamic-forms/object/object.type.component.ts

objectTypeConfig
Default value : (): EnvironmentProviders => importProvidersFrom( FormlyModule.forChild({ types: [{ name: 'object', component: ObjectTypeComponent }] }) )

icon-selector/icons/office/index.ts

officeIconCategory
Default value : { label: gettext('Office`icons-category`'), icons: officeIcons } as const
officeIcons
Default value : [ ['medkit'], ['fax'], ['beer'], ['department'], ['stacked-organizational-chart'], ['tty'], ['target', 'crosshairs'], ['accuracy'], ['goal', 'bullseye'], ['address-book', 'address-book-o', 'contacts-book'], ['attract-customers', 'magnet'], ['guarantee'], ['commercial', 'bullhorn', 'announcement'], ['podium'], ['time-card'], ['change'], ['applicant'], ['download-resume'], ['submit-resume'], ['briefcase', 'suitcase'], ['new-job'], ['job-seeker'], ['business-building'], ['dossier'], ['alarms'], ['project'], ['important-book'], ['important-note'], ['name-tag', 'id-badge'], ['assignment-return'], ['note-taking'], ['audit'], [ 'badge', 'vcard', 'vcard-o', 'id-card', 'id-card-o', 'address-card-o', 'address-card', 'drivers-license', 'drivers-license-o' ], ['new-contact'], ['contact-details'], ['phone-contact'], ['inspection', 'clipboard-with-a-tick'], ['survey'], ['no-data-available'], ['task-planning'], ['invoice'], ['summary-list'], ['study'], ['card'], ['job'], ['print'], ['communication-internet'], ['language-skill', 'language'], ['close-program', 'window-close', 'window-close-o'], ['new-slide'], ['web-analytics'], ['planner'], ['rescheduling-a-task'], ['resume-website'], ['product-documents'], ['resume-template'], ['rubber-stamp'], ['stamp'], ['video-projector'], ['management1'], ['gavel', 'legal'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

protocol-opcua/ng1/downgraded.components.ts

opcuaAddressSpaceTreeComponentDowngradedComponent
Default value : downgradeComponent({ component: OpcuaAddressSpaceTreeComponent, inputs: ['moId'], outputs: ['selectedNode'] })

operations/operations.module.ts

operationsRoutes
Type : Route[]
Default value : [ { path: 'devicecontrol', redirectTo: 'devicecontrol/single', pathMatch: 'full' } ]

core/common/status.model.ts

operationStatusClasses
Type : object
Default value : { [OperationStatus.PENDING]: 'text-info', [OperationStatus.EXECUTING]: 'text-info', [OperationStatus.SUCCESSFUL]: 'text-success', [OperationStatus.FAILED]: 'text-danger' }
operationStatusIcons
Type : object
Default value : { [OperationStatus.PENDING]: 'clock-o', [OperationStatus.EXECUTING]: 'refresh', [OperationStatus.SUCCESSFUL]: 'check-circle', [OperationStatus.FAILED]: 'exclamation-circle' }
statusAlert
Type : object
Default value : { [Status.SUCCESS]: `alert-${Status.SUCCESS}`, [Status.WARNING]: `alert-${Status.WARNING}`, [Status.DANGER]: `alert-${Status.DANGER}`, [Status.INFO]: `alert-${Status.INFO}` }
statusClasses
Type : object
Default value : { [Status.SUCCESS]: `text-${Status.SUCCESS}`, [Status.WARNING]: `text-${Status.WARNING}`, [Status.DANGER]: `text-${Status.DANGER}`, [Status.INFO]: `text-${Status.INFO}` }
statusIcons
Type : object
Default value : { [Status.SUCCESS]: 'check-circle', [Status.WARNING]: 'exclamation-triangle', [Status.DANGER]: 'exclamation-circle', [Status.INFO]: 'info-circle' }

icon-selector/icons/people/index.ts

peopleIconCategory
Default value : { label: gettext('People`icons-category`'), icons: peopleIcons } as const
peopleIcons
Default value : [ ['user-md'], ['wheelchair-alt'], ['wheelchair'], ['child'], ['workspace1'], ['male-user', 'user-circle-o', 'user-circle'], ['user-plus', 'add-user'], ['remove-user', 'user-minus', 'user-times'], ['user-account', 'user', 'user-o'], ['manager', 'businessman', 'male'], ['document-writer'], ['supplier'], ['search-client'], ['account-enable'], ['account-disable'], ['insurance-agent'], ['payroll'], ['lawyer'], ['complaint'], ['appointment-scheduling'], ['caretaker'], ['guardian'], ['batch-assign'], ['people', 'users', 'group1', 'management', 'team'], ['people-working-together'], ['group-task'], ['accessibility', 'universal-access'], ['pregnant-woman', 'female'], ['business-conference-female-speaker'], ['organization-chart-people'], ['meeting-room'], ['permanent-job'], ['contact-us'], ['voice-recognition'], ['collaboration'], ['technical-support'], ['online-support'], ['student-male'], ['devops'], ['exhibitor'], ['env-permission'], ['bathtub', 'bath', 's15'], ['hotel', 'local-hotel', 'bed'], ['intelligence'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

icon-selector/icons/platform/index.ts

platformIconCategory
Default value : { label: gettext('Platform`icons-category`'), icons: platformIcons } as const
platformIcons
Default value : [ ['c8y-aab-icon-model'], ['c8y-aab-icon-template-model'], ['c8y-accounts'], ['c8y-add-user'], ['c8y-administration'], ['c8y-alarm'], ['c8y-alert-idle'], ['c8y-alfabet'], ['c8y-analytic-model'], ['c8y-analytics-builder'], ['c8y-apama-epl'], ['c8y-apama-machine-learning'], ['c8y-apama-machine-learning-workbench'], ['c8y-archive'], ['c8y-aris'], ['c8y-atom'], ['c8y-book'], ['c8y-bookmark'], ['c8y-bulb'], ['c8y-business-rules'], ['c8y-c8y'], ['c8y-c8y-data'], ['c8y-c8y-support'], ['c8y-calendar'], ['c8y-chart'], ['c8y-circle-star'], ['c8y-cloud-container'], ['c8y-cockpit'], ['c8y-component'], ['c8y-connector-in'], ['c8y-connector-out'], ['c8y-css'], ['c8y-cumulocity-iot'], ['c8y-data-broker'], ['c8y-data-explorer'], ['c8y-data-hub'], ['c8y-data-points'], ['c8y-design'], ['c8y-device'], ['c8y-device-connect'], ['c8y-device-control'], ['c8y-device-management'], ['c8y-device-profile'], ['c8y-device-protocols'], ['c8y-e2e-monitoring'], ['c8y-energy'], ['c8y-enterprise'], ['c8y-event-processing'], ['c8y-events'], ['c8y-fieldbus'], ['c8y-find-map'], ['c8y-firmware'], ['c8y-grid-off'], ['c8y-grid-on'], ['c8y-group'], ['c8y-group-add'], ['c8y-group-open'], ['c8y-group-remote'], ['c8y-group-remote-inactive'], ['c8y-group-remote-open'], ['c8y-group-smart'], ['c8y-group-smart-open'], ['c8y-java'], ['c8y-layers'], ['c8y-layout'], ['c8y-location'], ['c8y-machine-portal'], ['c8y-management'], ['c8y-metering'], ['c8y-mft'], ['c8y-mobile-add'], ['c8y-mobile-config'], ['c8y-modules'], ['c8y-mycloud'], ['c8y-notification'], ['c8y-oee'], ['c8y-onnx'], ['c8y-overviews'], ['c8y-parameters'], ['c8y-parameters-on'], ['c8y-parking'], ['c8y-report'], ['c8y-reports'], ['c8y-rocket'], ['c8y-saas'], ['c8y-security'], ['c8y-shield'], ['c8y-simulator'], ['c8y-smart-rest'], ['c8y-smart-rules'], ['c8y-solution-accelerator'], ['c8y-streaming-analytics'], ['c8y-sub-tenants'], ['c8y-tenant-policies'], ['c8y-tools'], ['c8y-tracking'], ['c8y-usage-statistics'], ['c8y-user'], ['c8y-users'], ['c8y-waste-bin'], ['c8y-wm-api'], ['c8y-wm-b2b'], ['c8y-wm-dynamicapps'], ['c8y-wm-integration'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

actility-device-registration/actility-device-registration.model.ts

PRODUCT_EXPERIENCE_ACTILITY_REGISTRATION
Default value : { EVENT: 'deviceRegistration', COMPONENT: 'actility-registration', RESULT: { SUCCESS: 'registrationSuccess', FAILURE: 'registrationFailure' } } as const

register-device/extensible/base-device-registration.model.ts

PRODUCT_EXPERIENCE_BASE_REGISTRATION
Default value : { EVENT: 'deviceRegistration', COMPONENT: { BULK: 'bulk-registration', EXTENSIBLE_BULK: 'bulk-extensible-registration', EXTENSIBLE_SINGLE: 'single-extensible-registration' }, RESULT: { SUCCESS: 'registrationSuccess', FAILURE: 'registrationFailure' } } as const

core/shared/core.model.ts

PRODUCT_EXPERIENCE_CORE_SHARED
Default value : { ACTION_BAR: { EVENTS: { ACTION_BAR_ITEM: 'actionBarItem' }, COMPONENTS: { ACTION_BAR_COMPONENT: 'action-bar' }, ACTIONS: {}, RESULTS: {} }, QUICK_LINKS: { EVENTS: { QUICK_LINK_RIGHT_DRAWER: 'quickLinkRightDrawer' }, COMPONENTS: { RIGHT_DRAWER_COMPONENT: 'right-drawer' }, ACTIONS: {}, RESULTS: {} } } as const

device-profile/device-profile.model.ts

PRODUCT_EXPERIENCE_DEVICE_PROFILE
Default value : { EVENTS: { REPOSITORY: 'deviceProfileRepository', DEVICE_TAB: 'deviceProfileTab' }, COMPONENTS: { DEVICE_PROFILE_LIST: 'device-profile-list', ADD_DEVICE_PROFILE: 'add-device-profile', DEVICE_PROFILE: 'device-profile', DEVICE_TAB_PROFILE: 'device-tab-profile' }, ACTIONS: { CANCEL: 'cancel', CREATE: 'create', REMOVE: 'remove', ADD: 'add', SAVE: 'save', ASSIGN_DEVICE_PROFILE: 'assignDeviceProfile' }, RESULTS: { ADD_SOFTWARE: 'addSoftware' }, FRAGMENTS: { FIRMWARE: 'firmware', SOFTWARE: 'software', CONFGIURATION: 'configuration' } } as const

ecosystem/shared/ecosystem.model.ts

PRODUCT_EXPERIENCE_ECOSYSTEM
Default value : { APPLICATIONS: { EVENTS: { AVAILABILITY: 'availability', APPLICATION_CARD: 'applicationCard', APPLICATION_PROPERTIES: 'applicationProperties', DEPLOY_APPLICATION: 'deployApplication', DUPLICATE_APPLICATION: 'duplicateApplication', INSTALLED_PLUGINS: 'installedPlugins', PACKAGE_PLUGINS: 'packagePlugins', PACKAGE_VERSIONS: 'packageVersions', FILTER_LIST: 'filterList' }, COMPONENTS: { APPLICATION_CARD: 'application-card', APPLICATION_PLUGINS: 'application-plugins', APPLICATION_PROPERTIES: 'application-properties', DEPLOY_APPLICATION: 'deploy-application', DUPLICATE_APPLICATION_PROPERTIES: 'duplicate-application-properties', PLUGIN_LIST: 'plugin-list', PACKAGE_VERSIONS: 'package-versions-list', UPDATE_PLUGIN_OF_APP: 'update-plugin-of-app', LIST_FILTERS: 'list-filters' }, ACTIONS: { AVAILABILITY_CHANGE: 'availabilityChange', CANCEL: 'cancel', CLONE: 'clone', CHANGE_PLUGIN_VERSION: 'changePluginVersion', DELETE: 'delete', DOWNLOAD: 'download', DEPLOY_APPLICATION: 'deployApplication', EDIT: 'edit', INSTALL_PLUGIN: 'installPlugin', INSTALL_PLUGINS: 'installPlugins', UNINSTALL_PLUGIN: 'uninstallPlugin', SELECT_VERSION: 'selectVersion', SET_AS_LATEST: 'setAsLatest', UPDATE_AVAILABLE: 'updateAvailable', UPLOAD: 'upload', SET_FILTER_TERM: 'setFilterTerm', SET_PREDEFINED_FILTERS: 'setPredefinedFilters', RESET_FILTER: 'resetFilter' }, RESULTS: { DEPLOYED: 'deployed', DUPLICATED: 'duplicated', PLUGIN_INSTALLED: 'pluginInstalled', PLUGIN_REMOVED: 'pluginRemoved', PLUGIN_VERSION_CHANGED: 'pluginVersionChanged', SERVER_FAILURE: 'serverFailure', SUCCESS: 'success' } } } as const

core/product-experience/product-experience.model.ts

PRODUCT_EXPERIENCE_EVENT_SOURCE
Default value : new InjectionToken('ProductExperienceEventSource')

Use this token for components that can provide product experience events.

file-preview/file-preview-product-experience.constants.ts

PRODUCT_EXPERIENCE_FILE_PREVIEW
Default value : { EVENTS: { FILE_PREVIEW: 'filePreview' }, COMPONENTS: { FILE_PREVIEW_COMPONENT: 'file-preview' }, ACTIONS: { OPEN_PREVIEW: 'openPreview' } } as const

files-repository/files-repository-product-experience.constants.ts

PRODUCT_EXPERIENCE_FILE_REPOSITORY
Default value : { EVENTS: { FILE_REPOSITORY_UPLOAD: 'filesRepositoryUpload' }, COMPONENTS: { FILE_REPOSITORY_UPLOAD_COMPONENT: 'files-repository-upload' }, RESULTS: { UPLOAD_ITEM_SUCCESS: 'fileUploadSuccess', UPLOAD_ITEM_FAILED: 'fileUploadFailed' } } as const

widgets/implementations/help-and-service-widget/help-and-service.model.ts

PRODUCT_EXPERIENCE_HELP_AND_SERVICE_WIDGET
Default value : { HELP_AND_SERVICE_LINKS: { EVENTS: { HELP_AND_SERVICE_LINKS: 'helpAndServiceLinks' }, COMPONENTS: { HELP_AND_SERVICE_COMPONENT: 'right-drawer' }, ACTIONS: {}, RESULTS: {} } } as const

icon-selector/model/icon-selector.model.ts

PRODUCT_EXPERIENCE_ICON_SELECTOR
Type : object
Default value : { EVENTS: { ICON_SELECTOR: 'iconSelector' }, COMPONENTS: { ICON_SELECTOR_WRAPPER_COMPONENT: 'icon-selector-wrapper-component' }, ACTIONS: { OPEN_ICON_SELECTOR: 'openIconSelector', ICON_SELECTED: 'iconSelected' } }

loriot-device-registration/loriot-device-registration.model.ts

PRODUCT_EXPERIENCE_LORIOT_REGISTRATION
Default value : { EVENT: 'deviceRegistration', COMPONENT: 'loriot-registration', RESULT: { SUCCESS: 'registrationSuccess', FAILURE: 'registrationFailure' } } as const

repository/shared/repository.model.ts

PRODUCT_EXPERIENCE_REPOSITORY_SHARED
Default value : { SOFTWARE: { EVENTS: { REPOSITORY: 'softwareRepository', DEVICE_TAB: 'deviceSoftware' }, COMPONENTS: { ADD_SOFTWARE_MODAL: 'add-software-modal', DEVICE_SOFTWARE_CHANGES: 'device-software-changes', DEVICE_SOFTWARE_LIST: 'device-software-list' }, ACTIONS: { APPLY_SOFTWARE_CHANGES: 'applySoftwareChanges', CLEAR_SOFTWARE_CHANGES: 'clearSoftwareChanges', OPEN_INSTALL_SOFTWARE: 'openInstallSoftwareModal', OPEN_UPDATE_SOFTWARE: 'openUpdateSoftwareModal', DELETE_SOFTWARE: 'deleteSoftware' }, RESULTS: { ADD_SOFTWARE: 'addSoftware', ADD_SOFTWARE_VERSION: 'addSoftwareVersion', EDIT_SOFTWARE: 'editSoftware' } }, FIRMWARE: { EVENTS: { REPOSITORY: 'firmwareRepository', DEVICE_TAB: 'deviceFirmware' }, COMPONENTS: { ADD_FIRMWARE_MODAL: 'add-firmware-modal', ADD_FIRMWAR_PATCH_MODAL: 'add-firmware-patch-modal', FIRMWARE_DEVICE_TAB: 'firmware-device-tab', DEVICE_FIRMWARE_LIST: 'device-firmware-list' }, ACTIONS: { OPEN_INSTALL_FIRMWARE_DIALOG: 'openInstallFirmwareDialog', OPEN_REPLACE_FIRMWARE_DIALOG: 'openReplaceFirmwareDialog', OPEN_INSTALL_FIRMWARE_PATCH_DIALOG: 'openInstallFirmwarePatchDialog' }, RESULTS: { ADD_FIRMWARE: 'addFirmware', ADD_FIRMWARE_VERSION: 'addFirmwareVersion', ADD_FIRMWARE_PATCH: 'addFirmwarePatch', EDIT_FIRMWARE: 'editFirmware', CREATE_FIRMWARE_UPDATE_OPERATION: 'createFirmwareUpdateOperation' } }, SHARED: { COMPONENTS: { REPOSITORY_SELECT_MODAL: 'repository-select-modal', SELECT_CONFIGURATION_MODAL: 'select-configuration-modal' } } } as const
REPOSITORY_BINARY_TYPES
Type : object
Default value : { [RepositoryType.SOFTWARE]: 'c8y_SoftwareBinary', [RepositoryType.FIRMWARE]: 'c8y_FirmwareBinary', [RepositoryType.CONFIGURATION]: 'c8y_ConfigurationDumpBinary' }

sensor-phone/sensor-phone-modal/sensor-phone.model.ts

PRODUCT_EXPERIENCE_SENSOR_PHONE
Default value : { EVENTS: { CONNECT_SMARTPHONE: 'connectSmartphone' }, COMPONENTS: { SENSOR_PHONE_MODAL: 'sensor-phone-modal' }, ACTIONS: { ESCAPE: 'escape', OPEN_DASHBOARD: 'openDashboard', RETRY: 'retry' }, RESULTS: { FAILED: 'failed', REGISTER_PHONE_STARTED: 'registerPhoneStarted', SUCCESS: 'success' } } as const

sigfox-device-registration/sigfox-device-registration.model.ts

PRODUCT_EXPERIENCE_SIGFOX_REGISTRATION
Default value : { EVENT: 'deviceRegistration', COMPONENT: 'sigfox-registration', RESULT: { SUCCESS: 'registrationSuccess', FAILURE: 'registrationFailure' } } as const

sub-assets/shared/sub-assets.model.ts

PRODUCT_EXPERIENCE_SUB_ASSETS_SHARED
Default value : { EVENT: 'subAssets', DELETE_ASSET: { COMPONENTS: { DELETE_ASSETS_MODAL: 'delete-assets-modal' }, ACTIONS: { CASCADE_DELETE: 'cascadeDelete', DELETE_DEVICE_OWNER: 'deleteDeviceOwner' }, RESULTS: { CANCELED: 'canceled', DELETED: 'deleted' } }, ASSIGN_DEVICES: { COMPONENTS: { ASSIGN_DEVICES: 'assign-devices' }, ACTIONS: { ASSIGN: 'assign', CANCEL: 'cancel', DISPLAY_CHILD_DEVICES: 'displayChildDevices' } }, UNASSIGN_MODAL: { COMPONENTS: { UNASSIGN_MODAL: 'unassign-modal' }, RESULTS: { ASSET_UNASSIGNED: 'asset-unassigned' }, ACTIONS: { CANCEL: 'cancel' } }, GROUP_INFO: { COMPONENTS: { GROUP_INFO: 'group-info' }, ACTIONS: { EDIT: 'edit' }, RESULTS: { EDIT_SAVED: 'edit-saved' }, PROPERTIES: { NAME: 'name', DESCRIPTION: 'description' } }, ADD_GROUP: { COMPONENTS: { ADD_GROUP: 'add-group' }, ACTIONS: { ADD: 'add' }, RESULTS: { ADD_SUCCESS: 'group-added' } } } as const

trusted-certificates/list/trusted-certificate.model.ts

PRODUCT_EXPERIENCE_TRUSTED_CERTIFICATES
Default value : { EVENT: 'trustedCertificate', CERTIFICATES: { COMPONENTS: { TRUSTED_CERTIFICATE: 'trusted-certificate' }, ACTIONS: { ADD: 'add', UPDATE: 'update', DELETE: 'delete' }, RESULTS: { ADD_SUCCESS: 'certificateAdded', UPDATE_SUCCESS: 'certificateUpdated', DELETE_SUCCESS: 'certificateDeleted' } }, VERIFICATION_CODE: { COMPONENTS: { REGENERATE_CODE: 'regenerate-unsigned-verification-code', VERIFY_CODE: 'verify-signed-verification-code', DOWNLOAD_CODE: 'download-unsigned-verification-code' }, ACTIONS: { REGENERATE: 'regenerate', VERIFY: 'verify', DOWNLOAD: 'download' }, RESULTS: { REGENERATE_SUCCESS: 'unsignedVerificationCodeRegenerated', VERIFY_SUCCESS: 'signedCodeVerified', VERIFY_FAILED: 'signedCodeVerificationFailed' } } } as const

icon-selector/icons/programming/index.ts

programmingIconCategory
Default value : { label: gettext('Programming`icons-category`'), icons: programmingIcons } as const
programmingIcons
Default value : [ ['source-code', 'code', 'html-code'], ['code1', 'file-code-o'], ['console', 'terminal'], ['add-property'], ['delete-document'], ['urgent-property'], ['remove-property'], ['edit-property'], ['template'], ['test'], ['property-script'], ['show-property'], ['search-property'], ['timesheet'], ['important-property'], ['new-property'], ['navigation-toolbar-top', 'window-maximize'], ['web-application-firewall'], ['website-bug', 'bug'], ['web-design'], ['navigation-toolbar-bottom'], ['more-details'], ['navigation-pane'], ['pin', 'thumb-tack'], ['unpin'], ['commit-git'], ['codefork', 'code-fork'], ['merge-git'], ['pull-request'], ['compare-git'], ['share', 'share-alt', 'share-alt-square'], ['activity-history'], ['rules'], ['create-document'], ['product-architecture'], ['registry-editor'], ['rest-api'], ['true-false'], ['uninstall-programs'], ['sheets', 'stages'], ['add-stage'], ['api'], ['blockly-turquoise'], ['blockly-blue'], ['blockly-pink'], ['plugin'], ['base-64'], ['xml-transformer'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

api/data.module.ts

providers
Type : Provider[]
Default value : Object.keys(services) .map(k => toProvider(services[k])) .concat([{ provide: ApiService, useClass: ApiService, deps: [FetchClient] }])

core/data-grid/product-experience.constants.ts

PX_ACTIONS
Type : object
Default value : { APPLY_FILTER: 'applyFilter', RESET_FILTER: 'resetFilter', REMOVE_FILTER: 'removeFilter', CLEAR_FILTER: 'clearFilter', CUSTOM_ACTION: 'cutomAction:', ADD_CUSTOM_COLUMN: 'addCustomColumn', REMOVE_CUSTOM_COLUMN: 'removeCustomColumn', REORDER_COLUMNS: 'reorderColumns', CHANGE_VISIBILITY: 'changeVisibility', CHANGE_SORTING_ORDER: 'changeSortingOrder', CHANGE_PAGINATION: 'changePagination', SELECT_ALL_ITEMS: 'bulk:selectAllItems', BULK_DELETE: 'bulk:delete', BULK_EXPORT: 'bulk:export', BULK_CUSTOM_ACTION: 'bulk:customAction:', BULK_CANCEL: 'bulk:cancel', SELECT_ITEM: 'item:select', EDIT_ITEM: 'item:edit', DELETE_ITEM: 'item:delete', EXPORT_ITEM: 'item:export', CUSTOM_ACTION_ITEM: 'item:customAction:', RELOAD: 'reload', SEARCH: 'search', CLEAR_SEARCH: 'clearSearch' }
PX_EVENT_NAME
Type : string
Default value : 'dataGrid'

widgets/definitions/alarms/recent-alarms/index.ts

recentAlarmsDefinition
Default value : { id: defaultWidgetIds.RECENT_ALARMS, label: gettext('Recent alarms'), description: gettext('Log of recent alarms from all devices with any severity and status'), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/alarms').then( m => m.AlarmListWidgetComponent ), loadConfigComponent: () => import('@c8y/ngx-components/widgets/implementations/alarms').then( m => m.AlarmListWidgetConfigComponent ), errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR, data: { settings: { recentAlarmsWidget: true, noNewWidgets: true, widgetDefaults: { _width: 4, _height: 4 }, ng1: { options: { noDeviceTarget: false, groupsSelectable: true, deviceTargetNotRequired: true } } }, displaySettings: { globalAutoRefreshContext: true } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
recentAlarmsWidgetProviders
Type : []
Default value : [hookWidget(recentAlarmsDefinition)]

auth-configuration/sso-configuration/template-parts/access-mapping/dynamic-accesss-mapping-relations.model.ts

relations
Type : []
Default value : [ { name: 'EQ', value: 'EQ', label: '=', ordinal: 0 }, { name: 'NEQ', value: 'NEQ', label: '!=', ordinal: 1 }, { name: 'GT', value: 'GT', label: '>', ordinal: 2 }, { name: 'LT', value: 'LT', label: '<', ordinal: 3 }, { name: 'GTE', value: 'GTE', label: '>=', ordinal: 4 }, { name: 'LTE', value: 'LTE', label: '<=', ordinal: 5 }, { name: 'IN', value: 'IN', label: gettext('in`value-range`'), ordinal: 6 } ]

replace-device/replace-device-wizard/replace-device-wizard.model.ts

REPLACE_DEVICE_STEP_STATE
Type : literal type
Default value : { PENDING: gettext('Pending'), EXECUTING: gettext('Executing'), SKIPPED: gettext('Skipped'), FAILED: gettext('Failed'), SUCCESSFUL: gettext('Successful') }
REPLACE_DEVICE_STEP_STATES
Default value : <const>[ 'Pending', 'Executing', 'Skipped', 'Failed', 'Successful' ]
REPLACE_DEVICE_STEP_STATES_MAP
Type : ReplaceDeviceStepStatesMap
Default value : { Pending: { icon: 'clock-o', styleClass: 'text-info' }, Executing: { icon: 'refresh', styleClass: 'text-info' }, Skipped: { icon: 'skip', styleClass: 'text-info' }, Failed: { icon: 'exclamation-circle', styleClass: 'text-danger' }, Successful: { icon: 'check-circle', styleClass: 'text-success' } }

report-dashboard/report-dashboard-navigation.factory.ts

REPORTS_NAVIGATOR_NODE_PRIORITY
Type : number
Default value : 40

reports/ng1/downgraded.services.ts

reportsServiceDowngradedInjectable
Default value : downgradeInjectable(ReportsService)

replace-device/replace-device.service.ts

REQUIRED_IDENTITY_ROLES
Type : []
Default value : [ Permissions.ROLE_IDENTITY_READ, Permissions.ROLE_IDENTITY_ADMIN ]
REQUIRED_INVENTORY_ROLES
Type : []
Default value : [ Permissions.ROLE_INVENTORY_READ, Permissions.ROLE_INVENTORY_ADMIN ]
REQUIRED_MANAGED_OBJECT_ROLES
Type : []
Default value : [ Permissions.ROLE_MANAGED_OBJECT_READ, Permissions.ROLE_MANAGED_OBJECT_ADMIN ]

core/i18n/property-value-transform.service.ts

roleNamesToLabels
Type : object
Default value : { admins: gettext('Admin User`role`'), business: gettext('Business User`role`'), devices: gettext('Device User`role`'), Manager: gettext('Asset Manager`role`'), readers: gettext('Reader User`role`') }

upgrade/upgraded-services/roles.service.ts

rolesServiceProvider
Type : object
Default value : { provide: Ng1RolesService, useFactory: RolesServiceFactory, deps: ['$injector'] }

upgrade/ng1/root.component.ts

rootComponent
Type : object
Default value : { template: ` <c8y-bootstrap> <div id="c8y-legacy-view"> <div ng-view ng-if="vm.widthSet && vm.authState.hasAuth"></div> </div> </c8y-bootstrap>`, controller: c8yUiRootController, controllerAs: 'vm' }

search/search-config.model.ts

SEARCH_CONFIG
Default value : new InjectionToken<SearchConfig>('SearchConfig')

icon-selector/icons/security/index.ts

securityIconCategory
Default value : { label: gettext('Security`icons-category`'), icons: securityIcons } as const
securityIcons
Default value : [ ['shield'], ['protect'], ['warning-shield'], ['free-forever'], ['identification-documents'], ['id-verified'], ['fingerprint'], ['pin-code'], ['password'], ['lock'], ['unlock'], ['privacy'], ['lock-outline', 'lock1'], ['lock-open', 'unlock1', 'unlock-alt'], ['key'], ['access'], ['lock11'], ['realtime'], ['smart-home-connection'], ['smart-home-checked'], ['smart-home-error'], ['smart-home-remove'], ['smart-home-shield'], ['voice-id'], ['web-application-firewall1'], ['copyright'], ['spy', 'user-secret'], ['bug1'], ['health-examine', 'stethoscope'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

core/dynamic-forms/select/select.type.component.ts

selectTypeConfig
Default value : (): EnvironmentProviders => importProvidersFrom( FormlyModule.forChild({ types: [ { name: 'select', component: SelectTypeComponent, wrappers: ['c8y-form-field'] }, { name: 'enum', extends: 'select' } ] }) )

services/services-device-tab/service-device-tab.model.ts

SERVICE_FRAGMENT
Type : string
Default value : 'c8y_Service'

core/common/service-registry.service.ts

SERVICE_HOOK_TOKENS
Type : Map<CumulocityServiceRegistry.ExtensionKeys, InjectionToken<any>>
Default value : new Map()

protocol-lpwan/multiple-lns-connectors/multiple-lns-connectors.module.ts

settingsRoutes
Type : Route[]
Default value : [ { path: 'connectivitySettings/multiple_lns_connectors_sigfox', component: SigfoxMultipleLnsConnectorComponent }, { path: 'connectivitySettings/multiple_lns_connectors_actility', component: ActilityMultipleLnsConnectorComponent }, { path: 'connectivitySettings/multiple_lns_connectors_loriot', component: LoriotMultipleLnsConnectorComponent } ]

widgets/definitions/silo/index.ts

siloWidgetDefinition
Default value : { id: defaultWidgetIds.SILO, label: gettext('Silo'), description: gettext('A silo displaying current values for selected measurements'), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/linear-gauge').then( m => m.LinearGaugeWidgetViewComponent ), loadConfigComponent: () => import('@c8y/ngx-components/widgets/implementations/linear-gauge').then( m => m.LinearGaugeWidgetConfigComponent ), previewImage: 'c8y-style-assets/silo-widget-pr.png', resolve: { datapoints: DynamicDatapointsResolver }, errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR, data: { settings: { noNewWidgets: false, widgetDefaults: { _width: 4, _height: 4 }, ng1: { options: { noDeviceTarget: true, groupsSelectable: false } } } } as ContextWidgetConfig } satisfies DynamicComponentDefinition
siloWidgetProviders
Type : []
Default value : [hookComponent(siloWidgetDefinition)]

core/forms/simple-json-path-validator.directive.ts

SIMPLE_JSON_PATH_REGEX
Default value : /^[^.\s]+(\.\S+)*$/

operations/operations-list/operations-list.module.ts

singleOperationListRoutes
Type : Route[]
Default value : [ { path: 'devicecontrol/single', component: OperationsListComponent } ]

upgrade/smart-rules.service.ts

smartRulesServiceProvider
Type : object
Default value : { provide: Ng1SmartRulesService, useFactory: SmartRulesServiceFactory, deps: ['$injector'] }

alarms/ng1-smart-rules-upgrade.service.ts

smartRulesUpgradeServiceProvider
Type : object
Default value : { provide: Ng1SmartRulesUpgradeService, useFactory: SmartRulesUpgradeServiceFactory, deps: ['$injector'] }

core/common/inter-app.service.ts

SupportedApps
Default value : { devicemanagement: 'devicemanagement-application-key', cockpit: 'cockpit-application-key', administration: 'administration-application-key' } as const

auth-configuration/sso-configuration/sso-configuration.model.ts

templateTypeConfig
Type : object
Default value : { [TemplateType.CUSTOM]: { name: 'CUSTOM', value: 'CUSTOM', label: gettext('Custom') }, [TemplateType.AZURE]: { name: 'AZURE', value: 'AZURE', label: gettext('Azure AD') }, [TemplateType.KEYCLOAK]: { name: 'KEYCLOAK', value: 'KEYCLOAK', label: gettext('Keycloak') } }

tenants/tenant-limits/tenant-limits-definitions.ts

tenantLimitsCustomProperties
Type : TenantLimit
Default value : tenantLimitsCustomPropertiesDefinition
tenantLimitsCustomPropertiesDefinition
Default value : { //TODO: External reference - going to be moved to the Properties tab. externalReference: { id: 'externalReference', validators: [], defaultValue: null, type: 'text', label: gettext('External reference'), placeholder: gettext('e.g. REF12345`reference number`') }, limitDevicesNumber: { id: 'limit.devices.number', validators: [Validators.min(0)], defaultValue: null, type: 'number', label: gettext('Limit number of devices'), placeholder: gettext('e.g. {{ example }}'), placeholderArgs: { example: 1000 } }, limitHttpRequests: { id: 'limit.http.requests', validators: [Validators.min(-1)], defaultValue: null, type: 'number', label: gettext('Limit HTTP requests'), placeholder: gettext('e.g. {{ example }}'), placeholderArgs: { example: 10000 } }, limitHttpQueue: { id: 'limit.http.queue', validators: [Validators.min(-1)], defaultValue: null, type: 'number', label: gettext('Limit HTTP queue'), placeholder: gettext('e.g. {{ example }}'), placeholderArgs: { example: 100 } }, limitStreamRequests: { id: 'limit.stream.requests', validators: [Validators.min(-1)], defaultValue: null, type: 'number', label: gettext('Limit stream requests'), placeholder: gettext('e.g. {{ example }}'), placeholderArgs: { example: 100 } }, limitStreamQueue: { id: 'limit.stream.queue', validators: [Validators.min(-1)], defaultValue: null, type: 'number', label: gettext('Limit stream queue'), placeholder: gettext('e.g. {{ example }}'), placeholderArgs: { example: 100 } }, cepServerQueueLimit: { id: 'cepServer.queue.limit', validators: [Validators.min(-1)], defaultValue: null, type: 'number', label: gettext('Limit CEP server queue'), placeholder: gettext('e.g. {{ example }}'), placeholderArgs: { example: 100 } }, dataBrokerQueueLimit: { id: 'data-broker.queue.limit', validators: [Validators.min(0)], defaultValue: null, type: 'number', label: gettext('Limit data broker queue'), placeholder: gettext('e.g. {{ example }}'), placeholderArgs: { example: 100 } }, // TODO: Gainsight checkbox - going to be moved to the Properties tab. gainsightEnabled: { id: 'gainsightEnabled', validators: [], defaultValue: false, type: 'checkbox', label: gettext('Enable Gainsight product experience tracking') } } satisfies Record<string, TenantLimit>

Define all hardTyped custom properties, and their configuration in one place.

This exported const utilizes typescript inferring, while still benefiting from hard typing, thanks to "satisfies" keyword

tenants/tenants.model.ts

TENANTS_MODULE_CONFIG
Default value : new InjectionToken<TenantsModuleConfig>('TenantsModuleConfig')

core/plugins/__test__/plugins-test-helper.ts

TEST_INJECTION_TOKEN
Default value : new InjectionToken('TEST')
TEST_INJECTION_TOKEN_TWO
Default value : new InjectionToken('TEST2')

widgets/definitions/three-d-rotation/index.ts

threeDRotationWidgetDefinition
Default value : { id: defaultWidgetIds.THREE_D_ROTATION, label: gettext('Rotation widget'), description: gettext('Displays current device orientation'), loadComponent: () => import('@c8y/ngx-components/widgets/implementations/three-d-rotation').then( m => m.ThreeDRotationWidgetViewComponent ), loadConfigComponent: () => import('@c8y/ngx-components/widgets/implementations/three-d-rotation').then( m => m.ThreeDRotationWidgetConfigComponent ), previewImage: 'c8y-style-assets/rotation-widget-pr.png', data: { settings: { noNewWidgets: false, widgetDefaults: { _width: 8, _height: 4 }, ng1: { options: { noDeviceTarget: false, groupsSelectable: false } } } } as ContextWidgetConfig } satisfies DynamicWidgetDefinition
threeDRotationWidgetProviders
Type : []
Default value : [hookWidget(threeDRotationWidgetDefinition)]

tracking/tracking.feature.ts

trackingFeatureProvider
Type : EnvironmentProviders
Default value : makeEnvironmentProviders([ TrackingTabFactory, hookRoute({ path: 'tracking', component: TrackingComponent, context: ViewContext.Device, label: gettext('Tracking'), icon: 'crosshairs', canActivate: [TrackingTabFactory] }) ])

translation-editor/index.ts

tranlationEditorProviders
Type : []
Default value : [ hookRoute({ path: 'localization', loadComponent: () => import('@c8y/ngx-components/translation-editor/lazy').then(m => m.TranslationEditorComponent) }), hookNavigator(TranslationEditorNaviagtorFactoryService) ]

icon-selector/icons/transport/index.ts

transportIconCategory
Default value : { label: gettext('Transport`icons-category`'), icons: transportIcons } as const
transportIcons
Default value : [ ['space-shuttle'], ['ambulance'], ['car', 'automobile'], ['local-taxi', 'taxi', 'cab'], ['truck'], ['file-delivery'], ['in-transit'], ['bus'], ['train'], ['directions-subway', 'directions-transit', 'tram'], ['delivery-dining', 'scooter'], ['pedal-bike', 'bicycle'], ['motorcycle'], ['airport', 'plane', 'fighter-jet'], ['directions-ferry', 'ship'], ['deploy', 'rocket'], ['wrench1'], ['road'], ['flag-outline'], ['software'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

trusted-certificates/trusted-certificates.module.ts

trustedCertificatesRedirectRoutes
Type : Route[]
Default value : [ { path: 'trusted-certificates', pathMatch: 'full', redirectTo: 'trusted-certificates/certificates' } ]

trusted-certificates/list/trusted-certificate-list.module.ts

trustedCertificatesRoutes
Type : Route[]
Default value : [ { path: 'trusted-certificates/certificates', component: TrustedCertificateListComponent, pathMatch: 'full' } ]

trusted-certificates/crl/crl-settings.module.ts

trustedCertificatesSettingsRoutes
Type : Route[]
Default value : [ { path: 'trusted-certificates/settings', component: CrlSettingsComponent, pathMatch: 'full' } ]

core/dynamic-forms/typeahead/typeahead.type.component.ts

typeaheadTypeConfig
Default value : (): EnvironmentProviders => importProvidersFrom( FormlyModule.forChild({ types: [{ name: 'typeahead', component: TypeaheadTypeComponent }] }) )

upgrade/upgrade.routes.ts

UPGRADE_ROUTES
Type : []
Default value : [{ path: '**', component: EmptyComponent }]

icon-selector/icons/userInterface/index.ts

userInterfaceIconCategory
Default value : { label: gettext('User interface`icons-category`'), icons: userInterfaceIcons } as const
userInterfaceIcons
Default value : [ ['newspaper-o'], ['creative-commons'], ['spinner', 'loading', 'busy', 'wheel'], ['trademark'], ['toggle-on'], ['toggle-off'], ['ticket'], ['spoon'], ['sort-numeric-desc'], ['sort-numeric-asc'], ['snowflake-o'], ['shower'], ['percent'], ['paw'], ['mouse-pointer'], ['lemon-o'], ['leaf'], ['diamond'], ['braille'], ['bomb'], ['binoculars'], ['eject'], ['touch-app'], ['soccer', 'football', 'futbol-o', 'soccer-ball-o'], ['mood', 'meh-o', 'frown-o', 'smile-o'], ['deaf', 'deafness', 'hard-of-hearing'], ['assistive-listening-systems'], ['american-sign-language-interpreting', 'asl-interpreting'], ['cc', 'closed-caption'], ['anchor'], ['accessibility-settings'], ['info', 'info-circle'], ['warning', 'report-problem', 'exclamation-triangle'], ['exclamation-circle', 'error'], ['high-priority'], ['spam'], ['help', 'question-circle', 'question'], ['help-outline', 'question-circle-o'], ['approval', 'trophy'], ['unverified-account'], ['automatic-gearbox-warning', 'exclamation-circle1'], ['user-manual'], ['stages1'], ['menu', 'reorder', 'navicon', 'bars', 'hamburger'], ['menu-vertical', 'ellipsis-v'], ['app-switcher'], ['menu-horizontal', 'ellipsis-h'], ['plus-math', 'plus'], ['subtract', 'minus'], ['clear', 'close', 'remove', 'times'], ['equals'], ['exclamation'], ['check'], ['upvote-downvote'], ['math'], ['less-than1'], ['more-than'], ['circled-notch', 'circle-o-notch'], ['inactive-state'], ['storage1'], ['lifebuoy', 'life-buoy', 'life-ring', 'life-saver'], ['wait'], ['block', 'ban'], ['copy1', 'clone'], ['paste1', 'clipboard'], ['search-more'], ['search'], ['mobile-zoom-in', 'search-plus'], ['mobile-zoom-out', 'search-minus'], ['product1'], ['trash-can', 'trash'], ['editing-trash', 'trash-o'], ['delete-bin'], ['eye'], ['visibility-off', 'low-vision', 'eye-slash', 'blind'], ['double-tap'], ['heart', 'heart-o'], ['unheart'], ['science', 'flask'], ['school', 'graduation-cap', 'mortar-board'], ['badge1'], ['data-quality'], ['brightness-low', 'brightness-5', 'sun-o'], ['bedtime', 'moon-o', 'moon'], ['add-identity-provider'], ['bookmark-outline', 'turned-in-not', 'bookmark-o', 'unbookmark'], ['bookmark', 'turned-in'], ['check-box', 'check-square', 'check-square-o', 'checkbox-selected'], ['add-box', 'plus-square'], ['indeterminate-check-box', 'minus-square'], ['duplicate'], ['check-box-outline-blank', 'square-o'], ['checkbox-unselected'], ['add-new', 'plus-square-o'], ['negative', 'minus-square-o'], ['multiplication', 'times-rectangle-o', 'times-rectangle'], ['ratio'], ['circle'], ['contrast1'], ['connection-status-on'], ['ok', 'check-circle', 'check-circle-o', 'success'], ['cross-circle', 'times-circle', 'times-circle-o'], ['add', 'plus-circle'], ['minus-circle', 'minus-sign'], ['radio-button-unchecked', 'circle-o', 'circle-thin'], ['add-circle-outline', 'plus-circle-o'], ['local-fire-department', 'fire'], ['outlined-flag', 'flag-o'], ['flag', 'assistant-photo', 'flag-checkered'], ['flash-on', 'bolt'], ['quick-mode-on', 'flash'], ['quick-mode-off'], ['videogame-asset', 'gamepad'], ['portraits'], ['extension', 'puzzle', 'puzzle-piece'], ['star-outline', 'star-o', 'unstar'], ['star-half', 'star-half-empty', 'star-half-full', 'star-half-o'], ['star', 'grade'], ['home-page', 'home'], ['attach', 'paper-clip', 'paperclip'], ['link1'], ['unlink1'], ['online1'], ['offline'], ['notification', 'notifications', 'bell', 'bell-o'], ['alarm'], ['no-reminders', 'bell-slash', 'bell-slash-o'], ['medium-priority'], ['sliders1', 'sliders2', 'adjust1'], ['tune', 'customize'], ['button'], ['breadcrumb'], ['window-minimize'], ['versions'], ['pages'], ['change-theme', 'window-restore'], ['landing-page'], ['continuous-mode'], ['ruler-pencil'], ['header1'], ['body'], ['footer'], ['logs'], ['overview'], ['tab'], ['cursor-in-window'], ['advertisement-page', 'share-square-o', 'share-square', 'share1'], ['external-link'], ['level-up'], ['trigger'], ['rules1'], ['email'], ['form'], ['language1'], ['loading-bar'], ['output'], ['save1', 'floppy-o'], ['single-choice'], ['single-page-mode'], ['skip'], ['support', 'wrench'], ['maintenance', 'utility'], ['themes'], ['book1'], ['top-menu'], ['user-menu-male'], ['hint'], ['xlarge-icons1'], ['circled-menu'], ['keypad'], ['cake', 'birthday-cake'], ['intelligence1'], ['beginner'], ['restaurant', 'cutlery'], ['local-cafe', 'free-breakfast', 'coffee'], ['wine-bar', 'glass'], ['espresso-cup'], ['broom'], ['buy-upgrade'], ['speedometer'], ['dashboard', 'tachometer'], ['palette'], ['car-battery'], ['magnetic', 'magnet1'], ['right-navigation-toolbar'], ['tilt'], ['clear-symbol'], ['settings', 'cog', 'gear'], ['advanced-search', 'heartbeat'], ['installing-updates'], ['heating-automation'], ['impressum'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

upgrade/upgraded-services/user-inventory-roles.service.ts

userInventoryRolesServiceProvider
Type : object
Default value : { provide: Ng1UserInventoryRolesService, useFactory: UserInventoryRolesFactory, deps: ['$injector'] }

icon-selector/icons/weather/index.ts

weatherIconCategory
Default value : { label: gettext('Weather`icons-category`'), icons: weatherIcons } as const
weatherIcons
Default value : [ ['sun'], ['sunlight'], ['cloud1'], ['rain'], ['winter'], ['storm'], ['keep-dry', 'umbrella'] ] as const satisfies ReadonlyArray<ReadonlyArray<string>>

core/dynamic-component/dynamic-component-alert-aggregator.ts

WIDGET_ALERTS_ORDER
Default value : [ 'danger', 'warning', 'info', 'system', 'success' ] as const satisfies ReadonlyArray<AlertType>

Order of widget alerts due to alerts severity.

core/dynamic-forms/form-field/form-field.wrapper.component.ts

wrapperFormFieldConfig
Default value : (): EnvironmentProviders => importProvidersFrom( FormlyModule.forChild({ wrappers: [{ name: 'c8y-form-field', component: WrapperFormField }] }) )

core/dynamic-forms/legend-wrapper/legend.wrapper.component.ts

wrapperLegendFieldConfig
Default value : (): EnvironmentProviders => importProvidersFrom( FormlyModule.forChild({ wrappers: [{ name: 'c8y-legend-wrapper', component: LegendFieldWrapper }] }) )

results matching ""

    No results matching ""