├── .gitignore
├── fonts
├── RG2014B.ttf
├── RG2014C.ttf
├── RG2014D.ttf
├── RG2014E.ttf
├── RG2014EM.ttf
├── RG2014F.ttf
├── RG2014EEM.ttf
├── roadgeek_2005_arrows_1-webfont.eot
├── roadgeek_2005_arrows_1-webfont.ttf
├── roadgeek_2005_arrows_2-webfont.eot
├── roadgeek_2005_arrows_2-webfont.ttf
├── roadgeek_2005_series_c-webfont.eot
├── roadgeek_2005_series_c-webfont.ttf
├── roadgeek_2005_series_d-webfont.eot
├── roadgeek_2005_series_d-webfont.ttf
├── roadgeek_2005_series_e-webfont.eot
├── roadgeek_2005_series_e-webfont.ttf
├── roadgeek_2005_arrows_1-webfont.woff
├── roadgeek_2005_arrows_1-webfont.woff2
├── roadgeek_2005_arrows_2-webfont.woff
├── roadgeek_2005_arrows_2-webfont.woff2
├── roadgeek_2005_old_parks-webfont.eot
├── roadgeek_2005_old_parks-webfont.ttf
├── roadgeek_2005_old_parks-webfont.woff
├── roadgeek_2005_old_parks-webfont.woff2
├── roadgeek_2005_series_c-webfont.woff
├── roadgeek_2005_series_c-webfont.woff2
├── roadgeek_2005_series_d-webfont.woff
├── roadgeek_2005_series_d-webfont.woff2
├── roadgeek_2005_series_e-webfont.woff
├── roadgeek_2005_series_e-webfont.woff2
├── roadgeek_2005_series_em-webfont.eot
├── roadgeek_2005_series_em-webfont.ttf
├── roadgeek_2005_series_em-webfont.woff
├── roadgeek_2005_series_em-webfont.woff2
├── roadgeek_2005_mittelschrift-webfont.eot
├── roadgeek_2005_mittelschrift-webfont.ttf
├── roadgeek_2005_mittelschrift-webfont.woff
└── roadgeek_2005_mittelschrift-webfont.woff2
├── img
├── example
│ ├── image.png
│ └── nh-to-maine-95.png
├── select.svg
├── shields-with-backs
│ ├── NL-2.svg
│ ├── NL-3.svg
│ ├── VA-2.svg
│ ├── VA-3.svg
│ ├── WI-2.svg
│ ├── rec2-3.svg
│ ├── TN2-2.svg
│ ├── TN2-3.svg
│ ├── MI-2.svg
│ ├── rec-2.svg
│ ├── rec-3.svg
│ ├── US-3.svg
│ ├── US-2.svg
│ ├── VA2-2.svg
│ ├── cir-2.svg
│ ├── elp-2.svg
│ ├── PA-3.svg
│ ├── rec2-2.svg
│ ├── PA-2.svg
│ ├── WA-2.svg
│ ├── NE-2-LINK.svg
│ ├── NS-3-CONN.svg
│ ├── NC-2.svg
│ ├── FL-2.svg
│ ├── FL-3.svg
│ ├── CO-2.svg
│ ├── CO-3.svg
│ ├── OH-3.svg
│ ├── OK-3.svg
│ ├── OH-2.svg
│ ├── elp-3.svg
│ ├── NY-2.svg
│ ├── NY-3.svg
│ ├── AR-3.svg
│ ├── OK-2.svg
│ ├── cir-3.svg
│ ├── AR-2.svg
│ ├── IN-2.svg
│ ├── IN-3.svg
│ ├── FL-2-TOLL.svg
│ ├── RI-3.svg
│ ├── RI-2.svg
│ ├── MT-2.svg
│ ├── TX-2.svg
│ ├── MT-3.svg
│ ├── OR-2.svg
│ ├── AZ-3.svg
│ ├── AL-2.svg
│ ├── MD-2.svg
│ ├── MD-3.svg
│ ├── UT-2.svg
│ ├── AL-3.svg
│ ├── OR-3.svg
│ ├── MO-2.svg
│ ├── MO-3.svg
│ ├── AZ-2.svg
│ ├── IL-2.svg
│ ├── AK-2.svg
│ └── AK-3.svg
├── shields-without-backs
│ ├── NL-2.svg
│ ├── NL-3.svg
│ ├── rec2-3.svg
│ ├── rec-3.svg
│ ├── rec-2.svg
│ ├── MI-2.svg
│ ├── US-3.svg
│ ├── US-2.svg
│ ├── rec2-2.svg
│ ├── WI-2.svg
│ ├── NE-LINK.svg
│ ├── NS-3-CONN.svg
│ ├── TN2-3.svg
│ ├── TN2-2.svg
│ ├── VA-2.svg
│ ├── NC-2.svg
│ ├── FL-2.svg
│ ├── FL-3.svg
│ ├── CO-2.svg
│ ├── VA-3.svg
│ ├── PA-3.svg
│ ├── OK-3.svg
│ ├── PA-2.svg
│ ├── elp-3.svg
│ ├── NY-2.svg
│ ├── OK-2.svg
│ ├── AR-3.svg
│ ├── NY-3.svg
│ ├── VA2-2.svg
│ ├── cir-2.svg
│ ├── elp-2.svg
│ ├── cir-3.svg
│ ├── IN-2.svg
│ ├── AR-2.svg
│ ├── IN-3.svg
│ ├── FL-2-TOLL.svg
│ ├── RI-3.svg
│ ├── RI-2.svg
│ ├── MT-2.svg
│ ├── TX-2.svg
│ ├── MT-3.svg
│ ├── AL-2.svg
│ ├── MD-2.svg
│ ├── MD-3.svg
│ ├── AL-3.svg
│ ├── AZ-3.svg
│ ├── MO-2.svg
│ ├── MO-3.svg
│ └── IL-2.svg
└── other-symbols
│ └── QC-Exit.svg
├── README.md
├── js
├── ExitTab.js
├── Panel.js
├── lib.js
├── Shield.js
└── Sign.js
└── css
└── form.css
/.gitignore:
--------------------------------------------------------------------------------
1 | # macOS
2 | .DS_Store
3 | ._*
4 |
5 | # Windows
6 | Thumbs.db
7 |
--------------------------------------------------------------------------------
/fonts/RG2014B.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/RG2014B.ttf
--------------------------------------------------------------------------------
/fonts/RG2014C.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/RG2014C.ttf
--------------------------------------------------------------------------------
/fonts/RG2014D.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/RG2014D.ttf
--------------------------------------------------------------------------------
/fonts/RG2014E.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/RG2014E.ttf
--------------------------------------------------------------------------------
/fonts/RG2014EM.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/RG2014EM.ttf
--------------------------------------------------------------------------------
/fonts/RG2014F.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/RG2014F.ttf
--------------------------------------------------------------------------------
/fonts/RG2014EEM.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/RG2014EEM.ttf
--------------------------------------------------------------------------------
/img/example/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/img/example/image.png
--------------------------------------------------------------------------------
/img/example/nh-to-maine-95.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/img/example/nh-to-maine-95.png
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_arrows_1-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_arrows_1-webfont.eot
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_arrows_1-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_arrows_1-webfont.ttf
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_arrows_2-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_arrows_2-webfont.eot
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_arrows_2-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_arrows_2-webfont.ttf
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_c-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_c-webfont.eot
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_c-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_c-webfont.ttf
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_d-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_d-webfont.eot
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_d-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_d-webfont.ttf
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_e-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_e-webfont.eot
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_e-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_e-webfont.ttf
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_arrows_1-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_arrows_1-webfont.woff
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_arrows_1-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_arrows_1-webfont.woff2
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_arrows_2-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_arrows_2-webfont.woff
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_arrows_2-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_arrows_2-webfont.woff2
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_old_parks-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_old_parks-webfont.eot
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_old_parks-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_old_parks-webfont.ttf
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_old_parks-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_old_parks-webfont.woff
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_old_parks-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_old_parks-webfont.woff2
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_c-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_c-webfont.woff
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_c-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_c-webfont.woff2
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_d-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_d-webfont.woff
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_d-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_d-webfont.woff2
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_e-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_e-webfont.woff
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_e-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_e-webfont.woff2
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_em-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_em-webfont.eot
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_em-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_em-webfont.ttf
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_em-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_em-webfont.woff
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_series_em-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_series_em-webfont.woff2
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_mittelschrift-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_mittelschrift-webfont.eot
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_mittelschrift-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_mittelschrift-webfont.ttf
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_mittelschrift-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_mittelschrift-webfont.woff
--------------------------------------------------------------------------------
/fonts/roadgeek_2005_mittelschrift-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dki-os/SignMaker/HEAD/fonts/roadgeek_2005_mittelschrift-webfont.woff2
--------------------------------------------------------------------------------
/img/select.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
--------------------------------------------------------------------------------
/img/shields-with-backs/NL-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/img/shields-with-backs/NL-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/img/shields-without-backs/NL-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/img/shields-without-backs/NL-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/img/other-symbols/QC-Exit.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/img/shields-with-backs/VA-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
--------------------------------------------------------------------------------
/img/shields-with-backs/VA-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Sign Maker
2 |
3 | 
4 |
5 | A JavaScript-based app for creating highway guide signs. Based off of [Kurumi's Sign Maker](http://www.kurumi.com/roads/signmaker). Allows for the creation of highway guide signs in the style defined by the United States FHWA in their [MUTCD](https://mutcd.fhwa.dot.gov/kno_2009r1r2.htm).
6 |
7 | ## Acknowledgements
8 |
9 | Typefaces sourced from the [Roadgeek 2005 Font Family by Michael Adams](https://n1en.org/roadgeek-fonts/).
10 | Route shields are sourced from [Wikipedia](https://en.wikipedia.org/wiki/Numbered_highways_in_the_United_States).
11 |
12 | ## License
13 |
14 | [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.txt)
15 |
--------------------------------------------------------------------------------
/img/shields-with-backs/WI-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
--------------------------------------------------------------------------------
/img/shields-with-backs/rec2-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
--------------------------------------------------------------------------------
/img/shields-without-backs/rec2-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
--------------------------------------------------------------------------------
/js/ExitTab.js:
--------------------------------------------------------------------------------
1 | class ExitTab {
2 | /**
3 | * Creates a new ExitTab.
4 | * @param {string} number - Number to display on the exit tab.
5 | * @param {string} [position=null] - Position to display the exit tab relative to the sign.
6 | * @param {string} [width=null] - Width of the exit tab (narrow or wide).
7 | */
8 | constructor (number = null, position = null, width = null) {
9 | this.number = number;
10 | if (this.positions.includes(position)) {
11 | this.position = position;
12 | } else {
13 | this.position = this.positions[1];
14 | }
15 | if (this.widths.includes(width)) {
16 | this.width = width;
17 | } else {
18 | this.width = this.widths[0];
19 | }
20 | }
21 | }
22 |
23 | ExitTab.prototype.positions = ["Left", "Center", "Right"];
24 | ExitTab.prototype.widths = ["Narrow", "Wide", "Full", "Edge"];
25 |
--------------------------------------------------------------------------------
/img/shields-with-backs/TN2-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
--------------------------------------------------------------------------------
/js/Panel.js:
--------------------------------------------------------------------------------
1 | class Panel {
2 | /**
3 | * Creates a new Panel consisting of a sign and an exit tab.
4 | * @param {string} color - Background color of the sign and exit tab.
5 | * @param {Sign} sign - Sign to make up the panel.
6 | * @param {String} corner - Choice of Sharp or Rounded Corners on the Panel
7 | * @param {ExitTab} [exitTab=null] - Optional exit tab to include in the panel.
8 | */
9 | constructor(sign, color, exitTab = null, corner) {
10 | if (Object.keys(lib.colors).includes(color)) {
11 | this.color = color;
12 | } else {
13 | this.color = "Green";
14 | }
15 | if (Object.keys(this.cornerType).includes(corner)) {
16 | this.corner = corner;
17 | } else {
18 | this.corner = this.cornerType[0];
19 | }
20 | this.sign = sign;
21 | this.exitTab = exitTab;
22 | }
23 | }
24 | Panel.prototype.cornerType = ["Round", "Sharp"];
25 |
--------------------------------------------------------------------------------
/img/shields-with-backs/TN2-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
--------------------------------------------------------------------------------
/img/shields-with-backs/MI-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
--------------------------------------------------------------------------------
/img/shields-with-backs/rec-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/img/shields-with-backs/rec-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/img/shields-without-backs/rec-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/img/shields-without-backs/rec-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/img/shields-without-backs/MI-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/img/shields-with-backs/US-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
--------------------------------------------------------------------------------
/img/shields-with-backs/US-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
--------------------------------------------------------------------------------
/img/shields-without-backs/US-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/img/shields-without-backs/US-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/img/shields-with-backs/VA2-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
--------------------------------------------------------------------------------
/img/shields-with-backs/cir-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
--------------------------------------------------------------------------------
/img/shields-with-backs/elp-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
--------------------------------------------------------------------------------
/img/shields-with-backs/PA-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
--------------------------------------------------------------------------------
/img/shields-with-backs/rec2-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/img/shields-with-backs/PA-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
--------------------------------------------------------------------------------
/img/shields-with-backs/WA-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
--------------------------------------------------------------------------------
/img/shields-without-backs/rec2-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/img/shields-without-backs/WI-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
20 |
--------------------------------------------------------------------------------
/img/shields-with-backs/NE-2-LINK.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
20 |
--------------------------------------------------------------------------------
/img/shields-without-backs/NE-LINK.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
21 |
--------------------------------------------------------------------------------
/img/shields-with-backs/NS-3-CONN.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
--------------------------------------------------------------------------------
/img/shields-without-backs/NS-3-CONN.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
--------------------------------------------------------------------------------
/img/shields-without-backs/TN2-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
21 |
--------------------------------------------------------------------------------
/img/shields-without-backs/TN2-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/img/shields-with-backs/NC-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
20 |
--------------------------------------------------------------------------------
/img/shields-without-backs/VA-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/img/shields-with-backs/FL-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
--------------------------------------------------------------------------------
/img/shields-without-backs/NC-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/img/shields-without-backs/FL-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
--------------------------------------------------------------------------------
/img/shields-with-backs/FL-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
--------------------------------------------------------------------------------
/img/shields-without-backs/FL-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
--------------------------------------------------------------------------------
/img/shields-with-backs/CO-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/img/shields-with-backs/CO-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/img/shields-without-backs/CO-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/img/shields-without-backs/VA-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/img/shields-without-backs/PA-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/img/shields-with-backs/OH-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/img/shields-with-backs/OK-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
--------------------------------------------------------------------------------
/img/shields-without-backs/OK-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
--------------------------------------------------------------------------------
/img/shields-without-backs/PA-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
20 |
--------------------------------------------------------------------------------
/img/shields-with-backs/OH-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
21 |
--------------------------------------------------------------------------------
/img/shields-with-backs/elp-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
20 |
--------------------------------------------------------------------------------
/img/shields-without-backs/elp-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
20 |
--------------------------------------------------------------------------------
/img/shields-with-backs/NY-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/img/shields-without-backs/NY-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
24 |
--------------------------------------------------------------------------------
/img/shields-with-backs/NY-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
23 |
--------------------------------------------------------------------------------
/img/shields-with-backs/AR-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
18 |
--------------------------------------------------------------------------------
/img/shields-with-backs/OK-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/img/shields-without-backs/OK-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/img/shields-without-backs/AR-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
18 |
--------------------------------------------------------------------------------
/img/shields-without-backs/NY-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
25 |
--------------------------------------------------------------------------------
/img/shields-without-backs/VA2-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/img/shields-without-backs/cir-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/img/shields-without-backs/elp-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/img/shields-with-backs/cir-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
21 |
--------------------------------------------------------------------------------
/img/shields-without-backs/cir-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
21 |
--------------------------------------------------------------------------------
/img/shields-with-backs/AR-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
18 |
--------------------------------------------------------------------------------
/img/shields-with-backs/IN-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
25 |
--------------------------------------------------------------------------------
/img/shields-without-backs/IN-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
25 |
--------------------------------------------------------------------------------
/img/shields-without-backs/AR-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/img/shields-with-backs/IN-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
26 |
--------------------------------------------------------------------------------
/img/shields-without-backs/IN-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
26 |
--------------------------------------------------------------------------------
/img/shields-with-backs/FL-2-TOLL.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/img/shields-without-backs/FL-2-TOLL.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/img/shields-with-backs/RI-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
29 |
--------------------------------------------------------------------------------
/img/shields-without-backs/RI-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
29 |
--------------------------------------------------------------------------------
/img/shields-with-backs/RI-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
30 |
--------------------------------------------------------------------------------
/img/shields-without-backs/RI-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
30 |
--------------------------------------------------------------------------------
/css/form.css:
--------------------------------------------------------------------------------
1 | form {
2 | background-color: rgba(255, 255, 255, 0.125);
3 |
4 | width: -moz-max-content;
5 | width: -webkit-max-content;
6 | width: intrinsic;
7 | margin: 1rem auto 0;
8 | padding: 0.5rem;
9 | }
10 |
11 | form, select, input, textarea {
12 | font-family: "Series E";
13 | font-size: 1rem;
14 | }
15 |
16 | select, input, textarea, label, legend {
17 | width: 7.5rem;
18 | margin: 0.25rem;
19 | }
20 |
21 | select, input, textarea {
22 | background-color: rgb(230, 230, 230);
23 | border: none;
24 | border-radius: 0.25rem;
25 |
26 | padding: 0.25rem;
27 | }
28 |
29 | select {
30 | background: rgb(230, 230, 230) url(../img/select.svg) no-repeat right ;
31 | -moz-appearance: none;
32 | -webkit-appearance: none;
33 | appearance: none;
34 |
35 | padding-right: 17px;
36 | }
37 |
38 | input[type=button] {
39 | -moz-appearance: none;
40 | -webkit-appearance: none;
41 | appearance: none;
42 |
43 | cursor: pointer;
44 | transition: background-color 0.5s;
45 | }
46 | input[type=button]:hover {
47 | background-color: rgb(160, 160, 160);
48 | }
49 | input[type=checkbox] {
50 | width: auto;
51 | }
52 | textarea {
53 | min-width: 15.5rem;
54 | }
55 |
56 | label {
57 | text-align: right;
58 | display: inline-block;
59 | }
60 |
61 | .shiftButton {
62 | width: 3.5rem;
63 | }
64 |
65 | #shieldBacksLabel {
66 | width: auto;
67 | }
68 |
69 | fieldset {
70 | border: none;
71 | margin: 0.5rem 0;
72 | }
73 |
74 | #shields div {
75 | border-radius: 0.25rem;
76 |
77 | width: -moz-max-content;
78 | width: -webkit-max-content;
79 | width: intrinsic;
80 | margin-left: 0.25rem;
81 | }
82 | #shields div:nth-child(odd) {
83 | background-color: rgba(255, 255, 255, 0.33);
84 | }
85 | #shields label, #shields select:first-of-type {
86 | width: auto;
87 | }
88 | #shields label {
89 | margin: 0;
90 | }
91 |
92 | #controlCitiesLabel {
93 | position: relative;
94 | top: -5rem;
95 | }
96 |
97 | #guideArrowLanes {
98 | width: 2.25rem;
99 | }
100 |
101 | #actionMessage {
102 | width: 15.75rem;
103 | }
104 | #oSNum {
105 | margin-left: 8.5rem;
106 | }
107 |
108 | input[value="New Shield"], input[value="New Sign"] {
109 | margin-bottom: 0.75rem;
110 | }
111 | input[value=Delete]:hover {
112 | background-color: rgb(255, 200, 200);
113 | }
114 |
--------------------------------------------------------------------------------
/img/shields-with-backs/MT-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
26 |
--------------------------------------------------------------------------------
/img/shields-with-backs/TX-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
31 |
--------------------------------------------------------------------------------
/img/shields-without-backs/MT-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
26 |
--------------------------------------------------------------------------------
/img/shields-without-backs/TX-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
31 |
--------------------------------------------------------------------------------
/img/shields-with-backs/MT-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
26 |
--------------------------------------------------------------------------------
/img/shields-without-backs/MT-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
26 |
--------------------------------------------------------------------------------
/js/lib.js:
--------------------------------------------------------------------------------
1 | const lib = (function() {
2 |
3 | /**
4 | * Clears out the children from a given element.
5 | * @param {Element} parentElmt - Parent element to be cleared of children.
6 | */
7 | const clearChildren = function(parentElmt) {
8 | while (parentElmt.firstChild) {
9 | parentElmt.removeChild(parentElmt.firstChild);
10 | }
11 | };
12 |
13 | /**
14 | * Creates and appends an option element to a given Select element.
15 | * @param {Element} selectElmt - Select element to be appended to.
16 | * @param {string} value - Value to be held by the option.
17 | * @param {boolean} [selected=false] - Whether or not the new option should be auto-selected.
18 | * @param {string} [text] - Display text for the option.
19 | */
20 | const appendOption = function(selectElmt, value, {selected = false, text} = {}) {
21 | if (!text) {
22 | text = value;
23 | }
24 | const optionElmt = document.createElement("option");
25 | optionElmt.value = value;
26 | optionElmt.selected = selected;
27 | optionElmt.appendChild(document.createTextNode(text));
28 | selectElmt.appendChild(optionElmt);
29 | };
30 |
31 | // FHW-defined colors.
32 | const colors = {
33 | Green : "rgb(0, 95, 77)",
34 | Blue : "rgb(0, 67, 123)",
35 | Brown : "rgb(98, 51, 30)",
36 | Yellow : "rgb(255, 178, 0)",
37 | White : "rgb(255, 255, 255)",
38 | Black : "rgb(0, 0, 0)"
39 | };
40 |
41 | const specialCharacters = {
42 | sideLeftArrow : "h", // "h" is left-side up arrow in Roadgeek 2005 Arrows 1
43 | sideRightArrow : "H", // "H" is right-side up arrow in Roadgeek 2005 Arrows 1
44 |
45 | "Left/Down Arrow" : "f", // "f" is left-down arrow in Roadgeek 2005 Arrows 1
46 | "Left/Up Arrow" : "F",
47 | "Left Arrow" : "j", // "j" is left arrow in Roadgeek 2005 Arrows 1
48 | "Right/Down Arrow" : "F", // "F" is right-down arrow in Roadgeek 2005 Arrows 1
49 | "Right/Up Arrow" : "f",
50 | "Right Arrow" : "J", // "J" is right arrow in Roadgeek 2005 Arrows 1
51 |
52 | "Up Arrow" : "4", // "4" is up arrow in Roadgeek 2005 Arrows 2
53 | "Down Arrow" : "$" // "$" is down arrow in roadgeek 2005 arrows 2
54 | };
55 |
56 | const shieldPositions = {
57 | Left : "row",
58 | Above : "column",
59 | Right : "row-reverse"
60 | };
61 |
62 | return {
63 | clearChildren : clearChildren,
64 | appendOption : appendOption,
65 | colors : colors,
66 | specialCharacters : specialCharacters,
67 | shieldPositions : shieldPositions
68 | };
69 | })();
70 |
--------------------------------------------------------------------------------
/img/shields-with-backs/OR-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
26 |
--------------------------------------------------------------------------------
/img/shields-with-backs/AZ-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
26 |
--------------------------------------------------------------------------------
/img/shields-with-backs/AL-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
24 |
--------------------------------------------------------------------------------
/img/shields-with-backs/MD-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
30 |
--------------------------------------------------------------------------------
/img/shields-with-backs/MD-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
30 |
--------------------------------------------------------------------------------
/img/shields-without-backs/AL-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
24 |
--------------------------------------------------------------------------------
/img/shields-without-backs/MD-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
30 |
--------------------------------------------------------------------------------
/img/shields-without-backs/MD-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
30 |
--------------------------------------------------------------------------------
/img/shields-with-backs/UT-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
34 |
--------------------------------------------------------------------------------
/img/shields-with-backs/AL-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
24 |
--------------------------------------------------------------------------------
/img/shields-without-backs/AL-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
25 |
--------------------------------------------------------------------------------
/img/shields-with-backs/OR-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
28 |
--------------------------------------------------------------------------------
/img/shields-without-backs/AZ-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
25 |
--------------------------------------------------------------------------------
/img/shields-with-backs/MO-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
33 |
--------------------------------------------------------------------------------
/img/shields-with-backs/MO-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
33 |
--------------------------------------------------------------------------------
/img/shields-without-backs/MO-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
34 |
--------------------------------------------------------------------------------
/img/shields-without-backs/MO-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
34 |
--------------------------------------------------------------------------------
/js/Shield.js:
--------------------------------------------------------------------------------
1 | class Shield {
2 | /**
3 | * Creates anew a route shield.
4 | * @param {string} [type="I-"] - Type of shield.
5 | * @param {number} [routeNumber="1"] - Route number to display on shield.
6 | * @param {boolean} [to=false] - Whether or not the shield should be signed as "TO".
7 | * @param {string} [bannerType] - Directional banner to display.
8 | * @param {string} [bannerPosition] - Where to place the directional banner relative to the shield.
9 | */
10 | constructor({type = "I", routeNumber = "1", to = false, bannerType, bannerPosition} = {}) {
11 | if (Object.keys(this.types).includes(type)) {
12 | this.type = type;
13 | } else {
14 | this.type = "I";
15 | }
16 | this.type = type;
17 | this.routeNumber = routeNumber;
18 | this.to = to;
19 | if (this.bannerTypes.includes(bannerType)) {
20 | this.bannerType = bannerType;
21 | } else {
22 | this.bannerType = this.bannerTypes[0];
23 | }
24 | if (this.bannerPositions.includes(bannerPosition)) {
25 | this.bannerPosition = bannerPosition;
26 | } else {
27 | this.bannerPosition = this.bannerPositions[0];
28 | }
29 | }
30 | }
31 |
32 | Shield.prototype.bannerTypes = [
33 | "None",
34 | "Arterial",
35 | "North",
36 | "East",
37 | "South",
38 | "West",
39 | "Jct",
40 | "Begin",
41 | "End",
42 | "Spur",
43 | "Alt",
44 | "Truck",
45 | "Trunk",
46 | "Bus",
47 | "Byp",
48 | "Loop",
49 | "Express",
50 | "Local",
51 | "Inner",
52 | "Outer",
53 | "Future",
54 | "Toll",
55 | "City",
56 | "Conn",
57 | "To"
58 | ];
59 | Shield.prototype.bannerPositions = ["Above", "Right", "Left"];
60 | Shield.prototype.types = {
61 | "I-" : "I",
62 | "US" : "US",
63 | "AL" : "AL",
64 | "AK" : "AK",
65 | "AZ" : "AZ",
66 | "AR" : "AR",
67 | "CA" : "CA",
68 | "CO" : "CO",
69 | "CT" : "rec2",
70 | "DE" : "cir",
71 | "DC" : "DC",
72 | "FL" : "FL",
73 | "GA" : "GA",
74 | "HI" : "HI",
75 | "ID" : "ID",
76 | "IL" : "IL",
77 | "IN" : "IN",
78 | "IA" : "cir",
79 | "KS" : "KS",
80 | "KY" : "cir",
81 | "LA" : "LA",
82 | "ME" : "rec",
83 | "MD" : "MD",
84 | "MA" : "rec",
85 | "MI" : "MI",
86 | "MN" : "MN",
87 | "MS" : "elp",
88 | "MO" : "MO",
89 | "MT" : "MT",
90 | "MT 2nd" : "MT2",
91 | "NB" : "NB",
92 | "NE" : "NE",
93 | "NL" : "NL",
94 | "NS" : "NS",
95 | "NV" : "NV",
96 | "NH" : "NH",
97 | "NJ" : "elp",
98 | "NM" : "NM",
99 | "NY" : "NY",
100 | "NC" : "NC",
101 | "ND" : "ND",
102 | "OH" : "OH",
103 | "OK" : "OK",
104 | "OR" : "OR",
105 | "PA" : "PA",
106 | "PEI" : "PEI",
107 | "QC" : "QC",
108 | "QC 2nd" : "QC2",
109 | "RI" : "RI",
110 | "SC" : "SC",
111 | "SD" : "SD",
112 | "TN" : "TN",
113 | "TN 2nd" : "TN2",
114 | "TX" : "TX",
115 | "UT" : "UT",
116 | "VT" : "VT",
117 | "VT 2nd" : "cir",
118 | "VA" : "VA",
119 | "VA 2nd" : "VA2",
120 | "WA" : "WA",
121 | "WV" : "rec2",
122 | "WI" : "WI",
123 | "WY" : "WY",
124 | "C-" : "C"
125 | };
126 |
--------------------------------------------------------------------------------
/img/shields-with-backs/AZ-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
29 |
--------------------------------------------------------------------------------
/js/Sign.js:
--------------------------------------------------------------------------------
1 | class Sign {
2 |
3 | /**
4 | * Cretes a new sign.
5 | * @param {Object} [opt] - Optional parameters.
6 | * @param {string} [opt.controlText="New Sign"] - Control cities to display on the sign.
7 | * @param {string} [opt.shieldPosition] - Where the shields should be displayed relative to the control cities.
8 | * @param {boolean} [opt.shieldBacks=false] - Whether or not shields should be displayed with backings.
9 | * @param {string} [opt.guideArrow] - Which guide arrow to display on the sign, if any.
10 | * @param {number} [opt.guideArrowLanes=1] - Number of lanes actoss to display guide arrows.
11 | * @param {string} [opt.otherSymbols] - Other symbols on the bottom of signs (like Quebec style exit markers)
12 | * @param {string} [opt.oSNum=""] - Number to place on otherSymbol
13 | * @param {string} [opt.actionMessage=""] - Custom subtext to display on the sign.
14 | * @param {Shield[]} [opt.shields] - Array of shields to include on sign.
15 | */
16 | constructor({
17 | controlText = "New Sign",
18 | shieldPosition,
19 | shieldBacks = false,
20 | guideArrow,
21 | guideArrowLanes = 1,
22 | otherSymbol,
23 | oSNum = "",
24 | actionMessage = "",
25 | shields = []
26 | } = {}
27 | ) {
28 | this.controlText = controlText;
29 | if (this.shieldPositions.includes(shieldPosition)) {
30 | this.shieldPosition = shieldPosition;
31 | } else {
32 | this.shieldPosition = "Above";
33 | }
34 | if (this.otherSymbols.includes(otherSymbol)) {
35 | this.otherSymbol = otherSymbol;
36 | }
37 | else {
38 | this.otherSymbol = "None";
39 | }
40 | this.shieldBacks = shieldBacks;
41 | if (this.guideArrows.includes(guideArrow)) {
42 | this.guideArrow = guideArrow;
43 | } else {
44 | this.guideArrow = "None";
45 | }
46 | if (guideArrowLanes >= 0 && guideArrowLanes <= 6) {
47 | this.guideArrowLanes = guideArrowLanes;
48 | } else {
49 | this.guideArrowLanes = 0;
50 | }
51 | this.oSNum = oSNum;
52 | this.actionMessage = actionMessage;
53 | this.shields = shields;
54 | }
55 |
56 | /**
57 | * Create a new shield for the post. Add it to the end of the list of existing shields.
58 | */
59 | newShield() {
60 | const newShield = new Shield();
61 | this.shields.push(newShield);
62 | }
63 |
64 | /**
65 | * Delete an existing shield at the requested index.
66 | * @param {number} shieldIndex - Position of the shield in the array of shields on this sign to delete.
67 | */
68 | deleteShield(shieldIndex) {
69 | this.shields.splice(shieldIndex, 1);
70 | }
71 | }
72 |
73 | Sign.prototype.shieldPositions = ["Left", "Above", "Right"];
74 | Sign.prototype.guideArrows = [
75 | "None",
76 | "Side Left",
77 | "Side Right",
78 | "Exit Only",
79 | "Left/Down Arrow",
80 | "Left Arrow",
81 | "Left/Up Arrow",
82 | "Right/Down Arrow",
83 | "Right Arrow",
84 | "Right/Up Arrow",
85 | "Down Arrow",
86 | "Up Arrow"
87 | ];
88 | Sign.prototype.otherSymbols = [
89 | "None",
90 | "Quebec-Style Exit Marker",
91 | "Quebec-Left"
92 | ]
93 |
--------------------------------------------------------------------------------
/img/shields-with-backs/IL-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
32 |
--------------------------------------------------------------------------------
/img/shields-without-backs/IL-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
32 |
--------------------------------------------------------------------------------
/img/shields-with-backs/AK-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
38 |
--------------------------------------------------------------------------------
/img/shields-with-backs/AK-3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
38 |
--------------------------------------------------------------------------------