blob: 8526b5c7d4972ecf2790986b5b6332caa69b4c72 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
cr.exportPath('print_preview_new');
/** @enum {number} */
print_preview_new.State = {
NOT_READY: 0,
READY: 1,
HIDDEN: 2,
PRINTING: 3,
SYSTEM_DIALOG: 4,
INVALID_TICKET: 5,
INVALID_PRINTER: 6,
FATAL_ERROR: 7,
CLOSING: 8,
};
Polymer({
is: 'print-preview-state',
properties: {
/** @type {print_preview_new.State} */
state: {
type: Number,
notify: true,
value: print_preview_new.State.NOT_READY,
},
},
/** @param {print_preview_new.State} newState The state to transition to. */
transitTo: function(newState) {
switch (newState) {
case (print_preview_new.State.NOT_READY):
assert(
this.state == print_preview_new.State.NOT_READY ||
this.state == print_preview_new.State.READY ||
this.state == print_preview_new.State.INVALID_PRINTER);
break;
case (print_preview_new.State.READY):
assert(
this.state == print_preview_new.State.INVALID_TICKET ||
this.state == print_preview_new.State.NOT_READY ||
this.state == print_preview_new.State.PRINTING);
break;
case (print_preview_new.State.HIDDEN):
assert(this.state == print_preview_new.State.READY);
break;
case (print_preview_new.State.PRINTING):
assert(
this.state == print_preview_new.State.READY ||
this.state == print_preview_new.State.HIDDEN);
break;
case (print_preview_new.State.SYSTEM_DIALOG):
assert(
this.state != print_preview_new.State.HIDDEN &&
this.state != print_preview_new.State.PRINTING &&
this.state != print_preview_new.State.CLOSING);
break;
case (print_preview_new.State.INVALID_TICKET):
assert(this.state == print_preview_new.State.READY);
break;
case (print_preview_new.State.INVALID_PRINTER):
assert(
this.state == print_preview_new.State.INVALID_PRINTER ||
this.state == print_preview_new.State.NOT_READY ||
this.state == print_preview_new.State.READY);
break;
case (print_preview_new.State.CLOSING):
assert(this.state != print_preview_new.State.HIDDEN);
break;
}
this.state = newState;
},
});