@networkpro/web 1.10.0 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,10 +11,15 @@ This file is part of Network Pro.
11
11
  <script>
12
12
  import { base } from "$app/paths";
13
13
  import { ccSvg, bySvg } from "$lib";
14
+ import { CONSTANTS } from "$lib";
14
15
 
15
16
  // Log the base path to verify its value
16
17
  //console.log("Base path:", base);
17
18
 
19
+ console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
20
+
21
+ const { COMPANY_INFO, CONTACT, PAGE, NAV } = CONSTANTS;
22
+
18
23
  /**
19
24
  * URLs using the base path
20
25
  * @type {string}
@@ -58,16 +63,11 @@ This file is part of Network Pro.
58
63
 
59
64
  /**
60
65
  * Constants for reusable content
61
- * @type {{ company: string, effectiveDate: string, classSmall: string, rel: string, hrefTop: string, targetBlank: string, targetSelf: string }}
66
+ * @type {{ effectiveDate: string, classSmall: string }}
62
67
  */
63
68
  const constants = {
64
- company: "Network Pro Strategies",
65
69
  effectiveDate: "May 28, 2025",
66
70
  classSmall: "small-text",
67
- rel: "noopener noreferrer",
68
- hrefTop: "#top",
69
- targetBlank: "_blank",
70
- targetSelf: "_self",
71
71
  };
72
72
  </script>
73
73
 
@@ -75,9 +75,9 @@ This file is part of Network Pro.
75
75
  <section id="top">
76
76
  <span class={constants.classSmall}>
77
77
  <a
78
- rel={constants.rel}
78
+ rel={PAGE.REL}
79
79
  href="https://spdx.dev/learn/handling-license-info"
80
- target={constants.targetBlank}>
80
+ target={PAGE.BLANK}>
81
81
  SPDX License Identifier
82
82
  </a>: &nbsp;<code>CC-BY-4.0 OR GPL-3.0-or-later</code>
83
83
  </span>
@@ -86,7 +86,7 @@ This file is part of Network Pro.
86
86
  <section id="page-title">
87
87
  <h1>Legal, Copyright, and Licensing</h1>
88
88
  <p>
89
- <strong>{constants.company}</strong><br />
89
+ <strong>{COMPANY_INFO.NAME}</strong><br />
90
90
  <strong>Effective Date:</strong>
91
91
  {constants.effectiveDate}
92
92
  </p>
@@ -113,7 +113,7 @@ This file is part of Network Pro.
113
113
  <strong>Formats Available:</strong> &nbsp;<span class="visited"
114
114
  >HTML</span>
115
115
  |
116
- <a href={legalLink} target={constants.targetSelf}>Docs</a>
116
+ <a href={legalLink} target={PAGE.SELF}>Docs</a>
117
117
  </sup>
118
118
  </p>
119
119
  </section>
@@ -127,22 +127,21 @@ This file is part of Network Pro.
127
127
  <p>
128
128
  All content—including text, software, logos, graphics, documentation,
129
129
  and other materials—provided by
130
- <strong>{constants.company}</strong> (“Network Pro”, “Company”, “Licensor”)
131
- is protected by U.S. and international copyright laws.
130
+ <strong>{COMPANY_INFO.NAME}</strong> ("{COMPANY_INFO.APP_NAME}",
131
+ "Company", "Licensor") is protected by U.S. and international copyright
132
+ laws.
132
133
  </p>
133
134
  <p>
134
- Copyright &copy; 2025
135
+ Copyright &copy; {COMPANY_INFO.YEAR}
135
136
  <strong>
136
- <a href={homeLink} target={constants.targetBlank}>
137
- Network Pro Strategies
138
- </a>
137
+ <a href={homeLink} target={PAGE.BLANK}> {COMPANY_INFO.NAME} </a>
139
138
  </strong>
140
- (Network Pro&trade;)
139
+ ({COMPANY_INFO.APP_NAME}&trade;)
141
140
  </p>
142
141
  {:else if link.id === "trademark"}
143
142
  <p>The following trademarks are the exclusive property of the Company:</p>
144
143
  <ul>
145
- <li><strong>Brand Name:</strong> Network Pro&trade;</li>
144
+ <li><strong>Brand Name:</strong> {COMPANY_INFO.APP_NAME}&trade;</li>
146
145
  <li><strong>Domain Names:</strong> netwk.pro, neteng.pro, neteng.cc</li>
147
146
  <li
148
147
  ><strong>Logo:</strong> The shield logo displayed on our homepage</li>
@@ -168,7 +167,7 @@ This file is part of Network Pro.
168
167
  </p>
169
168
  {:else if link.id === "lmaterial"}
170
169
  <p>
171
- Licensed Material refers solely to the publicly available code and
170
+ "Licensed Material" refers solely to the publicly available code and
172
171
  documentation distributed through the Company's open repositories and
173
172
  websites. It expressly excludes all third-party content, proprietary
174
173
  brand assets (including logos, trademarks, and visual designs), and any
@@ -200,18 +199,18 @@ This file is part of Network Pro.
200
199
  <li>
201
200
  See Creative Commons FAQ:
202
201
  <a
203
- rel={constants.rel}
202
+ rel={PAGE.REL}
204
203
  href="https://creativecommons.org/faq/#can-i-enter-into-separate-or-supplemental-agreements-with-users-of-my-work"
205
- target={constants.targetBlank}>
204
+ target={PAGE.BLANK}>
206
205
  Separate agreements
207
206
  </a>
208
207
  </li>
209
208
  <li>
210
209
  See GPL compatibility:
211
210
  <a
212
- rel={constants.rel}
211
+ rel={PAGE.REL}
213
212
  href="https://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean"
214
- target={constants.targetBlank}>
213
+ target={PAGE.BLANK}>
215
214
  GPL FAQ
216
215
  </a>
217
216
  </li>
@@ -219,40 +218,33 @@ This file is part of Network Pro.
219
218
  {:else if link.id === "cc-by"}
220
219
  <p class={constants.classSmall}>
221
220
  Download:
222
- <a
223
- href="/assets/license/CC-BY-4.0.html"
224
- download
225
- target={constants.targetBlank}>HTML</a>
221
+ <a href="/assets/license/CC-BY-4.0.html" download target={PAGE.BLANK}
222
+ >HTML</a>
226
223
  |
227
- <a
228
- href="/assets/license/CC-BY-4.0.md"
229
- download
230
- target={constants.targetBlank}>Markdown</a>
224
+ <a href="/assets/license/CC-BY-4.0.md" download target={PAGE.BLANK}
225
+ >Markdown</a>
231
226
  |
232
- <a
233
- href="/assets/license/CC-BY-4.0.txt"
234
- download
235
- target={constants.targetBlank}>Text</a>
227
+ <a href="/assets/license/CC-BY-4.0.txt" download target={PAGE.BLANK}
228
+ >Text</a>
236
229
  |
237
230
  <a
238
231
  href="/assets/license/CC-BY-4.0-rdfa.xml"
239
232
  download
240
- target={constants.targetBlank}>RDFa</a>
233
+ target={PAGE.BLANK}>RDFa</a>
241
234
  |
242
- <a
243
- href="/assets/license/CC-BY-4.0.xml"
244
- download
245
- target={constants.targetBlank}>XMP</a>
235
+ <a href="/assets/license/CC-BY-4.0.xml" download target={PAGE.BLANK}
236
+ >XMP</a>
246
237
  </p>
247
238
 
248
239
  <p>
249
- Network Pro&trade; (the "Licensed Material") is licensed under
240
+ {COMPANY_INFO.APP_NAME}&trade; (the "Licensed Material") is licensed
241
+ under
250
242
  <strong>Creative Commons Attribution 4.0 International</strong> (CC BY
251
243
  4.0)
252
244
  <a
253
- rel={constants.rel}
245
+ rel={PAGE.REL}
254
246
  href="https://creativecommons.org/licenses/by/4.0/"
255
- target={constants.targetBlank}>
247
+ target={PAGE.BLANK}>
256
248
  <img
257
249
  decoding="async"
258
250
  loading="lazy"
@@ -267,9 +259,9 @@ This file is part of Network Pro.
267
259
  alt="Creative Commons BY" />
268
260
  </a>
269
261
  <a
270
- rel={constants.rel}
262
+ rel={PAGE.REL}
271
263
  href="https://creativecommons.org/licenses/by/4.0/"
272
- target={constants.targetBlank}>
264
+ target={PAGE.BLANK}>
273
265
  <img
274
266
  decoding="async"
275
267
  loading="lazy"
@@ -302,9 +294,9 @@ This file is part of Network Pro.
302
294
  <p>
303
295
  SPDX Reference:<br />
304
296
  <a
305
- rel={constants.rel}
297
+ rel={PAGE.REL}
306
298
  href="https://spdx.org/licenses/CC-BY-4.0.html"
307
- target={constants.targetBlank}>
299
+ target={PAGE.BLANK}>
308
300
  https://spdx.org/licenses/CC-BY-4.0.html
309
301
  </a>
310
302
  </p>
@@ -312,9 +304,9 @@ This file is part of Network Pro.
312
304
  <p>
313
305
  Canonical URL:<br />
314
306
  <a
315
- rel={constants.rel}
307
+ rel={PAGE.REL}
316
308
  href="https://creativecommons.org/licenses/by/4.0/"
317
- target={constants.targetBlank}>
309
+ target={PAGE.BLANK}>
318
310
  https://creativecommons.org/licenses/by/4.0/
319
311
  </a>
320
312
  </p>
@@ -322,52 +314,39 @@ This file is part of Network Pro.
322
314
  {:else if link.id === "gnu-gpl"}
323
315
  <p class={constants.classSmall}>
324
316
  Download:
325
- <a
326
- href="/assets/license/COPYING.html"
327
- download
328
- target={constants.targetBlank}>HTML</a>
317
+ <a href="/assets/license/COPYING.html" download target={PAGE.BLANK}
318
+ >HTML</a>
329
319
  |
330
- <a
331
- href="/assets/license/COPYING.md"
332
- download
333
- target={constants.targetBlank}>Markdown</a>
320
+ <a href="/assets/license/COPYING.md" download target={PAGE.BLANK}
321
+ >Markdown</a>
334
322
  |
335
- <a
336
- href="/assets/license/COPYING.txt"
337
- download
338
- target={constants.targetBlank}>Text</a>
323
+ <a href="/assets/license/COPYING.txt" download target={PAGE.BLANK}
324
+ >Text</a>
339
325
  |
340
- <a
341
- href="/assets/license/COPYING-rdfa.xml"
342
- download
343
- target={constants.targetBlank}>RDFa</a>
326
+ <a href="/assets/license/COPYING-rdfa.xml" download target={PAGE.BLANK}
327
+ >RDFa</a>
344
328
  |
345
- <a
346
- href="/assets/license/COPYING.odt"
347
- download
348
- target={constants.targetBlank}>ODT</a>
329
+ <a href="/assets/license/COPYING.odt" download target={PAGE.BLANK}
330
+ >ODT</a>
349
331
  </p>
350
332
 
351
333
  <p>
352
- Network Pro&trade; is free software: you can redistribute it and/or
353
- modify it under the terms of the
334
+ {COMPANY_INFO.APP_NAME}&trade; is free software: you can redistribute it
335
+ and/or modify it under the terms of the
354
336
  <strong>GNU General Public License</strong> (GNU GPL) as published by
355
337
  the
356
- <a
357
- rel={constants.rel}
358
- href="https://fsf.org"
359
- target={constants.targetBlank}>Free Software Foundation</a
338
+ <a rel={PAGE.REL} href="https://fsf.org" target={PAGE.BLANK}
339
+ >Free Software Foundation</a
360
340
  >, either version 3 of the License, or (at your option) any later
361
341
  version.
362
342
  </p>
363
343
 
364
344
  <p>
365
345
  You should have received a copy of the GNU General Public License along
366
- with this material. If not, see &lt;
367
- <a
368
- rel={constants.rel}
346
+ with this material. If not, see &lt;<a
347
+ rel={PAGE.REL}
369
348
  href="https://www.gnu.org/licenses"
370
- target={constants.targetBlank}>https://www.gnu.org/licenses/</a
349
+ target={PAGE.BLANK}>https://www.gnu.org/licenses/</a
371
350
  >&gt;.
372
351
  </p>
373
352
 
@@ -375,9 +354,9 @@ This file is part of Network Pro.
375
354
  <p>
376
355
  SPDX Reference:<br />
377
356
  <a
378
- rel={constants.rel}
357
+ rel={PAGE.REL}
379
358
  href="https://spdx.org/licenses/GPL-3.0-or-later.html"
380
- target={constants.targetBlank}>
359
+ target={PAGE.BLANK}>
381
360
  https://spdx.org/licenses/GPL-3.0-or-later.html
382
361
  </a>
383
362
  </p>
@@ -385,9 +364,9 @@ This file is part of Network Pro.
385
364
  <p>
386
365
  Canonical URL:<br />
387
366
  <a
388
- rel={constants.rel}
367
+ rel={PAGE.REL}
389
368
  href="https://www.gnu.org/licenses/gpl-3.0.html"
390
- target={constants.targetBlank}>
369
+ target={PAGE.BLANK}>
391
370
  https://gnu.org/licenses/gpl-3.0.html
392
371
  </a>
393
372
  </p>
@@ -450,7 +429,7 @@ This file is part of Network Pro.
450
429
 
451
430
  <blockquote>
452
431
  <strong>
453
- THE LICENSED MATERIAL IS PROVIDED AS IS AND AS AVAILABLE,” WITHOUT
432
+ THE LICENSED MATERIAL IS PROVIDED "AS IS" AND "AS AVAILABLE," WITHOUT
454
433
  ANY EXPRESS OR IMPLIED WARRANTIES. TO THE MAXIMUM EXTENT PERMITTED BY
455
434
  LAW, THE COMPANY DISCLAIMS ALL WARRANTIES, INCLUDING BUT NOT LIMITED
456
435
  TO IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
@@ -474,9 +453,9 @@ This file is part of Network Pro.
474
453
  distributions of any legal document issued by the Company—including but
475
454
  not limited to license terms, policies, notices, or agreements—the
476
455
  version published on the Company's primary website at <a
477
- rel={constants.rel}
456
+ rel={PAGE.REL}
478
457
  href={homeLink}
479
- target={constants.targetSelf}>https://netwk.pro</a>
458
+ target={PAGE.SELF}>https://netwk.pro</a>
480
459
  shall be deemed the official and controlling version.
481
460
  </p>
482
461
 
@@ -495,15 +474,15 @@ This file is part of Network Pro.
495
474
  {:else if link.id === "contact"}
496
475
  <p>
497
476
  The Company can be contacted via our
498
- <a rel={constants.rel} href={contactLink} target={constants.targetBlank}
499
- >contact form</a>
477
+ <a rel={PAGE.REL} href={contactLink} target={PAGE.BLANK}
478
+ >Contact Form</a>
500
479
  or by email at:<br />
501
- 📧 <code>contact (at) s.neteng.pro</code>
480
+ 📧 <strong>{CONTACT.EMAIL}</strong>
502
481
  </p>
503
482
  {/if}
504
483
 
505
484
  <span class={constants.classSmall}>
506
- <a href={constants.hrefTop}>Back to top</a>
485
+ <a href={NAV.HREFTOP}>{NAV.BACKTOP}</a>
507
486
  </span>
508
487
  </section>
509
488
  {/each}
@@ -20,7 +20,9 @@ This file is part of Network Pro.
20
20
  // Log the base path to verify its value
21
21
  //console.log("Base path:", base);
22
22
 
23
- console.log(CONSTANTS.APP_NAME);
23
+ console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
24
+
25
+ const { COMPANY_INFO, CONTACT, PAGE, NAV } = CONSTANTS;
24
26
 
25
27
  /**
26
28
  * URL to the Privacy Rights Request Form redirect route, using the base path
@@ -62,25 +64,8 @@ This file is part of Network Pro.
62
64
  /** @type {string} */
63
65
  const effectiveDate = "June 2, 2025";
64
66
 
65
- /**
66
- * Constants used throughout the component for consistent styling and behavior
67
- * @type {{
68
- * classSmall: string,
69
- * rel: string,
70
- * backTop: string,
71
- * hrefTop: string,
72
- * targetSelf: string,
73
- * targetBlank: string
74
- * }}
75
- */
76
- const constants = {
77
- classSmall: "small-text",
78
- rel: "noopener noreferrer",
79
- backTop: "Back to top",
80
- hrefTop: "#top",
81
- targetSelf: "_self",
82
- targetBlank: "_blank",
83
- };
67
+ /** @type {string} */
68
+ const classSmall = "small-text";
84
69
 
85
70
  let optedOut = false;
86
71
  let optedIn = false;
@@ -127,11 +112,11 @@ This file is part of Network Pro.
127
112
 
128
113
  <!-- BEGIN TITLE -->
129
114
  <section id="top">
130
- <span class={constants.classSmall}>
115
+ <span class={classSmall}>
131
116
  <a
132
- rel={constants.rel}
117
+ rel={PAGE.REL}
133
118
  href="https://spdx.dev/learn/handling-license-info"
134
- target={constants.targetBlank}>
119
+ target={PAGE.BLANK}>
135
120
  SPDX License Identifier
136
121
  </a>: &nbsp;<code>CC-BY-4.0 OR GPL-3.0-or-later</code>
137
122
  </span>
@@ -140,7 +125,7 @@ This file is part of Network Pro.
140
125
  <section id="page-title">
141
126
  <h1>Privacy Policy</h1>
142
127
  <p>
143
- <strong>{CONSTANTS.COMPANY}</strong><br />
128
+ <strong>{COMPANY_INFO.NAME}</strong><br />
144
129
  <strong>Effective Date:</strong>
145
130
  {effectiveDate}
146
131
  </p>
@@ -167,7 +152,7 @@ This file is part of Network Pro.
167
152
  <strong>Formats Available:</strong> &nbsp;<span class="visited"
168
153
  >HTML</span>
169
154
  |
170
- <a href={privacyLink} target={constants.targetSelf}>Docs</a>
155
+ <a href={privacyLink} target={PAGE.SELF}>Docs</a>
171
156
  </sup>
172
157
  </p>
173
158
  </section>
@@ -188,9 +173,9 @@ This file is part of Network Pro.
188
173
  4 of the
189
174
  <strong>
190
175
  <a
191
- rel={constants.rel}
176
+ rel={PAGE.REL}
192
177
  href="https://www.azleg.gov/arstitle"
193
- target={constants.targetBlank}>
178
+ target={PAGE.BLANK}>
194
179
  Arizona Revised Statutes
195
180
  </a>
196
181
  </strong> (A.R.S. §§ 18-551, 18-552).
@@ -232,12 +217,11 @@ This file is part of Network Pro.
232
217
  <p>
233
218
  We configure PostHog to prioritize user privacy. <strong
234
219
  >Analytics tracking is automatically disabled when a user's browser
235
- sends a Do Not Track (DNT) or <a
236
- rel={constants.rel}
220
+ sends a "Do Not Track" (DNT) or <a
221
+ rel={PAGE.REL}
237
222
  href={gpcLink}
238
- target={constants.targetBlank}
239
- >“Global Privacy Control” (GPC / Sec-GPC)</a> signal.</strong> No further
240
- action is required—your browser settings are honored by default.
223
+ target={PAGE.BLANK}>"Global Privacy Control" (GPC / Sec-GPC)</a> signal.</strong>
224
+ No further action is required—your browser settings are honored by default.
241
225
  </p>
242
226
  <p>
243
227
  You can view your current tracking status below, along with manual
@@ -250,7 +234,7 @@ This file is part of Network Pro.
250
234
  <p class="emphasis">
251
235
  For convenient access, you can manage these settings through our <a
252
236
  href={pdashLink}
253
- target={constants.targetSelf}>Privacy Dashboard</a
237
+ target={PAGE.SELF}>Privacy Dashboard</a
254
238
  >.
255
239
  </p>
256
240
 
@@ -296,9 +280,9 @@ This file is part of Network Pro.
296
280
  PostHog Cloud is a third-party service, but we deploy it in a
297
281
  privacy-conscious manner that avoids intrusive profiling and aligns with
298
282
  data protection best practices. For more information, please refer to <a
299
- rel={constants.rel}
283
+ rel={PAGE.REL}
300
284
  href="https://posthog.com/privacy"
301
- target={constants.targetBlank}>PostHog's Privacy Policy</a
285
+ target={PAGE.BLANK}>PostHog's Privacy Policy</a
302
286
  >.
303
287
  </p>
304
288
  {:else if link.id === "payment"}
@@ -379,25 +363,24 @@ This file is part of Network Pro.
379
363
  <p>
380
364
  Although these rights are specifically granted to residents of
381
365
  California and the European Union under laws such as the <a
382
- rel={constants.rel}
366
+ rel={PAGE.REL}
383
367
  href="https://oag.ca.gov/privacy/ccpa"
384
- target={constants.targetBlank}
385
- >California Consumer Privacy Act (CCPA)</a
368
+ target={PAGE.BLANK}>California Consumer Privacy Act (CCPA)</a
386
369
  >, the California Privacy Rights Act (CPRA), and the
387
370
  <a
388
- rel={constants.rel}
371
+ rel={PAGE.REL}
389
372
  href="https://gdpr.eu/what-is-gdpr/"
390
- target={constants.targetBlank}
391
- >EU General Data Protection Regulation (GDPR)</a
373
+ target={PAGE.BLANK}>EU General Data Protection Regulation (GDPR)</a
392
374
  >, we voluntarily extend these rights to all users, regardless of
393
375
  residency.
394
376
  </p>
395
377
  <p>
396
378
  To exercise any of these rights, you may submit a request through our <a
379
+ rel={PAGE.REL}
397
380
  href={prightsLink}
398
- target={constants.targetBlank}>Privacy Rights Request Form</a
381
+ target={PAGE.BLANK}>Privacy Rights Request Form</a
399
382
  >. Alternatively, you can email us at
400
- <strong>{CONSTANTS.PRIVACY_EMAIL}</strong>
383
+ <strong>{CONTACT.PRIVACY}</strong>
401
384
  with the subject line: "<strong>Privacy Rights Preferences</strong>".
402
385
  </p>
403
386
  {:else if link.id === "third-party"}
@@ -418,22 +401,23 @@ This file is part of Network Pro.
418
401
  posting.
419
402
  </p>
420
403
  {:else if link.id === "contact"}
421
- <p
422
- >For questions, please utilize our <a
423
- rel={constants.rel}
404
+ <p>
405
+ For questions, please utilize our <a
406
+ rel={PAGE.REL}
424
407
  href={contactLink}
425
- target={constants.targetSelf}>Contact Form</a> or contact us directly:</p>
408
+ target={PAGE.SELF}>Contact Form</a> or contact us directly:
409
+ </p>
426
410
  <p>
427
- <strong>{CONSTANTS.COMPANY}</strong><br />
428
- 📧 General Inquiries: {CONSTANTS.CONTACT_EMAIL}<br />
429
- 🔐 Secure Email: {CONSTANTS.SECURE_EMAIL}<br />
430
- 📞 Phone: {CONSTANTS.PHONE}
411
+ <strong>{COMPANY_INFO.NAME}</strong><br />
412
+ 📧 General Inquiries: {CONTACT.EMAIL}<br />
413
+ 🔐 Secure Email: {CONTACT.SECURE}<br />
414
+ 📞 Phone: {CONTACT.PHONE}
431
415
  </p>
432
416
  {/if}
433
417
 
434
418
  <!-- Back to Top Link -->
435
- <span class={constants.classSmall}>
436
- <a href={constants.hrefTop}>{constants.backTop}</a>
419
+ <span class={classSmall}>
420
+ <a href={NAV.HREFTOP}>{NAV.BACKTOP}</a>
437
421
  </span>
438
422
  </section>
439
423
  {/each}
@@ -20,9 +20,9 @@ This file is part of Network Pro.
20
20
  // Log the base path to verify its value
21
21
  //console.log("Base path:", base);
22
22
 
23
- console.log(CONSTANTS.APP_NAME);
23
+ console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
24
24
 
25
- const { PRIVACY_EMAIL } = CONSTANTS;
25
+ const { CONTACT, PAGE, NAV } = CONSTANTS;
26
26
 
27
27
  /**
28
28
  * @type {string}
@@ -37,25 +37,8 @@ This file is part of Network Pro.
37
37
  const privacyPolicy = `${base}/privacy`;
38
38
  const prightsLink = `${base}/privacy-rights`;
39
39
 
40
- /**
41
- * Constants used throughout the component for consistent styling and behavior
42
- * @type {{
43
- * classSmall: string,
44
- * rel: string,
45
- * backTop: string,
46
- * hrefTop: string,
47
- * targetSelf: string,
48
- * targetBlank: string
49
- * }}
50
- */
51
- const constants = {
52
- classSmall: "small-text",
53
- rel: "noopener noreferrer",
54
- backTop: "Back to top",
55
- hrefTop: "#top",
56
- targetSelf: "_self",
57
- targetBlank: "_blank",
58
- };
40
+ /** @type {string} */
41
+ const classSmall = "small-text";
59
42
 
60
43
  let optedOut = false;
61
44
  let optedIn = false;
@@ -101,11 +84,11 @@ This file is part of Network Pro.
101
84
  </script>
102
85
 
103
86
  <section id="top">
104
- <span class={constants.classSmall}>
87
+ <span class={classSmall}>
105
88
  <a
106
- rel={constants.rel}
89
+ rel={PAGE.REL}
107
90
  href="https://spdx.dev/learn/handling-license-info"
108
- target={constants.targetBlank}>
91
+ target={PAGE.BLANK}>
109
92
  SPDX License Identifier
110
93
  </a>: &nbsp;<code>CC-BY-4.0 OR GPL-3.0-or-later</code>
111
94
  </span>
@@ -119,18 +102,13 @@ This file is part of Network Pro.
119
102
 
120
103
  <nav class="tracking-nav">
121
104
  <ul>
122
- <li
123
- ><a href="#tracking" target={constants.targetSelf}>Tracking Preferences</a
124
- ></li>
125
- <li
126
- ><a href="#rights" target={constants.targetSelf}
127
- >Your Rights and Choices</a
128
- ></li>
105
+ <li><a href="#tracking" target={PAGE.SELF}>Tracking Preferences</a></li>
106
+ <li><a href="#rights" target={PAGE.SELF}>Your Rights and Choices</a></li>
129
107
  </ul>
130
108
  </nav>
131
109
 
132
110
  <p class="bquote">
133
- For full details, please see our <a href={privacyPolicy} target="_self"
111
+ For full details, please see our <a href={privacyPolicy} target={PAGE.SELF}
134
112
  >Privacy Policy</a
135
113
  >.
136
114
  </p>
@@ -147,11 +125,10 @@ This file is part of Network Pro.
147
125
  <p>
148
126
  <strong
149
127
  >Analytics tracking is automatically disabled when a user's browser sends
150
- a Do Not Track (DNT) or <a
151
- rel={constants.rel}
128
+ a "Do Not Track" (DNT) or <a
129
+ rel={PAGE.REL}
152
130
  href="https://globalprivacycontrol.org/"
153
- target={constants.targetBlank}
154
- >“Global Privacy Control” (GPC / Sec-GPC)</a> signal.</strong>
131
+ target={PAGE.BLANK}>"Global Privacy Control" (GPC / Sec-GPC)</a> signal.</strong>
155
132
  No further action is required—your browser settings are honored by default.
156
133
  </p>
157
134
 
@@ -205,9 +182,8 @@ This file is part of Network Pro.
205
182
  </p>
206
183
  </section>
207
184
 
208
- <span class={constants.classSmall}>
209
- <a href={constants.hrefTop} target={constants.targetSelf}
210
- >{constants.backTop}</a>
185
+ <span class={classSmall}>
186
+ <a href={NAV.HREFTOP} target={PAGE.SELF}>{NAV.BACKTOP}</a>
211
187
  </span>
212
188
 
213
189
  <div class={spaceStyle}></div>
@@ -243,30 +219,27 @@ This file is part of Network Pro.
243
219
  <p>
244
220
  Although these rights are specifically granted to residents of California
245
221
  and the European Union under laws such as the <a
246
- rel={constants.rel}
222
+ rel={PAGE.REL}
247
223
  href="https://oag.ca.gov/privacy/ccpa"
248
- target={constants.targetBlank}>California Consumer Privacy Act (CCPA)</a
224
+ target={PAGE.BLANK}>California Consumer Privacy Act (CCPA)</a
249
225
  >, the California Privacy Rights Act (CPRA), and the
250
- <a
251
- rel={constants.rel}
252
- href="https://gdpr.eu/what-is-gdpr/"
253
- target={constants.targetBlank}
226
+ <a rel={PAGE.REL} href="https://gdpr.eu/what-is-gdpr/" target={PAGE.BLANK}
254
227
  >EU General Data Protection Regulation (GDPR)</a
255
228
  >, we voluntarily extend these rights to all users, regardless of residency.
256
229
  </p>
257
230
  <p>
258
231
  To exercise any of these rights, you may submit a request through our <a
232
+ rel={PAGE.REL}
259
233
  href={prightsLink}
260
- target={constants.targetBlank}>Privacy Rights Request Form</a
234
+ target={PAGE.BLANK}>Privacy Rights Request Form</a
261
235
  >. Alternatively, you can email us at
262
- <strong>{PRIVACY_EMAIL}</strong>
236
+ <strong>{CONTACT.PRIVACY}</strong>
263
237
  with the subject line: "<strong>Privacy Rights Preferences</strong>".
264
238
  </p>
265
239
  </section>
266
240
 
267
- <span class={constants.classSmall}>
268
- <a href={constants.hrefTop} target={constants.targetSelf}
269
- >{constants.backTop}</a>
241
+ <span class={classSmall}>
242
+ <a href={NAV.HREFTOP} target={PAGE.SELF}>{NAV.BACKTOP}</a>
270
243
  </span>
271
244
 
272
245
  <!-- cspell:ignore prefs prights -->