appscms-tools-theme 2.1.5 → 2.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_data/feature/en/theframe.json +37 -0
- data/_layouts/calculator.html +2 -1
- data/_layouts/frame.html +109 -0
- data/assets/css/frame.css +431 -0
- data/assets/images/gallary.png +0 -0
- data/assets/js/frame.js +171 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51b3c31ee812993687656e68b2412e478286a67cbb98d2e104b9292fdb0bce6f
|
4
|
+
data.tar.gz: cb31442354d68bb04bcfb6a790c1b140fbc2081eb83bf2bb51b35e70d6b6050b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93cb976dbffe80210bc811ee1ce7c7fbee6c4ae099744f191f3747ea2896753fa78b783dd761ebfd53fa9d82f84444779c7e252dc4ae33629cb0d8618a7658f9
|
7
|
+
data.tar.gz: 457d0caab467afae723489e2e5e13bf73856c76ab389a6e2b3e3b2941026f15a995386e7a7bda5a0ebe8162995cfbca89ea1c993e05d483599fc8f683b7c79a6
|
@@ -0,0 +1,37 @@
|
|
1
|
+
{
|
2
|
+
"Language": "English",
|
3
|
+
"htmlLangAtt": "en",
|
4
|
+
"H1": "The frame",
|
5
|
+
"H2": "Upload the image and apply your favourite border",
|
6
|
+
"color": "#FF5554",
|
7
|
+
"imgwidth": "35px",
|
8
|
+
"imgheight": "35px",
|
9
|
+
"imgalt": "altvalue",
|
10
|
+
"nofileupload": true,
|
11
|
+
"variant": "primary",
|
12
|
+
"TITLE": "Image border tool- Surround your images with a border",
|
13
|
+
"META": "Image border tool helps you to add a simple border frame to your image. You can customize border colour and width. Border sets the focal subject.",
|
14
|
+
"TEXTUAL_CONTENT": [],
|
15
|
+
"FAQ": [
|
16
|
+
{
|
17
|
+
"question": "",
|
18
|
+
"answer": ""
|
19
|
+
}
|
20
|
+
],
|
21
|
+
"jsfilepaths": [
|
22
|
+
"/assets/js/googledrive.js",
|
23
|
+
"https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.12/cropper.min.js",
|
24
|
+
"/assets/js/frame.js"
|
25
|
+
],
|
26
|
+
"cssfilepaths": [
|
27
|
+
"https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.12/cropper.css",
|
28
|
+
"/assets/css/frame.css"
|
29
|
+
],
|
30
|
+
"image": {
|
31
|
+
"src": "/assets/images/gallary.png",
|
32
|
+
"height": 277,
|
33
|
+
"width": 378,
|
34
|
+
"x": 110,
|
35
|
+
"y": 180
|
36
|
+
}
|
37
|
+
}
|
data/_layouts/calculator.html
CHANGED
@@ -12,7 +12,7 @@ layout: feature
|
|
12
12
|
<div class="row w-100 mx-auto">
|
13
13
|
<form id="calculator-form" class="w-100">
|
14
14
|
{%- for item in calculatorData.calculatorRow -%}
|
15
|
-
<div class="row" id="calculator-row">
|
15
|
+
<div class="row" id="calculator-row-{{forloop.index}}">
|
16
16
|
{%- if item.labelName -%}
|
17
17
|
<div class="col-md-12">
|
18
18
|
<label for="{{item.labelId}}">{{item.labelName}}</label>
|
@@ -39,6 +39,7 @@ layout: feature
|
|
39
39
|
|
40
40
|
</div>
|
41
41
|
{%- endfor -%}
|
42
|
+
<div id="dynamic-section"></div>
|
42
43
|
</form>
|
43
44
|
|
44
45
|
</div>
|
data/_layouts/frame.html
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
---
|
2
|
+
layout: feature
|
3
|
+
---
|
4
|
+
|
5
|
+
<div class="container">
|
6
|
+
{%- assign fileData = site.data[page.folderName][page.lang][page.fileName] -%}
|
7
|
+
<div class="custom-box" data-filter="{{page.filter}}" data-src="{{fileData.image.src}}"
|
8
|
+
data-height="{{fileData.image.height}}" data-width="{{fileData.image.width}}" data-x="{{fileData.image.x}}"
|
9
|
+
data-y="{{fileData.image.y}}" style="background-color:{{fileData.color}};">
|
10
|
+
<div class="inner-box">
|
11
|
+
<div style="display:none;" id="file-loader"><img src="/spinner.gif" alt="">
|
12
|
+
<p>Please Wait ,Loading Your file </p>
|
13
|
+
</div>
|
14
|
+
<div class="saving-file-download-wrap" style="display: none;">
|
15
|
+
<img loading="lazy" class="trust-img" src="/trust.svg" alt="trust">
|
16
|
+
<p class="text-white my-2">Thanks for your patience</p>
|
17
|
+
<button class="btn" id="download-zip">Download</button>
|
18
|
+
</div>
|
19
|
+
<div class="file-input">
|
20
|
+
<div class="mb-4 d-flex justify-content-center">
|
21
|
+
<svg xmlns="http://www.w3.org/2000/svg" id="img-svg" viewBox="0 0 96 60">
|
22
|
+
<path fill="white"
|
23
|
+
d="M61.9655252,3.24869071 L61.9765763,3.41278068 L62.045,5.866 L73.2405238,6.25793424 C74.5651997,6.30419294 75.6130942,7.37295092 75.6521743,8.67919891 L75.6517521,8.84366004 L73.9765763,56.8144197 C73.9303176,58.1390957 72.8615596,59.1869902 71.5553116,59.2260703 L71.3908505,59.2256481 L68.3103384,59.1184351 C68.0464245,59.8400339 67.3786666,60.3670921 66.5807111,60.425963 L66.4314488,60.4314488 L66.4314488,60.4314488 L30.4314488,60.4314488 C29.3268793,60.4314488 28.4314488,59.5360183 28.4314488,58.4314488 L28.431,55.114 L25.262454,55.2256481 C23.9377781,55.2719068 22.8178834,54.2788497 22.6877793,52.9785097 L22.6767282,52.8144197 L21.0015524,4.84366004 C20.9552937,3.51898409 21.9483508,2.39908942 23.2486907,2.2689853 L23.4127807,2.25793424 L59.3908505,1.00155235 C60.7155264,0.955293651 61.8354211,1.94835077 61.9655252,3.24869071 Z M54.2794488,39.4234488 L45.0024366,47.6809882 L40.7104488,42.4274488 L29.431,51.895 L29.4314488,58.4314488 C29.4314488,58.9442846 29.817489,59.3669559 30.3148276,59.424721 L30.4314488,59.4314488 L66.4314488,59.4314488 C66.9442846,59.4314488 67.3669559,59.0454086 67.424721,58.5480699 L67.4314488,58.4314488 L67.4304488,52.8324488 L54.2794488,39.4234488 Z M37.2275545,6.00094318 C36.4483334,5.97373218 35.7872098,6.54589593 35.688023,7.30354781 L35.676119,7.44768018 L35.676,8.431 L60.4314488,8.43144877 L68.4314488,16.4314488 L68.431,58.121 L71.4257499,58.2262572 C72.2049711,58.2534682 72.8660946,57.6813045 72.9652815,56.9236526 L72.9771854,56.7795202 L74.6523613,8.80876055 C74.6795723,8.0295394 74.1074085,7.36841587 73.3497567,7.26922904 L73.2056243,7.25732506 L37.2275545,6.00094318 Z M59.4257499,2.00094318 L23.4476802,3.25732506 C22.668459,3.28453606 22.0488581,3.9014237 22.002764,4.6641489 L22.0009432,4.80876055 L23.676119,52.7795202 C23.70333,53.5587414 24.3202177,54.1783423 25.0829429,54.2244364 L25.2275545,54.2262572 L28.431,54.114 L28.4314488,10.4314488 C28.4314488,9.32687927 29.3268793,8.43144877 30.4314488,8.43144877 L34.611,8.431 L34.6767282,7.41278068 C34.7229869,6.08810473 35.7917449,5.04021022 37.0979929,5.00113017 L37.262454,5.00155235 L61.045,5.831 L60.9771854,3.44768018 C60.9499744,2.66845903 60.3330868,2.04885809 59.5703616,2.00276399 L59.4257499,2.00094318 Z M59.431,9.431 L30.4314488,9.43144877 C29.9186129,9.43144877 29.4959416,9.81748896 29.4381765,10.3148276 L29.4314488,10.4314488 L29.431,50.591 L40.8439098,41.010846 L45.1168036,46.2404726 L54.3266522,38.0432874 L67.431,51.405 L67.431,17.431 L59.4314488,17.4314488 L59.431,9.431 Z M58.4314488,26.4314488 C60.088303,26.4314488 61.4314488,27.7745945 61.4314488,29.4314488 C61.4314488,31.088303 60.088303,32.4314488 58.4314488,32.4314488 C56.7745945,32.4314488 55.4314488,31.088303 55.4314488,29.4314488 C55.4314488,27.7745945 56.7745945,26.4314488 58.4314488,26.4314488 Z M60.431,9.846 L60.431,16.431 L67.016,16.431 L60.431,9.846 Z">
|
24
|
+
</path>
|
25
|
+
</svg>
|
26
|
+
</div>
|
27
|
+
<div class="d-flex justify-content-center align-items-center ">
|
28
|
+
<div id="Inputbox" class="boxes"> <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"
|
29
|
+
fill="currentColor">
|
30
|
+
<path
|
31
|
+
d="M14.0036 1.99646L17.0036 4.99646L16.999 4.99946L17 5.00001V13H16V5.99946L13 6.00001V2.99946H4V17.9995L12.0275 18.0003C12.0093 17.8361 12 17.6691 12 17.5C12 15.0147 14.0147 13 16.5 13C18.9853 13 21 15.0147 21 17.5C21 19.9853 18.9853 22 16.5 22C14.5409 22 12.8742 20.7481 12.2563 19.0007L3 19V2.00001H14L14.0036 1.99646ZM16.5 14C14.567 14 13 15.567 13 17.5C13 19.433 14.567 21 16.5 21C18.433 21 20 19.433 20 17.5C20 15.567 18.433 14 16.5 14ZM17 15V16.9995L19 17V18L17 17.9995V20H16V17.9995L14 18V17L16 16.9995V15H17ZM11 14V15H6V14H11ZM14 11V12H6V11H14ZM14 8.00001V9.00001H6V8.00001H14ZM14 3.40746V4.99946H15.592L14 3.40746Z">
|
32
|
+
</path>
|
33
|
+
</svg> <span class='ml-1'>CHOOSE FILE</span> </div>
|
34
|
+
<div class="file-pick-dropdown">
|
35
|
+
<i class="fas fa-angle-down arrow-sign "></i>
|
36
|
+
<div class="file-picker-dropdown" style="display: none;">
|
37
|
+
<button id="dropbox"> <svg viewBox="0 0 24 24" fill="#0061FF"
|
38
|
+
xmlns="http://www.w3.org/2000/svg">
|
39
|
+
<path id="icon"
|
40
|
+
d="M12.0146 6.57367L6.50732 10.1473L12.0146 13.721L6.50732 17.2947L1 13.6912L6.50732 10.1176L1 6.57367L6.50732 3L12.0146 6.57367ZM6.47803 18.4263L11.9854 14.8527L17.4927 18.4263L11.9854 22L6.47803 18.4263ZM12.0146 13.6912L17.522 10.1176L12.0146 6.57367L17.4927 3L23 6.57367L17.4927 10.1473L23 13.721L17.4927 17.2947L12.0146 13.6912Z">
|
41
|
+
</path>
|
42
|
+
</svg> From Dropbox</button>
|
43
|
+
<button id='filepicker'> <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
44
|
+
<path id="Path" d="M8.33331 3H15.6666L23 15H15.6666L8.33331 3Z" fill="#FFC107">
|
45
|
+
</path>
|
46
|
+
<path id="Path_2" d="M4.6012 21L8.30086 15H23L19.3333 21H4.6012Z" fill="#1976D2">
|
47
|
+
</path>
|
48
|
+
<path id="Path_3" d="M1 15.0625L4.60119 21L12 9L8.33333 3L1 15.0625Z"
|
49
|
+
fill="#4CAF50">
|
50
|
+
</path>
|
51
|
+
</svg> From Google Drive</button>
|
52
|
+
</div>
|
53
|
+
</div>
|
54
|
+
</div>
|
55
|
+
<p id="dropfile">or drop your file here</p>
|
56
|
+
</div>
|
57
|
+
</div>
|
58
|
+
</div>
|
59
|
+
<div class="crop-image-modal-container">
|
60
|
+
<div class="row w-100">
|
61
|
+
<div class="crop-image-modal col-lg-6 col-md-8 mx-auto">
|
62
|
+
<div class="crop-image-modal-header" style="background-color:{{fileData.color}} ;">
|
63
|
+
<div>Select an area you would like to use</div>
|
64
|
+
<div>
|
65
|
+
<button onclick="closeModal()">
|
66
|
+
<i class="fas fa-times"></i>
|
67
|
+
</button>
|
68
|
+
</div>
|
69
|
+
</div>
|
70
|
+
<div class="crop-image-modal-body">
|
71
|
+
|
72
|
+
</div>
|
73
|
+
<div class="crop-btn-section">
|
74
|
+
<button id="crop" class="mx-auto my-3" style="background-color: {{fileData.color}};">crop</button>
|
75
|
+
</div>
|
76
|
+
</div>
|
77
|
+
</div>
|
78
|
+
</div>
|
79
|
+
<div id="workspace" style="display: none;">
|
80
|
+
<div class="row">
|
81
|
+
<div class="col-md-8 mx-auto">
|
82
|
+
<div class="select-img-panel">
|
83
|
+
<div id="saving-data" style="display: none;">
|
84
|
+
<img loading="lazy" src="/img/save.gif" alt="saving"> <span class="ml-2">Saving your
|
85
|
+
images...</span>
|
86
|
+
</div>
|
87
|
+
<div id="canvas-panel">
|
88
|
+
</div>
|
89
|
+
</div>
|
90
|
+
</div>
|
91
|
+
<div class="col-md-4">
|
92
|
+
<div class="options-panel">
|
93
|
+
<div class="title">
|
94
|
+
|
95
|
+
</div>
|
96
|
+
<div class="download-wrapper">
|
97
|
+
<button id="download-button" style="background-color: {{fileData.color}};"><svg
|
98
|
+
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
99
|
+
<path
|
100
|
+
d="M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM382.6 302.6l-103.1 103.1C270.7 414.6 260.9 416 256 416c-4.881 0-14.65-1.391-22.65-9.398L129.4 302.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 306.8V128c0-17.69 14.33-32 32-32s32 14.31 32 32v178.8l49.38-49.38c12.5-12.5 32.75-12.5 45.25 0S395.1 290.1 382.6 302.6z" />
|
101
|
+
</svg>Download</button>
|
102
|
+
</div>
|
103
|
+
</div>
|
104
|
+
|
105
|
+
</div>
|
106
|
+
</div>
|
107
|
+
</div>
|
108
|
+
</div>
|
109
|
+
<input class="d-none" onchange="fileOnChange()" type="file" id="file" accept=".webp,.png,.jpg,.jpeg" />
|
@@ -0,0 +1,431 @@
|
|
1
|
+
#img-svg {
|
2
|
+
margin: auto;
|
3
|
+
margin-top: 16px;
|
4
|
+
height: 67px;
|
5
|
+
width: 98px;
|
6
|
+
}
|
7
|
+
|
8
|
+
#file-loader {
|
9
|
+
display: flex;
|
10
|
+
align-items: center;
|
11
|
+
flex-direction: column;
|
12
|
+
}
|
13
|
+
|
14
|
+
#file-loader img {
|
15
|
+
height: 60px;
|
16
|
+
}
|
17
|
+
|
18
|
+
#file-loader p {
|
19
|
+
text-align: center;
|
20
|
+
color: #fff;
|
21
|
+
font-size: 17px;
|
22
|
+
}
|
23
|
+
|
24
|
+
#loading-img {
|
25
|
+
height: 27px;
|
26
|
+
width: 27px;
|
27
|
+
margin-right: 21px;
|
28
|
+
}
|
29
|
+
|
30
|
+
#dropbox svg,
|
31
|
+
#filepicker svg,
|
32
|
+
.boxes svg {
|
33
|
+
height: 24px !important;
|
34
|
+
width: 24px !important;
|
35
|
+
}
|
36
|
+
|
37
|
+
.file-picker-dropdown a,
|
38
|
+
.file-picker-dropdown button {
|
39
|
+
border: none;
|
40
|
+
width: 100%;
|
41
|
+
border-radius: 4px;
|
42
|
+
text-align: left;
|
43
|
+
background: #fff;
|
44
|
+
font-weight: 400;
|
45
|
+
font-size: 16px;
|
46
|
+
line-height: 24px;
|
47
|
+
padding: 15px 24px;
|
48
|
+
list-style: none;
|
49
|
+
height: 54px;
|
50
|
+
}
|
51
|
+
|
52
|
+
.file-picker-dropdown {
|
53
|
+
width: 213px;
|
54
|
+
position: absolute;
|
55
|
+
background: #fff;
|
56
|
+
top: 111%;
|
57
|
+
right: 0;
|
58
|
+
display: none;
|
59
|
+
box-shadow: rgb(26 26 26 / 20%) 0 0 12px;
|
60
|
+
border-radius: 4px;
|
61
|
+
}
|
62
|
+
|
63
|
+
.file-pick-dropdown i {
|
64
|
+
margin: 0;
|
65
|
+
}
|
66
|
+
|
67
|
+
.boxes {
|
68
|
+
background: #fff;
|
69
|
+
border-radius: 0;
|
70
|
+
cursor: pointer;
|
71
|
+
display: flex;
|
72
|
+
align-items: center;
|
73
|
+
padding: 15px 24px;
|
74
|
+
height: 54px;
|
75
|
+
border-top-left-radius: 4px;
|
76
|
+
border-bottom-left-radius: 4px;
|
77
|
+
justify-content: center;
|
78
|
+
font-size: 15px;
|
79
|
+
font-weight: 800;
|
80
|
+
color: #000;
|
81
|
+
}
|
82
|
+
|
83
|
+
.file-pick-dropdown {
|
84
|
+
color: #000;
|
85
|
+
cursor: pointer;
|
86
|
+
display: inline-flex;
|
87
|
+
background: #fff;
|
88
|
+
height: 54px;
|
89
|
+
border-left: 1px solid rgba(95, 88, 88, 0.75);
|
90
|
+
padding: 13px 20px;
|
91
|
+
border-top-right-radius: 4px;
|
92
|
+
border-bottom-right-radius: 4px;
|
93
|
+
align-items: center;
|
94
|
+
position: relative;
|
95
|
+
}
|
96
|
+
|
97
|
+
.custom-box {
|
98
|
+
padding: 15px;
|
99
|
+
}
|
100
|
+
|
101
|
+
.inner-box {
|
102
|
+
border: 1px dashed rgba(0, 0, 0, 0.15);
|
103
|
+
background: rgba(0, 0, 0, 0.1);
|
104
|
+
padding: 40px;
|
105
|
+
min-height: 300px;
|
106
|
+
width: 100%;
|
107
|
+
display: flex;
|
108
|
+
align-items: center;
|
109
|
+
justify-content: center;
|
110
|
+
}
|
111
|
+
#dropfile {
|
112
|
+
font-size: 16px;
|
113
|
+
margin-top: 15px;
|
114
|
+
text-align: center;
|
115
|
+
color: #fff;
|
116
|
+
}
|
117
|
+
.saving-file-download-wrap {
|
118
|
+
display: flex;
|
119
|
+
flex-direction: column;
|
120
|
+
align-items: center;
|
121
|
+
}
|
122
|
+
#download {
|
123
|
+
padding: 10px 16px;
|
124
|
+
background: #fff;
|
125
|
+
}
|
126
|
+
|
127
|
+
.trust-img {
|
128
|
+
height: 80px;
|
129
|
+
width: 80px;
|
130
|
+
}
|
131
|
+
.options-panel select,
|
132
|
+
textarea,
|
133
|
+
input {
|
134
|
+
width: 100%;
|
135
|
+
text-align: left;
|
136
|
+
background: #fff;
|
137
|
+
height: 34px;
|
138
|
+
display: flex;
|
139
|
+
border-radius: 4px;
|
140
|
+
align-items: center;
|
141
|
+
justify-content: space-between;
|
142
|
+
box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%);
|
143
|
+
color: #0f0c0c;
|
144
|
+
border: 1px solid #ccc;
|
145
|
+
}
|
146
|
+
.options-panel div {
|
147
|
+
width: 100%;
|
148
|
+
}
|
149
|
+
#action-button {
|
150
|
+
background-color: #ff6537;
|
151
|
+
margin: 0;
|
152
|
+
width: 180px;
|
153
|
+
padding: 10px 0;
|
154
|
+
font-size: 13pt;
|
155
|
+
position: relative;
|
156
|
+
border-radius: 2px;
|
157
|
+
border: 1px solid #ff6131;
|
158
|
+
color: #fff;
|
159
|
+
font-weight: 600;
|
160
|
+
display: block;
|
161
|
+
margin: auto;
|
162
|
+
margin-top: 20px;
|
163
|
+
}
|
164
|
+
#workspace-area input[type='text'] {
|
165
|
+
height: 40px;
|
166
|
+
border: 1px solid gray;
|
167
|
+
border-radius: 2px;
|
168
|
+
}
|
169
|
+
#canvas-area {
|
170
|
+
width: 100%;
|
171
|
+
margin-top: 30px;
|
172
|
+
max-width: 100%;
|
173
|
+
}
|
174
|
+
#img-svg {
|
175
|
+
margin: auto;
|
176
|
+
margin-top: 16px;
|
177
|
+
height: 67px;
|
178
|
+
width: 98px;
|
179
|
+
}
|
180
|
+
|
181
|
+
#file-loader {
|
182
|
+
display: flex;
|
183
|
+
align-items: center;
|
184
|
+
flex-direction: column;
|
185
|
+
}
|
186
|
+
|
187
|
+
#file-loader img {
|
188
|
+
height: 60px;
|
189
|
+
}
|
190
|
+
|
191
|
+
#file-loader p {
|
192
|
+
text-align: center;
|
193
|
+
color: #fff;
|
194
|
+
font-size: 17px;
|
195
|
+
}
|
196
|
+
|
197
|
+
#loading-img {
|
198
|
+
height: 27px;
|
199
|
+
width: 27px;
|
200
|
+
margin-right: 21px;
|
201
|
+
}
|
202
|
+
|
203
|
+
#dropbox svg,
|
204
|
+
#filepicker svg,
|
205
|
+
.boxes svg {
|
206
|
+
height: 24px !important;
|
207
|
+
width: 24px !important;
|
208
|
+
}
|
209
|
+
|
210
|
+
.file-picker-dropdown a,
|
211
|
+
.file-picker-dropdown button {
|
212
|
+
border: none;
|
213
|
+
width: 100%;
|
214
|
+
border-radius: 4px;
|
215
|
+
text-align: left;
|
216
|
+
background: #fff;
|
217
|
+
font-weight: 400;
|
218
|
+
font-size: 16px;
|
219
|
+
line-height: 24px;
|
220
|
+
padding: 15px 24px;
|
221
|
+
list-style: none;
|
222
|
+
height: 54px;
|
223
|
+
}
|
224
|
+
|
225
|
+
.file-picker-dropdown {
|
226
|
+
width: 213px;
|
227
|
+
position: absolute;
|
228
|
+
background: #fff;
|
229
|
+
top: 111%;
|
230
|
+
right: 0;
|
231
|
+
display: none;
|
232
|
+
box-shadow: rgb(26 26 26 / 20%) 0 0 12px;
|
233
|
+
border-radius: 4px;
|
234
|
+
}
|
235
|
+
|
236
|
+
.file-pick-dropdown i {
|
237
|
+
margin: 0;
|
238
|
+
}
|
239
|
+
|
240
|
+
.boxes {
|
241
|
+
background: #fff;
|
242
|
+
border-radius: 0;
|
243
|
+
cursor: pointer;
|
244
|
+
display: flex;
|
245
|
+
align-items: center;
|
246
|
+
padding: 15px 24px;
|
247
|
+
height: 54px;
|
248
|
+
border-top-left-radius: 4px;
|
249
|
+
border-bottom-left-radius: 4px;
|
250
|
+
justify-content: center;
|
251
|
+
font-size: 15px;
|
252
|
+
font-weight: 800;
|
253
|
+
color: #000;
|
254
|
+
}
|
255
|
+
|
256
|
+
.file-pick-dropdown {
|
257
|
+
color: #000;
|
258
|
+
cursor: pointer;
|
259
|
+
display: inline-flex;
|
260
|
+
background: #fff;
|
261
|
+
height: 54px;
|
262
|
+
border-left: 1px solid rgba(95, 88, 88, 0.75);
|
263
|
+
padding: 13px 20px;
|
264
|
+
border-top-right-radius: 4px;
|
265
|
+
border-bottom-right-radius: 4px;
|
266
|
+
align-items: center;
|
267
|
+
position: relative;
|
268
|
+
}
|
269
|
+
|
270
|
+
.crop-img-box {
|
271
|
+
background-color: #fff;
|
272
|
+
width: 100%;
|
273
|
+
border-radius: 0.75em;
|
274
|
+
border: 1px solid #f2f2f2;
|
275
|
+
box-shadow: 0px 5px 16px -2px rgb(42 115 217 / 20%);
|
276
|
+
font-size: 16px;
|
277
|
+
height: auto;
|
278
|
+
display: none;
|
279
|
+
}
|
280
|
+
|
281
|
+
.custom-box {
|
282
|
+
padding: 15px;
|
283
|
+
}
|
284
|
+
|
285
|
+
.inner-box {
|
286
|
+
border: 1px dashed rgba(0, 0, 0, 0.15);
|
287
|
+
background: rgba(0, 0, 0, 0.1);
|
288
|
+
padding: 40px;
|
289
|
+
min-height: 300px;
|
290
|
+
width: 100%;
|
291
|
+
}
|
292
|
+
#dropfile {
|
293
|
+
font-size: 16px;
|
294
|
+
margin-top: 15px;
|
295
|
+
text-align: center;
|
296
|
+
color: #fff;
|
297
|
+
}
|
298
|
+
.options-panel {
|
299
|
+
box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
|
300
|
+
border-radius: 4px;
|
301
|
+
padding: 30px;
|
302
|
+
width: 100%;
|
303
|
+
}
|
304
|
+
.options-panel .title {
|
305
|
+
width: 100%;
|
306
|
+
font-size: 28px;
|
307
|
+
line-height: 36px;
|
308
|
+
color: #000;
|
309
|
+
font-weight: 700;
|
310
|
+
text-align: left;
|
311
|
+
text-transform: capitalize;
|
312
|
+
}
|
313
|
+
.options-panel .description {
|
314
|
+
width: 100%;
|
315
|
+
font-size: 17px;
|
316
|
+
color: #666;
|
317
|
+
font-weight: 400;
|
318
|
+
text-align: left;
|
319
|
+
}
|
320
|
+
.options-title {
|
321
|
+
width: 100%;
|
322
|
+
font-size: 17px;
|
323
|
+
color: #666;
|
324
|
+
font-weight: 400;
|
325
|
+
text-align: left;
|
326
|
+
}
|
327
|
+
#download-button {
|
328
|
+
cursor: pointer;
|
329
|
+
display: inline-block;
|
330
|
+
width: 100%;
|
331
|
+
padding: 14px 0;
|
332
|
+
margin-bottom: 20px;
|
333
|
+
text-align: center;
|
334
|
+
border-radius: 50px;
|
335
|
+
background: #0050e5;
|
336
|
+
font-size: 18px;
|
337
|
+
color: #fff;
|
338
|
+
font-weight: 700;
|
339
|
+
text-decoration: none;
|
340
|
+
transition: all 0.3s;
|
341
|
+
border: none;
|
342
|
+
}
|
343
|
+
#download-button svg {
|
344
|
+
fill: #fff;
|
345
|
+
margin-right: 4px;
|
346
|
+
margin-bottom: 4px;
|
347
|
+
height: 20px;
|
348
|
+
}
|
349
|
+
.download-wrapper {
|
350
|
+
display: flex;
|
351
|
+
align-items: center;
|
352
|
+
border-bottom: 1px solid #ddd;
|
353
|
+
margin: 12px 0px;
|
354
|
+
padding: 12px 0px;
|
355
|
+
}
|
356
|
+
#canvas-panel canvas {
|
357
|
+
max-width: 100%;
|
358
|
+
}
|
359
|
+
.options-panel select,
|
360
|
+
textarea,
|
361
|
+
input {
|
362
|
+
width: 100%;
|
363
|
+
text-align: left;
|
364
|
+
background: #fff;
|
365
|
+
height: 34px;
|
366
|
+
display: flex;
|
367
|
+
border-radius: 4px;
|
368
|
+
justify-content: space-between;
|
369
|
+
box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%);
|
370
|
+
color: #0f0c0c;
|
371
|
+
border: 1px solid #ccc;
|
372
|
+
}
|
373
|
+
.crop-image-modal-container {
|
374
|
+
position: fixed;
|
375
|
+
display: none;
|
376
|
+
justify-content: center;
|
377
|
+
background-color: rgba(0, 0, 0, 0.297);
|
378
|
+
height: 100vh;
|
379
|
+
width: 100%;
|
380
|
+
top: 0;
|
381
|
+
left: 0;
|
382
|
+
z-index: 999999;
|
383
|
+
padding: 0px 20px;
|
384
|
+
}
|
385
|
+
.crop-image-modal {
|
386
|
+
height: fit-content;
|
387
|
+
background-color: #fff;
|
388
|
+
width: 100%;
|
389
|
+
margin-top: 10px;
|
390
|
+
border-radius: 5px;
|
391
|
+
padding: 0;
|
392
|
+
overflow-y: auto;
|
393
|
+
}
|
394
|
+
.crop-image-modal-header {
|
395
|
+
border-top-right-radius: 5px;
|
396
|
+
border-top-left-radius: 5px;
|
397
|
+
display: flex;
|
398
|
+
justify-content: space-between;
|
399
|
+
background-color: #ff5554;
|
400
|
+
display: flex;
|
401
|
+
align-items: center;
|
402
|
+
padding: 10px 20px;
|
403
|
+
}
|
404
|
+
.crop-image-modal-header div {
|
405
|
+
height: 100%;
|
406
|
+
display: flex;
|
407
|
+
align-items: center;
|
408
|
+
font-size: 20px;
|
409
|
+
color: #fff;
|
410
|
+
}
|
411
|
+
.crop-image-modal-body {
|
412
|
+
width: 450px;
|
413
|
+
margin: 10px auto;
|
414
|
+
}
|
415
|
+
.crop-image-modal-header button {
|
416
|
+
border: none;
|
417
|
+
background-color: transparent;
|
418
|
+
}
|
419
|
+
.crop-image-modal-header button i {
|
420
|
+
color: #fff;
|
421
|
+
font-size: 20px;
|
422
|
+
}
|
423
|
+
.crop-image-modal-body {
|
424
|
+
border-top-right-radius: 5px;
|
425
|
+
border-top-left-radius: 5px;
|
426
|
+
}
|
427
|
+
#crop {
|
428
|
+
border: none;
|
429
|
+
padding: 7px 14px;
|
430
|
+
color: #fff;
|
431
|
+
}
|
Binary file
|
data/assets/js/frame.js
ADDED
@@ -0,0 +1,171 @@
|
|
1
|
+
const getScript = document.currentScript
|
2
|
+
const pageTool = getScript.dataset.tool
|
3
|
+
const lang = getScript.dataset.lang
|
4
|
+
const gdrive = document.querySelector('#filepicker')
|
5
|
+
const inputBox = document.querySelector('#Inputbox')
|
6
|
+
const fileDropBox = document.querySelector('.custom-box')
|
7
|
+
const cropModal = document.querySelector('.crop-image-modal-container')
|
8
|
+
const workspace = document.getElementById('workspace')
|
9
|
+
const canvasPanel = document.getElementById('canvas-panel')
|
10
|
+
const download = document.querySelector('#download-button')
|
11
|
+
let cropInputWidth = null
|
12
|
+
let cropInputHeight = null
|
13
|
+
let image = null
|
14
|
+
const showLoader = () => {
|
15
|
+
showLoading()
|
16
|
+
}
|
17
|
+
const closeLoader = () => {}
|
18
|
+
const mimeTypes = 'image/png,image/jpg,image/jpeg,image/webp'
|
19
|
+
const filemimes = ['.png', '.webp', '.jpg', '.jpeg']
|
20
|
+
gdrive.addEventListener(
|
21
|
+
'click',
|
22
|
+
(getFile, mimeTypes, showLoader, closeLoader) => {
|
23
|
+
const data = loadPicker()
|
24
|
+
}
|
25
|
+
)
|
26
|
+
const getDropBoxFile = (file) => {
|
27
|
+
handleFile(file)
|
28
|
+
}
|
29
|
+
const getFile = (file) => {
|
30
|
+
handleFile(file)
|
31
|
+
}
|
32
|
+
const fileOnChange = () => {
|
33
|
+
handleFile(file.files[0])
|
34
|
+
}
|
35
|
+
const dropbox = document.getElementById('dropbox')
|
36
|
+
dropbox.addEventListener(
|
37
|
+
'click',
|
38
|
+
async (getDropBoxFile, showLoader, closeLoader) => {
|
39
|
+
const getFile = chooseFromDropbox()
|
40
|
+
}
|
41
|
+
)
|
42
|
+
inputBox.onclick = function () {
|
43
|
+
document.querySelector('#file').click()
|
44
|
+
}
|
45
|
+
fileDropBox.addEventListener('dragover', (e) => {
|
46
|
+
e.preventDefault()
|
47
|
+
})
|
48
|
+
fileDropBox.addEventListener('drop', (e) => {
|
49
|
+
e.preventDefault()
|
50
|
+
handleFile(e.dataTransfer.files[0])
|
51
|
+
})
|
52
|
+
const closeModal = () => {
|
53
|
+
cropModal.style.display = 'none'
|
54
|
+
}
|
55
|
+
const drawImage = () => {
|
56
|
+
let img = new Image()
|
57
|
+
img.src = fileDropBox.dataset.src
|
58
|
+
var canvas = document.createElement('canvas')
|
59
|
+
var ctx = canvas.getContext('2d')
|
60
|
+
img.onload = () => {
|
61
|
+
image.width = Number(fileDropBox.dataset.width)
|
62
|
+
image.height = Number(fileDropBox.dataset.height)
|
63
|
+
canvas.width = img.width
|
64
|
+
canvas.height = img.height
|
65
|
+
ctx.drawImage(
|
66
|
+
image,
|
67
|
+
Number(fileDropBox.dataset.x),
|
68
|
+
Number(fileDropBox.dataset.y),
|
69
|
+
image.width,
|
70
|
+
image.height
|
71
|
+
)
|
72
|
+
ctx.drawImage(img, 0, 0, canvas.width, canvas.height)
|
73
|
+
canvasPanel.innerHTML = ''
|
74
|
+
canvasPanel.appendChild(canvas)
|
75
|
+
stopLoading()
|
76
|
+
cropModal.style.display = 'none'
|
77
|
+
workspace.style.display = 'block'
|
78
|
+
}
|
79
|
+
}
|
80
|
+
const cropImage = (result) => {
|
81
|
+
let img = new Image()
|
82
|
+
let cropper = null
|
83
|
+
img.src = fileDropBox.dataset.src
|
84
|
+
img.onload = () => {
|
85
|
+
let img = document.createElement('img')
|
86
|
+
img.id = 'image'
|
87
|
+
img.src = result
|
88
|
+
let cropWidth = null
|
89
|
+
let cropHeight = null
|
90
|
+
document.querySelector('.crop-image-modal-body').appendChild(img)
|
91
|
+
cropper = new Cropper(img, {
|
92
|
+
ready() {
|
93
|
+
cropper.setAspectRatio(
|
94
|
+
Number(fileDropBox.dataset.width) / Number(fileDropBox.dataset.height)
|
95
|
+
)
|
96
|
+
cropModal.style.display = 'flex'
|
97
|
+
this.cropper.crop()
|
98
|
+
document.querySelector('#crop').addEventListener('click', () => {
|
99
|
+
let cropperImg = cropper
|
100
|
+
.getCroppedCanvas({
|
101
|
+
width: cropWidth,
|
102
|
+
height: cropHeight,
|
103
|
+
})
|
104
|
+
.toDataURL()
|
105
|
+
image = new Image()
|
106
|
+
image.onload = () => {
|
107
|
+
drawImage()
|
108
|
+
}
|
109
|
+
image.src = cropperImg
|
110
|
+
})
|
111
|
+
},
|
112
|
+
crop(event) {
|
113
|
+
cropWidth = Math.round(event.detail.width)
|
114
|
+
cropHeight = Math.round(event.detail.height)
|
115
|
+
},
|
116
|
+
})
|
117
|
+
stopLoading()
|
118
|
+
}
|
119
|
+
}
|
120
|
+
let inputFile = ''
|
121
|
+
const handleFile = (file) => {
|
122
|
+
cropModal.style.display = 'flex'
|
123
|
+
document.querySelector('#file-loader').style.display = 'flex'
|
124
|
+
document.querySelector('.file-input').style.display = 'none'
|
125
|
+
inputFile = file
|
126
|
+
if (file) {
|
127
|
+
const reader = new FileReader()
|
128
|
+
reader.onload = (e) => {
|
129
|
+
if (e.target.result) {
|
130
|
+
cropImage(e.target.result)
|
131
|
+
}
|
132
|
+
}
|
133
|
+
reader.readAsDataURL(file)
|
134
|
+
}
|
135
|
+
}
|
136
|
+
const showLoading = () => {
|
137
|
+
document.querySelector('#file-loader').style.display = 'flex'
|
138
|
+
document.querySelector('.file-input').style.display = 'none'
|
139
|
+
}
|
140
|
+
const stopLoading = () => {
|
141
|
+
fileDropBox.style.display = 'none'
|
142
|
+
}
|
143
|
+
download.addEventListener('click', () => {
|
144
|
+
let canvas = document.querySelector('canvas')
|
145
|
+
let url = canvas.toDataURL(`image/png`)
|
146
|
+
let a = document.createElement('a')
|
147
|
+
a.href = url
|
148
|
+
a.download = `safeimagekit-border-image.${inputFile.type.split('/')[1]}`
|
149
|
+
document.body.appendChild(a)
|
150
|
+
a.click()
|
151
|
+
if (lang === 'en') {
|
152
|
+
window.location.href = `/download?tool=${pageTool}`
|
153
|
+
} else {
|
154
|
+
window.location.href = `/${lang}/download?tool=${pageTool}`
|
155
|
+
}
|
156
|
+
})
|
157
|
+
const showDropDown = document.querySelector('.file-pick-dropdown')
|
158
|
+
const icon = document.querySelector('.arrow-sign')
|
159
|
+
const dropDown = document.querySelector('.file-picker-dropdown')
|
160
|
+
showDropDown.addEventListener('click', () => {
|
161
|
+
addScripts()
|
162
|
+
if (dropDown.style.display !== 'none') {
|
163
|
+
dropDown.style.display = 'none'
|
164
|
+
icon.classList.remove('fa-angle-up')
|
165
|
+
icon.classList.add('fa-angle-down')
|
166
|
+
} else {
|
167
|
+
dropDown.style.display = 'block'
|
168
|
+
icon.classList.remove('fa-angle-down')
|
169
|
+
icon.classList.add('fa-angle-up')
|
170
|
+
}
|
171
|
+
})
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appscms-tools-theme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vivek-appscms
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -2361,6 +2361,7 @@ files:
|
|
2361
2361
|
- _data/feature/en/allele-frequency.json
|
2362
2362
|
- _data/feature/en/compress-pdf.json
|
2363
2363
|
- _data/feature/en/split-pdf.json
|
2364
|
+
- _data/feature/en/theframe.json
|
2364
2365
|
- _data/feature/hi/compress-pdf.json
|
2365
2366
|
- _data/feature/tr/compress-pdf.json
|
2366
2367
|
- _data/filecomparison/en/filecomparison.json
|
@@ -2430,6 +2431,7 @@ files:
|
|
2430
2431
|
- _layouts/featureResultPage.html
|
2431
2432
|
- _layouts/fileInfo.html
|
2432
2433
|
- _layouts/filecomparison.html
|
2434
|
+
- _layouts/frame.html
|
2433
2435
|
- _layouts/help.html
|
2434
2436
|
- _layouts/home.html
|
2435
2437
|
- _layouts/homeResultPage.html
|
@@ -2445,6 +2447,7 @@ files:
|
|
2445
2447
|
- assets/css/bootstrap.min.css
|
2446
2448
|
- assets/css/calculators.css
|
2447
2449
|
- assets/css/filecomparison.css
|
2450
|
+
- assets/css/frame.css
|
2448
2451
|
- assets/css/responsive.css
|
2449
2452
|
- assets/css/tools.css
|
2450
2453
|
- assets/easy.svg
|
@@ -2572,6 +2575,7 @@ files:
|
|
2572
2575
|
- assets/images/avatar.png
|
2573
2576
|
- assets/images/balark.jpeg
|
2574
2577
|
- assets/images/fileformat.webp
|
2578
|
+
- assets/images/gallary.png
|
2575
2579
|
- assets/images/keshav.webp
|
2576
2580
|
- assets/images/krutika.jpeg
|
2577
2581
|
- assets/images/logo.png
|
@@ -2590,6 +2594,7 @@ files:
|
|
2590
2594
|
- assets/js/ads.js
|
2591
2595
|
- assets/js/append-div.js
|
2592
2596
|
- assets/js/featureResult.js
|
2597
|
+
- assets/js/frame.js
|
2593
2598
|
- assets/js/googledrive.js
|
2594
2599
|
- assets/js/homeResult.js
|
2595
2600
|
- assets/js/manifest.json
|