瀏覽代碼

initail first

master
Muqriz 4 月之前
當前提交
48f16bfc3e
共有 100 個檔案被更改,包括 9778 行新增0 行删除
  1. 二進制
      Group_49433x.png
  2. 二進制
      HSD 11991.pdf
  3. 二進制
      HSD_4638.pdf
  4. 二進制
      Mask_Group_2.png
  5. 268
    0
      detail.html
  6. 44
    0
      forge.config.js
  7. 二進制
      image.png
  8. 357
    0
      index.html
  9. 22
    0
      index.js
  10. 2
    0
      js/jquery-3.7.1.js
  11. 816
    0
      js/pdfjs-viewer.js
  12. 16
    0
      node_modules/.bin/asar
  13. 17
    0
      node_modules/.bin/asar.cmd
  14. 28
    0
      node_modules/.bin/asar.ps1
  15. 16
    0
      node_modules/.bin/color-support
  16. 17
    0
      node_modules/.bin/color-support.cmd
  17. 28
    0
      node_modules/.bin/color-support.ps1
  18. 16
    0
      node_modules/.bin/electron
  19. 16
    0
      node_modules/.bin/electron-forge
  20. 16
    0
      node_modules/.bin/electron-forge-vscode-nix
  21. 17
    0
      node_modules/.bin/electron-forge-vscode-nix.cmd
  22. 28
    0
      node_modules/.bin/electron-forge-vscode-nix.ps1
  23. 12
    0
      node_modules/.bin/electron-forge-vscode-win
  24. 9
    0
      node_modules/.bin/electron-forge-vscode-win.cmd
  25. 16
    0
      node_modules/.bin/electron-forge-vscode-win.ps1
  26. 17
    0
      node_modules/.bin/electron-forge.cmd
  27. 28
    0
      node_modules/.bin/electron-forge.ps1
  28. 16
    0
      node_modules/.bin/electron-fuses
  29. 17
    0
      node_modules/.bin/electron-fuses.cmd
  30. 28
    0
      node_modules/.bin/electron-fuses.ps1
  31. 16
    0
      node_modules/.bin/electron-osx-flat
  32. 17
    0
      node_modules/.bin/electron-osx-flat.cmd
  33. 28
    0
      node_modules/.bin/electron-osx-flat.ps1
  34. 16
    0
      node_modules/.bin/electron-osx-sign
  35. 17
    0
      node_modules/.bin/electron-osx-sign.cmd
  36. 28
    0
      node_modules/.bin/electron-osx-sign.ps1
  37. 16
    0
      node_modules/.bin/electron-packager
  38. 17
    0
      node_modules/.bin/electron-packager.cmd
  39. 28
    0
      node_modules/.bin/electron-packager.ps1
  40. 16
    0
      node_modules/.bin/electron-rebuild
  41. 17
    0
      node_modules/.bin/electron-rebuild.cmd
  42. 28
    0
      node_modules/.bin/electron-rebuild.ps1
  43. 16
    0
      node_modules/.bin/electron-windows-sign
  44. 17
    0
      node_modules/.bin/electron-windows-sign.cmd
  45. 28
    0
      node_modules/.bin/electron-windows-sign.ps1
  46. 17
    0
      node_modules/.bin/electron.cmd
  47. 28
    0
      node_modules/.bin/electron.ps1
  48. 16
    0
      node_modules/.bin/extract-zip
  49. 17
    0
      node_modules/.bin/extract-zip.cmd
  50. 28
    0
      node_modules/.bin/extract-zip.ps1
  51. 16
    0
      node_modules/.bin/mkdirp
  52. 17
    0
      node_modules/.bin/mkdirp.cmd
  53. 28
    0
      node_modules/.bin/mkdirp.ps1
  54. 16
    0
      node_modules/.bin/node-gyp
  55. 17
    0
      node_modules/.bin/node-gyp.cmd
  56. 28
    0
      node_modules/.bin/node-gyp.ps1
  57. 16
    0
      node_modules/.bin/node-which
  58. 17
    0
      node_modules/.bin/node-which.cmd
  59. 28
    0
      node_modules/.bin/node-which.ps1
  60. 16
    0
      node_modules/.bin/nopt
  61. 17
    0
      node_modules/.bin/nopt.cmd
  62. 28
    0
      node_modules/.bin/nopt.ps1
  63. 16
    0
      node_modules/.bin/postject
  64. 17
    0
      node_modules/.bin/postject.cmd
  65. 28
    0
      node_modules/.bin/postject.ps1
  66. 16
    0
      node_modules/.bin/read-binary-file-arch
  67. 17
    0
      node_modules/.bin/read-binary-file-arch.cmd
  68. 28
    0
      node_modules/.bin/read-binary-file-arch.ps1
  69. 16
    0
      node_modules/.bin/resolve
  70. 17
    0
      node_modules/.bin/resolve.cmd
  71. 28
    0
      node_modules/.bin/resolve.ps1
  72. 16
    0
      node_modules/.bin/rimraf
  73. 17
    0
      node_modules/.bin/rimraf.cmd
  74. 28
    0
      node_modules/.bin/rimraf.ps1
  75. 16
    0
      node_modules/.bin/semver
  76. 17
    0
      node_modules/.bin/semver.cmd
  77. 28
    0
      node_modules/.bin/semver.ps1
  78. 16
    0
      node_modules/.bin/yarn-or-npm
  79. 17
    0
      node_modules/.bin/yarn-or-npm.cmd
  80. 28
    0
      node_modules/.bin/yarn-or-npm.ps1
  81. 16
    0
      node_modules/.bin/yon
  82. 17
    0
      node_modules/.bin/yon.cmd
  83. 28
    0
      node_modules/.bin/yon.ps1
  84. 6648
    0
      node_modules/.package-lock.json
  85. 19
    0
      node_modules/@electron-forge/cli/LICENSE
  86. 2
    0
      node_modules/@electron-forge/cli/dist/electron-forge-import.d.ts
  87. 1
    0
      node_modules/@electron-forge/cli/dist/electron-forge-import.d.ts.map
  88. 26
    0
      node_modules/@electron-forge/cli/dist/electron-forge-import.js
  89. 2
    0
      node_modules/@electron-forge/cli/dist/electron-forge-init.d.ts
  90. 1
    0
      node_modules/@electron-forge/cli/dist/electron-forge-init.d.ts.map
  91. 34
    0
      node_modules/@electron-forge/cli/dist/electron-forge-init.js
  92. 4
    0
      node_modules/@electron-forge/cli/dist/electron-forge-make.d.ts
  93. 1
    0
      node_modules/@electron-forge/cli/dist/electron-forge-make.d.ts.map
  94. 50
    0
      node_modules/@electron-forge/cli/dist/electron-forge-make.js
  95. 2
    0
      node_modules/@electron-forge/cli/dist/electron-forge-package.d.ts
  96. 1
    0
      node_modules/@electron-forge/cli/dist/electron-forge-package.d.ts.map
  97. 35
    0
      node_modules/@electron-forge/cli/dist/electron-forge-package.js
  98. 2
    0
      node_modules/@electron-forge/cli/dist/electron-forge-publish.d.ts
  99. 1
    0
      node_modules/@electron-forge/cli/dist/electron-forge-publish.d.ts.map
  100. 0
    0
      node_modules/@electron-forge/cli/dist/electron-forge-publish.js

二進制
Group_49433x.png 查看文件


二進制
HSD 11991.pdf 查看文件


二進制
HSD_4638.pdf 查看文件


二進制
Mask_Group_2.png 查看文件


+ 268
- 0
detail.html 查看文件

@@ -0,0 +1,268 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+<head>
5
+    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
6
+    <meta charset="utf-8">
7
+    <title>KML Click Capture Sample</title>
8
+    <link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css">
9
+    <script src="node_modules/bootstrap/dist/js/bootstrap.min.js" defer></script>
10
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"
11
+        integrity="sha512-abc123..." crossorigin="anonymous" />
12
+
13
+
14
+
15
+    <style>
16
+        html,
17
+        body {
18
+            height: 370px;
19
+            padding: 0;
20
+            margin: 0;
21
+        }
22
+
23
+        #map {
24
+            height: 360px;
25
+            width: 300px;
26
+            overflow: hidden;
27
+            float: left;
28
+            border: thin solid #333;
29
+        }
30
+
31
+        #capture {
32
+            height: 360px;
33
+            width: 480px;
34
+            overflow: hidden;
35
+            float: left;
36
+            background-color: #ECECFB;
37
+            border: thin solid #333;
38
+            border-left: none;
39
+        }
40
+
41
+        #pdfViewer {
42
+            width: 100%;
43
+            height: 600px;
44
+        }
45
+    </style>
46
+
47
+    <style>
48
+        /* CSS */
49
+        .button-23 {
50
+            background-color: #FFFFFF;
51
+            border: 1px solid #222222;
52
+            border-radius: 8px;
53
+            box-sizing: border-box;
54
+            color: #222222;
55
+            cursor: pointer;
56
+            display: inline-block;
57
+            font-family: Circular, -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif;
58
+            font-size: 16px;
59
+            font-weight: 600;
60
+            line-height: 20px;
61
+            margin: 0;
62
+            outline: none;
63
+            padding: 13px 23px;
64
+            position: relative;
65
+            text-align: center;
66
+            text-decoration: none;
67
+            touch-action: manipulation;
68
+            transition: box-shadow .2s, -ms-transform .1s, -webkit-transform .1s, transform .1s;
69
+            user-select: none;
70
+            -webkit-user-select: none;
71
+            width: auto;
72
+        }
73
+
74
+        .button-23:focus-visible {
75
+            box-shadow: #222222 0 0 0 2px, rgba(255, 255, 255, 0.8) 0 0 0 4px;
76
+            transition: box-shadow .2s;
77
+        }
78
+
79
+        .button-23:active {
80
+            background-color: #F7F7F7;
81
+            border-color: #000000;
82
+            transform: scale(.96);
83
+        }
84
+
85
+        .button-23:disabled {
86
+            border-color: #DDDDDD;
87
+            color: #DDDDDD;
88
+            cursor: not-allowed;
89
+            opacity: 1;
90
+        }
91
+
92
+        .map-svg {
93
+            display: block;
94
+            margin: 0 auto;
95
+            filter: drop-shadow(-16px 11px 2px rgba(0, 0, 0, 0.5));
96
+
97
+            a {
98
+                transition: all 1s;
99
+                transform-origin: 50% 50%;
100
+                text-decoration: none;
101
+                filter: drop-shadow(3px 10px 5px rgb(0 0 0 / 0.4));
102
+
103
+                @media only screen and (min-width: 992px) {
104
+
105
+                    polygon,
106
+                    &:hover {
107
+                        cursor: pointer;
108
+                        transform: scale(1.05);
109
+                        filter: drop-shadow(0px 15px 12px rgb(0 0 0 / 0.7));
110
+
111
+                        .st0 {
112
+                            fill: $dark-default;
113
+                        }
114
+                    }
115
+                }
116
+            }
117
+
118
+            .pahang-barat {
119
+                fill: #427bba;
120
+            }
121
+
122
+            .pahang-tengah {
123
+                fill: #144172;
124
+            }
125
+
126
+            .pahang-timur {
127
+                fill: #0c6088;
128
+            }
129
+
130
+            .label-text {
131
+                font-size: 35px;
132
+                fill: white;
133
+                transform: translate(0,
134
+                        3px);
135
+                /* adjust vertical position to centre text */
136
+            }
137
+
138
+            .label-text-cameron {
139
+                font-size: 20px;
140
+                fill: white;
141
+                transform: translate(0,
142
+                        3px);
143
+                /* adjust vertical position to centre text */
144
+            }
145
+
146
+
147
+        }
148
+    </style>
149
+
150
+</head>
151
+
152
+<body>
153
+
154
+    <section class="section" style="max-height: 100vh;">
155
+
156
+        <div class=""
157
+            style="background-color: #1F3F6D; min-height: 50px; display: flex; align-items: center;padding-left: 100px;">
158
+            <h6 style="color: white;margin-right: 1em;" class=""><a style="color: white;" href="testing.html"><i
159
+                        class="fas fa-chevron-left"></i></a></h6>
160
+            <h6 style="color: white;">Jerantut</h6>
161
+        </div>
162
+
163
+        <div class="text-center pt-5"
164
+            style="background-color: white; min-height: 50px; display: flex; justify-content: center; align-items: center; padding-left: 100px;">
165
+            <h5 style="font-weight: 500;">Perbadanan Setiausaha Kejaraan Pahang</h5>
166
+
167
+        </div>
168
+
169
+        <div class="text-center pt-1 pb-5"
170
+            style="background-color: white;display: flex; justify-content: center; align-items: center;margin-left: -150px;">
171
+            <div class="pt-5 pb-5" style="width: 600px;height: 100px;">
172
+                <!-- <img style="border-radius: 20px;" src="image.png" alt=""> -->
173
+
174
+                <div id="map" style="width: 800px;"></div>
175
+                <!-- <div id="capture"></div> -->
176
+
177
+
178
+
179
+            </div>
180
+        </div>
181
+
182
+
183
+
184
+
185
+        <div class="text-center pt-5"
186
+            style="background-color: white; display: flex; justify-content: center; align-items: left; padding-left: 100px; margin-top: 250px;">
187
+            <div style="display: flex; flex-direction: row;">
188
+                <div>
189
+                    <h6 class="pt-1" style="text-align: left;"><span style="font-weight: bold;">Lokasi :</span> <span
190
+                            style="color: #ACACAC;">Gambangs</span></h6>
191
+                    <h6 class="pt-1" style="text-align: left;"><span style="font-weight: bold;">Mukim :</span> <span
192
+                            style="color: #ACACAC;">Ulu Lepar</span></h6>
193
+                    <h6 class="pt-1" style="text-align: left;"><span style="font-weight: bold;">Daerah :</span> <span
194
+                            style="color: #ACACAC;">Kuantan</span></h6>
195
+                    <h6 class="pt-1" style="text-align: left;"><span style="font-weight: bold;">Negeri :</span> <span
196
+                            style="color: #ACACAC;">Pahang Darul Makmur</span></h6>
197
+                    <h6 class="pt-1" style="text-align: left;"><span style="font-weight: bold;">Skala :</span> <span
198
+                            style="color: #ACACAC;">Tanpa Skala</span></h6>
199
+                </div>
200
+                <div style="margin-left: 100px;">
201
+                    <h6 class="pt-1" style="text-align: left;"><span style="font-weight: bold;">No. Hak Milik :</span>
202
+                        <span style="color: #ACACAC;">HSD 62438</span>
203
+                    </h6>
204
+                    <h6 class="pt-1" style="text-align: left;"><span style="font-weight: bold;">Keluasan (MP) :</span>
205
+                        <span style="color: #ACACAC;">607280</span>
206
+                    </h6>
207
+                    <h6 class="pt-1" style="text-align: left;"><span style="font-weight: bold;">Kehunaan :</span> <span
208
+                            style="color: #ACACAC;">Bangunan</span></h6>
209
+                    <h6 class="pt-1" style="text-align: left;"><span style="font-weight: bold;">Start Neat :</span>
210
+                        <span style="color: #ACACAC;">Pembangunan Bercampur</span>
211
+                    </h6>
212
+                    <h6 class="pt-1" style="text-align: left;"><span style="font-weight: bold;"></span> <span
213
+                            style="color: #ACACAC;"></span></h6>
214
+                </div>
215
+            </div>
216
+        </div>
217
+
218
+        <div class="text-center pt-5 pb-5"
219
+            style="background-color: white; min-height: 50px; display: flex; justify-content: center; align-items: center; padding-left: 100px;">
220
+            <a href="view_pdf.html" class="button-23 mb-2 mr-2"
221
+                style="background-color: #1F9027; color: white; border: none;width: 200px;" role="button"
222
+                data-toggle="modal" data-target="#exampleModal">View
223
+                PDF</a>
224
+
225
+        </div>
226
+
227
+        <script src="js/jquery-3.7.1.js" defer></script>
228
+
229
+        <script src="js/pdfjs-viewer.js" defer></script>
230
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.min.js"
231
+            integrity="sha512-Z8CqofpIcnJN80feS2uccz+pXWgZzeKxDsDNMD/dJ6997/LSRY+W4NmEt9acwR+Gt9OHN0kkI1CTianCwoqcjQ=="
232
+            crossorigin="anonymous" referrerpolicy="no-referrer" defer></script>
233
+
234
+    </section>
235
+
236
+
237
+    <!-- <div id="map"></div> -->
238
+
239
+    <script>
240
+        var map;
241
+        var src = 'https://file.io/t3IwR1hlxwkZ';
242
+
243
+        function initMap() {
244
+            map = new google.maps.Map(document.getElementById('map'), {
245
+                center: new google.maps.LatLng(-19.257753, 146.823688),
246
+                zoom: 2,
247
+                mapTypeId: 'satellite'
248
+            });
249
+
250
+            var kmlLayer = new google.maps.KmlLayer(src, {
251
+                suppressInfoWindows: true,
252
+                preserveViewport: false,
253
+                map: map
254
+            });
255
+        }
256
+
257
+       
258
+
259
+        
260
+
261
+    </script>
262
+    <script async
263
+        src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCj5eAmQOg6IhdABVPCBT6ubZ3Yj_IWejI&callback=initMap">
264
+        </script>
265
+
266
+</body>
267
+
268
+</html>

+ 44
- 0
forge.config.js 查看文件

@@ -0,0 +1,44 @@
1
+const { FusesPlugin } = require('@electron-forge/plugin-fuses');
2
+const { FuseV1Options, FuseVersion } = require('@electron/fuses');
3
+
4
+module.exports = {
5
+  packagerConfig: {
6
+    asar: true,
7
+  },
8
+  rebuildConfig: {},
9
+  makers: [
10
+    {
11
+      name: '@electron-forge/maker-squirrel',
12
+      config: {},
13
+    },
14
+    {
15
+      name: '@electron-forge/maker-zip',
16
+      platforms: ['darwin'],
17
+    },
18
+    {
19
+      name: '@electron-forge/maker-deb',
20
+      config: {},
21
+    },
22
+    {
23
+      name: '@electron-forge/maker-rpm',
24
+      config: {},
25
+    },
26
+  ],
27
+  plugins: [
28
+    {
29
+      name: '@electron-forge/plugin-auto-unpack-natives',
30
+      config: {},
31
+    },
32
+    // Fuses are used to enable/disable various Electron functionality
33
+    // at package time, before code signing the application
34
+    new FusesPlugin({
35
+      version: FuseVersion.V1,
36
+      [FuseV1Options.RunAsNode]: false,
37
+      [FuseV1Options.EnableCookieEncryption]: true,
38
+      [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false,
39
+      [FuseV1Options.EnableNodeCliInspectArguments]: false,
40
+      [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true,
41
+      [FuseV1Options.OnlyLoadAppFromAsar]: true,
42
+    }),
43
+  ],
44
+};

二進制
image.png 查看文件


+ 357
- 0
index.html 查看文件

@@ -0,0 +1,357 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+<head>
5
+    <meta charset="UTF-8">
6
+    <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
7
+    <!-- CSP is a PITA ;). Disabled, don't try this at home!-->
8
+    <meta http-equiv="Content-Security-Policy" content="">
9
+    <!-- include bulma css -->
10
+    <link rel="stylesheet" href="bulma/css/bulma.min.css">
11
+    <title>My Test App</title>
12
+    <link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css">
13
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"
14
+    integrity="sha512-abc123..." crossorigin="anonymous" />
15
+
16
+    <style>
17
+        /* CSS */
18
+        .button-23 {
19
+            background-color: #FFFFFF;
20
+            border: 1px solid #222222;
21
+            border-radius: 8px;
22
+            box-sizing: border-box;
23
+            color: #222222;
24
+            cursor: pointer;
25
+            display: inline-block;
26
+            font-family: Circular, -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif;
27
+            font-size: 15px;
28
+            font-weight: 600;
29
+            line-height: 20px;
30
+            margin: 0;
31
+            outline: none;
32
+            padding: 13px 23px;
33
+            position: relative;
34
+            text-align: center;
35
+            text-decoration: none;
36
+            touch-action: manipulation;
37
+            transition: box-shadow .2s, -ms-transform .1s, -webkit-transform .1s, transform .1s;
38
+            user-select: none;
39
+            -webkit-user-select: none;
40
+            width: auto;
41
+        }
42
+
43
+        .button-23:focus-visible {
44
+            box-shadow: #222222 0 0 0 2px, rgba(255, 255, 255, 0.8) 0 0 0 4px;
45
+            transition: box-shadow .2s;
46
+        }
47
+
48
+        .button-23:active {
49
+            background-color: #F7F7F7;
50
+            border-color: #000000;
51
+            transform: scale(.96);
52
+        }
53
+
54
+        .button-23:disabled {
55
+            border-color: #DDDDDD;
56
+            color: #DDDDDD;
57
+            cursor: not-allowed;
58
+            opacity: 1;
59
+        }
60
+
61
+        .map-svg {
62
+            display: block;
63
+            margin: 0 auto;
64
+            filter: drop-shadow(-16px 11px 2px rgba(0, 0, 0, 0.5));
65
+
66
+            a {
67
+                transition: all 1s;
68
+                transform-origin: 50% 50%;
69
+                text-decoration: none;
70
+                filter: drop-shadow(3px 10px 5px rgb(0 0 0 / 0.4));
71
+
72
+                @media only screen and (min-width: 992px) {
73
+
74
+                    polygon,
75
+                    &:hover {
76
+                        cursor: pointer;
77
+                        transform: scale(1.05);
78
+                        filter: drop-shadow(0px 15px 12px rgb(0 0 0 / 0.7));
79
+
80
+                        .st0 {
81
+                            fill: $dark-default;
82
+                        }
83
+                    }
84
+                }
85
+            }
86
+
87
+            .pahang-barat {
88
+                fill: #427bba;
89
+            }
90
+
91
+            .pahang-tengah {
92
+                fill: #144172;
93
+            }
94
+
95
+            .pahang-timur {
96
+                fill: #0c6088;
97
+            }
98
+
99
+            .label-text {
100
+                font-size: 35px;
101
+                fill: white;
102
+                transform: translate(0,
103
+                        3px);
104
+                /* adjust vertical position to centre text */
105
+            }
106
+
107
+            .label-text-cameron {
108
+                font-size: 20px;
109
+                fill: white;
110
+                transform: translate(0,
111
+                        3px);
112
+                /* adjust vertical position to centre text */
113
+            }
114
+        }
115
+    </style>
116
+    <script>
117
+        // window.addEventListener('load', (event) => {
118
+        //     document.querySelector(".hello").textContent = "Hello from Electron with bulma css!";
119
+        // });
120
+    </script>
121
+</head>
122
+
123
+<body>
124
+    <section class="section" style="max-height: 120vh;">
125
+
126
+        <div style="background-image: url(Mask_Group_2.png); min-height: 175px; display: flex; flex-direction: column; justify-content: center; padding-left: 100px;padding-right: 100px;">
127
+            <img class="pb-2" src="Group_49433x.png" style="height: auto;width: 8%" alt="">
128
+            <h6 style="color: white; margin-bottom: 2px;">Pelan Kawasan Tanah Milik Perbadanan</h6>
129
+            <h6 style="color: white; margin-bottom: 10px;font-weight: 400;">Setiausaha Karajan (PSK) Pahang Tanpa Skala</h6>
130
+
131
+            <input type="search" class="p-1" style="border-radius: 21px; border: none; padding-left: 20px !important;" placeholder="Search Here">
132
+        </div>
133
+        
134
+        
135
+
136
+       
137
+
138
+        <div class="text-center pt-1" style="background-color: white; min-height: 50px; display: flex; justify-content: center; align-items: center; padding-left: 100px;">
139
+            <div class="pt-5" style="width: 600px;height: 100px;">
140
+                <svg class="map-svg" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg"
141
+                    xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-30 -30 1150 1150"
142
+                    style="enable-background: new 0 0 1080 1080" xml:space="preserve">
143
+                    <g>
144
+                        <!-- Cameron Highland -->
145
+                        <a href="testing.html" data-area="cameron-highland"
146
+                            data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top">
147
+                            <path id="cameron-highland" class="pahang-barat" d="M77.6,205.5c11.6-0.8,19.5-9.2,28.7-12c13-4,14.2-13.4,19.1-21.7c0,0,0,0,0,0c0,0,0,0,0,0
148
+                                c-0.1-5-0.2-10.1-0.3-15.1c-2.4-4.8-11.7-7.4-4.9-15.2h0c-0.1-1.5-0.3-3.1-0.4-4.6c0,0,0,0,0,0c-3.5-5.5-3.3-11-0.1-16.5
149
+                                c0,0,0,0,0,0c0.2-1.4,0.4-2.8,0.6-4.2c0.3,0.6,0.6,1.2,0.8,1.8c-0.1-0.7-0.3-1.3-0.8-1.8c-0.1-4.3-0.2-8.5-0.3-12.8
150
+                                c-4.4-8.1-14.8-8.3-20.2-16c-9.9-14.2-18.9-13.6-29.4,0.3c-4.4,5.8-9.1,7.1-15.1,3c-3.8-2.6-8.4-4.7-11.2-8.2
151
+                                c-8.3-10.4-18.4-6.7-27.4-3.3c-9.7,3.7-5.2,12.7-4.5,19.9c0.4,4.6,0.6,9.2,0.9,13.8l0.6,0.6l0.5,0.6l0.7-0.4c2,0.7,3.8,1.6,5,3.3
152
+                                c1.4,1.8,3.3,2.7,5.6,2.5c1-0.3,2-0.8,2.8-1.5c1.9-2.2,4.2-2.9,7-2.4c1,0.1,2.1,0.1,3.1,0.1c1.8-0.1,3.6-0.6,5.5-0.7
153
+                                c1,0.3,1.3,0.9,1.2,1.8c-1,2.3-1.7,4.9-3.5,6.9c-1.2,0.8-2.6,1.3-4.1,1.5c-2.5,0.1-5-0.3-7.1-1.7c-1-0.4-2-0.7-3-0.8
154
+                                c-2.8,0.3-5,1.6-6.7,3.8c-0.6,0.8-1.3,1.6-1.9,2.5c-6.7,5.6-3.9,16.8-12.8,21.2c-4.1,5.7,2.6,6.3,4.3,9.3c3.7,3.6,1.5,9.3,4.8,13
155
+                                c1.1,0.7,2.2,0.7,3.3,0c0.8-0.4,1.7-0.7,2.5-1.1c2.1-1.8,2.4-4.2,2.4-6.8c0.4,2,0.7,4.1,2.9,5.2l1.3,0.2l1.2-0.2
156
+                                c3-1.8,6-3.9,9.7-4.6c-0.3,3.7-4.7,4.4-5.1,7.7c2.5,3.5,6.6,3.3,10.2,4.1c7.6,1.7,10.4,7.2,6.9,13.1c-7.9,13.4,0.5,16.8,10.7,19.8
157
+                                C65.6,205,72.4,205.9,77.6,205.5z" />
158
+                        </a>
159
+                        <!-- Lipis -->
160
+                        <a href="testing.html" data-area="lipis">
161
+                            <path id="lipis" class="pahang-barat"
162
+                                d="M450.8,329.1c-5.7,4.5-13.3,9.2-20.1,9.3c-11.2,0.2-13.3,7.3-15.4,13.6c-13.1-3.3-21.3-13.5-31.4-20.9
163
+                                                c-5.5-4-13.6-15.1-22.9-5.8c-6.2,6.2-3.1,13.6-0.7,20.7c0.2,1.3,0.9,2.7,1.3,4c0.2,3.5,3,4.9,5.3,6.6c5.6,4,4.5,8.3-0.9,10.5
164
+                                                c-10.5,4.2-21.5,9.5-32.8,3.1c-6.8-3.8-11.3-1.5-15.3,3.5c-4.5,5.6-8.3,11.7-12.7,17.3c-2.4,3.1-6.5,5.8-9.9,3.8
165
+                                                c-4.6-2.6-9.5-6.4-11.7-11c-2.3-4.8,4.5-4.4,7.2-6.6c6.6-5.5,13.2-10.3,4.1-20.1c-6-6.5-8.9-15.8-3-24.5c7.2-10.6-1-12.1-7.9-14.3
166
+                                                c-13.9-4.4-22.6,4.1-31,12.9c-3.6,3.7-9.9,5.7-8.6,12.8c-1.4,1.7-3.4,3.2-4,5.4l-6.8,0.4c-5.5-4.8-9.1-10.5-8.5-18.9
167
+                                                c0.3-3.4-2.9-6.7-6.6-6.5c-10.1,0.4-15.1-5.6-19.5-13.3c-1.7-2.9-4.7-5.1-8.5-3.5c-2.9,1.2-3,3.8-2.2,6.4c2.3,7.6-3.3,8.7-8.2,9.5
168
+                                                c-5.4,0.9-11.4,2.3-16.2,0.7c-15.5-5-30.7-4.7-46-0.1c0,0,0,0,0,0c-4.5-11.8-15.8-16.2-25.7-21.2c-11-5.6-15.7-12.4-12.3-24.9
169
+                                                c4.2-15.4,4.2-15.3-10.6-17c-9-1-15.2-4.2-9.2-14.6c2.6-4.5-0.5-7-2.4-10.1c-1.9-3.2-2.9-6.4-2.9-9.4c0-5.6,3.2-10.6,9.2-14.2
170
+                                                c12.7,2.5,23.7-2.5,34.9-7.4c6.1-2.7,10.3-12.1,19.3-5.7c0.5,0.4,3.9-1.4,3.9-2.2c0.3-11.1,8.7-20.6,8.7-31.8c0-2-0.3-3.9-0.8-6
171
+                                                c0.1-0.5,0.1-0.9,0.1-1.3c0-1.7-0.5-3.2-2-4.4c-1.7-2.2-3.4-4.3-5.1-6.5c0,0,0,0,0,0c2.8-4.6,3.4-9.2-0.1-13.7c0,0,0,0,0,0
172
+                                                c0.1-3.8,0.2-7.6,0.3-11.4c3.6-5.6,2-11.8,2-17.8c0-0.3,0-0.6,0-0.9c8.1-3.3,16.6,6.2,24.7-0.9c1.5-1.3,5.1-1.3,5.6-2.6
173
+                                                c4.7-14.3,18.9-16.3,29.4-23.2c1.6-1.1,2.4-3.8,4.9-3c13.7,4.5,16.7-5.8,18-14.7c1.9-13.1,4.6-26.3,1.8-39.7
174
+                                                c-1.2-5.8-0.4-11.5,7.2-12.2c6.7-0.7,12,0.7,10.2,9.7c-0.8,3.7,1.1,7,4.8,7.9c5.5,1.4,7.3,5.4,8.4,10c1.5,6.2,5.2,9.4,11.4,10
175
+                                                c8.7,0.9,11.1,6.4,10.9,14.2c-0.1,3.8-0.6,7.9,0.7,11.2c2.1,5.2,9.4,9.2,11.1,3.5c4.3-14.2,18.1-23.7,18.5-39.3
176
+                                                c0.2-6.3,0-12.7,0.2-19c0.1-3.4,1.4-8.8,5.1-5.6c5.1,4.4,11.8,2.2,15.3,4.5c14.4,9.4,26.8,5.5,40-1.6c13.6-7.3,13.8-7,18.2,8.4
177
+                                                c0.2,0.8,0.1,2.1,0.6,2.4c9.2,6.3,15.1,15.7,21.5,24.8c6.3,9.1,13.1,17.7,23.9,22.4c-9.7,16.5-1.1,29.5,8.8,41.7
178
+                                                c4.6,5.7,5.7,10.9,2.4,17.3c-1.9,3.7-3.8,7.6-3.1,12c0.4,2.3,0.7,4.6,0.7,6.7c0,7.7-3,14.1-11.1,18.4c-3.7,6.9-9.2,14.6-5.4,22
179
+                                                c6,11.9,9.1,24,9.8,37.1l0,0c3.7,3.5,6.9,7,6.6,12.8c-0.2,4.1,0,8.9,2,12.2c7.8,12.4,7.6,24.7,2.9,38.2c-0.9,2.6-1.7,5.5-1.7,8.4
180
+                                                c0,3.2,0.9,6.5,3.6,9.3c4,3.8,9.5,3.2,14.2,4.8C458.6,315.3,460.3,321.5,450.8,329.1z" />
181
+                        </a>
182
+                        <!-- Raub -->
183
+                        <a href="testing.html" data-area="raub">
184
+                            <path id="raub" class="pahang-barat"
185
+                                d="M353.9,410.6c-3.2,7.6-9.2,19.1-4.7,22.8c8.4,7,4,13.7,5,20.6c2.6,16.3-7.4,32.1-16.7,37.8
186
+                                c-13.2,8.1-9.9,13.7-6.7,23.2c1,3,0.4,6.6,0.5,9.9c-9.6,6.5-16.9,13.6-9.6,26.4c1.1,1.9-0.8,5.5-1.2,8.3c-1.3,1.6-2.3,4.3-3.8,4.6
187
+                                c-15,3.1-27.4-6.8-28.5-22.9c-0.4-5.5,0.3-11-4.9-14.7c0,0,0,0,0,0c-0.9-4.7-4.1-7.8-8.6-7.9c-7.1-0.1-11.7-3.5-15.5-9
188
+                                c-2.1-3.1-4.8-6.8-9.2-4.6c-5.5,2.8-2.9,7.4-0.7,10.8c5.1,8.1,0.3,11.2-6.4,11.4c-9.4,0.3-14.3,6-18.9,12.7
189
+                                c-4.9-1.5-8.4-4.5-9.1-9.6c-1.9-13.1-10.6-21.7-19.5-30.2c-3.1-3-6.7-5.9-11.1-5.2c-19.1,2.7-31.5-6.8-40.7-21.8
190
+                                c-8.2-13.6-29.8-22.3-16.1-44.4c2-3.3,0.3-10.9-4.2-13.8c-9.1-5.9-8.5-14.5-8.8-23.4c-0.3-13,4.4-27-7.6-38
191
+                                c-3.1-2.9,0-7.3,2.2-10.4c3.4-4.8,7.1-9.4,10.6-14.1c13.4-4,26.3-3.6,40.2-0.6c12.2,2.6,27,4,35.2-11.1c0.5,0,0.9-0.1,1.4,0
192
+                                c4.3,6.5,9.4,11.3,17.5,11.4c4.9,0.1,6.7,3,5.9,7.6c-2,12.2,3.8,16.3,14.2,15.6h5.9c0.1,0,0.3,0,0.4,0c3.3,0,5.6-1.3,6.2-4.9
193
+                                c2.3-13.1,18.5-13.1,23.6-24.1c0.7-1.5,10.7-0.1,15.4,2.1c5,2.4,0.3,6.8-0.8,9.8c-3.6,9.1,0,16.8,4.8,23.8
194
+                                c5.5,7.9,3.1,12.4-4.8,15.4c-4.9,1.8-9.2,4.8-7.3,10c2.8,7.5,9.6,13.1,16.5,15.9c5.8,2.3,12.1-2.1,16-7.7c1.7-2.4,3-5.1,4.7-7.5
195
+                                c3.4-4.6,5.9-11.9,12.6-11c6.3,0.9,13,3.9,12.1,13.2c-0.2,2,4.9,4.2,5.1,6.6C345.4,400.8,358.4,400.9,353.9,410.6z" />
196
+                        </a>
197
+                        <!-- Bentong -->
198
+                        <a href="testing.html" data-area="bentong">
199
+                            <path id="bentong" class="pahang-barat" d="M442.5,743.9c-7.8-2.7-7.4-11.3-4.9-12.5c14.5-7.3,7-22,11.8-32.4c2.1-4.5,1.4-8.7,7.8-10.3
200
+                                   c5.5-1.4,9.2-6.8,7.6-12.6c-1.3-4.6-5.4-5.9-10-2.5c-0.8,0.6-4-0.2-4.3-1.1c-5.3-13.5-22.2-9.5-29.6-19.6c-1.8-2.5-3.7-1.4-5.4-0.1
201
+                                   c-10.7,7.6-23.6,8.6-35.6,12.2c0,0,0,0,0,0c-12.3,7.4-15.5-1-18-10.4c-9.7-10.7-3.6-22.8-1.8-33.8c1.8-10.7-1.8-15.4-11.1-17.1
202
+                                   c-8.3-1.5-12.3-5.1-12.4-14.2c-0.1-12.6-7.7-18.9-20.4-19c0,0,0,0,0,0c-0.8-0.3-1.6-0.6-2.4-0.8c-5.7-1-10.3-2-14-3.3
203
+                                   c0.4,0.2,0.8,0.4,1.3,0.6c-1.5-0.2-2.9-0.8-4.2-1.7c-9.3-4.3-11.8-11.8-14.1-29.2c-0.3-2-1.4-4-2.1-5.9c0,0,0,0,0,0
204
+                                   c-3.5-8.3-11.4-6.4-17.9-7.7c0,0,0,0,0,0c0,0,0,0,0,0c-1,0.1-2,0.1-3,0.2c-1.2,8.2-9,9.4-14.1,9.6c-8.8,0.3-13.6,5.3-18.8,10.5
205
+                                   c0,0,0,0,0,0c0.1,1.7,0.5,3.5,0.1,5.1c-2.9,10.8,1.6,24-13.7,30.8c-9.7,4.3-10.3,17.9-5.6,28c4.6,9.8,12.9,22,4.5,30.7
206
+                                   c-10.8,11.1-9.7,18.2-0.4,27.9c3.5,3.6,6.3,8,8.6,12.5c5.8,11.3,16.2,17.2,26.7,22.5c8.6,4.3,18.9,5.9,27.4,1.8
207
+                                   c13.6-6.6,23-4.5,29.3,9.7c2.5,5.8,6.4,9.3,12.6,8.6c15-1.9,21.6,4.7,23.2,19.4c0.8,7.7,4.4,12.6,13,4.3
208
+                                   c11.7-11.4,22.6-11,34.6-0.8c3.4,2.9,7.3,4.2,11.4,5.4c12.6,3.8,25.2,7.3,37.7,11.3c4.3,1.4,8.2,2,12-0.9
209
+                                   C454.9,750.5,448.9,746.1,442.5,743.9z" />
210
+                        </a>
211
+                        <!-- Jerantut -->
212
+                        <a href="testing.html" data-area="jerantut">
213
+                            <path id="jerantut" class="pahang-barat" d="M431.5,110.2c5.4,5.9,6.4,12.3,2.5,19.5c-3.7,6.8-4.5,14.3-3.7,21.9h0c6.1,6.2,11.1,12-3.4,12.9
214
+                                c-4.7,0.3-7.1,4.1-9.8,7.3c-3.3,9.5-3.4,18.6,2.6,27.4c4.8,7.1,2.7,15.3,3.2,23.1c6.7,4.2,9.9,10.2,9.4,18.1c0,0.4-0.1,0.9,0,1.3
215
+                                c10.5,20.1,4.7,41.2,3.7,62c3.3,0.8,6.6,1.5,9.9,2.3c7.1,1.7,16,3.6,16.1,11.6c0.1,7.7-5.5,14.9-13.2,18.9c-4.1,2.1-8.1,4.6-12.5,6
216
+                                c-7.9,2.5-18.2,1.9-15.2,15.6c0.5,2.3-6.1,5.6-8,2.5c-6.5-10.5-22-8.4-27-20.7c-2.8-6.9-11.3-6.5-16.5-10.9c-3.7-3.2-7.2-0.5-7,4.7
217
+                                c0.1,2.9,0.7,5.8,1,8.7c1.1,4.1,2.7,7.5,6.1,10.6c8.4,7.6,7.2,14.4-2.8,19.2c-1.9,0.9-3.9,1.4-5.9,2.1c-21.4,6.9-22.1,9.7-4.7,25.1
218
+                                c6,5.3,8.7,9.3,0.1,14c-0.5,3.7-0.3,7.7-1.6,11.1c-3.6,9.5,3.7,13.5,8.9,11.1c15.5-7.3,33.5-5.8,48.3-14.7c0,0,0,0,0,0
219
+                                c0.8-5.5,3.8-8.5,9.4-7.2c5.9,1.4,7.7,5.6,6.9,11.5c-0.6,4.5-0.6,9.1-0.9,13.7c0,0,0,0,0,0c4.4,1,8.2-1.1,12.2-2.3
220
+                                c3.7-1.1,9.5-2.2,10.5,1.2c4.4,13.6,15.3,8.5,23.6,8.4c9.1-0.2,14.2,3.1,16.9,11.3c0.5,1.6,1.3,3.1,2.2,4.5
221
+                                c3.7,5.7,4.8,16.6,12.2,15.5c7-1,11.5-10.1,16-16.9c7.6-11.4,9.9-23.7,8.1-37c-0.7-5.4,0.2-10.7,7.1-11c6.5-0.3,11.1,2.7,12.9,9.6
222
+                                c1,3.9-2,10,5,11.3c0,0,0,0,0,0c7.8-9.7,17.1-3.1,25.9-2.3c0,0,0,0,0,0c9.3-10.9,18.8-4,28.3-1.1c0.9,0,2,0.4,3.1,0.8
223
+                                c10.6-0.9,20.1,8.8,31.2,3.3c15.2-9,12.5-28.7,24.3-40.1c5.4-5.2,11.4-9.6,16.9-14.7c5.9-5.6,10.6,1.1,13.3,6.4
224
+                                c4.9,9.6,10.1,7.4,12.2-0.6c4.4-16.9,14.8-26.4,31.2-30.2c1.5-3.4,3.2-6.9,1.2-10.6c-6-11.1-1.7-19.8,6.2-27.7c0,0,0,0,0,0
225
+                                c-3.8-3.3-7.7-6.5-11.2-10.1c-3.6-3.6-5.9-9.1-1.6-12.4c10.9-8.4,9.7-18.2,6-29.2c-1.3-3.9,1.5-7.3,3.7-10.4
226
+                                c2.5-3.5,4.2-7.3,3.4-11.8c-1.1-6.5,1.8-11.4,6.7-15.5c2.9-2.4,6.2-4.9,6.9-8.9c2.2-12.1,8.6-17.9,24.1-13.2
227
+                                c-4.2-8.1-7.4-14.8-3.2-20.1c12.5-15.7,0.6-26.4-7.1-37.8c-5.6-8.2-13-10.7-23.1-5.7c-9.3,4.6-20.1,5.9-28.9-0.9
228
+                                c-10.7-8.2-17.2-19.4-18.1-33.4c-0.4-6.2-1.4-12,7.1-13.5c4.7-0.8,6.7-3.9,4-8.3c-2.6-4.2-1.9-7.1,2.2-9.4c1.8-1,3.6-1.8,3.3-4.6
229
+                                c-1.7-15.9-19.5-28.8-35.8-25.6c-3.4,0.7-6.5,1.3-10,0.6c-21.3-4.2-39.7-13-51.6-32.3c-2.2-3.6-5.3-7-9.6-7.8
230
+                                c-5.9-1.2-10.9-10.1-16.8-4.9c-5.9,5.2-2.8,13.2-0.6,20.2c1.5,4.6,4.9,10,0.1,14.1c-4.1,3.5-10.8,3.2-14.5,0.9
231
+                                c-10.1-6.3-14.5-0.7-20.1,6.4c-8.4,10.4-13.2,10.3-23,1.2c-2.5-2.3-4.6-5-6.9-7.4c-7.6-7.9-33.2-11.8-42.8-6.8
232
+                                c-3.7,1.9-2.3,4.5-2.2,7.4c0.2,12.7-10,19.1-17.9,26c-6.4,5.5-13.4-0.5-19.5-4.2c-13.3-8-23.5-3.9-28.1,11c0,0,0,0,0,0
233
+                                C414.2,86.1,420.9,98.6,431.5,110.2z" />
234
+                        </a>
235
+                        <!-- Kuantan -->
236
+                        <a href="testing.html" data-area="kuantan">
237
+                            <path id="kuantan" class="pahang-timur" d="M661.7,445.8c0-5-4.4-10-5.4-15c1.2-3.7,2.3-7.4,5.6-10c8.7-2.7,5.4-7.7,2.5-12.6c3.6-8.3,10.1-13.8,17.7-18.2
238
+                                c5.4,2.7,6-2.4,8-5c4.3,4.1,6.3,12.9,12.7,12.9c1.9,0,4.3-0.8,7.2-2.8c5.3,0.2,9.1-0.6,5.4-7.1c0.3-4.1,2.1-7.6,4.7-10.7
239
+                                c1.1,1.7,3.4,2.2,4.2,0.8c6-10.5,17.6-12.8,27-17.6c9.9-5.1,8-8.3,1.6-14.5c-2.6,3.1-1.2,7.5-4.9,9h0c0.1-4.2,0.3-8.4,0.4-12.6
240
+                                c9.8-5.6,8.6-10.7-0.6-15.6c0,0,0,0,0,0c1.3-2.3,2.5-4.5,3.8-6.8c0,0,0,0,0,0c1.5-0.9,3-1.8,4.6-2.7c0.4,4,2.9,3.3,5.2,2
241
+                                c1.9-1.1,5.1-2,2-5.2c1.8-0.9,3.6-1.7,5.4-2.6c1.2,2.1,2.4,5.1,5.3,3.3c2.7-1.7,2-4.1-0.6-5.8c2.4-1.7,4.7-2.7,7-2.7
242
+                                c2.2,0,4.3,0.9,6.4,2.9c-1.9,2.5-0.2,4.3,1.9,4.5c7.8,0.6,15.7,2.5,23.2-1.4c1.8,0.5,3,1.5,3.9,2.7c0.9,1.2,1.6,2.7,2.3,4.2
243
+                                c-1.8,0.3-4.3-1.8-5.3,0.9c-0.9,2.3,0.8,4,3,4.2c4.8,0.2,9.8,1.9,13.9-2.1c7.8,1.9,10,8.7,13.1,14.8c5.6,2.1,11,4.8,14.9,9.2
244
+                                c2.8,3.2,5.8,4,9,4c2,0,4.1-0.3,6.2-0.6c1.3,2,1.7,6,5.6,2.6c1.6,1.8,3.3,3.7,4.9,5.5c-1.9,0.8-6.2,1.9-2.4,4
245
+                                c4.1,2.1,10.5,3.7,12.3-4.2c4.7,10.3,15.5,15.5,18.8,28.5c2.5,9.9,6.4,25.3,22,27.8c-1.7,1.3-3.4,2.6-6.3,4.8c4-0.5,9,2,7-3.4
246
+                                c0.1-0.2,0-0.4-0.2-0.6c0,0,0,0.1,0,0.1c-0.1-0.3-0.3-0.6-0.4-1c2.5-3,2.6-6.3,1.6-9.8c2.8-2,5.9-3.9,3.2-8.1
247
+                                c9.1-9.3,4.1-19.8,2.4-29.9c0,0,0,0,0,0c5.7-8,1.6-16.5,0-24.8v24.8c-3.9-5.3-1.9-11.4-2-17.1c-0.1-6.6-0.8-12.2-6.6-16.7
248
+                                c-8.4-6.6-6.3-15.6-1.5-22.4c6.2-8.6,9-16.6,5.4-26.9c-0.7-1.9-1.1-5.3,1-5.3c0.8,0,1.9,0.5,3.6,1.8c-1.4,1.4-1.9,3,0,4.1
249
+                                c2.1,1.2,4,0.2,5.4-1.7c4.7-0.1,9.3-0.3,14-0.2c3.6,0.1,8.8-2.3,10.2,2c1.6,5,1.8,12.2-3.2,15.2c-11.4,6.8-8.5,16.5-6.6,25.8
250
+                                c3.4,17,9.4,33.2,18.7,48.3c-20.6,4.2-32.1,23-29,46.7c0.7,5,2.3,9.9,3.1,14.9c1.3,7.6,2.6,13.1-9,16.2
251
+                                c-10.2,2.7-12.8,16.2-12.9,26.4v0.5c0,22.5,12.8,40.4,24.7,58.3c-8.4,2.4-16.8,4.9-25.3,7.3c-0.8,0-1.7-0.1-2.6-0.1
252
+                                c-11.3-9.3-23.5-4.7-35.6-2.4c-1.7,0.2-3.3,0.4-5,0.6c-6.6-0.3-13.1-0.5-19.6-0.8c0,0,0,0,0,0c-0.5-0.5-1-1.1-1.4-1.8
253
+                                c0,0,0.1-0.1,0.1-0.1c3.4-0.8,7.3,0.9,11.4-2.5c-9.4,0.4-17.9-2.4-26.1,1.9c-0.8,0.2-1.6,0.5-2.4,0.8c-2.7,0-5.3-0.1-7.9-0.1
254
+                                c-4.8-0.2-9.6-0.5-14.4-0.7c-0.3-0.7-0.7-1.3-1.2-1.9h17.5c-1.5-0.4-2.9-0.8-4.4-1.2c2-0.5,0.5-2.2,1-0.9c-0.8,0.3-1.6,0.5-2.4,0.6
255
+                                c-5.6-1.4-11.1-2.3-16.4,1.1l-10.5-2.2c6.1-1.1,3.4-4.5,1.6-7.1c-4.6-6.2-11.1-1.9-16.5-1.9c-3.2,0-0.7,3.8,0,6l-11.7-2.4l-0.1,0
256
+                                c-3.7-0.9-7.6-1-11.3-1.8c-5.7-1.1-11.4-2.2-17-3.3c-3.8-1.5-7.5-3-11.3-4.5c-2.4-10.3-23.6-30-33.2-30.8c-2.5-0.2-5.1-0.8-7.4-0.3
257
+                                c-1.1,0.2-0.1,2,1.1,2.4c0.8,0.3,1.6,0.4,2.4,0.6c-0.3,0.6-0.6,1.3-0.8,1.9c-2.6,1.3-6,9.5-7-1c-0.2-2.3-1.4-4.6-2.2-6.8
258
+                                c0,0,0-0.1,0-0.1c-0.1-0.7-0.2-1.3-0.3-2c0.5-4.5-0.4-7.1-5.6-4.4c0,0,0,0,0,0c-6.6-7.4-14.3-7.4-22.6-3.3
259
+                                c-0.3-2.9-0.4-5.8-0.9-8.7c-0.2-0.9-1.2-1.6-1.9-2.5c-0.8,1.3-1.6,2.7-2.3,4c-2.7-4.3-5.3-8.5-8-12.8
260
+                                C660.3,451.3,661.7,448.5,661.7,445.8z" />
261
+                        </a>
262
+                        <!-- Temerloh -->
263
+                        <a href="testing.html" data-area="temerloh">
264
+                            <path id="temerloh" class="pahang-tengah"
265
+                                d="M528.7,494c-16.5-1-31.1-5.4-39.8-21.4c-9.5-17.6-9.5-17.6-29-15c-0.8,0.1-0.8,0.3-0.8,0.4c0.1,0.1,0,0.1,0,0
266
+                                c-0.1-0.1-0.2-0.1-0.4-0.3c-1.5-1-3.1-2-4.7-2.8c-0.9,0-1.6-0.3-2.1-1.1c-7.2-3.5-14.9-5.7-22.2-9c-1.9,0.3-3.6-0.6-4.8-2.4
267
+                                c-0.3-0.2-0.6-0.3-0.9-0.5c0,0,0,0,0,0c-7.8-3.1-2.4-13.1-8.1-17.3c-1.9,7.5-8,9.4-14.8,10.2c-7.2,0.8-14.3,2-20.9,5.2
268
+                                c-9.9,4.9-17.9,11.3-17.9,23.9c0.1,12.8-8.2,22.3-15.3,31.4c-5.9,7.6-8.7,14.9-8.7,24c-0.3,0.7-0.6,1.4-1,2.1
269
+                                c7.5,6,7.5,9.6,0.6,14.5c-8.6,6-11.2,20.1-4.5,28.7c5.6,7.1,10.3,14.4,12.4,23.2c1.1,4.6,4,6.8,8,9c15.2,8.4,17.6,14.5,13.1,30.8
270
+                                c-2.7,6.3-2.2,12.6-0.5,19c0.2,1.2,0.2,2.4,0.1,3.6c5,2.2,6.1,8.4,10,11.8c6.6-6.2,42-21.8,46.2-19.1c8.5,5.3,16.2,11.3,26.3,14
271
+                                c4.9,1.3,8.8,1.2,13.2-0.4c0.4,0.1,0.8,0.2,1.1,0.3c1.5-10.3,9.7-11.3,17.6-11.6c8.1-0.3,15.8,2.2,23.5,4.8
272
+                                c7.7,2.6,15.5,4.2,23.6,1.6c4.8-1.6,10.2-5.1,8.1-9.5c-5.9-12.6,4-19.2,8.7-27.9c0.4-0.6,0.9-1.2,1.4-1.6
273
+                                c-5.9-11.6-11.3-22.3-10.3-37.3c1.4-22.8,1.8-46.6-6.1-69.1C528.5,502.3,528.9,498,528.7,494z" />
274
+                        </a>
275
+                        <!-- Pekan -->
276
+                        <a href="testing.html" data-area="pekan">
277
+                            <path id="pekan" class="pahang-timur" d="M999.1,601.2c-19.6,20.7-24.3,47.5-19.7,73.2c5.8,32.6,7.8,65.2,10.7,97.9c0.7,7.9-4.5,13.3-5.4,20.4
278
+                                c-1.9,14.3-1.8,28.6-2,43c-0.1,5.6,1,12.3-7.1,14.2h0c-3.9-1.5-7.8-4.4-11.7-4.3c-31,0.9-62-5.8-92.9,0.3
279
+                                c-4.4,0.9-8.9,3.4-13.1-0.6c0.8-5.1-2-8.1-6.3-9.7c-8.1-2.9-11.6-10.4-17.2-15.6c-9.7-8.8-9-23.1-20.1-31c-5.7-4-0.1-8.8,5.1-10.9
280
+                                c4.3-1.6,11.3-1.8,11.5-6.5c0.3-10.4,8.1-17.9,9-27.9c0.3-3.9,1-7.6-1.2-11c-9.5-15-20.5-29.3-24-47.3c-4-4.6-8.2-5.2-12.9-0.8
281
+                                c-3.4,3.2-7.1,6-10.7,9c-7.5,6.1-23.6,6.9-26.2,0.7c-2.6-6.4-5.6-10.4-12.9-8.8c-8.1,1.8-8.7,8.2-8.5,14.9
282
+                                c-6.8,5.4-11.3-1-14.7-4.3c-5-4.9-10.3-9.6-15.3-14.7c-4.9-5.1-9.5-10.4-13.1-16.6c-0.1-3.3-0.2-6.7-0.3-10
283
+                                c-0.5-1.9-1.5-3.3-2.8-4.5c-1.3-1.2-2.8-2.2-4.1-3.5c-1.5-2-3.2-3.9-4.5-6c-3.7-6-11.2-11.4-9.7-18.4c1.6-7.7,11.8-0.3,16.2-5.6
284
+                                c2.1-2.3,4.2-4.6,6.3-6.9l8.1-1.6l0,0c4.3-0.5,5.1-6.6,7.3-9.9c2.8-4.4,2.4-10.6,8.2-13.5c6.8-3.5,9-10.5,12.3-16.9
285
+                                c7-13.6,6.7-28.9,11.4-43c5.7,1.1,11.4,2.1,17.1,3.2c6.3,1.5,12.4,5,18.8,4.5l15.8,3.8l0,0c1.3,0.4,2.5,0.7,3.7,0.7h0l12.1,2.1
286
+                                c0.9,1.6,4,1.2,6.1,1.1c2.3,0.2,4.6,0.4,6.8,0.6v0c11.7,3.4,23.7,2,35.5,2.4c5.9,2.8,12.2,1.9,18.4,1.8c0,0,0,0,0,0h0
287
+                                c6.6,0.3,13.2,0.5,19.8,0.8c5,2.8,10.5,1.9,15.8,1.8v0c12.7,0.2,25.5,0.4,38.2,0.6c22.2,3.3,28.7,25.1,43.4,37.3
288
+                                C1004,588.3,1004.5,595.5,999.1,601.2z" />
289
+                        </a>
290
+                        <!-- Maran -->
291
+                        <a href="testing.html" data-area="maran">
292
+                            <path id="maran" class="pahang-tengah"
293
+                                d="M690,649.3l0.1,0.1c-0.8,3.2-4.3,2.9-6.1,4.7c0,0,0,0,0,0c-5.5-0.8-10.9-1.6-16.4-2.5
294
+                                            c-7.2-4.7-11.8-3-13.8,5.5c-0.5,2-1.6,3.9-2.4,5.8c-6.2,13.7-6.2,12.9-18.7,5.4c-10.8-6.4-15.7-20.3-29.5-22.6
295
+                                            c-1-0.2-2.1-3.6-2.1-5.4v-0.2c0-9.2-5.8-14.2-13-18.4c-5.1-3.8-10.7-6.3-16.9-7.5c-4-0.8-8.2,0-12.3,0c-3.2,0-6.4-0.5-9.4-2.7
296
+                                            c0.5-10.4-10.9-17.3-8.5-28c5.2-23-2.2-45.5-2.2-68.2c0-8-3.6-16-6-24c0.2-0.5,0.4-1,0.5-1.6c-0.6-5.2-5.2-6.1-8.9-7.8
297
+                                            c-4.8-2.1-4.9-4.7-2.1-8.7c9.7-13.6,21.4-26.5,17-45.7c8.1,12.1,8.7,12.4,18.8,8.2c8.8,2.4,17.6,7.2,25.9-1.3c0-0.1,0-0.2,0-0.3
298
+                                            c7.3,1.3,14.6,3.1,21.7-0.7c1.5,3.7,4.9,5.3,8.3,5.8c14.1,2,24.6,9.1,33.2,20.3c3.3,4.3,6.9,8.4,8.9,13.5c1.7,4.5,4.8,9.3,9.7,8.7
299
+                                            c10.7-1.3,19.7,3.4,29.2,6.1c0.6,5.6-1.6,11.6,2.7,16.6c0.8,1.1,1.7,1.5,2.5,1.5c0.9,0,1.8-0.4,2.7-1.2c4.7-1.7,5.1-6.8,7.9-10
300
+                                            c1.4,0.1,2.7,0.1,4.1,0.2c5,5.1,9.6,10.9,15.2,15.2c10,7.7,13.3,17.7,10,29.1c-4.6,15.7-5.6,33.5-22.1,43.5
301
+                                            c-2.4,1.5-3.6,5.6-4.6,8.8c-1.4,4.7-3.5,8.8-6.7,12.1l0,0c-0.8,0.9-1.7,1.7-2.7,2.5l-2.1,1.6h0c-6.7,0.6-12,6.4-18.9,6.4
302
+                                            c-1,0-2-0.1-3-0.4c-8,2.6-9.1,8.4-5.4,14.7C678.7,636.1,682.7,644,690,649.3z" />
303
+                        </a>
304
+                        <!-- Bera -->
305
+                        <a href="testing.html" data-area="bera">
306
+                            <path id="bera" class="pahang-barat"
307
+                                d="M671.1,911.5c-13.5-10.7-16-25.6-11-39.9c3.5-9.9,3.3-18.5,2.3-28.1c-0.4-3.6,1.4-7.4,2.1-11.1c0,0,0,0,0,0
308
+                                c0,0,0,0,0,0c0.4-1.2,0.6-2.4,1.2-3.5c6.1-10.4,13.1-20.5-1.6-30c-2.9-1.9-4.8-5.7-4.9-9.8c-5.1-8.2,2.4-18.2-3.8-26.6
309
+                                c-1.3-1.7,2.9-6.3,5.6-5.3c10.6,3.9,16.1-5.2,26.9-8.8c-19.9-13.4-34.9-29-49.3-45.4c0,0,0,0,0,0c-7.1-8.3,1.1-17-0.6-25.4
310
+                                c-9.3-4.9-17.2-11.7-24.6-19c-3.3-3.3-6-6.6-11.3-7c-4.1-0.2-7.5-2.6-6.7-7.3c1.6-9.6-5.2-14.4-10.6-20c0,0,0,0,0,0
311
+                                c-7.7-3.4-15.5-6-24.3-5.3c-9.7,0.7-14.8,9.7-14.3,14.9c2.4,24.5-8.5,29-34.4,27.1c-5.6-0.4-11.2-2.5-16.8-4.7
312
+                                c-9.8-3.9-20.4-5.5-29.2,3.3c0,0,0,0,0,0c-1,3-3.9,6-0.3,9.1c10.7,9.1,4.2,17.9-3,22.9c-11.4,7.9-10.2,18.9-11.1,29.7
313
+                                c-0.2,2.2,2.3,5.7,0,6.9c-14.3,7.3-3.1,12,1.6,17.1c6.2,6.6,5.2,11.7-2.6,15.9c3.9,4.8,9.8,4.8,15,5.2
314
+                                c22.6,1.7,39.6,11.4,51.4,31.4c5,8.5,10.2,17.6,18.8,23.5c25.9,17.5,51.8,35,77.7,52.3c3.1,2.1,6.7,4.7,10.1,4.7
315
+                                c9.9,0.1,13.8,6.2,14.9,14.1c1.7,12.4,8.8,18,20.5,19.7c5,0.7,9.8,2.4,14.7,3.7C672.9,914.3,672.4,912.5,671.1,911.5z" />
316
+                        </a>
317
+                        <!-- Rompin -->
318
+                        <a href="testing.html" data-area="rompin">
319
+                            <path id="rompin" class="pahang-timur" d="M1065.4,1052.3c-13.9,1-8.9-8.3-7.4-14.1c1.6-6.6,3.2-13.2,7.8-19.2c3.4-4.5,5.4-12-4.6-14.6
320
+                                c-6-1.6-6.5-7.6-5.6-12.6c0.9-5.4,5.4-7.1,10.6-7c2.4,0,4.7,2.4,7.2,0c0.4-2.4-1.3-3.8-2.9-5.1c-22.7-19.1-43.4-39.9-61.8-63.3
321
+                                c-12.4-15.7-22.8-31.6-26-51.3c-1.3-8.2-4.8-12.1-12.7-12.8c-33.5-2.8-66.9-6.7-100.5-1.2c-4.8,0.8-9.8,3.6-14.4-0.6c0,0,0,0,0,0
322
+                                c-2.8-6.1-5.7-11.3-13.2-13.8c-10.4-3.4-12.1-15.5-18.9-22.9c-6-6.6-9.4-16.1-14.8-24c-5.1-7.3,0.6-13.1,8.4-16.3
323
+                                c13.6-5.5,20.7-31.1,13.3-44c-7.5-13.2-20.4-24.2-18.2-41.6c0,0,0,0,0,0c-5.4-1.7-9.9,1.8-12,5.1c-6.3,9.8-17.1,8.4-25.8,11.6
324
+                                c-5.5,2-10.3-1.8-13.7-6.5c-2-2.8-1.5-8.3-7-7.2c-4.9,1-4,5.6-4.9,9.1c-0.5,1.9-1.6,3.7-2.4,5.6c0,0,0,0,0,0
325
+                                c-6.7,6.5-13.1,1-16.7-2.7c-11.2-11.2-25.1-20.1-32-35.2c0,0,0,0,0,0c-2.3-2.2-2.5-5.1-2.3-8c-9.6-4.8-21.3,2.6-30.4-5.3
326
+                                c0,0,0,0,0,0c-5.9-0.1-5.7,5.2-7.5,8.6c-3.6,6.9-5,15.3-12.6,19.6c0,0,0,0,0,0c-1,5.1-2.1,10.1-3.1,15.2c0,0,0,0,0,0
327
+                                c15.3,14.5,27.9,32,46,43.6c7.3,4.7,6.3,9.8-1.1,12.9c-7.1,3-11.7,10.4-21.4,9.5c-3.9-0.4,1.8,6.6-0.3,10.1l0,0c0,0,0,0,0,0
328
+                                c-1.6,12,0.3,22.3,11.9,29.1c5.1,3,5.5,7.6,2.8,12.9c-4.2,8.1-7.9,16.4-11.8,24.7c0,0,0,0,0,0c5.2,13,1.9,26.5-1.6,38.5
329
+                                c-3.6,12.5,2.1,19.3,8.3,27.4c2.3,3,4,6.3,6,9.5c0,0,0,0,0,0c25.9,25.7,47.6,55.1,71.6,82.3c7,7.9,12.8,16.9,23.2,21.2
330
+                                c22.2,9.4,44.4,19,66.5,28.8c6.7,3,12.6,2.7,19.4-0.1c24.3-9.9,48.1-21.1,74.1-26.5c8.9-1.8,16.4-1.4,24.4,3
331
+                                c8.8,4.8,17,11.6,27.6,12.4c6.1,0.4,9.7,3.8,13.7,7.9c15.9,16.7,37.8,23.5,57.8,33.3c4.1,2,12.7,3,16.9-3.3
332
+                                C1077.3,1071.6,1068.9,1052.1,1065.4,1052.3z" />
333
+                        </a>
334
+                    </g>
335
+                </svg>
336
+
337
+                
338
+            </div>
339
+        </div>
340
+
341
+
342
+
343
+        
344
+        
345
+        
346
+        
347
+        
348
+
349
+
350
+       
351
+    </section>
352
+
353
+    <script defer src="/ruta relativa a mi archivo .js"></script>
354
+
355
+</body>
356
+
357
+</html>

+ 22
- 0
index.js 查看文件

@@ -0,0 +1,22 @@
1
+//This is the way to include modules with Node.js, in this case the 
2
+//Electron module.
3
+//You can learn more about importing modules by searching
4
+//information about "CommonJS" modules on the internet
5
+const { app, BrowserWindow } = require('electron')
6
+
7
+//Create our main windows, here you can set the initial size.
8
+const createWindow = () => {
9
+  const win = new BrowserWindow({
10
+    width: 800,
11
+    height: 600
12
+  })
13
+  //The HTML file that will be shown, we will create this file in the next section.
14
+  win.setMenuBarVisibility(false)
15
+
16
+  win.loadFile('index.html')
17
+}
18
+
19
+//This is our starting event, once "Ready", create our main window.
20
+app.whenReady().then(() => {
21
+  createWindow()
22
+})

+ 2
- 0
js/jquery-3.7.1.js
文件差異過大導致無法顯示
查看文件


+ 816
- 0
js/pdfjs-viewer.js 查看文件

@@ -0,0 +1,816 @@
1
+/*
2
+   Copyright 2020 Carlos de Alfonso (https://github.com/dealfonso)
3
+
4
+   Licensed under the Apache License, Version 2.0 (the "License");
5
+   you may not use this file except in compliance with the License.
6
+   You may obtain a copy of the License at
7
+
8
+       http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+   Unless required by applicable law or agreed to in writing, software
11
+   distributed under the License is distributed on an "AS IS" BASIS,
12
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+   See the License for the specific language governing permissions and
14
+   limitations under the License.
15
+*/
16
+(function(exports, $) {
17
+    'use strict';
18
+    
19
+    let defaults = {
20
+        // Threshold to consider that a page is visible
21
+        visibleThreshold: 0.5,
22
+        // Number of extra pages to load (appart from the visible)
23
+        extraPagesToLoad: 3,
24
+        // The class used for each page (the div that wraps the content of the page)
25
+        pageClass: "pdfpage",
26
+        // The class used for the content of each page (the div that contains the page)
27
+        contentClass: "content-wrapper",
28
+        // Function called when a document has been loaded and its structure has been created
29
+        onDocumentReady: () => {},
30
+        // Function called when a new page is created (it is binded to the object, and receives a jQuery object as parameter)
31
+        onNewPage: (page, i) => {},
32
+        // Function called when a page is rendered
33
+        onPageRender: (page, i) => {},
34
+        // Function called to obtain a page that shows an error when the document could not be loaded (returns a jQuery object)
35
+        errorPage: () => {
36
+            $(`<div class="placeholder"></div>`).addClass(this.settings.pageClass).append($(`<p class="m-auto"></p>`).text("could not load document"))
37
+        },
38
+        // Posible zoom values to iterate over using "in" and "out"
39
+        zoomValues: [ 0.25, 0.5, 0.75, 1, 1.25, 1.50, 2, 4, 8 ],
40
+        // Function called when the zoom level changes (it receives the zoom level)
41
+        onZoomChange: (zoomlevel) => {},
42
+        // Function called whenever the active page is changed (the active page is the one that is shown in the viewer)
43
+        onActivePageChanged: (page, i) => {},
44
+        // Percentage of the container that will be filled with the page
45
+        zoomFillArea: 0.95,
46
+        // Function called to get the content of an empty page
47
+        emptyContent: () => $('<div class="loader"></div>'),
48
+        // The scale to which the pages are rendered (1.5 is the default value for the PDFjs viewer); a higher value will render the pages with a higher resolution
49
+        //   but it will consume more memory and CPU. A lower value will render the pages with a lower resolution, but they will be uglier.
50
+        renderingScale: 1.5,
51
+    }
52
+    
53
+    // Class used to help in zoom management; probably it can be moved to the main class, but it is used to group methods
54
+    class Zoomer {
55
+        /**
56
+         * Construct the helper class
57
+         * @param {PDFjsViewer} viewer - the viewer object
58
+         * @param {*} options - the options object
59
+         */
60
+        constructor(viewer, options = {}) {
61
+            let defaults = {
62
+                // The possible zoom values to iterate through using "in" and "out"
63
+                zoomValues: [ 0.25, 0.5, 0.75, 1, 1.25, 1.50, 2, 4, 8 ],
64
+                // The area to fill the container with the zoomed pages
65
+                fillArea: 0.9,
66
+            }
67
+    
68
+            // The current zooom value
69
+            this.current = 1;
70
+            // The viewer instance whose pages may be zoomed
71
+            this.viewer = viewer;
72
+            // The settings
73
+            this.settings = $.extend(defaults, options);
74
+            
75
+            // Need having the zoom values in order
76
+            this.settings.zoomValues = this.settings.zoomValues.sort();
77
+        }
78
+    
79
+        /** Translates a zoom value into a float value; possible values:
80
+         * - a float value
81
+         * - a string with a keyword (e.g. "width", "height", "fit", "in", "out")
82
+         * @param {number} zoom - the zoom value to be translated
83
+         * @return {number} The zoom value
84
+        */
85
+        get(zoom = null) {
86
+            // If no zoom is specified, return the current one
87
+            if (zoom === null) {
88
+                return this.current;
89
+            }
90
+            // If it is a number, return it
91
+            if (parseFloat(zoom) == zoom) {
92
+                return zoom;
93
+            } 
94
+            let $activepage = this.viewer.getActivePage();
95
+            let zoomValues = [];
96
+            // If it is a keyword, return the corresponding value
97
+            switch(zoom) {
98
+                case "in":
99
+                    zoom = this.current;
100
+                    zoomValues = this.settings.zoomValues.filter((x) => x > zoom);
101
+                    if (zoomValues.length > 0) {
102
+                        zoom = Math.min(...zoomValues);
103
+                    }
104
+                    break;
105
+                case "out":
106
+                    zoom = this.current;
107
+                    zoomValues = this.settings.zoomValues.filter((x) => x < zoom);
108
+                    if (zoomValues.length > 0) {
109
+                        zoom = Math.max(...zoomValues);
110
+                    }
111
+                    break;
112
+                case "fit":
113
+                    zoom = Math.min(this.get("width"), this.get("height"));
114
+                    break;
115
+                case "width":
116
+                    zoom = this.settings.fillArea * this.viewer.$container.width() / $activepage.data("width");
117
+                    break;
118
+                case "height":
119
+                    zoom = this.settings.fillArea * this.viewer.$container.height() / $activepage.data("height");
120
+                    break;
121
+                default:
122
+                    zoom = this.current;
123
+                    break;
124
+            }
125
+            return zoom;
126
+        }
127
+    
128
+        /**
129
+         * Sets the zoom value to each page (changes both the page and the content div); relies on the data-values for the page
130
+         * @param {number} zoom - the zoom value to be set
131
+         */
132
+        zoomPages(zoom) {
133
+            zoom = this.get(zoom);
134
+            this.viewer.getPages().forEach(function(page) {
135
+                let $page = page.$div;
136
+                let c_width = $page.data("width");
137
+                let c_height = $page.data("height");
138
+    
139
+                $page.width(c_width * zoom).height(c_height * zoom);
140
+                $page.data('zoom', zoom);
141
+                $page.find(`.${this.viewer.settings.contentClass}`).width(c_width * zoom).height(c_height * zoom);
142
+            }.bind(this));
143
+            this.current = zoom;
144
+        }
145
+    }
146
+
147
+    class PDFjsViewer {
148
+        /**
149
+         * Constructs the object, and initializes actions:
150
+         *   - add the scroll handler to the container
151
+         *   - set the first adjusting action when the page is loaded
152
+         *   - creates the zoom helper
153
+         * @param {jQuery} $container the jQuery value that will hold the pages
154
+         * @param {dictionary} options options for the viewer
155
+         */
156
+        constructor($container, options = {}) {
157
+    
158
+            this.settings = $.extend(Object.assign({}, defaults), options);
159
+    
160
+            // Create the zoomer helper
161
+            this._zoom = new Zoomer(this, {
162
+                zoomValues: this.settings.zoomValues,
163
+                fillArea: this.settings.zoomFillArea,
164
+            });
165
+    
166
+            // Store the container
167
+            this.$container = $container;
168
+    
169
+            // Add a reference to this object to the container
170
+            $container.get(0)._pdfjsViewer = this;
171
+    
172
+            // Add the event listeners
173
+            this._setScrollListener();
174
+
175
+            // Initialize some variables
176
+            this.pages = [];
177
+            this.pdf = null;
178
+
179
+            // Whether the document is ready or not
180
+            this._documentReady = false;
181
+        }    
182
+    
183
+        /**
184
+         * Sets the current zoom level and applies it to all the pages
185
+         * @param {number} zoom the desired zoom level, which will be a value (1 equals to 100%), or the keywords 'in', 'out', 'width', 'height' or 'fit'
186
+         */
187
+        setZoom(zoom) {
188
+            let container = this.$container.get(0);
189
+
190
+            // Get the previous zoom and scroll position
191
+            let prevzoom = this._zoom.current;
192
+            let prevScroll = {
193
+                top: container.scrollTop,
194
+                left: container.scrollLeft
195
+            };
196
+
197
+            // Now zoom the pages
198
+            this._zoom.zoomPages(zoom);
199
+
200
+            // Update the scroll position (to match the previous one), according to the new relationship of zoom
201
+            container.scrollLeft = prevScroll.left * this._zoom.current / prevzoom;
202
+            container.scrollTop = prevScroll.top * this._zoom.current / prevzoom;
203
+
204
+            // Force to redraw the visible pages to upgrade the resolution
205
+            this._visiblePages(true);
206
+
207
+            // Call the callback (if provided)
208
+            if (this._documentReady) {
209
+                if (typeof this.settings.onZoomChange === "function")
210
+                    this.settings.onZoomChange.call(this, this._zoom.current);                
211
+                this.$container.get(0).dispatchEvent(new CustomEvent("zoomchange", { detail: { zoom: this._zoom.current } }));
212
+            }
213
+
214
+            return this._zoom.current;
215
+        }
216
+    
217
+        /**
218
+         * Obtain the current zoom level
219
+         * @returns {number} the current zoom level
220
+         */
221
+        getZoom() {
222
+            return this._zoom.current;
223
+        }
224
+    
225
+        /**
226
+         * Function that removes the content of a page and replaces it with the empty content (i.e. a content generated by function emptyContent)
227
+         *   such content will not be visible except for the time that the 
228
+         * @param {jQuery} $page the page to be emptied
229
+         */
230
+        _cleanPage($page) {
231
+            let $emptyContent = this.settings.emptyContent();
232
+            $page.find(`.${this.settings.contentClass}`).empty().append($emptyContent)
233
+        }
234
+    
235
+        /**
236
+         * Function that replaces the content with the empty class in a page with a new content
237
+         * @param {*} $page the page to be modified
238
+         * @param {*} $content the new content that will be set in the page
239
+         */
240
+        _setPageContent($page, $content) {
241
+            $page.find(`.${this.settings.contentClass}`).empty().append($content)
242
+        }
243
+
244
+        /**
245
+         *  Recalculates which pages are now visible and forces redrawing them (moreover it cleans those not visible) 
246
+        */
247
+        refreshAll() {
248
+            this._visiblePages(true);
249
+        }
250
+    
251
+        /** Function that creates a scroll handler to update the active page and to load more pages as the scroll position changes */
252
+        _setScrollListener() {
253
+            // Create a scroll handler that prevents reentrance if called multiple times and the loading of pages is not finished
254
+            let scrollLock = false;
255
+            let scrollPos = { top:0 , left:0 };
256
+            this.__scrollHandler = function(e) {
257
+                // Avoid re-entrance for the same event while loading pages
258
+                if (scrollLock === true) {
259
+                    return;
260
+                }
261
+                scrollLock = true;
262
+    
263
+                let container = this.$container.get(0);
264
+                if ((Math.abs(container.scrollTop - scrollPos.top) > (container.clientHeight * 0.2 * this._zoom.current)) ||
265
+                    (Math.abs(container.scrollLeft - scrollPos.left) > (container.clientWidth * 0.2 * this._zoom.current))) {
266
+                    scrollPos = {
267
+                        top: container.scrollTop,
268
+                        left: container.scrollLeft
269
+                    }
270
+                    this._visiblePages();
271
+                }
272
+    
273
+                scrollLock = false;
274
+            }.bind(this);
275
+    
276
+            // Set the scroll handler
277
+            this.$container.off('scroll');
278
+            this.$container.on('scroll', this.__scrollHandler);            
279
+        }    
280
+        /**
281
+         * Function that creates the pageinfo structure for one page, along with the skeleton to host the page (i.e. <div class="page"><div class="content-wrapper"></div></div>)
282
+         *   If the page is a pageinfo, the new pageinfo structure will not rely on the size (it will copy it, but it won't be marked as loaded). If it is a page, the size will
283
+         *   be calculated from the viewport and it will be marked as loaded.
284
+         *   This is done in this way, because when creating the pages in the first time, they will be created assuming that they are of the same size than the first one. If they
285
+         *   are not, the size will be adjusted later, when the pages are loaded.
286
+         * 
287
+         * @param {*} page - the pageinfo (or the page) from which to create the pageinfo structure
288
+         * @param {*} i - the number of the page to be created
289
+         * @returns pageinfo - the pageinfo structure for the page
290
+         */
291
+        _createSkeleton(page, i) {
292
+            let pageinfo = {
293
+                $div: null,
294
+                width: 0,
295
+                height: 0,
296
+                loaded: false,
297
+            };
298
+    
299
+            // If it is a page, the size will be obtained from the viewport; otherwise, it will be copied from the provided pageinfo
300
+            if (page.getViewport !== undefined) {
301
+                let viewport = page.getViewport({rotation:this._rotation,scale:1});
302
+                pageinfo.width = viewport.width;
303
+                pageinfo.height = viewport.height;
304
+                pageinfo.loaded = true;
305
+            } else {
306
+                pageinfo.width = page.width;
307
+                pageinfo.height = page.height;
308
+            }
309
+            console.assert(((pageinfo.width > 0) && (pageinfo.height > 0)), "Page width and height must be greater than 0");
310
+    
311
+            // Now create the skeleton for the divs
312
+            pageinfo.$div = $(`<div id="page-${i}">`)
313
+                .attr('data-page', i)
314
+                .data('width', pageinfo.width)
315
+                .data('height', pageinfo.height)
316
+                .data('zoom', this._zoom.current)
317
+                .addClass(this.settings.pageClass)
318
+                .width(pageinfo.width * this._zoom.current)
319
+                .height(pageinfo.height * this._zoom.current);
320
+                
321
+            let $content = $(`<div class="${this.settings.contentClass}">`)
322
+                .width(pageinfo.width)
323
+                .height(pageinfo.height);
324
+
325
+            pageinfo.$div.append($content);
326
+            
327
+            // Clean the page (i.e. put the empty content, etc.)
328
+            this._cleanPage(pageinfo.$div);
329
+            
330
+            return pageinfo;
331
+        }
332
+    
333
+        /**
334
+         * This function places the page.$div in the container, according to its page number (i.e. it searches for the previous page and puts this page after)
335
+         *   * in principle, this method sould not be needed because all the pages are put in order; but this is created just in case it is needed in further versions
336
+         * @param {*} pageinfo - the pageinfo structure for the page (needs a valid $div)
337
+         * @param {*} i - the number of the page
338
+         */
339
+        _placeSkeleton(pageinfo, i) {
340
+            let prevpage = i - 1;
341
+            let $prevpage = null;
342
+            while ((prevpage>0) && (($prevpage = this.$container.find(`.${this.settings.pageClass}[data-page="${prevpage}"]`)).length === 0)) {
343
+                prevpage--;
344
+            }
345
+            if (prevpage === 0) {
346
+                this.$container.append(pageinfo.$div);
347
+            }
348
+            else {
349
+                $prevpage.after(pageinfo.$div);
350
+            }
351
+        }
352
+    
353
+        /**
354
+         * Creates the initial skeletons for all the pages, and places them into the container
355
+         * @param {page/pageinfo} pageinfo - the initial pageinfo (or page) structure
356
+         */
357
+        _createSkeletons(pageinfo) {
358
+            for (let i = 1; i <= this.pageCount; i++) {
359
+                if (this.pages[i] === undefined) {
360
+
361
+                    // Create the pageinfo structure, store it and place it in the appropriate place (the next page will be created similar to the previous one)
362
+                    pageinfo = this._createSkeleton(pageinfo, i);
363
+                    this.pages[i] = pageinfo;
364
+                    this._placeSkeleton(pageinfo, i);
365
+    
366
+                    // Call the callback function (if provided)
367
+                    if (this._documentReady) {
368
+                        if (typeof this.settings.onNewPage === "function") {
369
+                            this.settings.onNewPage.call(this, pageinfo.$div, i);
370
+                        }
371
+                        this.$container.get(0).dispatchEvent(new CustomEvent("newpage", { detail: { pageNumber: i, page: pageinfo.$div.get(0) } }));
372
+                    }
373
+                }
374
+            }
375
+        }
376
+    
377
+        /**
378
+         * Function to set the active page, and calling the callback (if provided)
379
+         * @param {*} i - the number of the page to set active
380
+         */
381
+        _setActivePage(i) {
382
+            if (this._activePage !== i) {
383
+                this._activePage = i;
384
+                let activePage = this.getActivePage();
385
+                if (this._documentReady) {
386
+                    if (typeof this.settings.onActivePageChanged === "function")
387
+                        this.settings.onActivePageChanged.call(this, activePage, i);
388
+                    this.$container.get(0).dispatchEvent(new CustomEvent("activepagechanged", { detail: { activePageNumber: i, activePage: activePage==null?null:activePage.get(0) } }));
389
+                }
390
+            }
391
+        }
392
+    
393
+        /**
394
+         * Obtains the area of a div that falls in the viewer
395
+         * @param {*} $page - div whose area is to be calculated
396
+         * @returns the visible area
397
+         */
398
+        _areaOfPageVisible($page) {
399
+            if ($page === undefined) {
400
+                return 0;
401
+            }
402
+            let c_offset = this.$container.offset();
403
+            let c_width = this.$container.width();
404
+            let c_height = this.$container.height();
405
+            let position = $page.offset();
406
+            position.top -= c_offset.top;
407
+            position.left -= c_offset.left;
408
+            position.bottom = position.top + $page.outerHeight();
409
+            position.right = position.left + $page.outerWidth();
410
+            let page_y0 = Math.min(Math.max(position.top, 0), c_height);
411
+            let page_y1 = Math.min(Math.max($page.outerHeight() + position.top, 0), c_height);
412
+            let page_x0 = Math.min(Math.max(position.left, 0), c_width);
413
+            let page_x1 = Math.min(Math.max($page.outerWidth() + position.left, 0), c_width);
414
+            let vis_x = page_x1 - page_x0;
415
+            let vis_y = page_y1 - page_y0;
416
+            return (vis_x * vis_y);
417
+        }
418
+
419
+        /**
420
+         * Function that returns true if the page is considered to be visible (the amount of visible area is greater than the threshold)
421
+         * @param {*} i - the number of page to check
422
+         * @returns true if the page is visible
423
+         */
424
+        isPageVisible(i) {
425
+            if ((this.pdf === null) || (i === undefined) || (i === null) || (i < 1) || (i > this.pdf.numPages)) {
426
+                return false;
427
+            }
428
+            let $page = i;
429
+            if (typeof i === "number") {
430
+                if (this.pages[i] === undefined)
431
+                    return false;
432
+                $page = this.pages[i].$div;
433
+            }
434
+            return this._areaOfPageVisible($page) > ($page.outerWidth() * $page.outerHeight() * this.settings.visibleThreshold);
435
+        }
436
+
437
+        /**
438
+         * Function that calculates which pages are visible in the viewer, draws them (if not already drawn), and clears those not visible
439
+         * @param {*} forceRedraw - if true, the visible pages will be redrawn regardless of whether they are already drawn (useful for zoom changes)
440
+         */
441
+        _visiblePages(forceRedraw = false) {    
442
+            // Will grab the page with the greater visible area to set it as active
443
+            let max_area = 0;
444
+            let i_page = null;
445
+    
446
+            // If there are no visible pages, return
447
+            if (this.pages.length === 0) {
448
+                this._visibles = [];
449
+                this._setActivePage(0);
450
+                return;
451
+            }
452
+
453
+            // Calculate the visible area for each page and consider it visible if the visible area is greater than 0
454
+            let $visibles = this.pages.filter(function(pageinfo) {
455
+                let areaVisible = this._areaOfPageVisible(pageinfo.$div);
456
+                if (areaVisible > max_area) {
457
+                    max_area = areaVisible;
458
+                    i_page = pageinfo.$div.data('page');
459
+                }
460
+                return areaVisible > 0;
461
+            }.bind(this)).map((x) => x.$div);
462
+    
463
+            // Set the active page
464
+            this._setActivePage(i_page);
465
+    
466
+            // Now get the visible pages
467
+            let visibles = $visibles.map((x) => $(x).data('page'));
468
+            if (visibles.length > 0) {
469
+                // Now will add some extra pages (before and after) the visible ones, to have them prepared in case of scroll
470
+                let minVisible = Math.min(...visibles);
471
+                let maxVisible = Math.max(...visibles);
472
+
473
+                for (let i = Math.max(1, minVisible - this.settings.extraPagesToLoad) ; i < minVisible ; i++) {
474
+                    if (!visibles.includes(i)) 
475
+                        visibles.push(i)
476
+                }
477
+                for (let i = maxVisible + 1; i <= Math.min(maxVisible + this.settings.extraPagesToLoad, this.pdf.numPages); i++) {
478
+                    if (!visibles.includes(i)) 
479
+                        visibles.push(i)
480
+                }
481
+            }
482
+    
483
+            // Now will draw the visible pages, but if not forcing, will only draw those that were not visible before
484
+            let nowVisibles = visibles;
485
+            if (! forceRedraw) {
486
+                nowVisibles = visibles.filter(function (x) { 
487
+                    return !this._visibles.includes(x) 
488
+                }.bind(this));
489
+            }
490
+    
491
+            // Get the pages that were visible before, that are not visible now, and clear them
492
+            this._visibles.filter(function (x) { 
493
+                return !visibles.includes(x) 
494
+            }).forEach(function (i) {
495
+                this._cleanPage(this.pages[i].$div);
496
+            }.bind(this))
497
+    
498
+            // Store the new visible pages
499
+            this._visibles = visibles;
500
+    
501
+            // And now we'll queue the pages to load
502
+            this.loadPages(...nowVisibles);
503
+        }
504
+
505
+        /**
506
+         * Function queue a set of pages to be loaded; if not loading, the function starts the loading worker
507
+         * @param  {...pageinfo} pages - the pages to load
508
+         */
509
+        loadPages(...pages) {
510
+            this._pagesLoading.push(...pages);
511
+            if (this._loading) {
512
+                return;
513
+            }
514
+            this._loadingTask();
515
+        }
516
+
517
+        /**
518
+         * Function that gets the pages pending to load and renders them sequentially (to avoid multiple rendering promises)
519
+         */
520
+         _loadingTask() {
521
+            this._loading = true;
522
+            if (this._pagesLoading.length > 0) {
523
+                let pagei = this._pagesLoading.shift();                
524
+                this.pdf.getPage(pagei).then(function(page) {
525
+                    // Render the page and update the information about the page with the loaded values
526
+                    this._renderPage(page, pagei);
527
+                }.bind(this)).then(function(pageinfo) {
528
+                    // Once loaded, we are not loading anymore
529
+                    if (this._pagesLoading.length > 0) {
530
+                        this._loadingTask();
531
+                    }
532
+                }.bind(this));
533
+            }
534
+            // Free the loading state
535
+            this._loading = false;
536
+        }        
537
+    
538
+        /**
539
+         * Function that sets the scroll position of the container to the specified page
540
+         * @param {*} i - the number of the page to set the scroll position
541
+         */
542
+        scrollToPage(i) {
543
+            if ((this.pages.length === 0) || (this.pages[i] === undefined)) {
544
+                return;
545
+            }
546
+            let $page = this.pages[i].$div;
547
+            if ($page.length === 0) {
548
+                console.warn(`Page ${i} not found`);
549
+                return;
550
+            }
551
+            let position = $page.position();
552
+            let containerPosition = this.$container.position();
553
+            if (position !== undefined) {
554
+                this.$container.get(0).scrollTop = this.$container.get(0).scrollTop + position.top - containerPosition.top;
555
+                this.$container.get(0).scrollLeft = this.$container.get(0).scrollLeft + position.left - containerPosition.left;
556
+            }
557
+            this._setActivePage(i);
558
+        }
559
+
560
+        /**
561
+         * Function that renders the page in a canvas, and sets the canvas into the $div
562
+         * @param {*} page - the page to be rendered
563
+         * @param {*} i - the number of the page to be rendered
564
+         * @returns a promise to render the page (the result of the promise will be the pageinfo)
565
+         */
566
+        _renderPage(page, i) {
567
+            // Get the pageinfo structure
568
+            let pageinfo = this.pages[i];
569
+            let scale = this.settings.renderingScale;
570
+    
571
+            // Calculate the pixel ratio of the device (we'll use a minimum of 1)
572
+            let pixel_ratio = window.devicePixelRatio || 1;
573
+            // Update the information that we know about the page to the actually loaded page
574
+            let viewport = page.getViewport({rotation: this._rotation, scale: this._zoom.current * scale});
575
+            pageinfo.width = (viewport.width / this._zoom.current) / scale;
576
+            pageinfo.height = (viewport.height / this._zoom.current) / scale;
577
+            pageinfo.$div.data("width", pageinfo.width);
578
+            pageinfo.$div.data("height", pageinfo.height);
579
+            pageinfo.$div.width(pageinfo.width * this._zoom.current);
580
+            pageinfo.$div.height(pageinfo.height * this._zoom.current);
581
+            pageinfo.loaded = true;
582
+    
583
+            // Create the canvas and prepare the rendering context
584
+            let $canvas = $('<canvas></canvas>');
585
+            let canvas = $canvas.get(0);
586
+            let context = canvas.getContext('2d');
587
+            canvas.height = viewport.height * pixel_ratio;
588
+            canvas.width = viewport.width * pixel_ratio;
589
+            canvas.getContext("2d")//.scale(pixel_ratio, pixel_ratio);
590
+            var transform = pixel_ratio !== 1
591
+                ? [pixel_ratio, 0, 0, pixel_ratio, 0, 0]
592
+                : null;
593
+            var renderContext = {
594
+                canvasContext: context,
595
+                viewport: viewport,
596
+                transform: transform,
597
+            };
598
+    
599
+            // Render the page and put the resulting rendered canvas into the page $div
600
+            return page.render(renderContext).promise.then(function() {
601
+                this._setPageContent(pageinfo.$div, $canvas);
602
+
603
+                // Call the callback (if provided)
604
+                if (this._documentReady) {
605
+                    if (typeof this.settings.onPageRender === "function") {
606
+                        this.settings.onPageRender.call(this, pageinfo.$div, i);
607
+                    }
608
+                    this.$container.get(0).dispatchEvent(new CustomEvent("pagerender", { detail: { pageNumber: i, page: pageinfo.$div.get(0) } }));
609
+                }
610
+                return pageinfo;
611
+            }.bind(this));
612
+        }
613
+    
614
+        /** Gets the div object corresponding to the active page */
615
+        getActivePage() {
616
+            if ((this._activePage === null) || (this.pdf === null)) {
617
+                return null;
618
+            }
619
+            if ((this._activePage < 1) || (this._activePage > this.pdf.numPages)) {
620
+                return null;
621
+            }
622
+            return this.pages[this._activePage].$div;
623
+        }
624
+    
625
+        /** Gets all the pages of the document (the pageinfo structures) */
626
+        getPages() {
627
+            return this.pages;
628
+        }
629
+    
630
+        /** Gets the number of pages of the document */
631
+        getPageCount() {
632
+            if (this.pdf === null) {
633
+                return 0;
634
+            }
635
+            return this.pdf.numPages;
636
+        }
637
+
638
+        /** Scrolls to the next page (if any) */ 
639
+        next() {
640
+            if (this._activePage < this.pdf.numPages) {
641
+                this.scrollToPage(this._activePage + 1);
642
+            }
643
+        }
644
+    
645
+        /** Scrolls to the previous page (if any) */
646
+        prev() {
647
+            if (this._activePage > 1) {
648
+                this.scrollToPage(this._activePage - 1);
649
+            }
650
+        }
651
+
652
+        first() {
653
+            if (this._activePage !== 1) {
654
+                this.scrollToPage(1);
655
+            }
656
+        }
657
+    
658
+        last() {
659
+            if (this.pdf === null)
660
+                return;
661
+            if (this._activePage !== this.pdf.numPages) {
662
+                this.scrollToPage(this.pdf.numPages);
663
+            }
664
+        }
665
+        /**
666
+         * Rotates the pages of the document
667
+         * @param {*} deg - degrees to rotate the pages
668
+         * @param {*} accumulate - whether the rotation is accumulated or not
669
+         */
670
+        rotate(deg, accumulate = false) {
671
+            if (accumulate) {
672
+                deg = deg + this._rotation;
673
+            }
674
+            this._rotation = deg;
675
+
676
+            let container = this.$container.get(0);
677
+            let prevScroll = {
678
+                top: container.scrollTop,
679
+                left: container.scrollLeft,
680
+                height: container.scrollHeight,
681
+                width: container.scrollWidth
682
+            };
683
+
684
+            return this.forceViewerInitialization().then(function() {
685
+                let newScroll = {
686
+                    top: container.scrollTop,
687
+                    left: container.scrollLeft,
688
+                    height: container.scrollHeight,
689
+                    width: container.scrollWidth
690
+                };
691
+                container.scrollTop = prevScroll.top * (newScroll.height / prevScroll.height);
692
+                container.scrollLeft = prevScroll.left * (newScroll.width / prevScroll.width);
693
+            }.bind(this));
694
+        }
695
+        /**
696
+         * This functions forces the creation of the whole content of the viewer (i.e. new divs, structures, etc.). It is usefull for full refresh of the viewer (e.g. when changes
697
+         *   the rotation of the pages)
698
+         * @returns a promise that is resolved when the viewer is fully initialized
699
+         */
700
+        forceViewerInitialization() {
701
+            // Store the pdf file
702
+            // Now prepare a placeholder for the pages
703
+            this.pages = [];
704
+    
705
+            // Remove all the pages
706
+            this.$container.find(`.${this.settings.pageClass}`).remove();
707
+
708
+            this._pagesLoading = [];
709
+            this._loading = false;
710
+            this._visibles = [];
711
+            this._activePage = null;
712
+            return this.pdf.getPage(1).then(function(page) {
713
+                this._createSkeletons(page);
714
+                this._visiblePages();
715
+                this._setActivePage(1);
716
+            }.bind(this));
717
+        }
718
+        /** 
719
+         * Loads the document and creates the pages
720
+         * @param {string} document - the url of the document to load
721
+         */
722
+        async loadDocument(document) {
723
+            // The document is not ready while loading
724
+            this._documentReady = false;
725
+
726
+            // Now prepare a placeholder for the pages
727
+            this.pages = [];
728
+    
729
+            // Remove all the pages
730
+            this.$container.find(`.${this.settings.pageClass}`).remove();
731
+    
732
+            // Let's free the pdf file (if there was one before), and rely on the garbage collector to free the memory
733
+            this.pdf = null;
734
+
735
+            // Load the task and return the promise to load the document
736
+            let loadingTask = pdfjsLib.getDocument(document);
737
+            return loadingTask.promise.then(function(pdf) {
738
+                // Store the pdf file and get the 
739
+                this.pdf = pdf;
740
+                this.pageCount = pdf.numPages;
741
+                this._rotation = 0;
742
+                return this.forceViewerInitialization();
743
+            }.bind(this)).then(function() {
744
+                if (typeof this.settings.onDocumentReady === "function") {
745
+                    this.settings.onDocumentReady.call(this);
746
+                }
747
+                this.$container.get(0).dispatchEvent(new CustomEvent("documentready", { detail: { document: this.pdf } }));
748
+
749
+                // This is a trick to force active page changed event triggering after the document is ready
750
+                this._setActivePage(0)
751
+                this._documentReady = true;
752
+                this._setActivePage(1)
753
+            }.bind(this));
754
+        }
755
+    }
756
+
757
+    function recoverAttributes(target, attributeDefaults) {
758
+        const camelcaseToSnakecase = str => str.replace(/[A-Z]/g, letter => `-${letter.toLowerCase()}`);
759
+        let $target = $(target);
760
+        let result = {};
761
+        if ($target.length > 0) {
762
+            $target = $($target[0]);
763
+            for (let originalAttributeName in attributeDefaults) {
764
+                let attributeName = camelcaseToSnakecase(originalAttributeName)
765
+                let attributeValue = $target.attr(attributeName);
766
+                if (attributeValue != null) {
767
+                    switch (typeof(attributeDefaults[originalAttributeName])) {
768
+                        case 'float':
769
+                            try {
770
+                                attributeValue = parseFloat(attributeValue);
771
+                            } catch (_) {
772
+                            }
773
+                            break;
774
+                        case 'number':
775
+                            try {
776
+                                attributeValue = parseInt(attributeValue);
777
+                            } catch (_) {
778
+                            }
779
+                            break;
780
+                        case 'function':
781
+                            let functionString = attributeValue;
782
+                            attributeValue = function() { eval(functionString); }.bind(target[0]); break;
783
+                        default:
784
+                            break;
785
+                    }
786
+                    result[originalAttributeName] = attributeValue;
787
+                }
788
+            };
789
+        }
790
+        return result;
791
+    }
792
+
793
+    function init(element) {
794
+        let options = recoverAttributes(element, Object.assign({
795
+            pdfDocument: "", initialZoom: ""
796
+        }, defaults));
797
+        if (options["pdfDocument"] != null) {
798
+            let pdfViewer = new PDFjsViewer($(element), options);
799
+            pdfViewer.loadDocument(options["pdfDocument"]).then(function() {
800
+                if (options["initialZoom"] != null) {
801
+                    pdfViewer.setZoom(options["initialZoom"]);
802
+                }
803
+            })
804
+            element.get(0).pdfViewer = pdfViewer;
805
+        }
806
+    }
807
+
808
+    $(function() {
809
+        $('.pdfjs-viewer').each(function() {
810
+            let $viewer = $(this);
811
+            init($viewer);
812
+        })
813
+    });
814
+
815
+    exports.PDFjsViewer = PDFjsViewer;
816
+})(window, jQuery)

+ 16
- 0
node_modules/.bin/asar 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../asar/bin/asar.js" "$@"
14
+else 
15
+  exec node  "$basedir/../asar/bin/asar.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/asar.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\asar\bin\asar.js" %*

+ 28
- 0
node_modules/.bin/asar.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../asar/bin/asar.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../asar/bin/asar.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../asar/bin/asar.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../asar/bin/asar.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/color-support 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../color-support/bin.js" "$@"
14
+else 
15
+  exec node  "$basedir/../color-support/bin.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/color-support.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\color-support\bin.js" %*

+ 28
- 0
node_modules/.bin/color-support.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../color-support/bin.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../color-support/bin.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../color-support/bin.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../color-support/bin.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/electron 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../electron/cli.js" "$@"
14
+else 
15
+  exec node  "$basedir/../electron/cli.js" "$@"
16
+fi

+ 16
- 0
node_modules/.bin/electron-forge 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../@electron-forge/cli/dist/electron-forge.js" "$@"
14
+else 
15
+  exec node  "$basedir/../@electron-forge/cli/dist/electron-forge.js" "$@"
16
+fi

+ 16
- 0
node_modules/.bin/electron-forge-vscode-nix 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/bash" ]; then
13
+  exec "$basedir/bash"  "$basedir/../@electron-forge/cli/script/vscode.sh" "$@"
14
+else 
15
+  exec bash  "$basedir/../@electron-forge/cli/script/vscode.sh" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/electron-forge-vscode-nix.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\bash.exe" (
11
+  SET "_prog=%dp0%\bash.exe"
12
+) ELSE (
13
+  SET "_prog=bash"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\@electron-forge\cli\script\vscode.sh" %*

+ 28
- 0
node_modules/.bin/electron-forge-vscode-nix.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/bash$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/bash$exe"  "$basedir/../@electron-forge/cli/script/vscode.sh" $args
15
+  } else {
16
+    & "$basedir/bash$exe"  "$basedir/../@electron-forge/cli/script/vscode.sh" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "bash$exe"  "$basedir/../@electron-forge/cli/script/vscode.sh" $args
23
+  } else {
24
+    & "bash$exe"  "$basedir/../@electron-forge/cli/script/vscode.sh" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 12
- 0
node_modules/.bin/electron-forge-vscode-win 查看文件

@@ -0,0 +1,12 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+exec "$basedir/../@electron-forge/cli/script/vscode.cmd"   "$@"

+ 9
- 0
node_modules/.bin/electron-forge-vscode-win.cmd 查看文件

@@ -0,0 +1,9 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+"%dp0%\..\@electron-forge\cli\script\vscode.cmd"   %*

+ 16
- 0
node_modules/.bin/electron-forge-vscode-win.ps1 查看文件

@@ -0,0 +1,16 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+# Support pipeline input
11
+if ($MyInvocation.ExpectingInput) {
12
+  $input | & "$basedir/../@electron-forge/cli/script/vscode.cmd"   $args
13
+} else {
14
+  & "$basedir/../@electron-forge/cli/script/vscode.cmd"   $args
15
+}
16
+exit $LASTEXITCODE

+ 17
- 0
node_modules/.bin/electron-forge.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\@electron-forge\cli\dist\electron-forge.js" %*

+ 28
- 0
node_modules/.bin/electron-forge.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../@electron-forge/cli/dist/electron-forge.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../@electron-forge/cli/dist/electron-forge.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../@electron-forge/cli/dist/electron-forge.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../@electron-forge/cli/dist/electron-forge.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/electron-fuses 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../@electron/fuses/dist/bin.js" "$@"
14
+else 
15
+  exec node  "$basedir/../@electron/fuses/dist/bin.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/electron-fuses.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\@electron\fuses\dist\bin.js" %*

+ 28
- 0
node_modules/.bin/electron-fuses.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../@electron/fuses/dist/bin.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../@electron/fuses/dist/bin.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../@electron/fuses/dist/bin.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../@electron/fuses/dist/bin.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/electron-osx-flat 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../@electron/osx-sign/bin/electron-osx-flat.js" "$@"
14
+else 
15
+  exec node  "$basedir/../@electron/osx-sign/bin/electron-osx-flat.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/electron-osx-flat.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\@electron\osx-sign\bin\electron-osx-flat.js" %*

+ 28
- 0
node_modules/.bin/electron-osx-flat.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../@electron/osx-sign/bin/electron-osx-flat.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../@electron/osx-sign/bin/electron-osx-flat.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../@electron/osx-sign/bin/electron-osx-flat.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../@electron/osx-sign/bin/electron-osx-flat.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/electron-osx-sign 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../@electron/osx-sign/bin/electron-osx-sign.js" "$@"
14
+else 
15
+  exec node  "$basedir/../@electron/osx-sign/bin/electron-osx-sign.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/electron-osx-sign.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\@electron\osx-sign\bin\electron-osx-sign.js" %*

+ 28
- 0
node_modules/.bin/electron-osx-sign.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../@electron/osx-sign/bin/electron-osx-sign.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../@electron/osx-sign/bin/electron-osx-sign.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../@electron/osx-sign/bin/electron-osx-sign.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../@electron/osx-sign/bin/electron-osx-sign.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/electron-packager 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../@electron/packager/bin/electron-packager.js" "$@"
14
+else 
15
+  exec node  "$basedir/../@electron/packager/bin/electron-packager.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/electron-packager.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\@electron\packager\bin\electron-packager.js" %*

+ 28
- 0
node_modules/.bin/electron-packager.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../@electron/packager/bin/electron-packager.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../@electron/packager/bin/electron-packager.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../@electron/packager/bin/electron-packager.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../@electron/packager/bin/electron-packager.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/electron-rebuild 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../@electron/rebuild/lib/cli.js" "$@"
14
+else 
15
+  exec node  "$basedir/../@electron/rebuild/lib/cli.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/electron-rebuild.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\@electron\rebuild\lib\cli.js" %*

+ 28
- 0
node_modules/.bin/electron-rebuild.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../@electron/rebuild/lib/cli.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../@electron/rebuild/lib/cli.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../@electron/rebuild/lib/cli.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../@electron/rebuild/lib/cli.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/electron-windows-sign 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../@electron/windows-sign/bin/electron-windows-sign.js" "$@"
14
+else 
15
+  exec node  "$basedir/../@electron/windows-sign/bin/electron-windows-sign.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/electron-windows-sign.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\@electron\windows-sign\bin\electron-windows-sign.js" %*

+ 28
- 0
node_modules/.bin/electron-windows-sign.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../@electron/windows-sign/bin/electron-windows-sign.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../@electron/windows-sign/bin/electron-windows-sign.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../@electron/windows-sign/bin/electron-windows-sign.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../@electron/windows-sign/bin/electron-windows-sign.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 17
- 0
node_modules/.bin/electron.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\electron\cli.js" %*

+ 28
- 0
node_modules/.bin/electron.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../electron/cli.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../electron/cli.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../electron/cli.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../electron/cli.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/extract-zip 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../extract-zip/cli.js" "$@"
14
+else 
15
+  exec node  "$basedir/../extract-zip/cli.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/extract-zip.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\extract-zip\cli.js" %*

+ 28
- 0
node_modules/.bin/extract-zip.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../extract-zip/cli.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../extract-zip/cli.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../extract-zip/cli.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../extract-zip/cli.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/mkdirp 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../mkdirp/bin/cmd.js" "$@"
14
+else 
15
+  exec node  "$basedir/../mkdirp/bin/cmd.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/mkdirp.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\mkdirp\bin\cmd.js" %*

+ 28
- 0
node_modules/.bin/mkdirp.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../mkdirp/bin/cmd.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../mkdirp/bin/cmd.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../mkdirp/bin/cmd.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../mkdirp/bin/cmd.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/node-gyp 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../node-gyp/bin/node-gyp.js" "$@"
14
+else 
15
+  exec node  "$basedir/../node-gyp/bin/node-gyp.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/node-gyp.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\node-gyp\bin\node-gyp.js" %*

+ 28
- 0
node_modules/.bin/node-gyp.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../node-gyp/bin/node-gyp.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../node-gyp/bin/node-gyp.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../node-gyp/bin/node-gyp.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../node-gyp/bin/node-gyp.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/node-which 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../which/bin/node-which" "$@"
14
+else 
15
+  exec node  "$basedir/../which/bin/node-which" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/node-which.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\which\bin\node-which" %*

+ 28
- 0
node_modules/.bin/node-which.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../which/bin/node-which" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../which/bin/node-which" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../which/bin/node-which" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../which/bin/node-which" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/nopt 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../nopt/bin/nopt.js" "$@"
14
+else 
15
+  exec node  "$basedir/../nopt/bin/nopt.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/nopt.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\nopt\bin\nopt.js" %*

+ 28
- 0
node_modules/.bin/nopt.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../nopt/bin/nopt.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../nopt/bin/nopt.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../nopt/bin/nopt.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../nopt/bin/nopt.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/postject 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../postject/dist/cli.js" "$@"
14
+else 
15
+  exec node  "$basedir/../postject/dist/cli.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/postject.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\postject\dist\cli.js" %*

+ 28
- 0
node_modules/.bin/postject.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../postject/dist/cli.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../postject/dist/cli.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../postject/dist/cli.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../postject/dist/cli.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/read-binary-file-arch 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../read-binary-file-arch/cli.js" "$@"
14
+else 
15
+  exec node  "$basedir/../read-binary-file-arch/cli.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/read-binary-file-arch.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\read-binary-file-arch\cli.js" %*

+ 28
- 0
node_modules/.bin/read-binary-file-arch.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../read-binary-file-arch/cli.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../read-binary-file-arch/cli.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../read-binary-file-arch/cli.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../read-binary-file-arch/cli.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/resolve 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../resolve/bin/resolve" "$@"
14
+else 
15
+  exec node  "$basedir/../resolve/bin/resolve" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/resolve.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\resolve\bin\resolve" %*

+ 28
- 0
node_modules/.bin/resolve.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../resolve/bin/resolve" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../resolve/bin/resolve" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../resolve/bin/resolve" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../resolve/bin/resolve" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/rimraf 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../rimraf/bin.js" "$@"
14
+else 
15
+  exec node  "$basedir/../rimraf/bin.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/rimraf.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\rimraf\bin.js" %*

+ 28
- 0
node_modules/.bin/rimraf.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../rimraf/bin.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../rimraf/bin.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../rimraf/bin.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../rimraf/bin.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/semver 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../semver/bin/semver.js" "$@"
14
+else 
15
+  exec node  "$basedir/../semver/bin/semver.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/semver.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\semver\bin\semver.js" %*

+ 28
- 0
node_modules/.bin/semver.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../semver/bin/semver.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../semver/bin/semver.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../semver/bin/semver.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../semver/bin/semver.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/yarn-or-npm 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../yarn-or-npm/bin/index.js" "$@"
14
+else 
15
+  exec node  "$basedir/../yarn-or-npm/bin/index.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/yarn-or-npm.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\yarn-or-npm\bin\index.js" %*

+ 28
- 0
node_modules/.bin/yarn-or-npm.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../yarn-or-npm/bin/index.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../yarn-or-npm/bin/index.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../yarn-or-npm/bin/index.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../yarn-or-npm/bin/index.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 16
- 0
node_modules/.bin/yon 查看文件

@@ -0,0 +1,16 @@
1
+#!/bin/sh
2
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+case `uname` in
5
+    *CYGWIN*|*MINGW*|*MSYS*)
6
+        if command -v cygpath > /dev/null 2>&1; then
7
+            basedir=`cygpath -w "$basedir"`
8
+        fi
9
+    ;;
10
+esac
11
+
12
+if [ -x "$basedir/node" ]; then
13
+  exec "$basedir/node"  "$basedir/../yarn-or-npm/bin/index.js" "$@"
14
+else 
15
+  exec node  "$basedir/../yarn-or-npm/bin/index.js" "$@"
16
+fi

+ 17
- 0
node_modules/.bin/yon.cmd 查看文件

@@ -0,0 +1,17 @@
1
+@ECHO off
2
+GOTO start
3
+:find_dp0
4
+SET dp0=%~dp0
5
+EXIT /b
6
+:start
7
+SETLOCAL
8
+CALL :find_dp0
9
+
10
+IF EXIST "%dp0%\node.exe" (
11
+  SET "_prog=%dp0%\node.exe"
12
+) ELSE (
13
+  SET "_prog=node"
14
+  SET PATHEXT=%PATHEXT:;.JS;=;%
15
+)
16
+
17
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\yarn-or-npm\bin\index.js" %*

+ 28
- 0
node_modules/.bin/yon.ps1 查看文件

@@ -0,0 +1,28 @@
1
+#!/usr/bin/env pwsh
2
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+$exe=""
5
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+  # Fix case when both the Windows and Linux builds of Node
7
+  # are installed in the same directory
8
+  $exe=".exe"
9
+}
10
+$ret=0
11
+if (Test-Path "$basedir/node$exe") {
12
+  # Support pipeline input
13
+  if ($MyInvocation.ExpectingInput) {
14
+    $input | & "$basedir/node$exe"  "$basedir/../yarn-or-npm/bin/index.js" $args
15
+  } else {
16
+    & "$basedir/node$exe"  "$basedir/../yarn-or-npm/bin/index.js" $args
17
+  }
18
+  $ret=$LASTEXITCODE
19
+} else {
20
+  # Support pipeline input
21
+  if ($MyInvocation.ExpectingInput) {
22
+    $input | & "node$exe"  "$basedir/../yarn-or-npm/bin/index.js" $args
23
+  } else {
24
+    & "node$exe"  "$basedir/../yarn-or-npm/bin/index.js" $args
25
+  }
26
+  $ret=$LASTEXITCODE
27
+}
28
+exit $ret

+ 6648
- 0
node_modules/.package-lock.json
文件差異過大導致無法顯示
查看文件


+ 19
- 0
node_modules/@electron-forge/cli/LICENSE 查看文件

@@ -0,0 +1,19 @@
1
+The MIT License (MIT)
2
+Copyright (c) 2016 Samuel Attard
3
+
4
+Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+this software and associated documentation files (the "Software"), to deal in
6
+the Software without restriction, including without limitation the rights to
7
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+the Software, and to permit persons to whom the Software is furnished to do so,
9
+subject to the following conditions:
10
+
11
+The above copyright notice and this permission notice shall be included in all
12
+copies or substantial portions of the Software.
13
+
14
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 2
- 0
node_modules/@electron-forge/cli/dist/electron-forge-import.d.ts 查看文件

@@ -0,0 +1,2 @@
1
+import './util/terminate';
2
+//# sourceMappingURL=electron-forge-import.d.ts.map

+ 1
- 0
node_modules/@electron-forge/cli/dist/electron-forge-import.d.ts.map 查看文件

@@ -0,0 +1 @@
1
+{"version":3,"file":"electron-forge-import.d.ts","sourceRoot":"","sources":["../src/electron-forge-import.ts"],"names":[],"mappings":"AAMA,OAAO,kBAAkB,CAAC"}

+ 26
- 0
node_modules/@electron-forge/cli/dist/electron-forge-import.js 查看文件

@@ -0,0 +1,26 @@
1
+"use strict";
2
+var __importDefault = (this && this.__importDefault) || function (mod) {
3
+    return (mod && mod.__esModule) ? mod : { "default": mod };
4
+};
5
+Object.defineProperty(exports, "__esModule", { value: true });
6
+const path_1 = __importDefault(require("path"));
7
+const core_1 = require("@electron-forge/core");
8
+const commander_1 = __importDefault(require("commander"));
9
+const fs_extra_1 = __importDefault(require("fs-extra"));
10
+require("./util/terminate");
11
+const working_dir_1 = __importDefault(require("./util/working-dir"));
12
+(async () => {
13
+    let dir = process.cwd();
14
+    commander_1.default
15
+        .version((await fs_extra_1.default.readJson(path_1.default.resolve(__dirname, '../package.json'))).version)
16
+        .arguments('[name]')
17
+        .action((name) => {
18
+        dir = (0, working_dir_1.default)(dir, name, false);
19
+    })
20
+        .parse(process.argv);
21
+    await core_1.api.import({
22
+        dir,
23
+        interactive: true,
24
+    });
25
+})();
26
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlY3Ryb24tZm9yZ2UtaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VsZWN0cm9uLWZvcmdlLWltcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUV4QiwrQ0FBMkM7QUFDM0MsMERBQWdDO0FBQ2hDLHdEQUEwQjtBQUUxQiw0QkFBMEI7QUFDMUIscUVBQTRDO0FBRTVDLENBQUMsS0FBSyxJQUFJLEVBQUU7SUFDVixJQUFJLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDeEIsbUJBQU87U0FDSixPQUFPLENBQUMsQ0FBQyxNQUFNLGtCQUFFLENBQUMsUUFBUSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztTQUNoRixTQUFTLENBQUMsUUFBUSxDQUFDO1NBQ25CLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2YsR0FBRyxHQUFHLElBQUEscUJBQVUsRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FBQztTQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdkIsTUFBTSxVQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2YsR0FBRztRQUNILFdBQVcsRUFBRSxJQUFJO0tBQ2xCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxFQUFFLENBQUMifQ==

+ 2
- 0
node_modules/@electron-forge/cli/dist/electron-forge-init.d.ts 查看文件

@@ -0,0 +1,2 @@
1
+import './util/terminate';
2
+//# sourceMappingURL=electron-forge-init.d.ts.map

+ 1
- 0
node_modules/@electron-forge/cli/dist/electron-forge-init.d.ts.map 查看文件

@@ -0,0 +1 @@
1
+{"version":3,"file":"electron-forge-init.d.ts","sourceRoot":"","sources":["../src/electron-forge-init.ts"],"names":[],"mappings":"AAMA,OAAO,kBAAkB,CAAC"}

+ 34
- 0
node_modules/@electron-forge/cli/dist/electron-forge-init.js 查看文件

@@ -0,0 +1,34 @@
1
+"use strict";
2
+var __importDefault = (this && this.__importDefault) || function (mod) {
3
+    return (mod && mod.__esModule) ? mod : { "default": mod };
4
+};
5
+Object.defineProperty(exports, "__esModule", { value: true });
6
+const path_1 = __importDefault(require("path"));
7
+const core_1 = require("@electron-forge/core");
8
+const commander_1 = __importDefault(require("commander"));
9
+const fs_extra_1 = __importDefault(require("fs-extra"));
10
+require("./util/terminate");
11
+const working_dir_1 = __importDefault(require("./util/working-dir"));
12
+(async () => {
13
+    let dir = process.cwd();
14
+    commander_1.default
15
+        .version((await fs_extra_1.default.readJson(path_1.default.resolve(__dirname, '../package.json'))).version)
16
+        .arguments('[name]')
17
+        .option('-t, --template [name]', 'Name of the Forge template to use')
18
+        .option('-c, --copy-ci-files', 'Whether to copy the templated CI files (defaults to false)', false)
19
+        .option('-f, --force', 'Whether to overwrite an existing directory (defaults to false)', false)
20
+        .action((name) => {
21
+        dir = (0, working_dir_1.default)(dir, name, false);
22
+    })
23
+        .parse(process.argv);
24
+    const initOpts = {
25
+        dir,
26
+        interactive: true,
27
+        copyCIFiles: !!commander_1.default.copyCiFiles,
28
+        force: !!commander_1.default.force,
29
+    };
30
+    if (commander_1.default.template)
31
+        initOpts.template = commander_1.default.template;
32
+    await core_1.api.init(initOpts);
33
+})();
34
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlY3Ryb24tZm9yZ2UtaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lbGVjdHJvbi1mb3JnZS1pbml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLCtDQUF3RDtBQUN4RCwwREFBZ0M7QUFDaEMsd0RBQTBCO0FBRTFCLDRCQUEwQjtBQUMxQixxRUFBNEM7QUFFNUMsQ0FBQyxLQUFLLElBQUksRUFBRTtJQUNWLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN4QixtQkFBTztTQUNKLE9BQU8sQ0FBQyxDQUFDLE1BQU0sa0JBQUUsQ0FBQyxRQUFRLENBQUMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1NBQ2hGLFNBQVMsQ0FBQyxRQUFRLENBQUM7U0FDbkIsTUFBTSxDQUFDLHVCQUF1QixFQUFFLG1DQUFtQyxDQUFDO1NBQ3BFLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSw0REFBNEQsRUFBRSxLQUFLLENBQUM7U0FDbEcsTUFBTSxDQUFDLGFBQWEsRUFBRSxnRUFBZ0UsRUFBRSxLQUFLLENBQUM7U0FDOUYsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDZixHQUFHLEdBQUcsSUFBQSxxQkFBVSxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQyxDQUFDO1NBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV2QixNQUFNLFFBQVEsR0FBZ0I7UUFDNUIsR0FBRztRQUNILFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFdBQVcsRUFBRSxDQUFDLENBQUMsbUJBQU8sQ0FBQyxXQUFXO1FBQ2xDLEtBQUssRUFBRSxDQUFDLENBQUMsbUJBQU8sQ0FBQyxLQUFLO0tBQ3ZCLENBQUM7SUFDRixJQUFJLG1CQUFPLENBQUMsUUFBUTtRQUFFLFFBQVEsQ0FBQyxRQUFRLEdBQUcsbUJBQU8sQ0FBQyxRQUFRLENBQUM7SUFFM0QsTUFBTSxVQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzNCLENBQUMsQ0FBQyxFQUFFLENBQUMifQ==

+ 4
- 0
node_modules/@electron-forge/cli/dist/electron-forge-make.d.ts 查看文件

@@ -0,0 +1,4 @@
1
+import { MakeOptions } from '@electron-forge/core';
2
+import './util/terminate';
3
+export declare function getMakeOptions(): Promise<MakeOptions>;
4
+//# sourceMappingURL=electron-forge-make.d.ts.map

+ 1
- 0
node_modules/@electron-forge/cli/dist/electron-forge-make.d.ts.map 查看文件

@@ -0,0 +1 @@
1
+{"version":3,"file":"electron-forge-make.d.ts","sourceRoot":"","sources":["../src/electron-forge-make.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKxD,OAAO,kBAAkB,CAAC;AAG1B,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAyB3D"}

+ 50
- 0
node_modules/@electron-forge/cli/dist/electron-forge-make.js 查看文件

@@ -0,0 +1,50 @@
1
+"use strict";
2
+var __importDefault = (this && this.__importDefault) || function (mod) {
3
+    return (mod && mod.__esModule) ? mod : { "default": mod };
4
+};
5
+Object.defineProperty(exports, "__esModule", { value: true });
6
+exports.getMakeOptions = void 0;
7
+const path_1 = __importDefault(require("path"));
8
+const core_1 = require("@electron-forge/core");
9
+const get_1 = require("@electron/get");
10
+const commander_1 = __importDefault(require("commander"));
11
+const fs_extra_1 = __importDefault(require("fs-extra"));
12
+require("./util/terminate");
13
+const working_dir_1 = __importDefault(require("./util/working-dir"));
14
+async function getMakeOptions() {
15
+    let dir = process.cwd();
16
+    commander_1.default
17
+        .version((await fs_extra_1.default.readJson(path_1.default.resolve(__dirname, '../package.json'))).version)
18
+        .arguments('[cwd]')
19
+        .option('--skip-package', 'Assume the app is already packaged')
20
+        .option('-a, --arch [arch]', 'Target architecture')
21
+        .option('-p, --platform [platform]', 'Target build platform')
22
+        .option('--targets [targets]', 'Override your make targets for this run')
23
+        .allowUnknownOption(true)
24
+        .action((cwd) => {
25
+        dir = (0, working_dir_1.default)(dir, cwd);
26
+    })
27
+        .parse(process.argv);
28
+    const makeOpts = {
29
+        dir,
30
+        interactive: true,
31
+        skipPackage: commander_1.default.skipPackage,
32
+    };
33
+    if (commander_1.default.targets)
34
+        makeOpts.overrideTargets = commander_1.default.targets.split(',');
35
+    if (commander_1.default.arch)
36
+        makeOpts.arch = commander_1.default.arch;
37
+    if (commander_1.default.platform)
38
+        makeOpts.platform = commander_1.default.platform;
39
+    return makeOpts;
40
+}
41
+exports.getMakeOptions = getMakeOptions;
42
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
43
+if (require.main === module || global.__LINKED_FORGE__) {
44
+    (async () => {
45
+        const makeOpts = await getMakeOptions();
46
+        (0, get_1.initializeProxy)();
47
+        await core_1.api.make(makeOpts);
48
+    })();
49
+}
50
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlY3Ryb24tZm9yZ2UtbWFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lbGVjdHJvbi1mb3JnZS1tYWtlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdEQUF3QjtBQUV4QiwrQ0FBd0Q7QUFDeEQsdUNBQWdEO0FBQ2hELDBEQUFnQztBQUNoQyx3REFBMEI7QUFFMUIsNEJBQTBCO0FBQzFCLHFFQUE0QztBQUVyQyxLQUFLLFVBQVUsY0FBYztJQUNsQyxJQUFJLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDeEIsbUJBQU87U0FDSixPQUFPLENBQUMsQ0FBQyxNQUFNLGtCQUFFLENBQUMsUUFBUSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztTQUNoRixTQUFTLENBQUMsT0FBTyxDQUFDO1NBQ2xCLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxvQ0FBb0MsQ0FBQztTQUM5RCxNQUFNLENBQUMsbUJBQW1CLEVBQUUscUJBQXFCLENBQUM7U0FDbEQsTUFBTSxDQUFDLDJCQUEyQixFQUFFLHVCQUF1QixDQUFDO1NBQzVELE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSx5Q0FBeUMsQ0FBQztTQUN4RSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7U0FDeEIsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDZCxHQUFHLEdBQUcsSUFBQSxxQkFBVSxFQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUM7U0FDRCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZCLE1BQU0sUUFBUSxHQUFnQjtRQUM1QixHQUFHO1FBQ0gsV0FBVyxFQUFFLElBQUk7UUFDakIsV0FBVyxFQUFFLG1CQUFPLENBQUMsV0FBVztLQUNqQyxDQUFDO0lBQ0YsSUFBSSxtQkFBTyxDQUFDLE9BQU87UUFBRSxRQUFRLENBQUMsZUFBZSxHQUFHLG1CQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzRSxJQUFJLG1CQUFPLENBQUMsSUFBSTtRQUFFLFFBQVEsQ0FBQyxJQUFJLEdBQUcsbUJBQU8sQ0FBQyxJQUFJLENBQUM7SUFDL0MsSUFBSSxtQkFBTyxDQUFDLFFBQVE7UUFBRSxRQUFRLENBQUMsUUFBUSxHQUFHLG1CQUFPLENBQUMsUUFBUSxDQUFDO0lBRTNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUF6QkQsd0NBeUJDO0FBRUQsOERBQThEO0FBQzlELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUssTUFBYyxDQUFDLGdCQUFnQixFQUFFO0lBQy9ELENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDVixNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsRUFBRSxDQUFDO1FBRXhDLElBQUEscUJBQWUsR0FBRSxDQUFDO1FBRWxCLE1BQU0sVUFBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUMsRUFBRSxDQUFDO0NBQ04ifQ==

+ 2
- 0
node_modules/@electron-forge/cli/dist/electron-forge-package.d.ts 查看文件

@@ -0,0 +1,2 @@
1
+import './util/terminate';
2
+//# sourceMappingURL=electron-forge-package.d.ts.map

+ 1
- 0
node_modules/@electron-forge/cli/dist/electron-forge-package.d.ts.map 查看文件

@@ -0,0 +1 @@
1
+{"version":3,"file":"electron-forge-package.d.ts","sourceRoot":"","sources":["../src/electron-forge-package.ts"],"names":[],"mappings":"AAOA,OAAO,kBAAkB,CAAC"}

+ 35
- 0
node_modules/@electron-forge/cli/dist/electron-forge-package.js 查看文件

@@ -0,0 +1,35 @@
1
+"use strict";
2
+var __importDefault = (this && this.__importDefault) || function (mod) {
3
+    return (mod && mod.__esModule) ? mod : { "default": mod };
4
+};
5
+Object.defineProperty(exports, "__esModule", { value: true });
6
+const path_1 = __importDefault(require("path"));
7
+const core_1 = require("@electron-forge/core");
8
+const get_1 = require("@electron/get");
9
+const commander_1 = __importDefault(require("commander"));
10
+const fs_extra_1 = __importDefault(require("fs-extra"));
11
+require("./util/terminate");
12
+const working_dir_1 = __importDefault(require("./util/working-dir"));
13
+(async () => {
14
+    let dir = process.cwd();
15
+    commander_1.default
16
+        .version((await fs_extra_1.default.readJson(path_1.default.resolve(__dirname, '../package.json'))).version)
17
+        .arguments('[cwd]')
18
+        .option('-a, --arch [arch]', 'Target architecture')
19
+        .option('-p, --platform [platform]', 'Target build platform')
20
+        .action((cwd) => {
21
+        dir = (0, working_dir_1.default)(dir, cwd);
22
+    })
23
+        .parse(process.argv);
24
+    (0, get_1.initializeProxy)();
25
+    const packageOpts = {
26
+        dir,
27
+        interactive: true,
28
+    };
29
+    if (commander_1.default.arch)
30
+        packageOpts.arch = commander_1.default.arch;
31
+    if (commander_1.default.platform)
32
+        packageOpts.platform = commander_1.default.platform;
33
+    await core_1.api.package(packageOpts);
34
+})();
35
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlY3Ryb24tZm9yZ2UtcGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lbGVjdHJvbi1mb3JnZS1wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLCtDQUEyRDtBQUMzRCx1Q0FBZ0Q7QUFDaEQsMERBQWdDO0FBQ2hDLHdEQUEwQjtBQUUxQiw0QkFBMEI7QUFDMUIscUVBQTRDO0FBRTVDLENBQUMsS0FBSyxJQUFJLEVBQUU7SUFDVixJQUFJLEdBQUcsR0FBVyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEMsbUJBQU87U0FDSixPQUFPLENBQUMsQ0FBQyxNQUFNLGtCQUFFLENBQUMsUUFBUSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztTQUNoRixTQUFTLENBQUMsT0FBTyxDQUFDO1NBQ2xCLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQztTQUNsRCxNQUFNLENBQUMsMkJBQTJCLEVBQUUsdUJBQXVCLENBQUM7U0FDNUQsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDZCxHQUFHLEdBQUcsSUFBQSxxQkFBVSxFQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUM7U0FDRCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZCLElBQUEscUJBQWUsR0FBRSxDQUFDO0lBRWxCLE1BQU0sV0FBVyxHQUFtQjtRQUNsQyxHQUFHO1FBQ0gsV0FBVyxFQUFFLElBQUk7S0FDbEIsQ0FBQztJQUNGLElBQUksbUJBQU8sQ0FBQyxJQUFJO1FBQUUsV0FBVyxDQUFDLElBQUksR0FBRyxtQkFBTyxDQUFDLElBQUksQ0FBQztJQUNsRCxJQUFJLG1CQUFPLENBQUMsUUFBUTtRQUFFLFdBQVcsQ0FBQyxRQUFRLEdBQUcsbUJBQU8sQ0FBQyxRQUFRLENBQUM7SUFFOUQsTUFBTSxVQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyxFQUFFLENBQUMifQ==

+ 2
- 0
node_modules/@electron-forge/cli/dist/electron-forge-publish.d.ts 查看文件

@@ -0,0 +1,2 @@
1
+import './util/terminate';
2
+//# sourceMappingURL=electron-forge-publish.d.ts.map

+ 1
- 0
node_modules/@electron-forge/cli/dist/electron-forge-publish.d.ts.map 查看文件

@@ -0,0 +1 @@
1
+{"version":3,"file":"electron-forge-publish.d.ts","sourceRoot":"","sources":["../src/electron-forge-publish.ts"],"names":[],"mappings":"AAOA,OAAO,kBAAkB,CAAC"}

+ 0
- 0
node_modules/@electron-forge/cli/dist/electron-forge-publish.js 查看文件


部分文件因文件數量過多而無法顯示

Loading…
取消
儲存