|  | /** | 
|  | * @license | 
|  | * Copyright (C) 2017 The Android Open Source Project | 
|  | * | 
|  | * Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | * you may not use this file except in compliance with the License. | 
|  | * You may obtain a copy of the License at | 
|  | * | 
|  | * http://www.apache.org/licenses/LICENSE-2.0 | 
|  | * | 
|  | * Unless required by applicable law or agreed to in writing, software | 
|  | * distributed under the License is distributed on an "AS IS" BASIS, | 
|  | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | * See the License for the specific language governing permissions and | 
|  | * limitations under the License. | 
|  | */ | 
|  | (function() { | 
|  | 'use strict'; | 
|  |  | 
|  | const ChangeStates = { | 
|  | MERGED: 'Merged', | 
|  | ABANDONED: 'Abandoned', | 
|  | MERGE_CONFLICT: 'Merge Conflict', | 
|  | WIP: 'WIP', | 
|  | PRIVATE: 'Private', | 
|  | }; | 
|  |  | 
|  | const WIP_TOOLTIP = 'This change isn\'t ready to be reviewed or submitted. ' + | 
|  | 'It will not appear in dashboards, and email notifications will be ' + | 
|  | 'silenced until the review is started.'; | 
|  |  | 
|  | const PRIVATE_TOOLTIP = 'This change is only visible to its owner and ' + | 
|  | 'current reviewers (or anyone with "View Private Changes" permission).'; | 
|  |  | 
|  | Polymer({ | 
|  | is: 'gr-change-status', | 
|  |  | 
|  | properties: { | 
|  | flat: { | 
|  | type: Boolean, | 
|  | value: false, | 
|  | reflectToAttribute: true, | 
|  | }, | 
|  | status: { | 
|  | type: String, | 
|  | observer: '_updateChipDetails', | 
|  | }, | 
|  | tooltipText: { | 
|  | type: String, | 
|  | value: '', | 
|  | }, | 
|  | }, | 
|  |  | 
|  | _computeStatusString(status) { | 
|  | if (status === ChangeStates.WIP && !this.flat) { | 
|  | return 'Work in Progress'; | 
|  | } | 
|  | return status; | 
|  | }, | 
|  |  | 
|  | _toClassName(str) { | 
|  | return str.toLowerCase().replace(/\s/g, '-'); | 
|  | }, | 
|  |  | 
|  | _updateChipDetails(status, previousStatus) { | 
|  | if (previousStatus) { | 
|  | this.classList.remove(this._toClassName(previousStatus)); | 
|  | } | 
|  | this.classList.add(this._toClassName(status)); | 
|  |  | 
|  | switch (status) { | 
|  | case ChangeStates.WIP: | 
|  | this.tooltipText = WIP_TOOLTIP; | 
|  | break; | 
|  | case ChangeStates.PRIVATE: | 
|  | this.tooltipText = PRIVATE_TOOLTIP; | 
|  | break; | 
|  | default: | 
|  | this.tooltipText = ''; | 
|  | break; | 
|  | } | 
|  | }, | 
|  | }); | 
|  | })(); |