Commit 6d80f571 authored by Lukas Eipert's avatar Lukas Eipert

Utilize GitLab UI icon component: environments to performance_bar

This replaces all the usages of ~/vue_shared/components/icon.vue with
the corresponding GitLab UI component for all components from
environments to performance_bar (alphabetically).

In a previous MR [0] we already replaced the internal implementation
with the GitLab UI component. This should allow us to migrate all usages
without any test failures relating to the differences in their
implementation.

The actual deletion of the file will be done in a follow-up in case we
have missed an instance or someone introduces a new one in the
meanwhile.

[0]: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38778
parent 474fe142
<script> <script>
import { GlLoadingIcon } from '@gitlab/ui'; import { GlLoadingIcon, GlIcon } from '@gitlab/ui';
import { __, s__, sprintf } from '~/locale'; import { __, s__, sprintf } from '~/locale';
import { formatTime } from '~/lib/utils/datetime_utility'; import { formatTime } from '~/lib/utils/datetime_utility';
import Icon from '~/vue_shared/components/icon.vue';
import eventHub from '../event_hub'; import eventHub from '../event_hub';
import tooltip from '../../vue_shared/directives/tooltip'; import tooltip from '../../vue_shared/directives/tooltip';
...@@ -11,7 +10,7 @@ export default { ...@@ -11,7 +10,7 @@ export default {
tooltip, tooltip,
}, },
components: { components: {
Icon, GlIcon,
GlLoadingIcon, GlLoadingIcon,
}, },
props: { props: {
...@@ -80,8 +79,8 @@ export default { ...@@ -80,8 +79,8 @@ export default {
data-toggle="dropdown" data-toggle="dropdown"
> >
<span> <span>
<icon name="play" /> <gl-icon name="play" />
<icon name="chevron-down" /> <gl-icon name="chevron-down" />
<gl-loading-icon v-if="isLoading" /> <gl-loading-icon v-if="isLoading" />
</span> </span>
</button> </button>
...@@ -97,7 +96,7 @@ export default { ...@@ -97,7 +96,7 @@ export default {
> >
<span class="flex-fill">{{ action.name }}</span> <span class="flex-fill">{{ action.name }}</span>
<span v-if="action.scheduledAt" class="text-secondary"> <span v-if="action.scheduledAt" class="text-secondary">
<icon name="clock" /> <gl-icon name="clock" />
{{ remainingTime(action) }} {{ remainingTime(action) }}
</span> </span>
</button> </button>
......
...@@ -5,15 +5,14 @@ ...@@ -5,15 +5,14 @@
*/ */
import $ from 'jquery'; import $ from 'jquery';
import { GlTooltipDirective } from '@gitlab/ui'; import { GlTooltipDirective, GlIcon } from '@gitlab/ui';
import Icon from '~/vue_shared/components/icon.vue';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import eventHub from '../event_hub'; import eventHub from '../event_hub';
import LoadingButton from '../../vue_shared/components/loading_button.vue'; import LoadingButton from '../../vue_shared/components/loading_button.vue';
export default { export default {
components: { components: {
Icon, GlIcon,
LoadingButton, LoadingButton,
}, },
directives: { directives: {
...@@ -65,6 +64,6 @@ export default { ...@@ -65,6 +64,6 @@ export default {
data-target="#delete-environment-modal" data-target="#delete-environment-modal"
@click="onClick" @click="onClick"
> >
<icon name="remove" /> <gl-icon name="remove" />
</loading-button> </loading-button>
</template> </template>
<script> <script>
/* eslint-disable @gitlab/vue-require-i18n-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { isEmpty } from 'lodash'; import { isEmpty } from 'lodash';
import { GlTooltipDirective } from '@gitlab/ui'; import { GlTooltipDirective, GlIcon } from '@gitlab/ui';
import { __, sprintf } from '~/locale'; import { __, sprintf } from '~/locale';
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
import timeagoMixin from '~/vue_shared/mixins/timeago'; import timeagoMixin from '~/vue_shared/mixins/timeago';
import UserAvatarLink from '~/vue_shared/components/user_avatar/user_avatar_link.vue'; import UserAvatarLink from '~/vue_shared/components/user_avatar/user_avatar_link.vue';
import CommitComponent from '~/vue_shared/components/commit.vue'; import CommitComponent from '~/vue_shared/components/commit.vue';
import Icon from '~/vue_shared/components/icon.vue';
import TooltipOnTruncate from '~/vue_shared/components/tooltip_on_truncate.vue'; import TooltipOnTruncate from '~/vue_shared/components/tooltip_on_truncate.vue';
import eventHub from '../event_hub'; import eventHub from '../event_hub';
import ActionsComponent from './environment_actions.vue'; import ActionsComponent from './environment_actions.vue';
...@@ -30,7 +29,7 @@ export default { ...@@ -30,7 +29,7 @@ export default {
ActionsComponent, ActionsComponent,
CommitComponent, CommitComponent,
ExternalUrlComponent, ExternalUrlComponent,
Icon, GlIcon,
MonitoringButtonComponent, MonitoringButtonComponent,
PinComponent, PinComponent,
DeleteComponent, DeleteComponent,
...@@ -535,7 +534,7 @@ export default { ...@@ -535,7 +534,7 @@ export default {
</div> </div>
<span v-if="shouldRenderDeployBoard" class="deploy-board-icon" @click="toggleDeployBoard"> <span v-if="shouldRenderDeployBoard" class="deploy-board-icon" @click="toggleDeployBoard">
<icon :name="deployIconName" /> <gl-icon :name="deployIconName" />
</span> </span>
<span <span
...@@ -560,9 +559,9 @@ export default { ...@@ -560,9 +559,9 @@ export default {
role="button" role="button"
@click="onClickFolder" @click="onClickFolder"
> >
<icon :name="folderIconName" class="folder-icon" /> <gl-icon :name="folderIconName" class="folder-icon" />
<icon name="folder" class="folder-icon" /> <gl-icon name="folder" class="folder-icon" />
<span> {{ model.folderName }} </span> <span> {{ model.folderName }} </span>
......
<script> <script>
import { GlDeprecatedButton, GlTooltipDirective } from '@gitlab/ui'; import { GlDeprecatedButton, GlTooltipDirective, GlIcon } from '@gitlab/ui';
import { __ } from '~/locale'; import { __ } from '~/locale';
/** /**
* Renders the Monitoring (Metrics) link in environments table. * Renders the Monitoring (Metrics) link in environments table.
*/ */
import Icon from '~/vue_shared/components/icon.vue';
export default { export default {
components: { components: {
Icon, GlIcon,
GlDeprecatedButton, GlDeprecatedButton,
}, },
directives: { directives: {
...@@ -37,6 +35,6 @@ export default { ...@@ -37,6 +35,6 @@ export default {
rel="noopener noreferrer nofollow" rel="noopener noreferrer nofollow"
variant="default" variant="default"
> >
<icon name="chart" /> <gl-icon name="chart" />
</gl-deprecated-button> </gl-deprecated-button>
</template> </template>
...@@ -3,14 +3,13 @@ ...@@ -3,14 +3,13 @@
* Renders a prevent auto-stop button. * Renders a prevent auto-stop button.
* Used in environments table. * Used in environments table.
*/ */
import { GlDeprecatedButton, GlTooltipDirective } from '@gitlab/ui'; import { GlDeprecatedButton, GlTooltipDirective, GlIcon } from '@gitlab/ui';
import Icon from '~/vue_shared/components/icon.vue';
import { __ } from '~/locale'; import { __ } from '~/locale';
import eventHub from '../event_hub'; import eventHub from '../event_hub';
export default { export default {
components: { components: {
Icon, GlIcon,
GlDeprecatedButton, GlDeprecatedButton,
}, },
directives: { directives: {
...@@ -37,6 +36,6 @@ export default { ...@@ -37,6 +36,6 @@ export default {
:aria-label="$options.title" :aria-label="$options.title"
@click="onPinClick" @click="onPinClick"
> >
<icon name="thumbtack" /> <gl-icon name="thumbtack" />
</gl-deprecated-button> </gl-deprecated-button>
</template> </template>
...@@ -10,14 +10,14 @@ import { ...@@ -10,14 +10,14 @@ import {
GlLoadingIcon, GlLoadingIcon,
GlModalDirective, GlModalDirective,
GlDeprecatedButton, GlDeprecatedButton,
GlIcon,
} from '@gitlab/ui'; } from '@gitlab/ui';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import Icon from '~/vue_shared/components/icon.vue';
import eventHub from '../event_hub'; import eventHub from '../event_hub';
export default { export default {
components: { components: {
Icon, GlIcon,
GlLoadingIcon, GlLoadingIcon,
GlDeprecatedButton, GlDeprecatedButton,
}, },
...@@ -81,7 +81,7 @@ export default { ...@@ -81,7 +81,7 @@ export default {
class="d-none d-md-block text-secondary" class="d-none d-md-block text-secondary"
@click="onClick" @click="onClick"
> >
<icon v-if="isLastDeployment" name="repeat" /> <icon v-else name="redo" /> <gl-icon v-if="isLastDeployment" name="repeat" /> <gl-icon v-else name="redo" />
<gl-loading-icon v-if="isLoading" /> <gl-loading-icon v-if="isLoading" />
</gl-deprecated-button> </gl-deprecated-button>
</template> </template>
...@@ -3,13 +3,12 @@ ...@@ -3,13 +3,12 @@
* Renders a terminal button to open a web terminal. * Renders a terminal button to open a web terminal.
* Used in environments table. * Used in environments table.
*/ */
import { GlTooltipDirective } from '@gitlab/ui'; import { GlTooltipDirective, GlIcon } from '@gitlab/ui';
import Icon from '~/vue_shared/components/icon.vue';
import { __ } from '~/locale'; import { __ } from '~/locale';
export default { export default {
components: { components: {
Icon, GlIcon,
}, },
directives: { directives: {
GlTooltip: GlTooltipDirective, GlTooltip: GlTooltipDirective,
...@@ -42,6 +41,6 @@ export default { ...@@ -42,6 +41,6 @@ export default {
:class="{ disabled: disabled }" :class="{ disabled: disabled }"
class="btn terminal-button d-none d-sm-none d-md-block text-secondary" class="btn terminal-button d-none d-sm-none d-md-block text-secondary"
> >
<icon name="terminal" /> <gl-icon name="terminal" />
</a> </a>
</template> </template>
...@@ -11,10 +11,10 @@ import { ...@@ -11,10 +11,10 @@ import {
GlDeprecatedDropdown, GlDeprecatedDropdown,
GlDeprecatedDropdownItem, GlDeprecatedDropdownItem,
GlDeprecatedDropdownDivider, GlDeprecatedDropdownDivider,
GlIcon,
} from '@gitlab/ui'; } from '@gitlab/ui';
import { deprecatedCreateFlash as createFlash } from '~/flash'; import { deprecatedCreateFlash as createFlash } from '~/flash';
import { __, sprintf, n__ } from '~/locale'; import { __, sprintf, n__ } from '~/locale';
import Icon from '~/vue_shared/components/icon.vue';
import TooltipOnTruncate from '~/vue_shared/components/tooltip_on_truncate.vue'; import TooltipOnTruncate from '~/vue_shared/components/tooltip_on_truncate.vue';
import Stacktrace from './stacktrace.vue'; import Stacktrace from './stacktrace.vue';
import TrackEventDirective from '~/vue_shared/directives/track_event'; import TrackEventDirective from '~/vue_shared/directives/track_event';
...@@ -38,7 +38,7 @@ export default { ...@@ -38,7 +38,7 @@ export default {
GlLink, GlLink,
GlLoadingIcon, GlLoadingIcon,
TooltipOnTruncate, TooltipOnTruncate,
Icon, GlIcon,
Stacktrace, Stacktrace,
GlBadge, GlBadge,
GlAlert, GlAlert,
...@@ -397,7 +397,7 @@ export default { ...@@ -397,7 +397,7 @@ export default {
data-testid="external-url-link" data-testid="external-url-link"
> >
<span class="text-truncate">{{ error.externalUrl }}</span> <span class="text-truncate">{{ error.externalUrl }}</span>
<icon name="external-link" class="ml-1 flex-shrink-0" /> <gl-icon name="external-link" class="ml-1 flex-shrink-0" />
</gl-link> </gl-link>
</li> </li>
<li v-if="error.firstReleaseVersion"> <li v-if="error.firstReleaseVersion">
......
<script> <script>
import { GlTooltip, GlSprintf } from '@gitlab/ui'; import { GlTooltip, GlSprintf, GlIcon } from '@gitlab/ui';
import ClipboardButton from '~/vue_shared/components/clipboard_button.vue'; import ClipboardButton from '~/vue_shared/components/clipboard_button.vue';
import FileIcon from '~/vue_shared/components/file_icon.vue'; import FileIcon from '~/vue_shared/components/file_icon.vue';
import Icon from '~/vue_shared/components/icon.vue';
export default { export default {
components: { components: {
ClipboardButton, ClipboardButton,
FileIcon, FileIcon,
Icon, GlIcon,
GlSprintf, GlSprintf,
}, },
directives: { directives: {
...@@ -80,7 +79,7 @@ export default { ...@@ -80,7 +79,7 @@ export default {
<div ref="header" class="file-title file-title-flex-parent"> <div ref="header" class="file-title file-title-flex-parent">
<div class="file-header-content d-flex align-content-center"> <div class="file-header-content d-flex align-content-center">
<div v-if="hasCode" class="d-inline-block cursor-pointer" @click="toggle()"> <div v-if="hasCode" class="d-inline-block cursor-pointer" @click="toggle()">
<icon :name="collapseIcon" :size="16" aria-hidden="true" class="gl-mr-2" /> <gl-icon :name="collapseIcon" :size="16" aria-hidden="true" class="gl-mr-2" />
</div> </div>
<file-icon :file-name="filePath" :size="18" aria-hidden="true" css-classes="gl-mr-2" /> <file-icon :file-name="filePath" :size="18" aria-hidden="true" css-classes="gl-mr-2" />
<strong <strong
......
<script> <script>
import { mapActions, mapState } from 'vuex'; import { mapActions, mapState } from 'vuex';
import { GlFormInput } from '@gitlab/ui'; import { GlFormInput, GlIcon } from '@gitlab/ui';
import Icon from '~/vue_shared/components/icon.vue';
import LoadingButton from '~/vue_shared/components/loading_button.vue'; import LoadingButton from '~/vue_shared/components/loading_button.vue';
export default { export default {
components: { GlFormInput, Icon, LoadingButton }, components: { GlFormInput, GlIcon, LoadingButton },
computed: { computed: {
...mapState(['apiHost', 'connectError', 'connectSuccessful', 'isLoadingProjects', 'token']), ...mapState(['apiHost', 'connectError', 'connectSuccessful', 'isLoadingProjects', 'token']),
tokenInputState() { tokenInputState() {
...@@ -64,7 +63,7 @@ export default { ...@@ -64,7 +63,7 @@ export default {
:loading="isLoadingProjects" :loading="isLoadingProjects"
@click="fetchProjects" @click="fetchProjects"
/> />
<icon <gl-icon
v-show="connectSuccessful" v-show="connectSuccessful"
class="js-error-tracking-connect-success gl-ml-2 text-success align-middle" class="js-error-tracking-connect-success gl-ml-2 text-success align-middle"
:aria-label="__('Projects Successfully Retrieved')" :aria-label="__('Projects Successfully Retrieved')"
......
<script> <script>
import { debounce } from 'lodash'; import { debounce } from 'lodash';
import { mapActions } from 'vuex'; import { mapActions } from 'vuex';
import Icon from '~/vue_shared/components/icon.vue'; import { GlIcon } from '@gitlab/ui';
import eventHub from '../event_hub'; import eventHub from '../event_hub';
import frequentItemsMixin from './frequent_items_mixin'; import frequentItemsMixin from './frequent_items_mixin';
export default { export default {
components: { components: {
Icon, GlIcon,
}, },
mixins: [frequentItemsMixin], mixins: [frequentItemsMixin],
data() { data() {
...@@ -49,6 +49,6 @@ export default { ...@@ -49,6 +49,6 @@ export default {
type="search" type="search"
class="form-control" class="form-control"
/> />
<icon v-if="!searchQuery" name="search" class="search-icon" /> <gl-icon v-if="!searchQuery" name="search" class="search-icon" />
</div> </div>
</template> </template>
<script> <script>
import { GlButton, GlFormGroup, GlFormInput, GlFormCheckbox } from '@gitlab/ui'; import { GlButton, GlFormGroup, GlFormInput, GlFormCheckbox, GlIcon } from '@gitlab/ui';
import { mapState, mapActions } from 'vuex'; import { mapState, mapActions } from 'vuex';
import Icon from '~/vue_shared/components/icon.vue';
export default { export default {
components: { components: {
...@@ -9,7 +8,7 @@ export default { ...@@ -9,7 +8,7 @@ export default {
GlFormCheckbox, GlFormCheckbox,
GlFormGroup, GlFormGroup,
GlFormInput, GlFormInput,
Icon, GlIcon,
}, },
data() { data() {
return { placeholderUrl: 'https://my-url.grafana.net/' }; return { placeholderUrl: 'https://my-url.grafana.net/' };
...@@ -89,7 +88,7 @@ export default { ...@@ -89,7 +88,7 @@ export default {
rel="noopener noreferrer" rel="noopener noreferrer"
> >
{{ __('More information') }} {{ __('More information') }}
<icon name="external-link" class="vertical-align-middle" /> <gl-icon name="external-link" class="vertical-align-middle" />
</a> </a>
</p> </p>
</gl-form-group> </gl-form-group>
......
<script> <script>
import { GlIcon } from '@gitlab/ui';
import tooltip from '~/vue_shared/directives/tooltip'; import tooltip from '~/vue_shared/directives/tooltip';
import icon from '~/vue_shared/components/icon.vue';
import eventHub from '../event_hub'; import eventHub from '../event_hub';
import { COMMON_STR } from '../constants'; import { COMMON_STR } from '../constants';
export default { export default {
components: { components: {
icon, GlIcon,
}, },
directives: { directives: {
tooltip, tooltip,
...@@ -56,7 +56,7 @@ export default { ...@@ -56,7 +56,7 @@ export default {
class="leave-group btn btn-xs no-expand gl-text-gray-500 gl-ml-5" class="leave-group btn btn-xs no-expand gl-text-gray-500 gl-ml-5"
@click.prevent="onLeaveGroup" @click.prevent="onLeaveGroup"
> >
<icon name="leave" class="position-top-0" /> <gl-icon name="leave" class="position-top-0" />
</a> </a>
<a <a
v-if="group.canEdit" v-if="group.canEdit"
...@@ -68,7 +68,7 @@ export default { ...@@ -68,7 +68,7 @@ export default {
data-placement="bottom" data-placement="bottom"
class="edit-group btn btn-xs no-expand gl-text-gray-500 gl-ml-5" class="edit-group btn btn-xs no-expand gl-text-gray-500 gl-ml-5"
> >
<icon name="settings" class="position-top-0 align-middle" /> <gl-icon name="settings" class="position-top-0 align-middle" />
</a> </a>
</div> </div>
</template> </template>
<script> <script>
import icon from '~/vue_shared/components/icon.vue'; import { GlIcon } from '@gitlab/ui';
export default { export default {
components: { components: {
icon, GlIcon,
}, },
props: { props: {
isGroupOpen: { isGroupOpen: {
...@@ -21,5 +21,5 @@ export default { ...@@ -21,5 +21,5 @@ export default {
</script> </script>
<template> <template>
<span class="folder-caret gl-mr-2"> <icon :size="10" :name="iconClass" /> </span> <span class="folder-caret gl-mr-2"> <gl-icon :size="10" :name="iconClass" /> </span>
</template> </template>
<script> <script>
import { GlIcon } from '@gitlab/ui';
import tooltip from '~/vue_shared/directives/tooltip'; import tooltip from '~/vue_shared/directives/tooltip';
import icon from '~/vue_shared/components/icon.vue';
export default { export default {
components: { components: {
icon, GlIcon,
}, },
directives: { directives: {
tooltip, tooltip,
...@@ -57,6 +57,6 @@ export default { ...@@ -57,6 +57,6 @@ export default {
:title="title" :title="title"
data-container="body" data-container="body"
> >
<icon :name="iconName" /> <span v-if="isValuePresent" class="stat-value"> {{ value }} </span> <gl-icon :name="iconName" /> <span v-if="isValuePresent" class="stat-value"> {{ value }} </span>
</span> </span>
</template> </template>
<script> <script>
import icon from '~/vue_shared/components/icon.vue'; import { GlIcon } from '@gitlab/ui';
import { ITEM_TYPE } from '../constants'; import { ITEM_TYPE } from '../constants';
export default { export default {
components: { components: {
icon, GlIcon,
}, },
props: { props: {
itemType: { itemType: {
...@@ -29,5 +29,5 @@ export default { ...@@ -29,5 +29,5 @@ export default {
</script> </script>
<template> <template>
<span class="item-type-icon"> <icon :name="iconClass" /> </span> <span class="item-type-icon"> <gl-icon :name="iconClass" /> </span>
</template> </template>
<script> <script>
import { GlTooltipDirective } from '@gitlab/ui'; import { GlTooltipDirective, GlIcon } from '@gitlab/ui';
import { __ } from '~/locale'; import { __ } from '~/locale';
import Icon from '~/vue_shared/components/icon.vue';
import Suggestion from './item.vue'; import Suggestion from './item.vue';
import query from '../queries/issues.query.graphql'; import query from '../queries/issues.query.graphql';
export default { export default {
components: { components: {
Suggestion, Suggestion,
Icon, GlIcon,
}, },
directives: { directives: {
GlTooltip: GlTooltipDirective, GlTooltip: GlTooltipDirective,
...@@ -70,7 +69,7 @@ export default { ...@@ -70,7 +69,7 @@ export default {
<div v-show="showSuggestions" class="form-group row issuable-suggestions"> <div v-show="showSuggestions" class="form-group row issuable-suggestions">
<div v-once class="col-form-label col-sm-2 pt-0"> <div v-once class="col-form-label col-sm-2 pt-0">
{{ __('Similar issues') }} {{ __('Similar issues') }}
<icon <gl-icon
v-gl-tooltip.bottom v-gl-tooltip.bottom
:title="$options.helpText" :title="$options.helpText"
:aria-label="$options.helpText" :aria-label="$options.helpText"
......
<script> <script>
/* eslint-disable @gitlab/vue-require-i18n-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { uniqueId } from 'lodash'; import { uniqueId } from 'lodash';
import { GlLink, GlTooltip, GlTooltipDirective } from '@gitlab/ui'; import { GlLink, GlTooltip, GlTooltipDirective, GlIcon } from '@gitlab/ui';
import { __ } from '~/locale'; import { __ } from '~/locale';
import Icon from '~/vue_shared/components/icon.vue';
import UserAvatarImage from '~/vue_shared/components/user_avatar/user_avatar_image.vue'; import UserAvatarImage from '~/vue_shared/components/user_avatar/user_avatar_image.vue';
import TimeagoTooltip from '~/vue_shared/components/time_ago_tooltip.vue'; import TimeagoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
import timeago from '~/vue_shared/mixins/timeago'; import timeago from '~/vue_shared/mixins/timeago';
...@@ -12,7 +11,7 @@ export default { ...@@ -12,7 +11,7 @@ export default {
components: { components: {
GlTooltip, GlTooltip,
GlLink, GlLink,
Icon, GlIcon,
UserAvatarImage, UserAvatarImage,
TimeagoTooltip, TimeagoTooltip,
}, },
...@@ -68,7 +67,7 @@ export default { ...@@ -68,7 +67,7 @@ export default {
<template> <template>
<div class="suggestion-item"> <div class="suggestion-item">
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">
<icon <gl-icon
v-if="suggestion.confidential" v-if="suggestion.confidential"
v-gl-tooltip.bottom v-gl-tooltip.bottom
:title="__('Confidential')" :title="__('Confidential')"
...@@ -84,7 +83,7 @@ export default { ...@@ -84,7 +83,7 @@ export default {
</gl-link> </gl-link>
</div> </div>
<div class="text-secondary suggestion-footer"> <div class="text-secondary suggestion-footer">
<icon <gl-icon
ref="state" ref="state"
:name="stateIcon" :name="stateIcon"
:class="{ :class="{
...@@ -134,7 +133,7 @@ export default { ...@@ -134,7 +133,7 @@ export default {
:title="tooltipTitle" :title="tooltipTitle"
class="suggestion-help-hover gl-ml-3 text-tertiary" class="suggestion-help-hover gl-ml-3 text-tertiary"
> >
<icon :name="icon" /> {{ count }} <gl-icon :name="icon" /> {{ count }}
</span> </span>
</span> </span>
</div> </div>
......
<script> <script>
import { throttle, isEmpty } from 'lodash'; import { throttle, isEmpty } from 'lodash';
import { mapGetters, mapState, mapActions } from 'vuex'; import { mapGetters, mapState, mapActions } from 'vuex';
import { GlLoadingIcon } from '@gitlab/ui'; import { GlLoadingIcon, GlIcon } from '@gitlab/ui';
import { GlBreakpointInstance as bp } from '@gitlab/ui/dist/utils'; import { GlBreakpointInstance as bp } from '@gitlab/ui/dist/utils';
import { isScrolledToBottom } from '~/lib/utils/scroll_utils'; import { isScrolledToBottom } from '~/lib/utils/scroll_utils';
import { polyfillSticky } from '~/lib/utils/sticky'; import { polyfillSticky } from '~/lib/utils/sticky';
import CiHeader from '~/vue_shared/components/header_ci_component.vue'; import CiHeader from '~/vue_shared/components/header_ci_component.vue';
import Callout from '~/vue_shared/components/callout.vue'; import Callout from '~/vue_shared/components/callout.vue';
import Icon from '~/vue_shared/components/icon.vue';
import EmptyState from './empty_state.vue'; import EmptyState from './empty_state.vue';
import EnvironmentsBlock from './environments_block.vue'; import EnvironmentsBlock from './environments_block.vue';
import ErasedBlock from './erased_block.vue'; import ErasedBlock from './erased_block.vue';
...@@ -27,7 +26,7 @@ export default { ...@@ -27,7 +26,7 @@ export default {
EmptyState, EmptyState,
EnvironmentsBlock, EnvironmentsBlock,
ErasedBlock, ErasedBlock,
Icon, GlIcon,
Log, Log,
LogTopBar, LogTopBar,
StuckBlock, StuckBlock,
...@@ -266,7 +265,7 @@ export default { ...@@ -266,7 +265,7 @@ export default {
:class="{ 'sticky-top border-bottom-0': hasTrace }" :class="{ 'sticky-top border-bottom-0': hasTrace }"
data-testid="archived-job" data-testid="archived-job"
> >
<icon name="lock" class="align-text-bottom" /> <gl-icon name="lock" class="align-text-bottom" />
{{ __('This job is archived. Only the complete pipeline can be retried.') }} {{ __('This job is archived. Only the complete pipeline can be retried.') }}
</div> </div>
<!-- job log --> <!-- job log -->
......
<script> <script>
import { GlLink } from '@gitlab/ui'; import { GlLink, GlIcon } from '@gitlab/ui';
import tooltip from '~/vue_shared/directives/tooltip'; import tooltip from '~/vue_shared/directives/tooltip';
import CiIcon from '~/vue_shared/components/ci_icon.vue'; import CiIcon from '~/vue_shared/components/ci_icon.vue';
import Icon from '~/vue_shared/components/icon.vue';
import delayedJobMixin from '~/jobs/mixins/delayed_job_mixin'; import delayedJobMixin from '~/jobs/mixins/delayed_job_mixin';
import { sprintf } from '~/locale'; import { sprintf } from '~/locale';
export default { export default {
components: { components: {
CiIcon, CiIcon,
Icon, GlIcon,
GlLink, GlLink,
}, },
directives: { directives: {
...@@ -56,7 +55,7 @@ export default { ...@@ -56,7 +55,7 @@ export default {
data-boundary="viewport" data-boundary="viewport"
class="js-job-link d-flex" class="js-job-link d-flex"
> >
<icon <gl-icon
v-if="isActive" v-if="isActive"
name="arrow-right" name="arrow-right"
class="js-arrow-right icon-arrow-right position-absolute d-block" class="js-arrow-right icon-arrow-right position-absolute d-block"
...@@ -66,7 +65,7 @@ export default { ...@@ -66,7 +65,7 @@ export default {
<span class="text-truncate w-100">{{ job.name ? job.name : job.id }}</span> <span class="text-truncate w-100">{{ job.name ? job.name : job.id }}</span>
<icon v-if="job.retried" name="retry" class="js-retry-icon" /> <gl-icon v-if="job.retried" name="retry" class="js-retry-icon" />
</gl-link> </gl-link>
</div> </div>
</template> </template>
<script> <script>
import { GlTooltipDirective, GlLink, GlDeprecatedButton } from '@gitlab/ui'; import { GlTooltipDirective, GlLink, GlDeprecatedButton, GlIcon } from '@gitlab/ui';
import { polyfillSticky } from '~/lib/utils/sticky'; import { polyfillSticky } from '~/lib/utils/sticky';
import Icon from '~/vue_shared/components/icon.vue';
import { numberToHumanSize } from '~/lib/utils/number_utils'; import { numberToHumanSize } from '~/lib/utils/number_utils';
import { __, sprintf } from '~/locale'; import { __, sprintf } from '~/locale';
import scrollDown from '../svg/scroll_down.svg'; import scrollDown from '../svg/scroll_down.svg';
export default { export default {
components: { components: {
Icon, GlIcon,
GlLink, GlLink,
GlDeprecatedButton, GlDeprecatedButton,
}, },
...@@ -95,7 +94,7 @@ export default { ...@@ -95,7 +94,7 @@ export default {
class="controllers-buttons" class="controllers-buttons"
data-testid="job-raw-link-controller" data-testid="job-raw-link-controller"
> >
<icon name="doc-text" /> <gl-icon name="doc-text" />
</gl-link> </gl-link>
<gl-link <gl-link
...@@ -108,7 +107,7 @@ export default { ...@@ -108,7 +107,7 @@ export default {
data-testid="job-log-erase-link" data-testid="job-log-erase-link"
data-method="post" data-method="post"
> >
<icon name="remove" /> <gl-icon name="remove" />
</gl-link> </gl-link>
<!-- eo links --> <!-- eo links -->
...@@ -121,7 +120,7 @@ export default { ...@@ -121,7 +120,7 @@ export default {
data-testid="job-controller-scroll-top" data-testid="job-controller-scroll-top"
@click="handleScrollToTop" @click="handleScrollToTop"
> >
<icon name="scroll_up" /> <gl-icon name="scroll_up" />
</gl-deprecated-button> </gl-deprecated-button>
</div> </div>
......
<script> <script>
import Icon from '~/vue_shared/components/icon.vue'; import { GlIcon } from '@gitlab/ui';
import LineNumber from './line_number.vue'; import LineNumber from './line_number.vue';
import DurationBadge from './duration_badge.vue'; import DurationBadge from './duration_badge.vue';
export default { export default {
components: { components: {
Icon, GlIcon,
LineNumber, LineNumber,
DurationBadge, DurationBadge,
}, },
...@@ -47,7 +47,7 @@ export default { ...@@ -47,7 +47,7 @@ export default {
role="button" role="button"
@click="handleOnClick" @click="handleOnClick"
> >
<icon :name="iconName" class="arrow position-absolute" /> <gl-icon :name="iconName" class="arrow position-absolute" />
<line-number :line-number="line.lineNumber" :path="path" /> <line-number :line-number="line.lineNumber" :path="path" />
<span <span
v-for="(content, i) in line.content" v-for="(content, i) in line.content"
......
<script> <script>
import { uniqueId } from 'lodash'; import { uniqueId } from 'lodash';
import { mapActions } from 'vuex'; import { mapActions } from 'vuex';
import { GlDeprecatedButton } from '@gitlab/ui'; import { GlDeprecatedButton, GlIcon } from '@gitlab/ui';
import { s__, sprintf } from '~/locale'; import { s__, sprintf } from '~/locale';
import Icon from '~/vue_shared/components/icon.vue';
export default { export default {
name: 'ManualVariablesForm', name: 'ManualVariablesForm',
components: { components: {
GlDeprecatedButton, GlDeprecatedButton,
Icon, GlIcon,
}, },
props: { props: {
action: { action: {
...@@ -141,7 +140,7 @@ export default { ...@@ -141,7 +140,7 @@ export default {
class="btn-transparent btn-blank w-25" class="btn-transparent btn-blank w-25"
@click="deleteVariable(variable.id)" @click="deleteVariable(variable.id)"
> >
<icon name="clear" /> <gl-icon name="clear" />
</gl-deprecated-button> </gl-deprecated-button>
</div> </div>
</div> </div>
......
<script> <script>
import { isEmpty } from 'lodash'; import { isEmpty } from 'lodash';
import { mapActions, mapState } from 'vuex'; import { mapActions, mapState } from 'vuex';
import { GlLink, GlDeprecatedButton } from '@gitlab/ui'; import { GlLink, GlDeprecatedButton, GlIcon } from '@gitlab/ui';
import { __, sprintf } from '~/locale'; import { __, sprintf } from '~/locale';
import timeagoMixin from '~/vue_shared/mixins/timeago'; import timeagoMixin from '~/vue_shared/mixins/timeago';
import { timeIntervalInWords } from '~/lib/utils/datetime_utility'; import { timeIntervalInWords } from '~/lib/utils/datetime_utility';
import Icon from '~/vue_shared/components/icon.vue';
import DetailRow from './sidebar_detail_row.vue'; import DetailRow from './sidebar_detail_row.vue';
import ArtifactsBlock from './artifacts_block.vue'; import ArtifactsBlock from './artifacts_block.vue';
import TriggerBlock from './trigger_block.vue'; import TriggerBlock from './trigger_block.vue';
...@@ -19,7 +18,7 @@ export default { ...@@ -19,7 +18,7 @@ export default {
ArtifactsBlock, ArtifactsBlock,
CommitBlock, CommitBlock,
DetailRow, DetailRow,
Icon, GlIcon,
TriggerBlock, TriggerBlock,
StagesDropdown, StagesDropdown,
JobsContainer, JobsContainer,
...@@ -157,7 +156,7 @@ export default { ...@@ -157,7 +156,7 @@ export default {
class="js-terminal-link btn btn-primary btn-inverted visible-md-block visible-lg-block float-left" class="js-terminal-link btn btn-primary btn-inverted visible-md-block visible-lg-block float-left"
target="_blank" target="_blank"
> >
{{ __('Debug') }} <icon name="external-link" :size="14" /> {{ __('Debug') }} <gl-icon name="external-link" :size="14" />
</gl-link> </gl-link>
</div> </div>
......
...@@ -11,12 +11,12 @@ import { ...@@ -11,12 +11,12 @@ import {
GlNewDropdownItem as GlDropdownItem, GlNewDropdownItem as GlDropdownItem,
GlModal, GlModal,
GlTooltipDirective, GlTooltipDirective,
GlIcon,
} from '@gitlab/ui'; } from '@gitlab/ui';
import { __, s__ } from '~/locale'; import { __, s__ } from '~/locale';
import Translate from '~/vue_shared/translate'; import Translate from '~/vue_shared/translate';
import TrackEventDirective from '~/vue_shared/directives/track_event'; import TrackEventDirective from '~/vue_shared/directives/track_event';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import Icon from '~/vue_shared/components/icon.vue';
import { alertsValidator, queriesValidator } from '../validators'; import { alertsValidator, queriesValidator } from '../validators';
import { OPERATORS } from '../constants'; import { OPERATORS } from '../constants';
...@@ -44,7 +44,7 @@ export default { ...@@ -44,7 +44,7 @@ export default {
GlDropdownItem, GlDropdownItem,
GlModal, GlModal,
GlLink, GlLink,
Icon, GlIcon,
}, },
directives: { directives: {
GlTooltip: GlTooltipDirective, GlTooltip: GlTooltipDirective,
...@@ -242,7 +242,7 @@ export default { ...@@ -242,7 +242,7 @@ export default {
<template #description> <template #description>
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">
{{ __('Single or combined queries') }} {{ __('Single or combined queries') }}
<icon <gl-icon
v-gl-tooltip="$options.alertQueryText.descriptionTooltip" v-gl-tooltip="$options.alertQueryText.descriptionTooltip"
name="question" name="question"
class="gl-ml-2" class="gl-ml-2"
......
<script> <script>
import { isEmpty, omit, throttle } from 'lodash'; import { isEmpty, omit, throttle } from 'lodash';
import { GlLink, GlTooltip, GlResizeObserverDirective } from '@gitlab/ui'; import { GlLink, GlTooltip, GlResizeObserverDirective, GlIcon } from '@gitlab/ui';
import { GlAreaChart, GlLineChart, GlChartSeriesLabel } from '@gitlab/ui/dist/charts'; import { GlAreaChart, GlLineChart, GlChartSeriesLabel } from '@gitlab/ui/dist/charts';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import { getSvgIconPathContent } from '~/lib/utils/icon_utils'; import { getSvgIconPathContent } from '~/lib/utils/icon_utils';
import Icon from '~/vue_shared/components/icon.vue';
import { panelTypes, chartHeight, lineTypes, lineWidths, legendLayoutTypes } from '../../constants'; import { panelTypes, chartHeight, lineTypes, lineWidths, legendLayoutTypes } from '../../constants';
import { getYAxisOptions, getTimeAxisOptions, getChartGrid, getTooltipFormatter } from './options'; import { getYAxisOptions, getTimeAxisOptions, getChartGrid, getTooltipFormatter } from './options';
import { annotationsYAxis, generateAnnotationsSeries } from './annotations'; import { annotationsYAxis, generateAnnotationsSeries } from './annotations';
...@@ -27,7 +26,7 @@ export default { ...@@ -27,7 +26,7 @@ export default {
GlTooltip, GlTooltip,
GlChartSeriesLabel, GlChartSeriesLabel,
GlLink, GlLink,
Icon, GlIcon,
}, },
directives: { directives: {
GlResizeObserverDirective, GlResizeObserverDirective,
...@@ -407,7 +406,7 @@ export default { ...@@ -407,7 +406,7 @@ export default {
{{ __('Deployed') }} {{ __('Deployed') }}
</template> </template>
<div slot="tooltipContent" class="d-flex align-items-center"> <div slot="tooltipContent" class="d-flex align-items-center">
<icon name="commit" class="mr-2" /> <gl-icon name="commit" class="mr-2" />
<gl-link :href="tooltip.commitUrl">{{ tooltip.sha }}</gl-link> <gl-link :href="tooltip.commitUrl">{{ tooltip.sha }}</gl-link>
</div> </div>
</template> </template>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
import { mapActions, mapState, mapGetters } from 'vuex'; import { mapActions, mapState, mapGetters } from 'vuex';
import VueDraggable from 'vuedraggable'; import VueDraggable from 'vuedraggable';
import Mousetrap from 'mousetrap'; import Mousetrap from 'mousetrap';
import { GlButton, GlModalDirective, GlTooltipDirective } from '@gitlab/ui'; import { GlButton, GlModalDirective, GlTooltipDirective, GlIcon } from '@gitlab/ui';
import DashboardHeader from './dashboard_header.vue'; import DashboardHeader from './dashboard_header.vue';
import DashboardPanel from './dashboard_panel.vue'; import DashboardPanel from './dashboard_panel.vue';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
...@@ -10,7 +10,6 @@ import { deprecatedCreateFlash as createFlash } from '~/flash'; ...@@ -10,7 +10,6 @@ import { deprecatedCreateFlash as createFlash } from '~/flash';
import { ESC_KEY } from '~/lib/utils/keys'; import { ESC_KEY } from '~/lib/utils/keys';
import { mergeUrlParams, updateHistory } from '~/lib/utils/url_utility'; import { mergeUrlParams, updateHistory } from '~/lib/utils/url_utility';
import invalidUrl from '~/lib/utils/invalid_url'; import invalidUrl from '~/lib/utils/invalid_url';
import Icon from '~/vue_shared/components/icon.vue';
import GraphGroup from './graph_group.vue'; import GraphGroup from './graph_group.vue';
import EmptyState from './empty_state.vue'; import EmptyState from './empty_state.vue';
...@@ -33,7 +32,7 @@ export default { ...@@ -33,7 +32,7 @@ export default {
VueDraggable, VueDraggable,
DashboardHeader, DashboardHeader,
DashboardPanel, DashboardPanel,
Icon, GlIcon,
GlButton, GlButton,
GraphGroup, GraphGroup,
EmptyState, EmptyState,
...@@ -473,7 +472,7 @@ export default { ...@@ -473,7 +472,7 @@ export default {
@click="removePanel(groupData.key, groupData.panels, graphIndex)" @click="removePanel(groupData.key, groupData.panels, graphIndex)"
> >
<a class="mx-2 p-2 draggable-remove-link" :aria-label="__('Remove')"> <a class="mx-2 p-2 draggable-remove-link" :aria-label="__('Remove')">
<icon name="close" /> <gl-icon name="close" />
</a> </a>
</div> </div>
......
...@@ -10,10 +10,10 @@ import { ...@@ -10,10 +10,10 @@ import {
GlSearchBoxByType, GlSearchBoxByType,
GlModalDirective, GlModalDirective,
GlTooltipDirective, GlTooltipDirective,
GlIcon,
} from '@gitlab/ui'; } from '@gitlab/ui';
import { mergeUrlParams, redirectTo } from '~/lib/utils/url_utility'; import { mergeUrlParams, redirectTo } from '~/lib/utils/url_utility';
import invalidUrl from '~/lib/utils/invalid_url'; import invalidUrl from '~/lib/utils/invalid_url';
import Icon from '~/vue_shared/components/icon.vue';
import DateTimePicker from '~/vue_shared/components/date_time_picker/date_time_picker.vue'; import DateTimePicker from '~/vue_shared/components/date_time_picker/date_time_picker.vue';
import DashboardsDropdown from './dashboards_dropdown.vue'; import DashboardsDropdown from './dashboards_dropdown.vue';
...@@ -26,7 +26,7 @@ import { timezones } from '../format_date'; ...@@ -26,7 +26,7 @@ import { timezones } from '../format_date';
export default { export default {
components: { components: {
Icon, GlIcon,
GlButton, GlButton,
GlNewDropdown, GlNewDropdown,
GlLoadingIcon, GlLoadingIcon,
...@@ -260,7 +260,7 @@ export default { ...@@ -260,7 +260,7 @@ export default {
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
{{ __('View full dashboard') }} <icon name="external-link" /> {{ __('View full dashboard') }} <gl-icon name="external-link" />
</gl-button> </gl-button>
</div> </div>
......
<script> <script>
import { mapGetters, mapActions } from 'vuex'; import { mapGetters, mapActions } from 'vuex';
import { GlTooltipDirective } from '@gitlab/ui'; import { GlTooltipDirective, GlIcon } from '@gitlab/ui';
import Icon from '~/vue_shared/components/icon.vue';
import discussionNavigation from '../mixins/discussion_navigation'; import discussionNavigation from '../mixins/discussion_navigation';
export default { export default {
...@@ -9,7 +8,7 @@ export default { ...@@ -9,7 +8,7 @@ export default {
GlTooltip: GlTooltipDirective, GlTooltip: GlTooltipDirective,
}, },
components: { components: {
Icon, GlIcon,
}, },
mixins: [discussionNavigation], mixins: [discussionNavigation],
computed: { computed: {
...@@ -60,7 +59,7 @@ export default { ...@@ -60,7 +59,7 @@ export default {
:class="{ 'line-resolve-btn is-active': allResolved, 'line-resolve-text': !allResolved }" :class="{ 'line-resolve-btn is-active': allResolved, 'line-resolve-text': !allResolved }"
> >
<template v-if="allResolved"> <template v-if="allResolved">
<icon name="check-circle-filled" /> <gl-icon name="check-circle-filled" />
{{ __('All threads resolved') }} {{ __('All threads resolved') }}
</template> </template>
<template v-else> <template v-else>
...@@ -79,7 +78,7 @@ export default { ...@@ -79,7 +78,7 @@ export default {
:title="s__('Resolve all threads in new issue')" :title="s__('Resolve all threads in new issue')"
class="new-issue-for-discussion btn btn-default discussion-create-issue-btn" class="new-issue-for-discussion btn btn-default discussion-create-issue-btn"
> >
<icon name="issue-new" /> <gl-icon name="issue-new" />
</a> </a>
</div> </div>
<div v-if="isLoggedIn && !allResolved" class="btn-group btn-group-sm" role="group"> <div v-if="isLoggedIn && !allResolved" class="btn-group btn-group-sm" role="group">
...@@ -92,7 +91,7 @@ export default { ...@@ -92,7 +91,7 @@ export default {
data-track-property="click_next_unresolved_thread_top" data-track-property="click_next_unresolved_thread_top"
@click="jumpToNextDiscussion" @click="jumpToNextDiscussion"
> >
<icon name="comment-next" /> <gl-icon name="comment-next" />
</button> </button>
</div> </div>
<div class="btn-group btn-group-sm" role="group"> <div class="btn-group btn-group-sm" role="group">
...@@ -102,7 +101,7 @@ export default { ...@@ -102,7 +101,7 @@ export default {
class="btn btn-default toggle-all-discussions-btn" class="btn btn-default toggle-all-discussions-btn"
@click="handleExpandDiscussions" @click="handleExpandDiscussions"
> >
<icon :name="allExpanded ? 'angle-up' : 'angle-down'" /> <gl-icon :name="allExpanded ? 'angle-up' : 'angle-down'" />
</button> </button>
</div> </div>
</div> </div>
......
<script> <script>
import $ from 'jquery'; import $ from 'jquery';
import { mapGetters, mapActions } from 'vuex'; import { mapGetters, mapActions } from 'vuex';
import { GlIcon } from '@gitlab/ui';
import { getLocationHash, doesHashExistInUrl } from '../../lib/utils/url_utility'; import { getLocationHash, doesHashExistInUrl } from '../../lib/utils/url_utility';
import Icon from '~/vue_shared/components/icon.vue';
import { import {
DISCUSSION_FILTERS_DEFAULT_VALUE, DISCUSSION_FILTERS_DEFAULT_VALUE,
HISTORY_ONLY_FILTER_VALUE, HISTORY_ONLY_FILTER_VALUE,
...@@ -14,7 +14,7 @@ import notesEventHub from '../event_hub'; ...@@ -14,7 +14,7 @@ import notesEventHub from '../event_hub';
export default { export default {
components: { components: {
Icon, GlIcon,
}, },
props: { props: {
filters: { filters: {
...@@ -120,7 +120,7 @@ export default { ...@@ -120,7 +120,7 @@ export default {
data-toggle="dropdown" data-toggle="dropdown"
aria-expanded="false" aria-expanded="false"
> >
{{ currentFilter.title }} <icon name="chevron-down" /> {{ currentFilter.title }} <gl-icon name="chevron-down" />
</button> </button>
<div <div
ref="dropdownMenu" ref="dropdownMenu"
......
<script> <script>
import { GlButton } from '@gitlab/ui'; import { GlButton, GlIcon } from '@gitlab/ui';
import Icon from '~/vue_shared/components/icon.vue';
import { __, sprintf } from '~/locale'; import { __, sprintf } from '~/locale';
import notesEventHub from '../event_hub'; import notesEventHub from '../event_hub';
...@@ -8,7 +7,7 @@ import notesEventHub from '../event_hub'; ...@@ -8,7 +7,7 @@ import notesEventHub from '../event_hub';
export default { export default {
components: { components: {
GlButton, GlButton,
Icon, GlIcon,
}, },
computed: { computed: {
timelineContent() { timelineContent() {
...@@ -35,7 +34,7 @@ export default { ...@@ -35,7 +34,7 @@ export default {
<template> <template>
<li class="timeline-entry note note-wrapper discussion-filter-note js-discussion-filter-note"> <li class="timeline-entry note note-wrapper discussion-filter-note js-discussion-filter-note">
<div class="timeline-icon d-none d-lg-flex"> <div class="timeline-icon d-none d-lg-flex">
<icon name="comment" /> <gl-icon name="comment" />
</div> </div>
<div class="timeline-content"> <div class="timeline-content">
<div ref="timelineContent" v-html="timelineContent"></div> <div ref="timelineContent" v-html="timelineContent"></div>
......
<script> <script>
import { GlTooltipDirective } from '@gitlab/ui'; import { GlTooltipDirective, GlIcon } from '@gitlab/ui';
import icon from '~/vue_shared/components/icon.vue';
import discussionNavigation from '../mixins/discussion_navigation'; import discussionNavigation from '../mixins/discussion_navigation';
export default { export default {
name: 'JumpToNextDiscussionButton', name: 'JumpToNextDiscussionButton',
components: { components: {
icon, GlIcon,
}, },
directives: { directives: {
GlTooltip: GlTooltipDirective, GlTooltip: GlTooltipDirective,
...@@ -33,7 +32,7 @@ export default { ...@@ -33,7 +32,7 @@ export default {
data-track-property="click_next_unresolved_thread" data-track-property="click_next_unresolved_thread"
@click="jumpToNextRelativeDiscussion(fromDiscussionId)" @click="jumpToNextRelativeDiscussion(fromDiscussionId)"
> >
<icon name="comment-next" /> <gl-icon name="comment-next" />
</button> </button>
</div> </div>
</template> </template>
<script> <script>
import { GlLink } from '@gitlab/ui'; import { GlLink, GlIcon } from '@gitlab/ui';
import Icon from '~/vue_shared/components/icon.vue';
import { __, sprintf } from '~/locale'; import { __, sprintf } from '~/locale';
import Issuable from '~/vue_shared/mixins/issuable'; import Issuable from '~/vue_shared/mixins/issuable';
import issuableStateMixin from '../mixins/issuable_state'; import issuableStateMixin from '../mixins/issuable_state';
export default { export default {
components: { components: {
Icon, GlIcon,
GlLink, GlLink,
}, },
mixins: [Issuable, issuableStateMixin], mixins: [Issuable, issuableStateMixin],
...@@ -28,7 +27,7 @@ export default { ...@@ -28,7 +27,7 @@ export default {
<template> <template>
<div class="disabled-comment text-center"> <div class="disabled-comment text-center">
<span class="issuable-note-warning inline"> <span class="issuable-note-warning inline">
<icon :size="16" name="lock" class="icon" /> <gl-icon :size="16" name="lock" class="icon" />
<span v-if="isProjectArchived"> <span v-if="isProjectArchived">
{{ projectArchivedWarning }} {{ projectArchivedWarning }}
<gl-link :href="archivedProjectDocsPath" target="_blank" class="learn-more"> <gl-link :href="archivedProjectDocsPath" target="_blank" class="learn-more">
......
<script> <script>
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui'; import { GlLoadingIcon, GlTooltipDirective, GlIcon } from '@gitlab/ui';
import { __ } from '~/locale'; import { __ } from '~/locale';
import resolvedStatusMixin from '~/batch_comments/mixins/resolved_status'; import resolvedStatusMixin from '~/batch_comments/mixins/resolved_status';
import Icon from '~/vue_shared/components/icon.vue';
import ReplyButton from './note_actions/reply_button.vue'; import ReplyButton from './note_actions/reply_button.vue';
import eventHub from '~/sidebar/event_hub'; import eventHub from '~/sidebar/event_hub';
import Api from '~/api'; import Api from '~/api';
...@@ -12,7 +11,7 @@ import { deprecatedCreateFlash as flash } from '~/flash'; ...@@ -12,7 +11,7 @@ import { deprecatedCreateFlash as flash } from '~/flash';
export default { export default {
name: 'NoteActions', name: 'NoteActions',
components: { components: {
Icon, GlIcon,
ReplyButton, ReplyButton,
GlLoadingIcon, GlLoadingIcon,
}, },
...@@ -189,7 +188,7 @@ export default { ...@@ -189,7 +188,7 @@ export default {
@click="onResolve" @click="onResolve"
> >
<template v-if="!isResolving"> <template v-if="!isResolving">
<icon :name="isResolved ? 'check-circle-filled' : 'check-circle'" /> <gl-icon :name="isResolved ? 'check-circle-filled' : 'check-circle'" />
</template> </template>
<gl-loading-icon v-else inline /> <gl-loading-icon v-else inline />
</button> </button>
...@@ -203,9 +202,9 @@ export default { ...@@ -203,9 +202,9 @@ export default {
title="Add reaction" title="Add reaction"
data-position="right" data-position="right"
> >
<icon class="link-highlight award-control-icon-neutral" name="slight-smile" /> <gl-icon class="link-highlight award-control-icon-neutral" name="slight-smile" />
<icon class="link-highlight award-control-icon-positive" name="smiley" /> <gl-icon class="link-highlight award-control-icon-positive" name="smiley" />
<icon class="link-highlight award-control-icon-super-positive" name="smiley" /> <gl-icon class="link-highlight award-control-icon-super-positive" name="smiley" />
</a> </a>
</div> </div>
<reply-button <reply-button
...@@ -222,7 +221,7 @@ export default { ...@@ -222,7 +221,7 @@ export default {
class="note-action-button js-note-edit btn btn-transparent qa-note-edit-button" class="note-action-button js-note-edit btn btn-transparent qa-note-edit-button"
@click="onEdit" @click="onEdit"
> >
<icon name="pencil" class="link-highlight" /> <gl-icon name="pencil" class="link-highlight" />
</button> </button>
</div> </div>
<div v-if="showDeleteAction" class="note-actions-item"> <div v-if="showDeleteAction" class="note-actions-item">
...@@ -233,7 +232,7 @@ export default { ...@@ -233,7 +232,7 @@ export default {
class="note-action-button js-note-delete btn btn-transparent" class="note-action-button js-note-delete btn btn-transparent"
@click="onDelete" @click="onDelete"
> >
<icon name="remove" class="link-highlight" /> <gl-icon name="remove" class="link-highlight" />
</button> </button>
</div> </div>
<div v-else-if="shouldShowActionsDropdown" class="dropdown more-actions note-actions-item"> <div v-else-if="shouldShowActionsDropdown" class="dropdown more-actions note-actions-item">
...@@ -245,7 +244,7 @@ export default { ...@@ -245,7 +244,7 @@ export default {
data-toggle="dropdown" data-toggle="dropdown"
@click="closeTooltip" @click="closeTooltip"
> >
<icon class="icon" name="ellipsis_v" /> <gl-icon class="icon" name="ellipsis_v" />
</button> </button>
<ul class="dropdown-menu more-actions-dropdown dropdown-open-left"> <ul class="dropdown-menu more-actions-dropdown dropdown-open-left">
<li v-if="canReportAsAbuse"> <li v-if="canReportAsAbuse">
......
<script> <script>
import { GlTooltipDirective, GlDeprecatedButton } from '@gitlab/ui'; import { GlTooltipDirective, GlDeprecatedButton, GlIcon } from '@gitlab/ui';
import Icon from '~/vue_shared/components/icon.vue';
export default { export default {
name: 'ReplyButton', name: 'ReplyButton',
components: { components: {
Icon, GlIcon,
GlDeprecatedButton, GlDeprecatedButton,
}, },
directives: { directives: {
...@@ -26,7 +25,7 @@ export default { ...@@ -26,7 +25,7 @@ export default {
:title="__('Reply to comment')" :title="__('Reply to comment')"
@click="$emit('startReplying')" @click="$emit('startReplying')"
> >
<icon name="comment" class="link-highlight" /> <gl-icon name="comment" class="link-highlight" />
</gl-deprecated-button> </gl-deprecated-button>
</div> </div>
</template> </template>
<script> <script>
import { mapActions, mapGetters } from 'vuex'; import { mapActions, mapGetters } from 'vuex';
import { GlTooltipDirective } from '@gitlab/ui'; import { GlTooltipDirective, GlIcon } from '@gitlab/ui';
import diffLineNoteFormMixin from '~/notes/mixins/diff_line_note_form'; import diffLineNoteFormMixin from '~/notes/mixins/diff_line_note_form';
import { s__, __ } from '~/locale'; import { s__, __ } from '~/locale';
import { clearDraft, getDiscussionReplyKey } from '~/lib/utils/autosave'; import { clearDraft, getDiscussionReplyKey } from '~/lib/utils/autosave';
import icon from '~/vue_shared/components/icon.vue';
import TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue'; import TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';
import DraftNote from '~/batch_comments/components/draft_note.vue'; import DraftNote from '~/batch_comments/components/draft_note.vue';
import { deprecatedCreateFlash as Flash } from '../../flash'; import { deprecatedCreateFlash as Flash } from '../../flash';
...@@ -22,7 +21,7 @@ import DiscussionActions from './discussion_actions.vue'; ...@@ -22,7 +21,7 @@ import DiscussionActions from './discussion_actions.vue';
export default { export default {
name: 'NoteableDiscussion', name: 'NoteableDiscussion',
components: { components: {
icon, GlIcon,
userAvatarLink, userAvatarLink,
diffDiscussionHeader, diffDiscussionHeader,
noteSignedOutWidget, noteSignedOutWidget,
......
<script> <script>
import { uniqBy } from 'lodash'; import { uniqBy } from 'lodash';
import Icon from '~/vue_shared/components/icon.vue'; import { GlIcon } from '@gitlab/ui';
import UserAvatarLink from '~/vue_shared/components/user_avatar/user_avatar_link.vue'; import UserAvatarLink from '~/vue_shared/components/user_avatar/user_avatar_link.vue';
import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue'; import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
export default { export default {
components: { components: {
Icon, GlIcon,
UserAvatarLink, UserAvatarLink,
TimeAgoTooltip, TimeAgoTooltip,
}, },
...@@ -44,7 +44,7 @@ export default { ...@@ -44,7 +44,7 @@ export default {
<template> <template>
<li :class="className" class="replies-toggle js-toggle-replies"> <li :class="className" class="replies-toggle js-toggle-replies">
<template v-if="collapsed"> <template v-if="collapsed">
<icon name="chevron-right" @click.native="toggle" /> <gl-icon name="chevron-right" @click.native="toggle" />
<div> <div>
<user-avatar-link <user-avatar-link
v-for="author in uniqueAuthors" v-for="author in uniqueAuthors"
...@@ -71,7 +71,7 @@ export default { ...@@ -71,7 +71,7 @@ export default {
class="collapse-replies-btn js-collapse-replies qa-collapse-replies" class="collapse-replies-btn js-collapse-replies qa-collapse-replies"
@click="toggle" @click="toggle"
> >
<icon name="chevron-down" /> {{ s__('Notes|Collapse replies') }} <gl-icon name="chevron-down" /> {{ s__('Notes|Collapse replies') }}
</span> </span>
</li> </li>
</template> </template>
<script> <script>
import { GlIcon } from '@gitlab/ui';
import RequestWarning from './request_warning.vue'; import RequestWarning from './request_warning.vue';
import DeprecatedModal2 from '~/vue_shared/components/deprecated_modal_2.vue'; import DeprecatedModal2 from '~/vue_shared/components/deprecated_modal_2.vue';
import Icon from '~/vue_shared/components/icon.vue';
export default { export default {
components: { components: {
RequestWarning, RequestWarning,
GlModal: DeprecatedModal2, GlModal: DeprecatedModal2,
Icon, GlIcon,
}, },
props: { props: {
currentRequest: { currentRequest: {
...@@ -104,7 +104,7 @@ export default { ...@@ -104,7 +104,7 @@ export default {
type="button" type="button"
:aria-label="__('Toggle backtrace')" :aria-label="__('Toggle backtrace')"
> >
<icon :size="12" name="ellipsis_h" /> <gl-icon :size="12" name="ellipsis_h" />
</button> </button>
</div> </div>
<pre v-if="item.backtrace" class="backtrace-row js-toggle-content mt-2">{{ <pre v-if="item.backtrace" class="backtrace-row js-toggle-content mt-2">{{
......
<script> <script>
import { GlDeprecatedButton, GlLink } from '@gitlab/ui'; import { GlDeprecatedButton, GlLink, GlIcon } from '@gitlab/ui';
import Icon from '~/vue_shared/components/icon.vue';
import PersistentUserCallout from '~/persistent_user_callout'; import PersistentUserCallout from '~/persistent_user_callout';
export default { export default {
components: { components: {
GlDeprecatedButton, GlDeprecatedButton,
GlLink, GlLink,
Icon, GlIcon,
}, },
props: { props: {
canaryDeploymentFeatureId: { canaryDeploymentFeatureId: {
...@@ -65,6 +64,8 @@ export default { ...@@ -65,6 +64,8 @@ export default {
> >
</div> </div>
<div class="ml-auto pr-2 canary-deployment-callout-close js-close"><icon name="close" /></div> <div class="ml-auto pr-2 canary-deployment-callout-close js-close">
<gl-icon name="close" />
</div>
</div> </div>
</template> </template>
import { shallowMount } from '@vue/test-utils'; import { shallowMount } from '@vue/test-utils';
import { TEST_HOST } from 'helpers/test_constants'; import { TEST_HOST } from 'helpers/test_constants';
import { GlLoadingIcon } from '@gitlab/ui'; import { GlLoadingIcon, GlIcon } from '@gitlab/ui';
import eventHub from '~/environments/event_hub'; import eventHub from '~/environments/event_hub';
import EnvironmentActions from '~/environments/components/environment_actions.vue'; import EnvironmentActions from '~/environments/components/environment_actions.vue';
import Icon from '~/vue_shared/components/icon.vue';
describe('EnvironmentActions Component', () => { describe('EnvironmentActions Component', () => {
let vm; let vm;
...@@ -17,7 +16,7 @@ describe('EnvironmentActions Component', () => { ...@@ -17,7 +16,7 @@ describe('EnvironmentActions Component', () => {
}); });
it('should render a dropdown button with 2 icons', () => { it('should render a dropdown button with 2 icons', () => {
expect(vm.find('.dropdown-new').findAll(Icon).length).toBe(2); expect(vm.find('.dropdown-new').findAll(GlIcon).length).toBe(2);
}); });
it('should render a dropdown button with aria-label description', () => { it('should render a dropdown button with aria-label description', () => {
......
import { shallowMount } from '@vue/test-utils'; import { shallowMount } from '@vue/test-utils';
import { GlIcon } from '@gitlab/ui';
import MonitoringComponent from '~/environments/components/environment_monitoring.vue'; import MonitoringComponent from '~/environments/components/environment_monitoring.vue';
import Icon from '~/vue_shared/components/icon.vue';
describe('Monitoring Component', () => { describe('Monitoring Component', () => {
let wrapper; let wrapper;
...@@ -15,7 +15,7 @@ describe('Monitoring Component', () => { ...@@ -15,7 +15,7 @@ describe('Monitoring Component', () => {
}); });
}; };
const findIcons = () => wrapper.findAll(Icon); const findIcons = () => wrapper.findAll(GlIcon);
const findIconsByName = name => findIcons().filter(icon => icon.props('name') === name); const findIconsByName = name => findIcons().filter(icon => icon.props('name') === name);
beforeEach(() => { beforeEach(() => {
......
import { shallowMount } from '@vue/test-utils'; import { shallowMount } from '@vue/test-utils';
import { GlDeprecatedButton } from '@gitlab/ui'; import { GlDeprecatedButton, GlIcon } from '@gitlab/ui';
import Icon from '~/vue_shared/components/icon.vue';
import eventHub from '~/environments/event_hub'; import eventHub from '~/environments/event_hub';
import PinComponent from '~/environments/components/environment_pin.vue'; import PinComponent from '~/environments/components/environment_pin.vue';
...@@ -32,7 +31,7 @@ describe('Pin Component', () => { ...@@ -32,7 +31,7 @@ describe('Pin Component', () => {
}); });
it('should render the component with thumbtack icon', () => { it('should render the component with thumbtack icon', () => {
expect(wrapper.find(Icon).props('name')).toBe('thumbtack'); expect(wrapper.find(GlIcon).props('name')).toBe('thumbtack');
}); });
it('should emit onPinClick when clicked', () => { it('should emit onPinClick when clicked', () => {
......
import { shallowMount } from '@vue/test-utils'; import { shallowMount } from '@vue/test-utils';
import { GlSprintf } from '@gitlab/ui'; import { GlSprintf, GlIcon } from '@gitlab/ui';
import { trimText } from 'helpers/text_helper'; import { trimText } from 'helpers/text_helper';
import StackTraceEntry from '~/error_tracking/components/stacktrace_entry.vue'; import StackTraceEntry from '~/error_tracking/components/stacktrace_entry.vue';
import ClipboardButton from '~/vue_shared/components/clipboard_button.vue'; import ClipboardButton from '~/vue_shared/components/clipboard_button.vue';
import FileIcon from '~/vue_shared/components/file_icon.vue'; import FileIcon from '~/vue_shared/components/file_icon.vue';
import Icon from '~/vue_shared/components/icon.vue';
describe('Stacktrace Entry', () => { describe('Stacktrace Entry', () => {
let wrapper; let wrapper;
...@@ -39,7 +38,7 @@ describe('Stacktrace Entry', () => { ...@@ -39,7 +38,7 @@ describe('Stacktrace Entry', () => {
mountComponent({ lines }); mountComponent({ lines });
expect(wrapper.find(StackTraceEntry).exists()).toBe(true); expect(wrapper.find(StackTraceEntry).exists()).toBe(true);
expect(wrapper.find(ClipboardButton).exists()).toBe(true); expect(wrapper.find(ClipboardButton).exists()).toBe(true);
expect(wrapper.find(Icon).exists()).toBe(true); expect(wrapper.find(GlIcon).exists()).toBe(true);
expect(wrapper.find(FileIcon).exists()).toBe(true); expect(wrapper.find(FileIcon).exists()).toBe(true);
expect(wrapper.find('table').exists()).toBe(false); expect(wrapper.find('table').exists()).toBe(false);
}); });
...@@ -57,7 +56,7 @@ describe('Stacktrace Entry', () => { ...@@ -57,7 +56,7 @@ describe('Stacktrace Entry', () => {
it('should hide collapse icon and render error fn name and error line when there is no code block', () => { it('should hide collapse icon and render error fn name and error line when there is no code block', () => {
const extraInfo = { errorLine: 34, errorFn: 'errorFn', errorColumn: 77 }; const extraInfo = { errorLine: 34, errorFn: 'errorFn', errorColumn: 77 };
mountComponent({ expanded: false, lines: [], ...extraInfo }); mountComponent({ expanded: false, lines: [], ...extraInfo });
expect(wrapper.find(Icon).exists()).toBe(false); expect(wrapper.find(GlIcon).exists()).toBe(false);
expect(trimText(findFileHeaderContent())).toContain( expect(trimText(findFileHeaderContent())).toContain(
`in ${extraInfo.errorFn} at line ${extraInfo.errorLine}:${extraInfo.errorColumn}`, `in ${extraInfo.errorFn} at line ${extraInfo.errorLine}:${extraInfo.errorColumn}`,
); );
......
...@@ -83,7 +83,7 @@ exports[`grafana integration component default state to match the default snapsh ...@@ -83,7 +83,7 @@ exports[`grafana integration component default state to match the default snapsh
More information More information
<icon-stub <gl-icon-stub
class="vertical-align-middle" class="vertical-align-middle"
name="external-link" name="external-link"
size="16" size="16"
......
import { shallowMount } from '@vue/test-utils'; import { shallowMount } from '@vue/test-utils';
import { GlTooltip, GlLink } from '@gitlab/ui'; import { GlTooltip, GlLink, GlIcon } from '@gitlab/ui';
import { TEST_HOST } from 'jest/helpers/test_constants'; import { TEST_HOST } from 'jest/helpers/test_constants';
import Icon from '~/vue_shared/components/icon.vue';
import UserAvatarImage from '~/vue_shared/components/user_avatar/user_avatar_image.vue'; import UserAvatarImage from '~/vue_shared/components/user_avatar/user_avatar_image.vue';
import Suggestion from '~/issuable_suggestions/components/item.vue'; import Suggestion from '~/issuable_suggestions/components/item.vue';
import mockData from '../mock_data'; import mockData from '../mock_data';
...@@ -48,7 +47,7 @@ describe('Issuable suggestions suggestion component', () => { ...@@ -48,7 +47,7 @@ describe('Issuable suggestions suggestion component', () => {
it('renders icon', () => { it('renders icon', () => {
createComponent(); createComponent();
const icon = vm.find(Icon); const icon = vm.find(GlIcon);
expect(icon.props('name')).toBe('issue-open-m'); expect(icon.props('name')).toBe('issue-open-m');
}); });
...@@ -71,7 +70,7 @@ describe('Issuable suggestions suggestion component', () => { ...@@ -71,7 +70,7 @@ describe('Issuable suggestions suggestion component', () => {
state: 'closed', state: 'closed',
}); });
const icon = vm.find(Icon); const icon = vm.find(GlIcon);
expect(icon.props('name')).toBe('issue-close'); expect(icon.props('name')).toBe('issue-close');
}); });
...@@ -112,7 +111,7 @@ describe('Issuable suggestions suggestion component', () => { ...@@ -112,7 +111,7 @@ describe('Issuable suggestions suggestion component', () => {
const count = vm.findAll('.suggestion-counts span').at(0); const count = vm.findAll('.suggestion-counts span').at(0);
expect(count.text()).toContain('1'); expect(count.text()).toContain('1');
expect(count.find(Icon).props('name')).toBe('thumb-up'); expect(count.find(GlIcon).props('name')).toBe('thumb-up');
}); });
it('renders notes count', () => { it('renders notes count', () => {
...@@ -121,7 +120,7 @@ describe('Issuable suggestions suggestion component', () => { ...@@ -121,7 +120,7 @@ describe('Issuable suggestions suggestion component', () => {
const count = vm.findAll('.suggestion-counts span').at(1); const count = vm.findAll('.suggestion-counts span').at(1);
expect(count.text()).toContain('2'); expect(count.text()).toContain('2');
expect(count.find(Icon).props('name')).toBe('comment'); expect(count.find(GlIcon).props('name')).toBe('comment');
}); });
}); });
...@@ -131,7 +130,7 @@ describe('Issuable suggestions suggestion component', () => { ...@@ -131,7 +130,7 @@ describe('Issuable suggestions suggestion component', () => {
confidential: true, confidential: true,
}); });
const icon = vm.find(Icon); const icon = vm.find(GlIcon);
expect(icon.props('name')).toBe('eye-slash'); expect(icon.props('name')).toBe('eye-slash');
expect(icon.attributes('title')).toBe('Confidential'); expect(icon.attributes('title')).toBe('Confidential');
......
...@@ -12,7 +12,7 @@ exports[`JumpToNextDiscussionButton matches the snapshot 1`] = ` ...@@ -12,7 +12,7 @@ exports[`JumpToNextDiscussionButton matches the snapshot 1`] = `
data-track-property="click_next_unresolved_thread" data-track-property="click_next_unresolved_thread"
title="Jump to next unresolved thread" title="Jump to next unresolved thread"
> >
<icon-stub <gl-icon-stub
name="comment-next" name="comment-next"
size="16" size="16"
/> />
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment