1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
// 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');
/** @enum {number} */
print_preview.State = {
NOT_READY: 0,
READY: 1,
HIDDEN: 2,
PRINTING: 3,
SYSTEM_DIALOG: 4,
ERROR: 5,
FATAL_ERROR: 6,
CLOSING: 7,
};
/** @enum {number} */
print_preview.Error = {
NONE: 0,
INVALID_TICKET: 1,
INVALID_PRINTER: 2,
UNSUPPORTED_PRINTER: 3,
NO_DESTINATIONS: 4,
NO_PLUGIN: 5,
PREVIEW_FAILED: 6,
PRINT_FAILED: 7,
CLOUD_PRINT_ERROR: 8,
};
Polymer({
is: 'print-preview-state',
properties: {
/** @type {!print_preview.State} */
state: {
type: Number,
notify: true,
value: print_preview.State.NOT_READY,
},
/** @type {!print_preview.Error} */
error: {
type: Number,
notify: true,
value: print_preview.Error.NONE,
},
},
/** @param {print_preview.State} newState The state to transition to. */
transitTo: function(newState) {
switch (newState) {
case (print_preview.State.NOT_READY):
assert(
this.state == print_preview.State.NOT_READY ||
this.state == print_preview.State.READY ||
this.state == print_preview.State.ERROR);
break;
case (print_preview.State.READY):
assert(
this.state == print_preview.State.ERROR ||
this.state == print_preview.State.NOT_READY ||
this.state == print_preview.State.PRINTING);
break;
case (print_preview.State.HIDDEN):
assert(this.state == print_preview.State.READY);
break;
case (print_preview.State.PRINTING):
assert(
this.state == print_preview.State.READY ||
this.state == print_preview.State.HIDDEN);
break;
case (print_preview.State.SYSTEM_DIALOG):
assert(
this.state != print_preview.State.HIDDEN &&
this.state != print_preview.State.PRINTING &&
this.state != print_preview.State.CLOSING);
break;
case (print_preview.State.ERROR):
assert(
this.state == print_preview.State.ERROR ||
this.state == print_preview.State.NOT_READY ||
this.state == print_preview.State.READY);
break;
case (print_preview.State.CLOSING):
assert(this.state != print_preview.State.HIDDEN);
break;
}
this.state = newState;
if (newState !== print_preview.State.ERROR &&
newState !== print_preview.State.FATAL_ERROR) {
this.error = print_preview.Error.NONE;
}
},
});
|