Separated some actor edit types into dedicated components.
|
@ -31,3 +31,15 @@ body {
|
||||||
margin: 0 0 1rem 0;
|
margin: 0 0 1rem 0;
|
||||||
color: var(--primary);
|
color: var(--primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon.icon-twitter {
|
||||||
|
fill: #008ad8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon.icon-onlyfans {
|
||||||
|
fill: #00adef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon.icon-fansly {
|
||||||
|
fill: #2699f6;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
viewBox="0 0 725.59998 198.3"
|
||||||
|
version="1.1"
|
||||||
|
id="svg6"
|
||||||
|
width="725.59998"
|
||||||
|
height="198.3">
|
||||||
|
<metadata
|
||||||
|
id="metadata12">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs10" />
|
||||||
|
<path
|
||||||
|
d="m 105.9,83.2 c -5.7,0 -10.2,4.9 -10.2,11 0,6.1 4.6,11 10.2,11 5.7,0 10.2,-4.9 10.2,-11 0,-6.1 -4.6,-11 -10.2,-11 z m -36.5,0 c -5.7,0 -10.2,4.9 -10.2,11 0,6.1 4.6,11 10.2,11 5.7,0 10.2,-4.9 10.2,-11 0.1,-6.1 -4.5,-11 -10.2,-11 z"
|
||||||
|
id="path2" />
|
||||||
|
<path
|
||||||
|
d="M 154.5,0 H 20.5 C 9.2,0 0,9.2 0,20.5 v 134 C 0,165.8 9.2,175 20.5,175 h 113.4 l -5.3,-18.3 12.8,11.8 12.1,11.1 21.6,18.7 V 20.5 C 175,9.2 165.8,0 154.5,0 Z m -38.6,129.5 c 0,0 -3.6,-4.3 -6.6,-8 13.1,-3.7 18.1,-11.8 18.1,-11.8 -4.1,2.7 -8,4.6 -11.5,5.9 -5,2.1 -9.8,3.4 -14.5,4.3 -9.6,1.8 -18.4,1.3 -25.9,-0.1 -5.7,-1.1 -10.6,-2.6 -14.7,-4.3 -2.3,-0.9 -4.8,-2 -7.3,-3.4 -0.3,-0.2 -0.6,-0.3 -0.9,-0.5 -0.2,-0.1 -0.3,-0.2 -0.4,-0.2 -1.8,-1 -2.8,-1.7 -2.8,-1.7 0,0 4.8,7.9 17.5,11.7 -3,3.8 -6.7,8.2 -6.7,8.2 C 38.1,128.9 29.7,114.5 29.7,114.5 29.7,82.6 44.1,56.7 44.1,56.7 58.5,46 72.1,46.3 72.1,46.3 l 1,1.2 c -18,5.1 -26.2,13 -26.2,13 0,0 2.2,-1.2 5.9,-2.8 10.7,-4.7 19.2,-5.9 22.7,-6.3 0.6,-0.1 1.1,-0.2 1.7,-0.2 6.1,-0.8 13,-1 20.2,-0.2 9.5,1.1 19.7,3.9 30.1,9.5 0,0 -7.9,-7.5 -24.9,-12.6 l 1.4,-1.6 c 0,0 13.7,-0.3 28,10.4 0,0 14.4,25.9 14.4,57.8 0,-0.1 -8.4,14.3 -30.5,15 z m 151,-86.7 H 233.7 V 80.1 L 255.8,100 V 63.8 h 11.8 c 7.5,0 11.2,3.6 11.2,9.4 v 27.7 c 0,5.8 -3.5,9.7 -11.2,9.7 h -34 v 21.1 h 33.2 c 17.8,0.1 34.5,-8.8 34.5,-29.2 V 72.7 C 301.4,51.9 284.7,42.8 266.9,42.8 Z m 174,59.7 V 71.9 c 0,-11 19.8,-13.5 25.8,-2.5 L 485,62 C 477.8,46.2 464.7,41.6 453.8,41.6 436,41.6 418.4,51.9 418.4,71.9 v 30.6 c 0,20.2 17.6,30.3 35,30.3 11.2,0 24.6,-5.5 32,-19.9 l -19.6,-9 c -4.8,12.3 -24.9,9.3 -24.9,-1.4 z M 380.4,76.1 c -6.9,-1.5 -11.5,-4 -11.8,-8.3 0.4,-10.3 16.3,-10.7 25.6,-0.8 l 14.7,-11.3 c -9.2,-11.2 -19.6,-14.2 -30.3,-14.2 -16.3,0 -32.1,9.2 -32.1,26.6 0,16.9 13,26 27.3,28.2 7.3,1 15.4,3.9 15.2,8.9 -0.6,9.5 -20.2,9 -29.1,-1.8 l -14.2,13.3 c 8.3,10.7 19.6,16.1 30.2,16.1 16.3,0 34.4,-9.4 35.1,-26.6 C 412,84.5 396.2,79 380.4,76.1 Z m -67,55.5 h 22.4 V 42.8 H 313.4 Z M 691.1,42.8 H 657.9 V 80.1 L 680,100 V 63.8 h 11.8 c 7.5,0 11.2,3.6 11.2,9.4 v 27.7 c 0,5.8 -3.5,9.7 -11.2,9.7 h -34 v 21.1 h 33.3 c 17.8,0.1 34.5,-8.8 34.5,-29.2 V 72.7 c 0,-20.8 -16.7,-29.9 -34.5,-29.9 z M 528.2,41.6 c -18.4,0 -36.7,10 -36.7,30.5 v 30.3 c 0,20.3 18.4,30.5 36.9,30.5 18.4,0 36.7,-10.2 36.7,-30.5 V 72.1 c 0,-20.4 -18.5,-30.5 -36.9,-30.5 z m 14.4,60.8 c 0,6.4 -7.2,9.7 -14.3,9.7 -7.2,0 -14.4,-3.1 -14.4,-9.7 V 72.1 c 0,-6.5 7,-10 14,-10 7.3,0 14.7,3.1 14.7,10 z M 645.5,72.1 C 645,51.3 630.8,42.9 612.5,42.9 H 577 v 88.8 h 22.7 v -28.2 h 4 l 20.6,28.2 h 28 l -24.2,-30.5 c 10.7,-3.4 17.4,-12.7 17.4,-29.1 z m -32.6,12 H 599.7 V 63.8 h 13.2 c 14.1,0 14.1,20.3 0,20.3 z"
|
||||||
|
id="path4" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.3 KiB |
|
@ -1,15 +1,15 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<svg
|
<svg
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
viewBox="0 0 200 200"
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 725.59998 198.3"
|
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="svg6"
|
id="svg6"
|
||||||
width="725.59998"
|
width="200"
|
||||||
height="198.3">
|
height="200"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata12">
|
id="metadata12">
|
||||||
<rdf:RDF>
|
<rdf:RDF>
|
||||||
|
@ -18,16 +18,15 @@
|
||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
<defs
|
<defs
|
||||||
id="defs10" />
|
id="defs10" />
|
||||||
<path
|
<path
|
||||||
d="m 105.9,83.2 c -5.7,0 -10.2,4.9 -10.2,11 0,6.1 4.6,11 10.2,11 5.7,0 10.2,-4.9 10.2,-11 0,-6.1 -4.6,-11 -10.2,-11 z m -36.5,0 c -5.7,0 -10.2,4.9 -10.2,11 0,6.1 4.6,11 10.2,11 5.7,0 10.2,-4.9 10.2,-11 0.1,-6.1 -4.5,-11 -10.2,-11 z"
|
d="m 118.35,84.05 c -5.7,0 -10.2,4.9 -10.2,11 0,6.1 4.6,11 10.2,11 5.7,0 10.2,-4.9 10.2,-11 0,-6.1 -4.6,-11 -10.2,-11 z m -36.5,0 c -5.7,0 -10.2,4.9 -10.2,11 0,6.1 4.6,11 10.2,11 5.7,0 10.2,-4.9 10.2,-11 0.1,-6.1 -4.5,-11 -10.2,-11 z"
|
||||||
id="path2" />
|
id="path2" />
|
||||||
<path
|
<path
|
||||||
d="M 154.5,0 H 20.5 C 9.2,0 0,9.2 0,20.5 v 134 C 0,165.8 9.2,175 20.5,175 h 113.4 l -5.3,-18.3 12.8,11.8 12.1,11.1 21.6,18.7 V 20.5 C 175,9.2 165.8,0 154.5,0 Z m -38.6,129.5 c 0,0 -3.6,-4.3 -6.6,-8 13.1,-3.7 18.1,-11.8 18.1,-11.8 -4.1,2.7 -8,4.6 -11.5,5.9 -5,2.1 -9.8,3.4 -14.5,4.3 -9.6,1.8 -18.4,1.3 -25.9,-0.1 -5.7,-1.1 -10.6,-2.6 -14.7,-4.3 -2.3,-0.9 -4.8,-2 -7.3,-3.4 -0.3,-0.2 -0.6,-0.3 -0.9,-0.5 -0.2,-0.1 -0.3,-0.2 -0.4,-0.2 -1.8,-1 -2.8,-1.7 -2.8,-1.7 0,0 4.8,7.9 17.5,11.7 -3,3.8 -6.7,8.2 -6.7,8.2 C 38.1,128.9 29.7,114.5 29.7,114.5 29.7,82.6 44.1,56.7 44.1,56.7 58.5,46 72.1,46.3 72.1,46.3 l 1,1.2 c -18,5.1 -26.2,13 -26.2,13 0,0 2.2,-1.2 5.9,-2.8 10.7,-4.7 19.2,-5.9 22.7,-6.3 0.6,-0.1 1.1,-0.2 1.7,-0.2 6.1,-0.8 13,-1 20.2,-0.2 9.5,1.1 19.7,3.9 30.1,9.5 0,0 -7.9,-7.5 -24.9,-12.6 l 1.4,-1.6 c 0,0 13.7,-0.3 28,10.4 0,0 14.4,25.9 14.4,57.8 0,-0.1 -8.4,14.3 -30.5,15 z m 151,-86.7 H 233.7 V 80.1 L 255.8,100 V 63.8 h 11.8 c 7.5,0 11.2,3.6 11.2,9.4 v 27.7 c 0,5.8 -3.5,9.7 -11.2,9.7 h -34 v 21.1 h 33.2 c 17.8,0.1 34.5,-8.8 34.5,-29.2 V 72.7 C 301.4,51.9 284.7,42.8 266.9,42.8 Z m 174,59.7 V 71.9 c 0,-11 19.8,-13.5 25.8,-2.5 L 485,62 C 477.8,46.2 464.7,41.6 453.8,41.6 436,41.6 418.4,51.9 418.4,71.9 v 30.6 c 0,20.2 17.6,30.3 35,30.3 11.2,0 24.6,-5.5 32,-19.9 l -19.6,-9 c -4.8,12.3 -24.9,9.3 -24.9,-1.4 z M 380.4,76.1 c -6.9,-1.5 -11.5,-4 -11.8,-8.3 0.4,-10.3 16.3,-10.7 25.6,-0.8 l 14.7,-11.3 c -9.2,-11.2 -19.6,-14.2 -30.3,-14.2 -16.3,0 -32.1,9.2 -32.1,26.6 0,16.9 13,26 27.3,28.2 7.3,1 15.4,3.9 15.2,8.9 -0.6,9.5 -20.2,9 -29.1,-1.8 l -14.2,13.3 c 8.3,10.7 19.6,16.1 30.2,16.1 16.3,0 34.4,-9.4 35.1,-26.6 C 412,84.5 396.2,79 380.4,76.1 Z m -67,55.5 h 22.4 V 42.8 H 313.4 Z M 691.1,42.8 H 657.9 V 80.1 L 680,100 V 63.8 h 11.8 c 7.5,0 11.2,3.6 11.2,9.4 v 27.7 c 0,5.8 -3.5,9.7 -11.2,9.7 h -34 v 21.1 h 33.3 c 17.8,0.1 34.5,-8.8 34.5,-29.2 V 72.7 c 0,-20.8 -16.7,-29.9 -34.5,-29.9 z M 528.2,41.6 c -18.4,0 -36.7,10 -36.7,30.5 v 30.3 c 0,20.3 18.4,30.5 36.9,30.5 18.4,0 36.7,-10.2 36.7,-30.5 V 72.1 c 0,-20.4 -18.5,-30.5 -36.9,-30.5 z m 14.4,60.8 c 0,6.4 -7.2,9.7 -14.3,9.7 -7.2,0 -14.4,-3.1 -14.4,-9.7 V 72.1 c 0,-6.5 7,-10 14,-10 7.3,0 14.7,3.1 14.7,10 z M 645.5,72.1 C 645,51.3 630.8,42.9 612.5,42.9 H 577 v 88.8 h 22.7 v -28.2 h 4 l 20.6,28.2 h 28 l -24.2,-30.5 c 10.7,-3.4 17.4,-12.7 17.4,-29.1 z m -32.6,12 H 599.7 V 63.8 h 13.2 c 14.1,0 14.1,20.3 0,20.3 z"
|
d="m 166.95,0.85 h -134 c -11.3,0 -20.5,9.2 -20.5,20.5 v 134 c 0,11.3 9.2,20.5 20.5,20.5 h 113.4 l -5.3,-18.3 12.8,11.8 12.1,11.1 21.6,18.7 V 21.35 c -0.1,-11.3 -9.3,-20.5 -20.6,-20.5 z m -38.6,129.5 c 0,0 -3.6,-4.3 -6.6,-8 13.1,-3.7 18.1,-11.8 18.1,-11.8 -4.1,2.7 -8,4.6 -11.5,5.9 -5,2.1 -9.8,3.4 -14.5,4.3 -9.6,1.8 -18.4,1.3 -25.9,-0.1 -5.7,-1.1 -10.6,-2.6 -14.7,-4.3 -2.3,-0.9 -4.8,-2 -7.3,-3.4 -0.3,-0.2 -0.6,-0.3 -0.9,-0.5 -0.2,-0.1 -0.3,-0.2 -0.4,-0.2 -1.8,-1 -2.8,-1.7 -2.8,-1.7 0,0 4.8,7.9 17.5,11.7 -3,3.8 -6.7,8.2 -6.7,8.2 -22.1,-0.7 -30.5,-15.1 -30.5,-15.1 0,-31.9 14.4,-57.8 14.4,-57.8 14.4,-10.7 28,-10.4 28,-10.4 l 1,1.2 c -18,5.1 -26.2,13 -26.2,13 0,0 2.2,-1.2 5.9,-2.8 10.7,-4.7 19.2,-5.9 22.7,-6.3 0.6,-0.1 1.1,-0.2 1.7,-0.2 6.1,-0.8 13,-1 20.2,-0.2 9.5,1.1 19.7,3.9 30.1,9.5 0,0 -7.9,-7.5 -24.9,-12.6 l 1.4,-1.6 c 0,0 13.7,-0.3 28,10.4 0,0 14.4,25.9 14.4,57.8 0,-0.1 -8.4,14.3 -30.5,15 z"
|
||||||
id="path4" />
|
id="path4" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.8 KiB |
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="250mm"
|
||||||
|
height="250mm"
|
||||||
|
viewBox="0 0 250 250"
|
||||||
|
version="1.1"
|
||||||
|
id="svg1"
|
||||||
|
xml:space="preserve"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||||
|
id="defs1" /><g
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(24.386144,-19.654193)"><path
|
||||||
|
d="m 97.694468,246.49306 c -3.29163,-0.77463 -0.47054,1.91978 -54.511619,-52.06397 -50.6807564,-50.62701 -53.322727,-53.34287 -56.39996,-57.97743 -27.178147,-40.932394 2.576397,-95.055377 51.592389,-93.845613 18.803333,0.464085 29.67869,5.96299 47.82344,24.180963 l 8.13594,8.168766 v 1.17671 1.17671 l -9.5952,9.5952 -9.59519,9.59519 h -1.17012 -1.17011 l -8.747713,-8.68541 C 53.42233,77.255906 51.16241,75.641266 44.558703,73.883746 22.440946,67.99732 2.0677986,88.370466 7.9542296,110.48822 c 1.854298,6.96737 3.0461774,8.54843 17.0298114,22.59053 L 36.775364,144.91938 80.437818,101.307 C 104.45218,77.320186 125.11232,56.891924 126.34924,55.910863 c 41.54647,-32.952327 102.5948,-0.905053 98.18473,51.541997 -1.50182,17.86043 -6.90484,27.66745 -25.34204,45.99828 l -6.85255,6.81302 h -1.30245 -1.30245 l -9.23084,-9.19427 c -5.23119,-5.21045 -9.3927,-9.56782 -9.60439,-10.05639 -0.68655,-1.5845 -0.44769,-1.89305 8.34481,-10.77954 10.07564,-10.18335 11.76153,-12.45408 13.61891,-18.34331 7.36307,-23.346184 -14.7662,-45.211633 -37.93595,-37.483684 -6.11717,2.04029 -7.63165,3.23438 -21.10859,16.64299 l -11.71311,11.653724 31.35842,31.36255 c 34.29087,34.29538 32.03326,31.83093 30.97951,33.81784 -0.76337,1.4394 -76.38158,76.6301 -77.82527,77.3853 -2.61462,1.36771 -6.21408,1.86131 -8.923512,1.22369 z m 6.844022,-50.26472 c 24.80444,-3.44998 34.77631,-34.05871 16.6922,-51.23684 -18.69981,-17.76299 -49.500062,-5.18911 -50.373192,20.56433 -0.6271,18.49668 15.51714,33.19887 33.680992,30.67251 z m -8.748622,-11.08611 c -19.05073,-5.06896 -18.95399,-32.29299 0.13229,-37.22612 3.38201,-0.87413 10.621562,-0.39034 10.164072,0.67923 -1.05639,2.46975 -1.14575,3.85862 -0.37986,5.90421 1.62525,4.34083 6.42005,6.18157 10.40675,3.9952 l 1.53784,-0.84338 0.53717,1.24025 c 6.33111,14.61762 -7.07381,30.32809 -22.398262,26.25061 z"
|
||||||
|
id="path1" /></g></svg>
|
After Width: | Height: | Size: 2.2 KiB |
|
@ -1,66 +1,17 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<svg
|
<svg
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
viewBox="0 0 400 400"
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
id="icon-logo"
|
|
||||||
viewBox="0 0 92.400002 92.399879"
|
|
||||||
version="1.1"
|
version="1.1"
|
||||||
sodipodi:docname="onlyfans.svg"
|
id="svg2"
|
||||||
width="92.400002"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
height="92.399879"
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
|
||||||
<metadata
|
|
||||||
id="metadata21">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<defs
|
<defs
|
||||||
id="defs19" />
|
id="defs2" />
|
||||||
<sodipodi:namedview
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1"
|
|
||||||
objecttolerance="10"
|
|
||||||
gridtolerance="10"
|
|
||||||
guidetolerance="10"
|
|
||||||
inkscape:pageopacity="0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1026"
|
|
||||||
id="namedview17"
|
|
||||||
showgrid="false"
|
|
||||||
fit-margin-top="0"
|
|
||||||
fit-margin-left="0"
|
|
||||||
fit-margin-right="0"
|
|
||||||
fit-margin-bottom="0"
|
|
||||||
inkscape:zoom="6.1429902"
|
|
||||||
inkscape:cx="26.40336"
|
|
||||||
inkscape:cy="24.398909"
|
|
||||||
inkscape:window-x="1047"
|
|
||||||
inkscape:window-y="930"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="icon-logo" />
|
|
||||||
<path
|
<path
|
||||||
class="svg-logo-color-1"
|
d="M137.5 75a125 125 0 1 0 125 125 125 125 0 0 0-125-125zm0 162.5A37.5 37.5 0 1 1 175 200a37.45 37.45 0 0 1-37.5 37.5z"
|
||||||
d="M 46.07999,3.9024059e-5 A 46.2,46.2 0 1 0 92.39999,46.170039 46.26,46.26 0 0 0 46.07999,3.9024059e-5 Z m 0,87.569999975941 a 41.38,41.38 0 1 1 41.48,-41.4 41.44,41.44 0 0 1 -41.48,41.38 z"
|
opacity=".7"
|
||||||
id="path2"
|
id="path1" />
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill-rule:evenodd" />
|
|
||||||
<path
|
<path
|
||||||
d="m 65.28999,43.190039 v -3.77 a 16.75,16.75 0 0 0 -5.08,-12 17.31,17.31 0 0 0 -12.19,-5 h -3.1 a 17.31,17.31 0 0 0 -12.18,5 16.7,16.7 0 0 0 -5.07,12 v 3.77 l -2.14,3.86 v 5.56 a 18.64,18.64 0 0 0 5.64,13.33 19.37,19.37 0 0 0 13.59,5.54 h 3.45 a 19.33,19.33 0 0 0 13.55,-5.54 18.61,18.61 0 0 0 5.65,-13.33 v -5.56 z m -16.8,17.06 v 4.45 a 1.93,1.93 0 0 1 -0.89,1.64 h -0.84 a 1,1 0 0 1 -0.3,0 h -0.2 a 1.18,1.18 0 0 1 -0.25,0 h -0.38 a 2,2 0 0 1 -0.92,-1.67 v -4.42 a 5.3,5.3 0 0 1 2,-10.24 h 0.11 a 5.3,5.3 0 0 1 2,10.24 z m 9.09,-16.94 h -22.21 v -3.89 a 9.27,9.27 0 0 1 2.81,-6.63 9.62,9.62 0 0 1 6.74,-2.79 h 3.1 a 9.61,9.61 0 0 1 6.74,2.79 9.31,9.31 0 0 1 2.81,6.63 z"
|
d="M278 168.75c31.76 9.14 69.25 0 69.25 0-10.88 47.5-45.38 77.25-95.13 80.87A124.73 124.73 0 0 1 137.5 325L175 205.81C213.55 83.3 233.31 75 324.73 75h62.77c-10.5 46.25-46.69 81.58-109.5 93.75z"
|
||||||
class="svg-logo-color-2"
|
id="path2" />
|
||||||
id="path14"
|
|
||||||
inkscape:connector-curvature="0" />
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 626 B |
|
@ -0,0 +1,66 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="icon-logo"
|
||||||
|
viewBox="0 0 92.400002 92.399879"
|
||||||
|
version="1.1"
|
||||||
|
sodipodi:docname="onlyfans.svg"
|
||||||
|
width="92.400002"
|
||||||
|
height="92.399879"
|
||||||
|
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||||
|
<metadata
|
||||||
|
id="metadata21">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs19" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1026"
|
||||||
|
id="namedview17"
|
||||||
|
showgrid="false"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
inkscape:zoom="6.1429902"
|
||||||
|
inkscape:cx="26.40336"
|
||||||
|
inkscape:cy="24.398909"
|
||||||
|
inkscape:window-x="1047"
|
||||||
|
inkscape:window-y="930"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="icon-logo" />
|
||||||
|
<path
|
||||||
|
class="svg-logo-color-1"
|
||||||
|
d="M 46.07999,3.9024059e-5 A 46.2,46.2 0 1 0 92.39999,46.170039 46.26,46.26 0 0 0 46.07999,3.9024059e-5 Z m 0,87.569999975941 a 41.38,41.38 0 1 1 41.48,-41.4 41.44,41.44 0 0 1 -41.48,41.38 z"
|
||||||
|
id="path2"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill-rule:evenodd" />
|
||||||
|
<path
|
||||||
|
d="m 65.28999,43.190039 v -3.77 a 16.75,16.75 0 0 0 -5.08,-12 17.31,17.31 0 0 0 -12.19,-5 h -3.1 a 17.31,17.31 0 0 0 -12.18,5 16.7,16.7 0 0 0 -5.07,12 v 3.77 l -2.14,3.86 v 5.56 a 18.64,18.64 0 0 0 5.64,13.33 19.37,19.37 0 0 0 13.59,5.54 h 3.45 a 19.33,19.33 0 0 0 13.55,-5.54 18.61,18.61 0 0 0 5.65,-13.33 v -5.56 z m -16.8,17.06 v 4.45 a 1.93,1.93 0 0 1 -0.89,1.64 h -0.84 a 1,1 0 0 1 -0.3,0 h -0.2 a 1.18,1.18 0 0 1 -0.25,0 h -0.38 a 2,2 0 0 1 -0.92,-1.67 v -4.42 a 5.3,5.3 0 0 1 2,-10.24 h 0.11 a 5.3,5.3 0 0 1 2,10.24 z m 9.09,-16.94 h -22.21 v -3.89 a 9.27,9.27 0 0 1 2.81,-6.63 9.62,9.62 0 0 1 6.74,-2.79 h 3.1 a 9.61,9.61 0 0 1 6.74,2.79 9.31,9.31 0 0 1 2.81,6.63 z"
|
||||||
|
class="svg-logo-color-2"
|
||||||
|
id="path14"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.7 KiB |
|
@ -0,0 +1,4 @@
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||||
|
<path d="M13.937 8.034c-0.283 0-0.552 0.055-0.798 0.154-0.164-1.787-1.723-3.188-3.625-3.188-0.465 0-0.917 0.088-1.317 0.237-0.156 0.058-0.197 0.117-0.197 0.233v6.292c0 0.121 0.098 0.222 0.221 0.234 0.005 0.001 5.68 0.003 5.717 0.003 1.139 0 2.062-0.888 2.062-1.983s-0.924-1.983-2.063-1.983zM6.25 12h0.5l0.25-3.503-0.25-3.497h-0.5l-0.25 3.497zM4.75 12h-0.5l-0.25-2.543 0.25-2.457h0.5l0.25 2.5zM2.25 12h0.5l0.25-2-0.25-2h-0.5l-0.25 2zM0.25 11h0.5l0.25-1-0.25-1h-0.5l-0.25 1z"></path>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 620 B |
|
@ -0,0 +1,4 @@
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||||
|
<path d="M14.5 0h-13c-0.825 0-1.5 0.675-1.5 1.5v13c0 0.825 0.675 1.5 1.5 1.5h13c0.825 0 1.5-0.675 1.5-1.5v-13c0-0.825-0.675-1.5-1.5-1.5zM2.75 11h-0.5l-0.25-1.5 0.25-1.5h0.5l0.25 1.5-0.25 1.5zM4.75 11h-0.5l-0.25-2 0.25-2h0.5l0.25 2-0.25 2zM6.75 11h-0.5l-0.25-3 0.25-3h0.5l0.25 3-0.25 3zM12.894 11c-0.031 0-4.706-0.003-4.709-0.003-0.1-0.009-0.181-0.097-0.184-0.2v-5.394c0-0.1 0.034-0.15 0.162-0.2 0.331-0.128 0.703-0.203 1.088-0.203 1.566 0 2.85 1.2 2.987 2.734 0.203-0.084 0.425-0.131 0.656-0.131 0.938 0 1.7 0.762 1.7 1.7s-0.762 1.697-1.7 1.697z"></path>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 693 B |
|
@ -0,0 +1,4 @@
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||||
|
<path d="M8 0c-4.419 0-8 3.581-8 8s3.581 8 8 8 8-3.581 8-8-3.581-8-8-8zM11.931 5.484l-1.313 6.184c-0.091 0.441-0.356 0.544-0.725 0.341l-2-1.478-0.959 0.934c-0.112 0.109-0.2 0.2-0.4 0.2-0.259 0-0.216-0.097-0.303-0.344l-0.681-2.237-1.978-0.616c-0.428-0.131-0.431-0.425 0.097-0.634l7.706-2.975c0.35-0.159 0.691 0.084 0.556 0.625z"></path>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 474 B |
|
@ -0,0 +1,6 @@
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||||
|
<path d="M1.5 0l-1.5 2.5v11.5h4v2h2l2-2h2.5l4.5-4.5v-9.5h-13.5zM13 8.5l-2.5 2.5h-2.5l-2 2v-2h-3v-9h10v6.5z"></path>
|
||||||
|
<path d="M9.5 4h1.5v4h-1.5v-4z"></path>
|
||||||
|
<path d="M6.5 4h1.5v4h-1.5v-4z"></path>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 334 B |
|
@ -0,0 +1,4 @@
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||||
|
<path d="M13.641 2.325c-1.497-1.5-3.488-2.325-5.609-2.325-4.369 0-7.925 3.556-7.925 7.928 0 1.397 0.366 2.763 1.059 3.963l-1.125 4.109 4.203-1.103c1.159 0.631 2.463 0.966 3.787 0.966h0.003c0 0 0 0 0 0 4.369 0 7.928-3.556 7.928-7.928 0-2.119-0.825-4.109-2.322-5.609zM8.034 14.525v0c-1.184 0-2.344-0.319-3.356-0.919l-0.241-0.144-2.494 0.653 0.666-2.431-0.156-0.25c-0.663-1.047-1.009-2.259-1.009-3.506 0-3.634 2.956-6.591 6.594-6.591 1.759 0 3.416 0.688 4.659 1.931 1.244 1.247 1.928 2.9 1.928 4.662-0.003 3.637-2.959 6.594-6.591 6.594zM11.647 9.588c-0.197-0.1-1.172-0.578-1.353-0.644s-0.313-0.1-0.447 0.1c-0.131 0.197-0.512 0.644-0.628 0.778-0.116 0.131-0.231 0.15-0.428 0.050s-0.838-0.309-1.594-0.984c-0.588-0.525-0.987-1.175-1.103-1.372s-0.013-0.306 0.088-0.403c0.091-0.088 0.197-0.231 0.297-0.347s0.131-0.197 0.197-0.331c0.066-0.131 0.034-0.247-0.016-0.347s-0.447-1.075-0.609-1.472c-0.159-0.388-0.325-0.334-0.447-0.341-0.116-0.006-0.247-0.006-0.378-0.006s-0.347 0.050-0.528 0.247c-0.181 0.197-0.694 0.678-0.694 1.653s0.709 1.916 0.809 2.050c0.1 0.131 1.397 2.134 3.384 2.991 0.472 0.203 0.841 0.325 1.128 0.419 0.475 0.15 0.906 0.128 1.247 0.078 0.381-0.056 1.172-0.478 1.338-0.941s0.166-0.859 0.116-0.941c-0.047-0.088-0.178-0.137-0.378-0.238z"></path>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
2
common
|
@ -1 +1 @@
|
||||||
Subproject commit 97d7e9cfd0bbf8e507e8fdb87fb2cc78aef6a1a6
|
Subproject commit dc00c3d58af2c23530b8b3cb6704f3860fdd7d0f
|
|
@ -0,0 +1,229 @@
|
||||||
|
<template>
|
||||||
|
<div
|
||||||
|
class="figure augmentation"
|
||||||
|
>
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Natural boobs</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
v-model="augmentation.naturalBoobs"
|
||||||
|
class="input"
|
||||||
|
:disabled="!editing.has('augmentation')"
|
||||||
|
>
|
||||||
|
<option :value="null" />
|
||||||
|
<option :value="true">Yes</option>
|
||||||
|
<option :value="false">No</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="augmentation.naturalBoobs === false"
|
||||||
|
class="value-section"
|
||||||
|
>
|
||||||
|
<span class="value-label">Implant CC</span>
|
||||||
|
|
||||||
|
<input
|
||||||
|
v-model="augmentation.boobsVolume"
|
||||||
|
type="number"
|
||||||
|
class="volume input"
|
||||||
|
placeholder="CC"
|
||||||
|
min="50"
|
||||||
|
max="10000"
|
||||||
|
:disabled="!editing.has('augmentation')"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="augmentation.naturalBoobs === false"
|
||||||
|
class="value-section"
|
||||||
|
>
|
||||||
|
<span class="value-label">Implant type</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
v-model="augmentation.boobsImplant"
|
||||||
|
class="input"
|
||||||
|
:disabled="!editing.has('augmentation')"
|
||||||
|
>
|
||||||
|
<option :value="null" />
|
||||||
|
<option value="saline">Saline</option>
|
||||||
|
<option value="silicone">Silicone</option>
|
||||||
|
<option value="gummy">Gummy</option>
|
||||||
|
<option value="fat">Fat transfer</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="augmentation.naturalBoobs === false"
|
||||||
|
class="value-section"
|
||||||
|
>
|
||||||
|
<span class="value-label">Implant placement</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
v-model="augmentation.boobsPlacement"
|
||||||
|
class="input"
|
||||||
|
:disabled="!editing.has('augmentation')"
|
||||||
|
>
|
||||||
|
<option :value="null" />
|
||||||
|
<option value="over">Over muscle</option>
|
||||||
|
<option value="under">Under muscle</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="augmentation.naturalBoobs === false"
|
||||||
|
class="value-section"
|
||||||
|
>
|
||||||
|
<span class="value-label">Incision</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
v-model="augmentation.boobsIncision"
|
||||||
|
class="input"
|
||||||
|
:disabled="!editing.has('augmentation')"
|
||||||
|
>
|
||||||
|
<option :value="null" />
|
||||||
|
<option value="mammary">Under breast</option>
|
||||||
|
<option value="areolar">Areola</option>
|
||||||
|
<option value="crescent">Crescent</option>
|
||||||
|
<option value="lollipop">Lollipop</option>
|
||||||
|
<option value="anchor">Anchor</option>
|
||||||
|
<option value="axillary">Armpit</option>
|
||||||
|
<option value="umbilical">Navel</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="augmentation.naturalBoobs === false"
|
||||||
|
class="value-section value-divide"
|
||||||
|
>
|
||||||
|
<span class="value-label">Surgeon</span>
|
||||||
|
|
||||||
|
<input
|
||||||
|
v-model="augmentation.boobsSurgeon"
|
||||||
|
class="volume input"
|
||||||
|
placeholder="Surgeon"
|
||||||
|
list="surgeons"
|
||||||
|
:disabled="!editing.has('augmentation')"
|
||||||
|
>
|
||||||
|
|
||||||
|
<datalist id="surgeons">
|
||||||
|
<option value="Dr. Revis" />
|
||||||
|
</datalist>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Natural butt</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
v-model="augmentation.naturalButt"
|
||||||
|
class="input"
|
||||||
|
:disabled="!editing.has('augmentation')"
|
||||||
|
>
|
||||||
|
<option :value="null" />
|
||||||
|
<option :value="true">Yes</option>
|
||||||
|
<option :value="false">No</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="augmentation.naturalButt === false"
|
||||||
|
class="value-section"
|
||||||
|
>
|
||||||
|
<span class="value-label">Implant CC</span>
|
||||||
|
|
||||||
|
<input
|
||||||
|
v-model="augmentation.buttVolume"
|
||||||
|
type="number"
|
||||||
|
class="volume input"
|
||||||
|
placeholder="CC"
|
||||||
|
min="50"
|
||||||
|
max="10000"
|
||||||
|
:disabled="!editing.has('augmentation')"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="augmentation.naturalButt === false"
|
||||||
|
class="value-section"
|
||||||
|
>
|
||||||
|
<span class="value-label">Implant type</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
v-model="augmentation.buttImplant"
|
||||||
|
class="input"
|
||||||
|
:disabled="!editing.has('augmentation')"
|
||||||
|
>
|
||||||
|
<option :value="null" />
|
||||||
|
<option value="bbl">BBL (fat transfer)</option>
|
||||||
|
<option value="lift">Direct lift</option>
|
||||||
|
<option value="filler">Filler (Sculptra)</option>
|
||||||
|
<option value="mms">MMS (CoolTone)</option>
|
||||||
|
<option value="lipo">Lipo without BBL</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Natural lips</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
v-model="augmentation.naturalLips"
|
||||||
|
class="input"
|
||||||
|
:disabled="!editing.has('augmentation')"
|
||||||
|
>
|
||||||
|
<option :value="null" />
|
||||||
|
<option :value="true">Yes</option>
|
||||||
|
<option :value="false">No</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="augmentation.naturalLips === false"
|
||||||
|
class="value-section"
|
||||||
|
>
|
||||||
|
<span class="value-label">Filler CC</span>
|
||||||
|
|
||||||
|
<input
|
||||||
|
v-model="augmentation.lipsVolume"
|
||||||
|
type="number"
|
||||||
|
class="volume input"
|
||||||
|
placeholder="CC"
|
||||||
|
min="50"
|
||||||
|
max="10000"
|
||||||
|
:disabled="!editing.has('augmentation')"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Natural labia</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
v-model="augmentation.naturalLabia"
|
||||||
|
class="input"
|
||||||
|
:disabled="!editing.has('augmentation')"
|
||||||
|
>
|
||||||
|
<option :value="null" />
|
||||||
|
<option :value="true">Yes</option>
|
||||||
|
<option :value="false">No</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { reactive, watch } from 'vue';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
edits: {
|
||||||
|
type: Object,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
editing: {
|
||||||
|
type: Set,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const emit = defineEmits(['augmentation']);
|
||||||
|
const augmentation = reactive(props.edits.augmentation);
|
||||||
|
|
||||||
|
watch(augmentation, () => emit('augmentation', augmentation));
|
||||||
|
</script>
|
|
@ -0,0 +1,147 @@
|
||||||
|
<template>
|
||||||
|
<div class="figure">
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Units</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
:value="units"
|
||||||
|
class="input"
|
||||||
|
:disabled="!editing.has('figure')"
|
||||||
|
@change="emit('units', $event.target.value)"
|
||||||
|
>
|
||||||
|
<option value="us">USA</option>
|
||||||
|
<option value="uk">UK</option>
|
||||||
|
<option value="eu">Europe/Asia</option>
|
||||||
|
<option value="jp">Japan</option>
|
||||||
|
<option value="au">Australia</option>
|
||||||
|
<option value="it">Italy</option>
|
||||||
|
<option value="fr">France</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span class="figure-bust">
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Bust</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
v-model="figure.bust"
|
||||||
|
class="select input"
|
||||||
|
placeholder="Bust"
|
||||||
|
:disabled="!editing.has('figure')"
|
||||||
|
>
|
||||||
|
<option
|
||||||
|
:key="`figure-bust-unknown`"
|
||||||
|
:value="null"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<option
|
||||||
|
v-for="bust in bustSizes[units]"
|
||||||
|
:key="`figure-bust-${bust}`"
|
||||||
|
:value="Array.isArray(bust) ? bust[0] : bust"
|
||||||
|
>{{ Array.isArray(bust) ? bust.join('/') : bust }}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Cup</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
v-model="figure.cup"
|
||||||
|
class="select input"
|
||||||
|
placeholder="Cup"
|
||||||
|
:disabled="!editing.has('figure')"
|
||||||
|
>
|
||||||
|
<option
|
||||||
|
:key="`figure-cup-unknown`"
|
||||||
|
:value="null"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<option
|
||||||
|
v-for="cup in cupSizes[units]"
|
||||||
|
:key="`figure-cup-${cup}`"
|
||||||
|
:value="Array.isArray(cup) ? cup[0] : cup"
|
||||||
|
>{{ Array.isArray(cup) ? cup.join('/') : cup }}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Waist</span>
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<input
|
||||||
|
v-model="figure.waist"
|
||||||
|
type="number"
|
||||||
|
class="input"
|
||||||
|
:disabled="!editing.has('figure')"
|
||||||
|
>
|
||||||
|
|
||||||
|
<template v-if="['us', 'uk'].includes(units)"> inch</template>
|
||||||
|
<template v-else> cm</template>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Hip</span>
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<input
|
||||||
|
v-model="figure.hip"
|
||||||
|
type="number"
|
||||||
|
class="input"
|
||||||
|
:disabled="!editing.has('figure')"
|
||||||
|
>
|
||||||
|
|
||||||
|
<template v-if="['us', 'uk'].includes(units)"> inch</template>
|
||||||
|
<template v-else> cm</template>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { reactive, watch } from 'vue';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
edits: {
|
||||||
|
type: Object,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
editing: {
|
||||||
|
type: Set,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
units: {
|
||||||
|
type: String,
|
||||||
|
default: 'us',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const emit = defineEmits(['figure', 'units']);
|
||||||
|
const figure = reactive(props.edits.figure);
|
||||||
|
|
||||||
|
watch(figure, () => emit('figure', figure));
|
||||||
|
|
||||||
|
const cupSizes = {
|
||||||
|
us: ['AA', 'A', 'B', 'C', 'D', ['DD', 'E'], ['DDD', 'F'], 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P'], // United States
|
||||||
|
uk: ['AA', 'A', 'B', 'C', 'D', 'DD', 'E', 'F', 'FF', 'G', 'GG', 'H', 'HH', 'J', 'JJ', 'K', 'KK'], // United Kingdom
|
||||||
|
eu: ['AA', 'A', 'B', 'C', 'D', 'E', 'F', 'G', ' H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P'], // Europe
|
||||||
|
jp: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q'], // Japan
|
||||||
|
};
|
||||||
|
|
||||||
|
cupSizes.fr = cupSizes.eu; // France
|
||||||
|
cupSizes.it = cupSizes.uk; // Italy
|
||||||
|
cupSizes.au = cupSizes.uk; // Australia
|
||||||
|
|
||||||
|
// bra band sizes
|
||||||
|
const bustSizes = {
|
||||||
|
us: [28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56],
|
||||||
|
eu: [60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130],
|
||||||
|
fr: [75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145],
|
||||||
|
it: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
|
||||||
|
au: [6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34],
|
||||||
|
};
|
||||||
|
|
||||||
|
bustSizes.uk = bustSizes.us;
|
||||||
|
bustSizes.jp = bustSizes.eu;
|
||||||
|
</script>
|
|
@ -0,0 +1,109 @@
|
||||||
|
<template>
|
||||||
|
<div
|
||||||
|
class="figure penis"
|
||||||
|
>
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Units</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
:value="units"
|
||||||
|
class="input"
|
||||||
|
:disabled="!editing.has('penis')"
|
||||||
|
@change="emit('units', $event.target.value)"
|
||||||
|
>
|
||||||
|
<option value="imperial">Imperial</option>
|
||||||
|
<option value="metric">Metric</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Penis length</span>
|
||||||
|
|
||||||
|
<span v-if="units === 'metric'">
|
||||||
|
<input
|
||||||
|
v-model="penis.metricLength"
|
||||||
|
type="number"
|
||||||
|
class="volume input"
|
||||||
|
min="1"
|
||||||
|
max="30"
|
||||||
|
:disabled="!editing.has('penis')"
|
||||||
|
> cm
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span v-if="units === 'imperial'">
|
||||||
|
<input
|
||||||
|
v-model="penis.imperialLength"
|
||||||
|
type="number"
|
||||||
|
class="volume input"
|
||||||
|
min="1"
|
||||||
|
max="30"
|
||||||
|
:disabled="!editing.has('penis')"
|
||||||
|
> inch
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Penis girth</span>
|
||||||
|
|
||||||
|
<span v-if="units === 'metric'">
|
||||||
|
<input
|
||||||
|
v-model="penis.metricGirth"
|
||||||
|
type="number"
|
||||||
|
class="volume input"
|
||||||
|
min="1"
|
||||||
|
max="30"
|
||||||
|
:disabled="!editing.has('penis')"
|
||||||
|
> cm
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span v-if="units === 'imperial'">
|
||||||
|
<input
|
||||||
|
v-model="penis.imperialGirth"
|
||||||
|
type="number"
|
||||||
|
class="volume input"
|
||||||
|
min="1"
|
||||||
|
max="30"
|
||||||
|
:disabled="!editing.has('penis')"
|
||||||
|
> inch
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Circumcised</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
v-model="penis.isCircumcised"
|
||||||
|
class="input"
|
||||||
|
:disabled="!editing.has('penis')"
|
||||||
|
>
|
||||||
|
<option :value="null" />
|
||||||
|
<option :value="true">Yes</option>
|
||||||
|
<option :value="false">No</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { reactive, watch } from 'vue';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
edits: {
|
||||||
|
type: Object,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
editing: {
|
||||||
|
type: Set,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
units: {
|
||||||
|
type: String,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const emit = defineEmits(['penis', 'units']);
|
||||||
|
const penis = reactive(props.edits.penis);
|
||||||
|
|
||||||
|
watch(penis, () => emit('penis', penis));
|
||||||
|
</script>
|
|
@ -0,0 +1,77 @@
|
||||||
|
<template>
|
||||||
|
<div
|
||||||
|
class="place"
|
||||||
|
>
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Country</span>
|
||||||
|
|
||||||
|
<select
|
||||||
|
v-model="place.country"
|
||||||
|
class="select input"
|
||||||
|
placeholder="Country"
|
||||||
|
:disabled="!editing.has(item.key)"
|
||||||
|
>
|
||||||
|
<option
|
||||||
|
:key="`${item.key}-country-unknown`"
|
||||||
|
:value="null"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<option
|
||||||
|
v-for="country in sortedCountries"
|
||||||
|
:key="`${item.key}-country-${country.alpha2}`"
|
||||||
|
:value="country.alpha2"
|
||||||
|
>{{ country.alias || country.name }}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="value-section">
|
||||||
|
<span class="value-label">Place</span>
|
||||||
|
|
||||||
|
<input
|
||||||
|
v-model="place.place"
|
||||||
|
class="string input"
|
||||||
|
:disabled="!editing.has(item.key)"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { reactive, watch, inject } from 'vue';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
edits: {
|
||||||
|
type: Object,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
editing: {
|
||||||
|
type: Set,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const pageContext = inject('pageContext');
|
||||||
|
const countries = pageContext.pageProps.countries;
|
||||||
|
|
||||||
|
const emit = defineEmits(['place']);
|
||||||
|
const place = reactive(props.edits[props.item.key]);
|
||||||
|
|
||||||
|
watch(place, () => emit('place', place));
|
||||||
|
|
||||||
|
const topCountries = [
|
||||||
|
'AU',
|
||||||
|
'BR',
|
||||||
|
'CZ',
|
||||||
|
'DE',
|
||||||
|
'JP',
|
||||||
|
'RU',
|
||||||
|
'GB',
|
||||||
|
'US',
|
||||||
|
];
|
||||||
|
|
||||||
|
const sortedCountries = countries.toSorted((countryA, countryB) => topCountries.indexOf(countryB.alpha2) - topCountries.indexOf(countryA.alpha2));
|
||||||
|
</script>
|
|
@ -8,7 +8,7 @@
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
class="footer-segment footer-link nolink discord"
|
class="footer-segment footer-link nolink discord"
|
||||||
><Icon icon="discord" /></a>
|
><Icon icon="discord-full" /></a>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
v-if="env.links.content"
|
v-if="env.links.content"
|
||||||
|
|
|
@ -217,436 +217,80 @@
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<ul
|
||||||
|
v-if="item.type === 'list'"
|
||||||
|
class="list nolist"
|
||||||
|
:class="{ disabled: !editing.has(item.key) }"
|
||||||
|
>
|
||||||
|
<li
|
||||||
|
v-for="(value, index) in item.value"
|
||||||
|
:key="`${item.type}-${value}`"
|
||||||
|
class="list-item"
|
||||||
|
:class="{ deleted: !edits[item.key].some((listItem) => listItem.value === value.value || listItem.url === value.url) }"
|
||||||
|
>
|
||||||
|
<Icon
|
||||||
|
v-if="value.icon"
|
||||||
|
:icon="value.icon"
|
||||||
|
:class="`icon-social icon-${value.icon}`"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<a
|
||||||
|
v-if="value.url"
|
||||||
|
:href="value.url"
|
||||||
|
target="_blank"
|
||||||
|
class="link"
|
||||||
|
>{{ value.url }}</a>
|
||||||
|
|
||||||
|
<template v-else>{{ value.value || value }}</template>
|
||||||
|
|
||||||
|
<Icon
|
||||||
|
v-if="!edits[item.key].some((listItem) => listItem.value === value.value || listItem.url === value.url)"
|
||||||
|
icon="checkmark"
|
||||||
|
class="add noselect"
|
||||||
|
@click="edits[item.key] = edits[item.key].concat(value)"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Icon
|
||||||
|
v-else
|
||||||
|
icon="cross2"
|
||||||
|
class="remove noselect"
|
||||||
|
@click="edits[item.key] = edits[item.key].filter((listItem, listIndex) => listIndex !== index)"
|
||||||
|
/>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<EditPlace
|
||||||
v-if="item.type === 'place'"
|
v-if="item.type === 'place'"
|
||||||
class="place"
|
:item="item"
|
||||||
>
|
:edits="edits"
|
||||||
<div class="value-section">
|
:editing="editing"
|
||||||
<span class="value-label">Country</span>
|
@place="(place) => edits[item.key] = place"
|
||||||
|
|
||||||
<select
|
|
||||||
v-model="edits[item.key].country"
|
|
||||||
class="select input"
|
|
||||||
placeholder="Country"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option
|
|
||||||
:key="`${item.key}-country-unknown`"
|
|
||||||
:value="null"
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<option
|
<EditFigure
|
||||||
v-for="country in sortedCountries"
|
|
||||||
:key="`${item.key}-country-${country.alpha2}`"
|
|
||||||
:value="country.alpha2"
|
|
||||||
>{{ country.alias || country.name }}</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="value-section">
|
|
||||||
<span class="value-label">Place</span>
|
|
||||||
|
|
||||||
<input
|
|
||||||
v-model="edits[item.key].place"
|
|
||||||
class="string input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
v-if="item.type === 'figure'"
|
v-if="item.type === 'figure'"
|
||||||
class="figure"
|
:edits="edits"
|
||||||
>
|
:editing="editing"
|
||||||
<div class="value-section">
|
:units="figureUnits"
|
||||||
<span class="value-label">Units</span>
|
@figure="(figure) => edits.figure = figure"
|
||||||
|
@units="(units) => figureUnits = units"
|
||||||
<select
|
|
||||||
v-model="figureUnits"
|
|
||||||
class="input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option value="us">USA</option>
|
|
||||||
<option value="uk">UK</option>
|
|
||||||
<option value="eu">Europe/Asia</option>
|
|
||||||
<option value="jp">Japan</option>
|
|
||||||
<option value="au">Australia</option>
|
|
||||||
<option value="it">Italy</option>
|
|
||||||
<option value="fr">France</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<span class="figure-bust">
|
|
||||||
<div class="value-section">
|
|
||||||
<span class="value-label">Bust</span>
|
|
||||||
|
|
||||||
<select
|
|
||||||
v-model="edits[item.key].bust"
|
|
||||||
class="select input"
|
|
||||||
placeholder="Bust"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option
|
|
||||||
:key="`${item.key}-bust-unknown`"
|
|
||||||
:value="null"
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<option
|
<EditAugmentation
|
||||||
v-for="bust in bustSizes[figureUnits]"
|
|
||||||
:key="`${item.key}-bust-${bust}`"
|
|
||||||
:value="Array.isArray(bust) ? bust[0] : bust"
|
|
||||||
>{{ Array.isArray(bust) ? bust.join('/') : bust }}</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="value-section">
|
|
||||||
<span class="value-label">Cup</span>
|
|
||||||
|
|
||||||
<select
|
|
||||||
v-model="edits[item.key].cup"
|
|
||||||
class="select input"
|
|
||||||
placeholder="Cup"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option
|
|
||||||
:key="`${item.key}-cup-unknown`"
|
|
||||||
:value="null"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<option
|
|
||||||
v-for="cup in cupSizes[figureUnits]"
|
|
||||||
:key="`${item.key}-cup-${cup}`"
|
|
||||||
:value="Array.isArray(cup) ? cup[0] : cup"
|
|
||||||
>{{ Array.isArray(cup) ? cup.join('/') : cup }}</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<div class="value-section">
|
|
||||||
<span class="value-label">Waist</span>
|
|
||||||
|
|
||||||
<span>
|
|
||||||
<input
|
|
||||||
v-model="edits[item.key].waist"
|
|
||||||
type="number"
|
|
||||||
class="input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
|
|
||||||
<template v-if="['us', 'uk'].includes(figureUnits)"> inch</template>
|
|
||||||
<template v-else> cm</template>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="value-section">
|
|
||||||
<span class="value-label">Hip</span>
|
|
||||||
|
|
||||||
<span>
|
|
||||||
<input
|
|
||||||
v-model="edits[item.key].hip"
|
|
||||||
type="number"
|
|
||||||
class="input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
|
|
||||||
<template v-if="['us', 'uk'].includes(figureUnits)"> inch</template>
|
|
||||||
<template v-else> cm</template>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
v-if="item.type === 'augmentation'"
|
v-if="item.type === 'augmentation'"
|
||||||
class="figure augmentation"
|
:edits="edits"
|
||||||
>
|
:editing="editing"
|
||||||
<div class="value-section">
|
@augmentation="(augmentation) => edits.augmentation = augmentation"
|
||||||
<span class="value-label">Natural boobs</span>
|
/>
|
||||||
|
|
||||||
<select
|
<EditPenis
|
||||||
v-model="edits[item.key].naturalBoobs"
|
|
||||||
class="input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option :value="null" />
|
|
||||||
<option :value="true">Yes</option>
|
|
||||||
<option :value="false">No</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
v-if="edits[item.key].naturalBoobs === false"
|
|
||||||
class="value-section"
|
|
||||||
>
|
|
||||||
<span class="value-label">Implant CC</span>
|
|
||||||
|
|
||||||
<input
|
|
||||||
v-model="edits[item.key].boobsVolume"
|
|
||||||
type="number"
|
|
||||||
class="volume input"
|
|
||||||
placeholder="CC"
|
|
||||||
min="50"
|
|
||||||
max="10000"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
v-if="edits[item.key].naturalBoobs === false"
|
|
||||||
class="value-section"
|
|
||||||
>
|
|
||||||
<span class="value-label">Implant type</span>
|
|
||||||
|
|
||||||
<select
|
|
||||||
v-model="edits[item.key].boobsImplant"
|
|
||||||
class="input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option :value="null" />
|
|
||||||
<option value="saline">Saline</option>
|
|
||||||
<option value="silicone">Silicone</option>
|
|
||||||
<option value="gummy">Gummy</option>
|
|
||||||
<option value="fat">Fat transfer</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
v-if="edits[item.key].naturalBoobs === false"
|
|
||||||
class="value-section"
|
|
||||||
>
|
|
||||||
<span class="value-label">Implant placement</span>
|
|
||||||
|
|
||||||
<select
|
|
||||||
v-model="edits[item.key].boobsPlacement"
|
|
||||||
class="input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option :value="null" />
|
|
||||||
<option value="over">Over muscle</option>
|
|
||||||
<option value="under">Under muscle</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
v-if="edits[item.key].naturalBoobs === false"
|
|
||||||
class="value-section"
|
|
||||||
>
|
|
||||||
<span class="value-label">Incision</span>
|
|
||||||
|
|
||||||
<select
|
|
||||||
v-model="edits[item.key].boobsIncision"
|
|
||||||
class="input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option :value="null" />
|
|
||||||
<option value="mammary">Under breast</option>
|
|
||||||
<option value="areolar">Areola</option>
|
|
||||||
<option value="crescent">Crescent</option>
|
|
||||||
<option value="lollipop">Lollipop</option>
|
|
||||||
<option value="anchor">Anchor</option>
|
|
||||||
<option value="axillary">Armpit</option>
|
|
||||||
<option value="umbilical">Navel</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
v-if="edits[item.key].naturalBoobs === false"
|
|
||||||
class="value-section value-divide"
|
|
||||||
>
|
|
||||||
<span class="value-label">Surgeon</span>
|
|
||||||
|
|
||||||
<input
|
|
||||||
v-model="edits[item.key].boobsSurgeon"
|
|
||||||
class="volume input"
|
|
||||||
placeholder="Surgeon"
|
|
||||||
list="surgeons"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
|
|
||||||
<datalist id="surgeons">
|
|
||||||
<option value="Dr. Revis" />
|
|
||||||
</datalist>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="value-section">
|
|
||||||
<span class="value-label">Natural butt</span>
|
|
||||||
|
|
||||||
<select
|
|
||||||
v-model="edits[item.key].naturalButt"
|
|
||||||
class="input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option :value="null" />
|
|
||||||
<option :value="true">Yes</option>
|
|
||||||
<option :value="false">No</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
v-if="edits[item.key].naturalButt === false"
|
|
||||||
class="value-section"
|
|
||||||
>
|
|
||||||
<span class="value-label">Implant CC</span>
|
|
||||||
|
|
||||||
<input
|
|
||||||
v-model="edits[item.key].buttVolume"
|
|
||||||
type="number"
|
|
||||||
class="volume input"
|
|
||||||
placeholder="CC"
|
|
||||||
min="50"
|
|
||||||
max="10000"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
v-if="edits[item.key].naturalButt === false"
|
|
||||||
class="value-section"
|
|
||||||
>
|
|
||||||
<span class="value-label">Implant type</span>
|
|
||||||
|
|
||||||
<select
|
|
||||||
v-model="edits[item.key].buttImplant"
|
|
||||||
class="input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option :value="null" />
|
|
||||||
<option value="bbl">BBL (fat transfer)</option>
|
|
||||||
<option value="lift">Direct lift</option>
|
|
||||||
<option value="filler">Filler (Sculptra)</option>
|
|
||||||
<option value="mms">MMS (CoolTone)</option>
|
|
||||||
<option value="lipo">Lipo without BBL</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="value-section">
|
|
||||||
<span class="value-label">Natural lips</span>
|
|
||||||
|
|
||||||
<select
|
|
||||||
v-model="edits[item.key].naturalLips"
|
|
||||||
class="input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option :value="null" />
|
|
||||||
<option :value="true">Yes</option>
|
|
||||||
<option :value="false">No</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
v-if="edits[item.key].naturalLips === false"
|
|
||||||
class="value-section"
|
|
||||||
>
|
|
||||||
<span class="value-label">Filler CC</span>
|
|
||||||
|
|
||||||
<input
|
|
||||||
v-model="edits[item.key].lipsVolume"
|
|
||||||
type="number"
|
|
||||||
class="volume input"
|
|
||||||
placeholder="CC"
|
|
||||||
min="50"
|
|
||||||
max="10000"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="value-section">
|
|
||||||
<span class="value-label">Natural labia</span>
|
|
||||||
|
|
||||||
<select
|
|
||||||
v-model="edits[item.key].naturalLabia"
|
|
||||||
class="input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option :value="null" />
|
|
||||||
<option :value="true">Yes</option>
|
|
||||||
<option :value="false">No</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
v-if="item.type === 'penis'"
|
v-if="item.type === 'penis'"
|
||||||
class="figure penis"
|
:edits="edits"
|
||||||
>
|
:editing="editing"
|
||||||
<div class="value-section">
|
:units="penisUnits"
|
||||||
<span class="value-label">Units</span>
|
@penis="(penis) => edits.penis = penis"
|
||||||
|
@units="(units) => penisUnits = units"
|
||||||
<select
|
/>
|
||||||
v-model="penisUnits"
|
|
||||||
class="input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option value="imperial">Imperial</option>
|
|
||||||
<option value="metric">Metric</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="value-section">
|
|
||||||
<span class="value-label">Penis length</span>
|
|
||||||
|
|
||||||
<span v-if="penisUnits === 'metric'">
|
|
||||||
<input
|
|
||||||
v-model="edits[item.key].metricLength"
|
|
||||||
type="number"
|
|
||||||
class="volume input"
|
|
||||||
min="1"
|
|
||||||
max="30"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
> cm
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<span v-if="penisUnits === 'imperial'">
|
|
||||||
<input
|
|
||||||
v-model="edits[item.key].imperialLength"
|
|
||||||
type="number"
|
|
||||||
class="volume input"
|
|
||||||
min="1"
|
|
||||||
max="30"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
> inch
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="value-section">
|
|
||||||
<span class="value-label">Penis girth</span>
|
|
||||||
|
|
||||||
<span v-if="penisUnits === 'metric'">
|
|
||||||
<input
|
|
||||||
v-model="edits[item.key].metricGirth"
|
|
||||||
type="number"
|
|
||||||
class="volume input"
|
|
||||||
min="1"
|
|
||||||
max="30"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
> cm
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<span v-if="penisUnits === 'imperial'">
|
|
||||||
<input
|
|
||||||
v-model="edits[item.key].imperialGirth"
|
|
||||||
type="number"
|
|
||||||
class="volume input"
|
|
||||||
min="1"
|
|
||||||
max="30"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
> inch
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="value-section">
|
|
||||||
<span class="value-label">Circumcised</span>
|
|
||||||
|
|
||||||
<select
|
|
||||||
v-model="edits[item.key].isCircumcised"
|
|
||||||
class="input"
|
|
||||||
:disabled="!editing.has(item.key)"
|
|
||||||
>
|
|
||||||
<option :value="null" />
|
|
||||||
<option :value="true">Yes</option>
|
|
||||||
<option :value="false">No</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
<div
|
||||||
v-if="item.type === 'has'"
|
v-if="item.type === 'has'"
|
||||||
|
@ -729,6 +373,10 @@
|
||||||
import { ref, computed, inject } from 'vue';
|
import { ref, computed, inject } from 'vue';
|
||||||
import { format } from 'date-fns';
|
import { format } from 'date-fns';
|
||||||
|
|
||||||
|
import EditPlace from '#/components/edit/place.vue';
|
||||||
|
import EditFigure from '#/components/edit/figure.vue';
|
||||||
|
import EditAugmentation from '#/components/edit/augmentation.vue';
|
||||||
|
import EditPenis from '#/components/edit/penis.vue';
|
||||||
import Avatar from '#/components/edit/avatar.vue';
|
import Avatar from '#/components/edit/avatar.vue';
|
||||||
import Checkbox from '#/components/form/checkbox.vue';
|
import Checkbox from '#/components/form/checkbox.vue';
|
||||||
import Ellipsis from '#/components/loading/ellipsis.vue';
|
import Ellipsis from '#/components/loading/ellipsis.vue';
|
||||||
|
@ -741,47 +389,10 @@ import {
|
||||||
const pageContext = inject('pageContext');
|
const pageContext = inject('pageContext');
|
||||||
|
|
||||||
const user = pageContext.user;
|
const user = pageContext.user;
|
||||||
const countries = pageContext.pageProps.countries;
|
|
||||||
const actor = ref(pageContext.pageProps.actor);
|
const actor = ref(pageContext.pageProps.actor);
|
||||||
|
|
||||||
// console.log(actor.value);
|
// console.log(actor.value);
|
||||||
|
|
||||||
const topCountries = [
|
|
||||||
'AU',
|
|
||||||
'BR',
|
|
||||||
'CZ',
|
|
||||||
'DE',
|
|
||||||
'JP',
|
|
||||||
'RU',
|
|
||||||
'GB',
|
|
||||||
'US',
|
|
||||||
];
|
|
||||||
|
|
||||||
const sortedCountries = countries.toSorted((countryA, countryB) => topCountries.indexOf(countryB.alpha2) - topCountries.indexOf(countryA.alpha2));
|
|
||||||
|
|
||||||
const cupSizes = {
|
|
||||||
us: ['AA', 'A', 'B', 'C', 'D', ['DD', 'E'], ['DDD', 'F'], 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P'], // United States
|
|
||||||
uk: ['AA', 'A', 'B', 'C', 'D', 'DD', 'E', 'F', 'FF', 'G', 'GG', 'H', 'HH', 'J', 'JJ', 'K', 'KK'], // United Kingdom
|
|
||||||
eu: ['AA', 'A', 'B', 'C', 'D', 'E', 'F', 'G', ' H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P'], // Europe
|
|
||||||
jp: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q'], // Japan
|
|
||||||
};
|
|
||||||
|
|
||||||
cupSizes.fr = cupSizes.eu; // France
|
|
||||||
cupSizes.it = cupSizes.uk; // Italy
|
|
||||||
cupSizes.au = cupSizes.uk; // Australia
|
|
||||||
|
|
||||||
// bra band sizes
|
|
||||||
const bustSizes = {
|
|
||||||
us: [28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56],
|
|
||||||
eu: [60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130],
|
|
||||||
fr: [75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145],
|
|
||||||
it: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
|
|
||||||
au: [6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34],
|
|
||||||
};
|
|
||||||
|
|
||||||
bustSizes.uk = bustSizes.us;
|
|
||||||
bustSizes.jp = bustSizes.eu;
|
|
||||||
|
|
||||||
const fields = computed(() => [
|
const fields = computed(() => [
|
||||||
...(actor.value.photos.length > 0 ? [{
|
...(actor.value.photos.length > 0 ? [{
|
||||||
key: 'avatar',
|
key: 'avatar',
|
||||||
|
@ -812,18 +423,16 @@ const fields = computed(() => [
|
||||||
: null,
|
: null,
|
||||||
inline: true,
|
inline: true,
|
||||||
},
|
},
|
||||||
|
/*
|
||||||
{
|
{
|
||||||
key: 'ethnicity',
|
key: 'socials',
|
||||||
type: 'string',
|
type: 'list',
|
||||||
value: actor.value.ethnicity,
|
value: actor.value.socials.map((social) => ({
|
||||||
suggestions: [
|
url: social.url,
|
||||||
'Asian',
|
icon: social.platform,
|
||||||
'Black',
|
})),
|
||||||
'Indian',
|
|
||||||
'Latina',
|
|
||||||
'White',
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
|
*/
|
||||||
{
|
{
|
||||||
key: 'origin',
|
key: 'origin',
|
||||||
type: 'place',
|
type: 'place',
|
||||||
|
@ -840,6 +449,18 @@ const fields = computed(() => [
|
||||||
place: [actor.value.residence?.city, actor.value.residence?.state].filter(Boolean).join(', '),
|
place: [actor.value.residence?.city, actor.value.residence?.state].filter(Boolean).join(', '),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
key: 'ethnicity',
|
||||||
|
type: 'string',
|
||||||
|
value: actor.value.ethnicity,
|
||||||
|
suggestions: [
|
||||||
|
'Asian',
|
||||||
|
'Black',
|
||||||
|
'Indian',
|
||||||
|
'Latina',
|
||||||
|
'White',
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
key: 'size',
|
key: 'size',
|
||||||
type: 'size',
|
type: 'size',
|
||||||
|
@ -935,6 +556,7 @@ const fields = computed(() => [
|
||||||
suggestions: [
|
suggestions: [
|
||||||
'101 Modeling',
|
'101 Modeling',
|
||||||
'Adult Talent Managers (ATMLA)',
|
'Adult Talent Managers (ATMLA)',
|
||||||
|
'AMA Modeling',
|
||||||
'The Bakery Talent',
|
'The Bakery Talent',
|
||||||
'Coxxx Models',
|
'Coxxx Models',
|
||||||
'East Coast Talent (ECT)',
|
'East Coast Talent (ECT)',
|
||||||
|
@ -1000,6 +622,14 @@ const keyMap = {
|
||||||
country: 'residenceCountry',
|
country: 'residenceCountry',
|
||||||
place: 'residencePlace',
|
place: 'residencePlace',
|
||||||
},
|
},
|
||||||
|
tattoos: {
|
||||||
|
has: 'hasTattoos',
|
||||||
|
description: 'tattoos',
|
||||||
|
},
|
||||||
|
piercings: {
|
||||||
|
has: 'hasPiercings',
|
||||||
|
description: 'piercings',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const groupMap = {
|
const groupMap = {
|
||||||
|
@ -1062,24 +692,23 @@ async function submit() {
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style>
|
||||||
.editor {
|
.editor {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
background: var(--background-dark-10);
|
background: var(--background-dark-10);
|
||||||
}
|
|
||||||
|
|
||||||
.editor-header {
|
.editor-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.heading {
|
.heading {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.row {
|
.row {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: .25rem 1rem;
|
padding: .25rem 1rem;
|
||||||
|
@ -1093,34 +722,34 @@ async function submit() {
|
||||||
width: auto;
|
width: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.key {
|
.key {
|
||||||
width: 10rem;
|
width: 10rem;
|
||||||
text-transform: capitalize;
|
text-transform: capitalize;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input {
|
.input {
|
||||||
background: var(--background);
|
background: var(--background);
|
||||||
}
|
}
|
||||||
|
|
||||||
.row .input {
|
.row .input {
|
||||||
height: 2.5rem;
|
height: 2.5rem;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
min-width: 7rem;
|
min-width: 7rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.select {
|
.select {
|
||||||
text-transform: capitalize;
|
text-transform: capitalize;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-header {
|
.item-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.value {
|
.value {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
|
@ -1156,39 +785,39 @@ async function submit() {
|
||||||
&.disabled {
|
&.disabled {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.value-section {
|
.value-section {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.value-label {
|
.value-label {
|
||||||
padding: 0 .25rem;
|
padding: 0 .25rem;
|
||||||
margin-bottom: .25rem;
|
margin-bottom: .25rem;
|
||||||
color: var(--shadow-strong-10);
|
color: var(--shadow-strong-10);
|
||||||
font-size: .8rem;
|
font-size: .8rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.value-divide {
|
.value-divide {
|
||||||
padding-right: 1rem;
|
padding-right: 1rem;
|
||||||
border-right: solid 1px var(--shadow-weak-30);
|
border-right: solid 1px var(--shadow-weak-30);
|
||||||
margin-right: .5rem;
|
margin-right: .5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.place,
|
.place,
|
||||||
.has,
|
.has,
|
||||||
.figure {
|
.figure {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: .5rem;
|
gap: .5rem;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.figure {
|
.figure {
|
||||||
.input[type="number"] {
|
.input[type="number"] {
|
||||||
width: 5rem;
|
width: 5rem;
|
||||||
}
|
}
|
||||||
|
@ -1196,14 +825,14 @@ async function submit() {
|
||||||
.input[type="number"].volume {
|
.input[type="number"].volume {
|
||||||
width: 6rem;
|
width: 6rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.figure-bust {
|
.figure-bust {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.has {
|
.has {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
|
|
||||||
.select {
|
.select {
|
||||||
|
@ -1213,9 +842,64 @@ async function submit() {
|
||||||
.description {
|
.description {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.avatars {
|
.list {
|
||||||
|
&.disabled {
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
border-radius: .25rem;
|
||||||
|
background: var(--background);
|
||||||
|
box-shadow: 0 0 3px var(--shadow-weak-30);
|
||||||
|
|
||||||
|
.icon-social {
|
||||||
|
margin: 0 .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.deleted {
|
||||||
|
color: var(--glass);
|
||||||
|
text-decoration: line-through;
|
||||||
|
|
||||||
|
.icon.icon-social {
|
||||||
|
fill: var(--glass-weak-10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.add,
|
||||||
|
.remove {
|
||||||
|
padding: .25rem .3rem;
|
||||||
|
margin-left: .5rem;
|
||||||
|
border-radius: .25rem;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
fill: var(--text-light);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.add {
|
||||||
|
fill: var(--success);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: var(--success);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.remove {
|
||||||
|
fill: var(--error);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: var(--error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatars {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: .25rem;
|
gap: .25rem;
|
||||||
|
@ -1225,9 +909,9 @@ async function submit() {
|
||||||
&.disabled {
|
&.disabled {
|
||||||
opacity: .5;
|
opacity: .5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-actions {
|
.item-actions {
|
||||||
.icon {
|
.icon {
|
||||||
padding: .25rem 1rem;
|
padding: .25rem 1rem;
|
||||||
fill: var(--glass);
|
fill: var(--glass);
|
||||||
|
@ -1242,9 +926,9 @@ async function submit() {
|
||||||
fill: var(--primary);
|
fill: var(--primary);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-footer {
|
.editor-footer {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
@ -1252,9 +936,9 @@ async function submit() {
|
||||||
padding: 1rem 1rem 0 1rem;
|
padding: 1rem 1rem 0 1rem;
|
||||||
border-top: solid 1px var(--primary-light-30);
|
border-top: solid 1px var(--primary-light-30);
|
||||||
margin: 1rem 0;
|
margin: 1rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.comment {
|
.comment {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
|
||||||
|
@ -1262,9 +946,9 @@ async function submit() {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
resize: vertical;
|
resize: vertical;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-actions {
|
.editor-actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
@ -1275,15 +959,16 @@ async function submit() {
|
||||||
padding: .5rem 1rem;
|
padding: .5rem 1rem;
|
||||||
font-size: 1.1rem;
|
font-size: 1.1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.submitted {
|
.submitted {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media(--small) {
|
@media(--small) {
|
||||||
|
|
|
@ -114,6 +114,10 @@ export function curateActor(actor, context = {}) {
|
||||||
},
|
},
|
||||||
agency: actor.agency,
|
agency: actor.agency,
|
||||||
avatar: curateMedia(actor.avatar),
|
avatar: curateMedia(actor.avatar),
|
||||||
|
socials: context.socials?.map((social) => ({
|
||||||
|
url: social.url,
|
||||||
|
platform: social.platform,
|
||||||
|
})),
|
||||||
profiles: context.profiles?.map((profile) => ({
|
profiles: context.profiles?.map((profile) => ({
|
||||||
id: profile.id,
|
id: profile.id,
|
||||||
description: profile.description,
|
description: profile.description,
|
||||||
|
@ -165,7 +169,7 @@ export function sortActorsByGender(actors, context = {}) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function fetchActorsById(actorIds, options = {}, reqUser) {
|
export async function fetchActorsById(actorIds, options = {}, reqUser) {
|
||||||
const [actors, profiles, photos, stashes] = await Promise.all([
|
const [actors, profiles, photos, socials, stashes] = await Promise.all([
|
||||||
knex('actors')
|
knex('actors')
|
||||||
.select(
|
.select(
|
||||||
'actors.*',
|
'actors.*',
|
||||||
|
@ -212,6 +216,8 @@ export async function fetchActorsById(actorIds, options = {}, reqUser) {
|
||||||
.leftJoin('media', 'media.id', 'actors_avatars.media_id')
|
.leftJoin('media', 'media.id', 'actors_avatars.media_id')
|
||||||
.groupBy('media.id', 'actors_avatars.actor_id')
|
.groupBy('media.id', 'actors_avatars.actor_id')
|
||||||
.orderBy(knex.raw('max(actors_avatars.created_at)'), 'desc'),
|
.orderBy(knex.raw('max(actors_avatars.created_at)'), 'desc'),
|
||||||
|
knex('actors_social')
|
||||||
|
.whereIn('actor_id', actorIds),
|
||||||
reqUser
|
reqUser
|
||||||
? knex('stashes_actors')
|
? knex('stashes_actors')
|
||||||
.leftJoin('stashes', 'stashes.id', 'stashes_actors.stash_id')
|
.leftJoin('stashes', 'stashes.id', 'stashes_actors.stash_id')
|
||||||
|
@ -239,6 +245,7 @@ export async function fetchActorsById(actorIds, options = {}, reqUser) {
|
||||||
stashes: stashes.filter((stash) => stash.actor_id === actor.id),
|
stashes: stashes.filter((stash) => stash.actor_id === actor.id),
|
||||||
profiles: profiles.filter((profile) => profile.actor_id === actor.id),
|
profiles: profiles.filter((profile) => profile.actor_id === actor.id),
|
||||||
photos: photos.filter((photo) => photo.actor_id === actor.id),
|
photos: photos.filter((photo) => photo.actor_id === actor.id),
|
||||||
|
socials: socials.filter((social) => social.actor_id === actor.id),
|
||||||
append: options.append,
|
append: options.append,
|
||||||
});
|
});
|
||||||
}).filter(Boolean);
|
}).filter(Boolean);
|
||||||
|
@ -829,12 +836,17 @@ export async function createActorRevision(actorId, {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key === 'residenceCountry' && edits.residenceCountry) {
|
if (key === 'residenceCountry' && edits.residencePlace) {
|
||||||
// place overrides country
|
// place overrides country
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (['originPlace', 'residencePlace'].includes(key)) {
|
if (['originPlace', 'residencePlace'].includes(key)) {
|
||||||
|
if (!value && !baseActor[key]) {
|
||||||
|
// don't pollute deltas if value is already unset
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
if (!value) {
|
if (!value) {
|
||||||
return [
|
return [
|
||||||
// { key: key.includes('origin') ? 'originCountry' : 'residenceCountry', value: null },
|
// { key: key.includes('origin') ? 'originCountry' : 'residenceCountry', value: null },
|
||||||
|
|