mirror of
https://github.com/portainer/portainer.git
synced 2025-07-19 13:29:41 +02:00
225 lines
5.5 KiB
TypeScript
225 lines
5.5 KiB
TypeScript
import angular from 'angular';
|
|
|
|
import { r2a } from '@/react-tools/react2angular';
|
|
import { withCurrentUser } from '@/react-tools/withCurrentUser';
|
|
import { withReactQuery } from '@/react-tools/withReactQuery';
|
|
import { withUIRouter } from '@/react-tools/withUIRouter';
|
|
import { AnnotationsBeTeaser } from '@/react/kubernetes/annotations/AnnotationsBeTeaser';
|
|
import { withFormValidation } from '@/react-tools/withFormValidation';
|
|
|
|
import {
|
|
EnvironmentVariablesFieldset,
|
|
EnvironmentVariablesPanel,
|
|
envVarValidation,
|
|
} from '@@/form-components/EnvironmentVariablesFieldset';
|
|
import { Icon } from '@@/Icon';
|
|
import { ReactQueryDevtoolsWrapper } from '@@/ReactQueryDevtoolsWrapper';
|
|
import { PageHeader } from '@@/PageHeader';
|
|
import { TagSelector } from '@@/TagSelector';
|
|
import { Loading } from '@@/Widget/Loading';
|
|
import { PasswordCheckHint } from '@@/PasswordCheckHint';
|
|
import { ViewLoading } from '@@/ViewLoading';
|
|
import { Tooltip } from '@@/Tip/Tooltip';
|
|
import { Badge } from '@@/Badge';
|
|
import { TableColumnHeaderAngular } from '@@/datatables/TableHeaderCell';
|
|
import { DashboardItem } from '@@/DashboardItem';
|
|
import { SearchBar } from '@@/datatables/SearchBar';
|
|
import { FallbackImage } from '@@/FallbackImage';
|
|
import { BadgeIcon } from '@@/BadgeIcon';
|
|
import { TeamsSelector } from '@@/TeamsSelector';
|
|
import { PortainerSelect } from '@@/form-components/PortainerSelect';
|
|
import { Slider } from '@@/form-components/Slider';
|
|
import { TagButton } from '@@/TagButton';
|
|
import { BETeaserButton } from '@@/BETeaserButton';
|
|
import { CodeEditor } from '@@/CodeEditor';
|
|
|
|
import { fileUploadField } from './file-upload-field';
|
|
import { switchField } from './switch-field';
|
|
import { customTemplatesModule } from './custom-templates';
|
|
import { gitFormModule } from './git-form';
|
|
import { settingsModule } from './settings';
|
|
import { accessControlModule } from './access-control';
|
|
import { environmentsModule } from './environments';
|
|
import { envListModule } from './environments-list-view-components';
|
|
import { registriesModule } from './registries';
|
|
|
|
export const ngModule = angular
|
|
.module('portainer.app.react.components', [
|
|
accessControlModule,
|
|
customTemplatesModule,
|
|
envListModule,
|
|
environmentsModule,
|
|
gitFormModule,
|
|
registriesModule,
|
|
settingsModule,
|
|
])
|
|
.component(
|
|
'tagSelector',
|
|
r2a(withUIRouter(withReactQuery(TagSelector)), [
|
|
'allowCreate',
|
|
'onChange',
|
|
'value',
|
|
])
|
|
)
|
|
.component(
|
|
'beTeaserButton',
|
|
r2a(BETeaserButton, [
|
|
'featureId',
|
|
'heading',
|
|
'message',
|
|
'buttonText',
|
|
'className',
|
|
'icon',
|
|
'buttonClassName',
|
|
])
|
|
)
|
|
.component(
|
|
'tagButton',
|
|
r2a(TagButton, ['value', 'label', 'title', 'onRemove'])
|
|
)
|
|
|
|
.component(
|
|
'portainerTooltip',
|
|
r2a(Tooltip, ['message', 'position', 'className', 'setHtmlMessage'])
|
|
)
|
|
.component('badge', r2a(Badge, ['type', 'className']))
|
|
.component('fileUploadField', fileUploadField)
|
|
.component('porSwitchField', switchField)
|
|
.component(
|
|
'passwordCheckHint',
|
|
r2a(withReactQuery(PasswordCheckHint), [
|
|
'forceChangePassword',
|
|
'passwordValid',
|
|
])
|
|
)
|
|
.component('rdLoading', r2a(Loading, []))
|
|
.component(
|
|
'tableColumnHeader',
|
|
r2a(TableColumnHeaderAngular, [
|
|
'colTitle',
|
|
'canSort',
|
|
'isSorted',
|
|
'isSortedDesc',
|
|
])
|
|
)
|
|
.component('viewLoading', r2a(ViewLoading, ['message']))
|
|
.component(
|
|
'pageHeader',
|
|
r2a(withUIRouter(withReactQuery(withCurrentUser(PageHeader))), [
|
|
'title',
|
|
'breadcrumbs',
|
|
'loading',
|
|
'onReload',
|
|
'reload',
|
|
'id',
|
|
])
|
|
)
|
|
.component(
|
|
'fallbackImage',
|
|
r2a(FallbackImage, ['src', 'fallbackIcon', 'alt', 'size', 'className'])
|
|
)
|
|
.component('prIcon', r2a(Icon, ['className', 'icon', 'mode', 'size']))
|
|
.component('reactQueryDevTools', r2a(ReactQueryDevtoolsWrapper, []))
|
|
.component(
|
|
'dashboardItem',
|
|
r2a(DashboardItem, [
|
|
'icon',
|
|
'type',
|
|
'value',
|
|
'to',
|
|
'params',
|
|
'children',
|
|
'pluralType',
|
|
'isLoading',
|
|
'isRefetching',
|
|
'dataCy',
|
|
])
|
|
)
|
|
.component(
|
|
'datatableSearchbar',
|
|
r2a(SearchBar, [
|
|
'data-cy',
|
|
'onChange',
|
|
'value',
|
|
'placeholder',
|
|
'children',
|
|
'className',
|
|
])
|
|
)
|
|
.component('badgeIcon', r2a(BadgeIcon, ['icon', 'size']))
|
|
.component(
|
|
'teamsSelector',
|
|
r2a(TeamsSelector, [
|
|
'onChange',
|
|
'value',
|
|
'dataCy',
|
|
'inputId',
|
|
'name',
|
|
'placeholder',
|
|
'teams',
|
|
'disabled',
|
|
])
|
|
)
|
|
.component(
|
|
'porSelect',
|
|
r2a(PortainerSelect, [
|
|
'name',
|
|
'inputId',
|
|
'placeholder',
|
|
'disabled',
|
|
'data-cy',
|
|
'bindToBody',
|
|
'value',
|
|
'onChange',
|
|
'options',
|
|
'isMulti',
|
|
'isClearable',
|
|
'components',
|
|
])
|
|
)
|
|
.component(
|
|
'porSlider',
|
|
r2a(Slider, [
|
|
'min',
|
|
'max',
|
|
'step',
|
|
'value',
|
|
'onChange',
|
|
'visibleTooltip',
|
|
'dataCy',
|
|
])
|
|
)
|
|
|
|
.component(
|
|
'reactCodeEditor',
|
|
r2a(CodeEditor, [
|
|
'id',
|
|
'placeholder',
|
|
'yaml',
|
|
'dockerFile',
|
|
'shell',
|
|
'readonly',
|
|
'onChange',
|
|
'value',
|
|
'height',
|
|
])
|
|
)
|
|
.component('annotationsBeTeaser', r2a(AnnotationsBeTeaser, []));
|
|
|
|
export const componentsModule = ngModule.name;
|
|
|
|
withFormValidation(
|
|
ngModule,
|
|
EnvironmentVariablesFieldset,
|
|
'environmentVariablesFieldset',
|
|
[],
|
|
envVarValidation
|
|
);
|
|
|
|
withFormValidation(
|
|
ngModule,
|
|
EnvironmentVariablesPanel,
|
|
'environmentVariablesPanel',
|
|
['explanation', 'showHelpMessage'],
|
|
envVarValidation
|
|
);
|