blob: 617b9ccbe328646677618863329a12858f2b1cf7 [file] [log] [blame]
<style include="cr-shared-style settings-shared iron-flex">
iron-icon,
#progressSpinner {
--paper-spinner-stroke-width: 2px;
height: 1.6em;
padding-inline-end: 20px;
width: 1.6em;
}
iron-icon.has-leaks {
--iron-icon-fill-color: var(--google-red-600);
background: radial-gradient(circle 1.1em at 1.1em,
#FCE8E6 100%,
transparent 100%);
margin-inline-end: 16px;
margin-inline-start: -4px;
padding-bottom: 0.5em;
padding-inline-end: 0.4em;
padding-inline-start: 0.3em;
padding-top: 0.3em;
}
@media (prefers-color-scheme: dark) {
iron-icon.has-leaks {
--iron-icon-fill-color: var(--google-red-refresh-300);
background: radial-gradient(circle 1.1em at 1.1em,
var(--google-grey-900) 100%,
transparent 100%);
}
}
iron-icon.no-leaks {
--iron-icon-fill-color: var(--google-blue-600);
background-size: 16px 16px;
}
iron-icon.hidden {
display: none;
}
#leakCheckHeader {
border-bottom: var(--cr-separator-line);
}
#bannerImage {
width: 100%;
}
</style>
<!-- The banner is visible if no compromised password was found (yet). -->
<template is="dom-if" if="[[shouldShowBanner_(status, leakedPasswords)]]">
<picture>
<source srcset="[[bannerImageSrc_(1, status)]]"
media="(prefers-color-scheme: dark)">
<img id="bannerImage" src="[[bannerImageSrc_(0, status)]]" alt="">
</picture>
</template>
<!-- The header showing progress or result of the check-->
<div class="cr-row first two-line" id="leakCheckHeader">
<!-- If the password check concluded, show only a status Icon. -->
<template is="dom-if" if="[[!isCheckInProgress_(status)]]">
<iron-icon class$="[[getStatusIconClass_(status, leakedPasswords)]]"
icon="[[getStatusIcon_(status, leakedPasswords)]]">
</iron-icon>
</template>
<!-- Show a loader instead of an icon if passwords are still checked. -->
<template is="dom-if" if="[[isCheckInProgress_(status)]]">
<paper-spinner-lite id="progressSpinner" active>
</paper-spinner-lite>
</template>
<div class="flex cr-padded-text">
<div id="titleRow">
<span id="title" inner-h-t-m-l="[[title_]]"></span>
<span class="secondary inline" id="lastCompletedCheck"
hidden$="[[!showsTimestamp_(status)]]">
&bull; [[status.elapsedTimeSinceLastCheck]]
</span>
</div>
<div class="secondary" id="subtitle"
hidden$="[[!showsPasswordsCount_(status, leakedPasswords)]]">
[[compromisedPasswordsCount]]
</div>
</div>
<cr-button id="controlPasswordCheckButton"
on-click="onPasswordCheckButtonClick_"
class$="[[getButtonTypeClass_(status)]] cr-button-gap"
hidden$="[[isButtonHidden_]]">
[[getButtonText_(status)]]
</cr-button>
</div>
<div id="noCompromisedCredentials"
class="cr-row first"
hidden$="[[!showNoCompromisedPasswordsLabel_]]">
<div class="cr-padded-text secondary">
$i18n{noCompromisedCredentials}
</div>
</div>
<div id="passwordCheckBody"
hidden$="[[!hasLeakedCredentials_(leakedPasswords)]]">
<div class="cr-row first">
<h2>$i18n{compromisedPasswords}</h2>
</div>
<div class="list-frame vertical-list">
<div class="list-item secondary">
$i18n{compromisedPasswordsDescription}
</div>
</div>
<div class="list-frame first">
<iron-list id="leakedPasswordList" items="[[leakedPasswords]]">
<template>
<password-check-list-item item="[[item]]"
on-more-actions-click="onMoreActionsClick_"
clicked-change-password=
"[[clickedChangePassword_(item, clickedChangePasswordIds_.size)]]"
on-change-password-clicked="onChangePasswordClick_"
<if expr="chromeos">
token-request-manager="[[tokenRequestManager_]]"
</if>
on-already-changed-password-click="onAlreadyChangedClick_">
</password-check-list-item>
</template>
</iron-list>
</div>
</div>
<cr-action-menu id="moreActionsMenu" role-description="$i18n{menu}">
<button id="menuShowPassword" class="dropdown-item"
on-click="onMenuShowPasswordClick_">
[[showHideMenuTitle_]]
</button>
<button id="menuEditPassword" class="dropdown-item"
on-click="onEditPasswordClick_">
$i18n{editPassword}
</button>
<button id="menuRemovePassword" class="dropdown-item"
on-click="onMenuRemovePasswordClick_">
$i18n{removeCompromisedPassword}
</button>
</cr-action-menu>
<template is="dom-if" if="[[showPasswordEditDialog_]]" restamp>
<settings-password-check-edit-dialog
on-close="onPasswordEditDialogClosed_" item="[[activePassword_]]">
</setiings-password-check-edit-dialog>
</template>
<template is="dom-if" if="[[showPasswordRemoveDialog_]]" restamp>
<settings-password-remove-confirmation-dialog
on-close="onPasswordRemoveDialogClosed_" item="[[activePassword_]]">
</settings-password-remove-confirmation-dialog>
</template>
<template is="dom-if" if="[[showPasswordEditDisclaimer_]]" restamp>
<settings-password-edit-disclaimer-dialog
on-edit-password-click="onEditPasswordClick_"
origin="[[activePassword_.formattedOrigin]]"
on-close="onEditDisclaimerClosed_">
</settings-password-edit-disclaimer-dialog>
</template>
<if expr="chromeos">
<template is="dom-if" if="[[showPasswordPromptDialog_]]" restamp>
<settings-password-prompt-dialog on-token-obtained="onTokenObtained_"
on-close="onPasswordPromptClosed_">
</settings-password-prompt-dialog>
</template>
</if>