hoodcms 5.0.6 → 5.0.10
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.
- package/README.md +8 -6
- package/dist/css/admin.css +1 -0
- package/dist/css/app.css +1 -0
- package/dist/css/button.css +1 -0
- package/dist/css/editor.css +1 -0
- package/dist/css/install.css +1 -0
- package/dist/css/login.css +1 -0
- package/dist/js/admin.js +24 -0
- package/dist/js/app.js +23 -0
- package/dist/js/core/Alerts.d.ts +22 -0
- package/dist/js/core/Alerts.js +151 -0
- package/dist/js/core/BaseSite.d.ts +6 -0
- package/dist/js/core/BaseSite.js +14 -0
- package/dist/js/core/ColorPicker.d.ts +5 -0
- package/dist/js/core/ColorPicker.js +71 -0
- package/dist/js/core/DataList.d.ts +35 -0
- package/dist/js/core/DataList.js +56 -0
- package/dist/js/core/Editors.d.ts +16 -0
- package/dist/js/core/Editors.js +137 -0
- package/dist/js/core/Handlers.d.ts +47 -0
- package/dist/js/core/Handlers.js +160 -0
- package/dist/js/core/HoodApi.d.ts +25 -0
- package/dist/js/core/HoodApi.js +22 -0
- package/dist/js/core/Inline.d.ts +27 -0
- package/dist/js/core/Inline.js +63 -0
- package/dist/js/core/Loader.d.ts +5 -0
- package/dist/js/core/Loader.js +13 -0
- package/dist/js/core/Media.d.ts +113 -0
- package/dist/js/core/Media.js +363 -0
- package/dist/js/core/Modal.d.ts +35 -0
- package/dist/js/core/Modal.js +69 -0
- package/dist/js/core/RandomStringGenerator.d.ts +11 -0
- package/dist/js/core/RandomStringGenerator.js +23 -0
- package/dist/js/core/Response.d.ts +20 -0
- package/dist/js/core/Response.js +13 -0
- package/dist/js/core/Uploader.d.ts +7 -0
- package/dist/js/core/Uploader.js +134 -0
- package/dist/js/core/Validator.d.ts +27 -0
- package/dist/js/core/Validator.js +80 -0
- package/dist/js/extensions/jqueryExtensions.d.ts +11 -0
- package/dist/js/extensions/jqueryExtensions.js +99 -0
- package/dist/js/extensions/numberExtensions.d.ts +8 -0
- package/dist/js/extensions/numberExtensions.js +19 -0
- package/dist/js/extensions/stringExtensions.d.ts +12 -0
- package/dist/js/extensions/stringExtensions.js +49 -0
- package/dist/js/index.d.ts +22 -0
- package/dist/js/index.js +22 -0
- package/dist/js/interfaces/KeyValue.d.ts +4 -0
- package/dist/js/interfaces/KeyValue.js +1 -0
- package/dist/js/login.js +7 -0
- package/dist/js/models/Content.d.ts +50 -0
- package/dist/js/models/Content.js +1 -0
- package/dist/js/models/Property.d.ts +9 -0
- package/dist/js/models/Property.js +2 -0
- package/dist/js/models/Users.d.ts +7 -0
- package/dist/js/models/Users.js +2 -0
- package/images/arrow.jpg +0 -0
- package/images/h-black.svg +1 -0
- package/images/h-white.svg +0 -0
- package/images/hood-cms-dark.png +0 -0
- package/images/hood-cms-dark.svg +1 -0
- package/images/hood-cms-white.png +0 -0
- package/images/hood-cms-white.svg +1 -0
- package/images/hood-cms.png +0 -0
- package/images/hood-logo.svg +1 -0
- package/images/hood-square-padded.png +0 -0
- package/images/hood-square.png +0 -0
- package/images/hood-white.svg +1 -0
- package/images/hood.svg +1 -0
- package/images/icons/audio.png +0 -0
- package/images/icons/excel.png +0 -0
- package/images/icons/file.png +0 -0
- package/images/icons/pdf.png +0 -0
- package/images/icons/photoshop.png +0 -0
- package/images/icons/powerpoint.png +0 -0
- package/images/icons/video.png +0 -0
- package/images/icons/word.png +0 -0
- package/images/loading.svg +1 -0
- package/images/no-avatar.jpg +0 -0
- package/images/no-image.jpg +0 -0
- package/images/og-share.jpg +0 -0
- package/package.json +58 -55
- package/src/css/admin.css +12382 -0
- package/src/css/admin.css.map +1 -0
- package/src/css/app.css +11923 -0
- package/src/css/app.css.map +1 -0
- package/src/css/button.css +72 -0
- package/src/css/button.css.map +1 -0
- package/src/css/editor.css +11124 -0
- package/src/css/editor.css.map +1 -0
- package/src/css/install.css +11471 -0
- package/src/css/install.css.map +1 -0
- package/src/css/login.css +11455 -0
- package/src/css/login.css.map +1 -0
- package/src/js/admin.js +2595 -0
- package/src/js/admin.js.map +1 -0
- package/src/js/app.js +1578 -0
- package/src/js/app.js.map +1 -0
- package/src/js/login.js +44 -0
- package/src/js/login.js.map +1 -0
- package/src/scss/admin.scss +2 -6
- package/src/scss/app.scss +2 -2
- package/src/scss/editor.scss +2 -3
- package/src/scss/install.scss +1 -1
- package/src/scss/login.scss +2 -16
- package/src/ts/admin.ts +2 -6
- package/src/ts/app.ts +0 -2
- package/src/ts/core/BaseSite.ts +21 -0
- package/src/ts/index.ts +25 -0
- package/src/ts/hood.ts +0 -5
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Response } from "./Response";
|
|
2
|
+
export interface ValidatorOptions {
|
|
3
|
+
errorAlert?: string;
|
|
4
|
+
/**
|
|
5
|
+
* Called before the submit of the form data, you can return the data to be serialised.
|
|
6
|
+
*/
|
|
7
|
+
onSubmit?: (sender: Validator) => void;
|
|
8
|
+
/**
|
|
9
|
+
* Called when submit is complete.
|
|
10
|
+
*/
|
|
11
|
+
onComplete?: (data: Response, sender?: Validator) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Called when an error occurs.
|
|
14
|
+
*/
|
|
15
|
+
onError?: (jqXHR: any, textStatus: any, errorThrown: any) => void;
|
|
16
|
+
serializationFunction?: () => string;
|
|
17
|
+
useAjax?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare class Validator {
|
|
20
|
+
element: HTMLFormElement;
|
|
21
|
+
options: ValidatorOptions;
|
|
22
|
+
/**
|
|
23
|
+
* @param element The datalist element. The element must have a data-url attribute to connect to a feed.
|
|
24
|
+
*/
|
|
25
|
+
constructor(element: HTMLFormElement, options: ValidatorOptions);
|
|
26
|
+
submitForm(): void;
|
|
27
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Alerts } from "./Alerts";
|
|
2
|
+
import { Inline } from "./Inline";
|
|
3
|
+
export class Validator {
|
|
4
|
+
/**
|
|
5
|
+
* @param element The datalist element. The element must have a data-url attribute to connect to a feed.
|
|
6
|
+
*/
|
|
7
|
+
constructor(element, options) {
|
|
8
|
+
this.options = {
|
|
9
|
+
errorAlert: 'There are errors, please check the form.',
|
|
10
|
+
useAjax: true
|
|
11
|
+
};
|
|
12
|
+
this.element = element;
|
|
13
|
+
if (!this.element) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
this.options.serializationFunction = function () {
|
|
17
|
+
let rtn = $(this.element).serialize();
|
|
18
|
+
return rtn;
|
|
19
|
+
}.bind(this);
|
|
20
|
+
this.options = Object.assign(Object.assign({}, this.options), options);
|
|
21
|
+
this.element.addEventListener('submit', function (e) {
|
|
22
|
+
e.preventDefault();
|
|
23
|
+
e.stopImmediatePropagation();
|
|
24
|
+
this.submitForm();
|
|
25
|
+
}.bind(this));
|
|
26
|
+
var tag = '[data-submit="#' + this.element.id + '"]';
|
|
27
|
+
let submitButtons = $(tag);
|
|
28
|
+
if (submitButtons) {
|
|
29
|
+
submitButtons.on('click', function (e) {
|
|
30
|
+
e.preventDefault();
|
|
31
|
+
e.stopImmediatePropagation();
|
|
32
|
+
let exit = $(e.currentTarget).data('exit');
|
|
33
|
+
if (exit) {
|
|
34
|
+
$(this.element).find("input#exit").remove();
|
|
35
|
+
$("<input id='exit' />").attr("type", "hidden")
|
|
36
|
+
.attr("name", "exit")
|
|
37
|
+
.attr("value", "true")
|
|
38
|
+
.appendTo(this.element);
|
|
39
|
+
}
|
|
40
|
+
this.submitForm();
|
|
41
|
+
}.bind(this));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
submitForm() {
|
|
45
|
+
var _a;
|
|
46
|
+
this.element.classList.add('was-validated');
|
|
47
|
+
if (this.element.checkValidity()) {
|
|
48
|
+
this.element.classList.add('loading');
|
|
49
|
+
let checkboxes = this.element.querySelector('input[type=checkbox]');
|
|
50
|
+
if (checkboxes) {
|
|
51
|
+
Array.prototype.slice.call(checkboxes)
|
|
52
|
+
.forEach(function (checkbox) {
|
|
53
|
+
if ($(this).is(':checked')) {
|
|
54
|
+
$(this).val('true');
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
if (this.options.onSubmit) {
|
|
59
|
+
this.options.onSubmit(this);
|
|
60
|
+
}
|
|
61
|
+
if (this.options.useAjax) {
|
|
62
|
+
let formData = this.options.serializationFunction();
|
|
63
|
+
$.post(this.element.action, formData, function (data) {
|
|
64
|
+
if (this.options.onComplete) {
|
|
65
|
+
this.options.onComplete(data, this);
|
|
66
|
+
}
|
|
67
|
+
}.bind(this))
|
|
68
|
+
.fail((_a = this.options.onError) !== null && _a !== void 0 ? _a : Inline.handleError);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
this.element.submit();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
if (this.options.errorAlert) {
|
|
76
|
+
Alerts.error(this.options.errorAlert, null, 5000);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Alerts } from '../core/Alerts';
|
|
2
|
+
$.fn.exists = function () {
|
|
3
|
+
return $(this).length;
|
|
4
|
+
};
|
|
5
|
+
$.fn.restrictToSlug = function (restrictPattern = /[^0-9a-zA-Z]*/g) {
|
|
6
|
+
let targets = $(this);
|
|
7
|
+
// The characters inside this pattern are accepted
|
|
8
|
+
// and everything else will be 'cleaned'
|
|
9
|
+
// For example 'ABCdEfGhI5' become 'ABCEGI5'
|
|
10
|
+
var restrictHandler = function () {
|
|
11
|
+
var val = $(this).val();
|
|
12
|
+
var newVal = val.replace(restrictPattern, '');
|
|
13
|
+
// This condition is to prevent selection and keyboard navigation issues
|
|
14
|
+
if (val !== newVal) {
|
|
15
|
+
$(this).val(newVal);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
targets.on('keyup', restrictHandler);
|
|
19
|
+
targets.on('paste', restrictHandler);
|
|
20
|
+
targets.on('change', restrictHandler);
|
|
21
|
+
};
|
|
22
|
+
$.fn.restrictToPageSlug = function (restrictPattern = /[^0-9a-zA-Z-//]*/g) {
|
|
23
|
+
let targets = $(this);
|
|
24
|
+
// The characters inside this pattern are accepted
|
|
25
|
+
// and everything else will be 'cleaned'
|
|
26
|
+
let restrictHandler = function () {
|
|
27
|
+
var val = $(this).val();
|
|
28
|
+
var newVal = val.replace(restrictPattern, '');
|
|
29
|
+
if ((newVal.match(new RegExp("/", "g")) || []).length > 4) {
|
|
30
|
+
var pos = newVal.lastIndexOf('/');
|
|
31
|
+
newVal = newVal.substring(0, pos) + newVal.substring(pos + 1);
|
|
32
|
+
Alerts.warning("You can only have up to 4 '/' characters in a url slug.");
|
|
33
|
+
}
|
|
34
|
+
// This condition is to prevent selection and keyboard navigation issues
|
|
35
|
+
if (val !== newVal) {
|
|
36
|
+
$(this).val(newVal);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
targets.on('keyup', restrictHandler);
|
|
40
|
+
targets.on('paste', restrictHandler);
|
|
41
|
+
targets.on('change', restrictHandler);
|
|
42
|
+
};
|
|
43
|
+
$.fn.restrictToMetaSlug = function (restrictPattern = /[^0-9a-zA-Z.]*/g) {
|
|
44
|
+
let targets = $(this);
|
|
45
|
+
// The characters inside this pattern are accepted
|
|
46
|
+
// and everything else will be 'cleaned'
|
|
47
|
+
let restrictHandler = function () {
|
|
48
|
+
let val = $(this).val();
|
|
49
|
+
let newVal = val.replace(restrictPattern, '');
|
|
50
|
+
if ((newVal.match(new RegExp(".", "g")) || []).length > 1) {
|
|
51
|
+
let pos = newVal.lastIndexOf('.');
|
|
52
|
+
newVal = newVal.substring(0, pos) + newVal.substring(pos + 1);
|
|
53
|
+
Alerts.warning("You can only have up to 1 '.' characters in a meta slug.");
|
|
54
|
+
}
|
|
55
|
+
// This condition is to prevent selection and keyboard navigation issues
|
|
56
|
+
if (val !== newVal) {
|
|
57
|
+
$(this).val(newVal);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
targets.on('keyup', restrictHandler);
|
|
61
|
+
targets.on('paste', restrictHandler);
|
|
62
|
+
targets.on('change', restrictHandler);
|
|
63
|
+
};
|
|
64
|
+
$.fn.characterCounter = function () {
|
|
65
|
+
let targets = $(this);
|
|
66
|
+
let characterCounterHandler = function () {
|
|
67
|
+
let counter = $(this).data('counter');
|
|
68
|
+
let max = Number($(this).attr('maxlength'));
|
|
69
|
+
let len = $(this).val().length;
|
|
70
|
+
$(counter).text(max - len);
|
|
71
|
+
let cls = "text-success";
|
|
72
|
+
if (max - len < max / 10)
|
|
73
|
+
cls = "text-danger";
|
|
74
|
+
$(counter).parent().removeClass('text-success').removeClass('text-danger').addClass(cls);
|
|
75
|
+
};
|
|
76
|
+
targets.on('keyup', characterCounterHandler);
|
|
77
|
+
targets.on('paste', characterCounterHandler);
|
|
78
|
+
targets.on('change', characterCounterHandler);
|
|
79
|
+
};
|
|
80
|
+
$.fn.warningAlert = function () {
|
|
81
|
+
let targets = $(this);
|
|
82
|
+
let warningAlertHandler = function (e) {
|
|
83
|
+
e.preventDefault();
|
|
84
|
+
let warningAlertCallback = function (result) {
|
|
85
|
+
if (result.isConfirmed) {
|
|
86
|
+
let url = $(e.currentTarget).attr('href');
|
|
87
|
+
window.location.href = url;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
Alerts.confirm({
|
|
91
|
+
title: $(e.currentTarget).data('title'),
|
|
92
|
+
html: $(e.currentTarget).data('warning'),
|
|
93
|
+
footer: $(e.currentTarget).data('footer'),
|
|
94
|
+
icon: 'warning'
|
|
95
|
+
}, warningAlertCallback);
|
|
96
|
+
return false;
|
|
97
|
+
};
|
|
98
|
+
targets.on('click', warningAlertHandler);
|
|
99
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Number.prototype.formatCurrency = function (currency) {
|
|
2
|
+
return currency + " " + this.toFixed(2).replace(/./g, function (c, i, a) {
|
|
3
|
+
return i > 0 && c !== "." && (a.length - i) % 3 === 0 ? "," + c : c;
|
|
4
|
+
});
|
|
5
|
+
};
|
|
6
|
+
Number.prototype.formatKilobytes = function () {
|
|
7
|
+
let n = this / 1024;
|
|
8
|
+
return n.toFixed(0).replace(/./g, function (c, i, a) {
|
|
9
|
+
return i > 0 && c !== "." && (a.length - i) % 3 === 0 ? "," + c : c;
|
|
10
|
+
}) + "Kb";
|
|
11
|
+
};
|
|
12
|
+
Number.prototype.formatMegabytes = function () {
|
|
13
|
+
let n = this / 1024;
|
|
14
|
+
n = n / 1024;
|
|
15
|
+
return n.toFixed(0).replace(/./g, function (c, i, a) {
|
|
16
|
+
return i > 0 && c !== "." && (a.length - i) % 3 === 0 ? "," + c : c;
|
|
17
|
+
}) + "Mb";
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
String.prototype.htmlEncode = function () {
|
|
2
|
+
//create a in-memory div, set it's inner text(which jQuery automatically encodes)
|
|
3
|
+
//then grab the encoded contents back out. The div never exists on the page.
|
|
4
|
+
return $('<div/>').text(this).html();
|
|
5
|
+
};
|
|
6
|
+
String.prototype.htmlDecode = function () {
|
|
7
|
+
return $('<div/>').html(this).text();
|
|
8
|
+
};
|
|
9
|
+
String.prototype.contains = function (it) {
|
|
10
|
+
return this.indexOf(it) !== -1;
|
|
11
|
+
};
|
|
12
|
+
String.prototype.pick = function (min, max) {
|
|
13
|
+
var n, chars = '';
|
|
14
|
+
if (typeof max === 'undefined') {
|
|
15
|
+
n = min;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
n = min + Math.floor(Math.random() * (max - min));
|
|
19
|
+
}
|
|
20
|
+
for (var i = 0; i < n; i++) {
|
|
21
|
+
chars += this.charAt(Math.floor(Math.random() * this.length));
|
|
22
|
+
}
|
|
23
|
+
return chars;
|
|
24
|
+
};
|
|
25
|
+
// Credit to @Christoph: http://stackoverflow.com/a/962890/464744
|
|
26
|
+
String.prototype.shuffle = function () {
|
|
27
|
+
var array = this.split('');
|
|
28
|
+
var tmp, current, top = array.length;
|
|
29
|
+
if (top)
|
|
30
|
+
while (--top) {
|
|
31
|
+
current = Math.floor(Math.random() * (top + 1));
|
|
32
|
+
tmp = array[current];
|
|
33
|
+
array[current] = array[top];
|
|
34
|
+
array[top] = tmp;
|
|
35
|
+
}
|
|
36
|
+
return array.join('');
|
|
37
|
+
};
|
|
38
|
+
String.prototype.toSeoUrl = function () {
|
|
39
|
+
var output = this.replace(/[^a-zA-Z0-9]/g, ' ').replace(/\s+/g, "-").toLowerCase();
|
|
40
|
+
/* remove first dash */
|
|
41
|
+
if (output.charAt(0) === '-')
|
|
42
|
+
output = output.substring(1);
|
|
43
|
+
/* remove last dash */
|
|
44
|
+
var last = output.length - 1;
|
|
45
|
+
if (output.charAt(last) === '-')
|
|
46
|
+
output = output.substring(0, last);
|
|
47
|
+
return output;
|
|
48
|
+
};
|
|
49
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export * from './interfaces/KeyValue';
|
|
2
|
+
export * from './models/Content';
|
|
3
|
+
export * from './models/Property';
|
|
4
|
+
export * from './models/Users';
|
|
5
|
+
export * from './core/Alerts';
|
|
6
|
+
export * from './core/BaseSite';
|
|
7
|
+
export * from './core/ColorPicker';
|
|
8
|
+
export * from './core/DataList';
|
|
9
|
+
export * from './core/Editors';
|
|
10
|
+
export * from './core/Handlers';
|
|
11
|
+
export * from './core/HoodApi';
|
|
12
|
+
export * from './core/Inline';
|
|
13
|
+
export * from './core/Loader';
|
|
14
|
+
export * from './core/Media';
|
|
15
|
+
export * from './core/Modal';
|
|
16
|
+
export * from './core/RandomStringGenerator';
|
|
17
|
+
export * from './core/Response';
|
|
18
|
+
export * from './core/Uploader';
|
|
19
|
+
export * from './core/Validator';
|
|
20
|
+
export * from './extensions/jqueryExtensions';
|
|
21
|
+
export * from './extensions/numberExtensions';
|
|
22
|
+
export * from './extensions/stringExtensions';
|
package/dist/js/index.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export * from './interfaces/KeyValue';
|
|
2
|
+
export * from './models/Content';
|
|
3
|
+
export * from './models/Property';
|
|
4
|
+
export * from './models/Users';
|
|
5
|
+
export * from './core/Alerts';
|
|
6
|
+
export * from './core/BaseSite';
|
|
7
|
+
export * from './core/ColorPicker';
|
|
8
|
+
export * from './core/DataList';
|
|
9
|
+
export * from './core/Editors';
|
|
10
|
+
export * from './core/Handlers';
|
|
11
|
+
export * from './core/HoodApi';
|
|
12
|
+
export * from './core/Inline';
|
|
13
|
+
export * from './core/Loader';
|
|
14
|
+
export * from './core/Media';
|
|
15
|
+
export * from './core/Modal';
|
|
16
|
+
export * from './core/RandomStringGenerator';
|
|
17
|
+
export * from './core/Response';
|
|
18
|
+
export * from './core/Uploader';
|
|
19
|
+
export * from './core/Validator';
|
|
20
|
+
export * from './extensions/jqueryExtensions';
|
|
21
|
+
export * from './extensions/numberExtensions';
|
|
22
|
+
export * from './extensions/stringExtensions';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/js/login.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* hoodcms v5.0.9
|
|
3
|
+
* A fully customisable content management system built in ASP.NET Core 5 & Bootstrap 5.
|
|
4
|
+
* Written by George Whysall, 2021
|
|
5
|
+
* Released under the GPL-3.0 License.
|
|
6
|
+
*/
|
|
7
|
+
(function(f){typeof define==='function'&&define.amd?define(f):f();})((function(){'use strict';var Login=function(){function e(){this.loadBackground();}return e.prototype.loginPage=function(){},e.prototype.loadBackground=function(){$("#image-container").length>0&&$.get($("#image-container").data("imageUrl"),this.renderImage.bind(this));},e.prototype.renderImage=function(e){"string"==typeof e?($("#image-container").css({"background-image":"url(".concat(e,")")}),$("#image-credit").hide()):e.length>0?($("#image-container").attr("title",e[0].description),$("#image-container").css({"background-image":"url(".concat(e[0].urls.regular,")")}),$("#image-credit").html("Image by <a href='".concat(e[0].user.links.html,"?utm_source=Hood%20CMS&utm_medium=referral'>").concat(e[0].user.name,"</a> on <a href='https://unsplash.com/?utm_source=Hood%20CMS&utm_medium=referral'>Unsplash</a>"))):$("#image-credit").hide();},e}();new Login;}));
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { KeyValue } from "../interfaces/KeyValue";
|
|
2
|
+
export declare interface ContentStatistics {
|
|
3
|
+
totalPosts: number;
|
|
4
|
+
totalPublished: number;
|
|
5
|
+
days: KeyValue<string, number>[];
|
|
6
|
+
months: KeyValue<string, number>[];
|
|
7
|
+
publishDays: KeyValue<string, number>[];
|
|
8
|
+
publishMonths: KeyValue<string, number>[];
|
|
9
|
+
byType: ContentTypeStatistic[];
|
|
10
|
+
}
|
|
11
|
+
export declare interface ContentTypeStatistic {
|
|
12
|
+
type: ContentType;
|
|
13
|
+
total: number;
|
|
14
|
+
name: string;
|
|
15
|
+
}
|
|
16
|
+
export declare interface ContentType {
|
|
17
|
+
baseName: string;
|
|
18
|
+
cachedByType: boolean;
|
|
19
|
+
customFields: any;
|
|
20
|
+
customFieldsJson: string;
|
|
21
|
+
description: string;
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
excerptName: string;
|
|
24
|
+
gallery: boolean;
|
|
25
|
+
hasPage: boolean;
|
|
26
|
+
hideAuthor: boolean;
|
|
27
|
+
icon: string;
|
|
28
|
+
isPublic: boolean;
|
|
29
|
+
isUnknown: boolean;
|
|
30
|
+
metaTitle: string;
|
|
31
|
+
multiLineExcerpt: boolean;
|
|
32
|
+
noImage: string;
|
|
33
|
+
richTextExcerpt: boolean;
|
|
34
|
+
search: string;
|
|
35
|
+
showBanner: boolean;
|
|
36
|
+
showCategories: boolean;
|
|
37
|
+
showDesigner: boolean;
|
|
38
|
+
showEditor: boolean;
|
|
39
|
+
showImage: boolean;
|
|
40
|
+
showPreview: boolean;
|
|
41
|
+
slug: string;
|
|
42
|
+
templateFolder: string;
|
|
43
|
+
templates: boolean;
|
|
44
|
+
title: string;
|
|
45
|
+
titleName: string;
|
|
46
|
+
type: string;
|
|
47
|
+
typeName: string;
|
|
48
|
+
typeNamePlural: string;
|
|
49
|
+
urlFormatting: string;
|
|
50
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { KeyValue } from "../interfaces/KeyValue";
|
|
2
|
+
export declare class PropertyStatistics {
|
|
3
|
+
totalProperties: number;
|
|
4
|
+
totalPublished: number;
|
|
5
|
+
days: KeyValue<string, number>[];
|
|
6
|
+
months: KeyValue<string, number>[];
|
|
7
|
+
publishDays: KeyValue<string, number>[];
|
|
8
|
+
publishMonths: KeyValue<string, number>[];
|
|
9
|
+
}
|
package/images/arrow.jpg
ADDED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 251.6 216"><path d="M139.8.1v86.7h44V.1h67.8v216h-67.8v-74h-44.1v74H108v-18H90v-18H72v-162h18V.1m-36 198H36v-18h18v18zm-36 18H0v-18h18v18zm45-198H45V.1h18v18zm18 198H63v-18h18v18z"/></svg>
|
|
File without changes
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1006 216"><path d="M139.8.1v86.7h44V.1h67.8v216h-67.8v-74h-44.1v74H108v-18H90v-18H72v-162h18V.1m-36 198H36v-18h18v18zm-36 18H0v-18h18v18zm45-198H45V.1h18v18zm18 198H63v-18h18v18zm286.9 0c-64.2 0-107.1-42.5-107.1-107.3C260.8 43.3 303.6-.1 367.9-.1 432.1-.1 475 43.3 475 108.8c.1 64.8-42.7 107.3-107.1 107.3zm0-155.3c-24.7 0-41.3 19.3-41.3 48s16.6 48 41.3 48c24.7 0 41.3-19.3 41.3-48 .2-28.7-16.4-48-41.3-48zm225 155.3c-64.2 0-107.1-42.5-107.1-107.3C485.8 43.3 528.6-.1 592.9-.1 657.1-.1 700 43.3 700 108.8c.1 64.8-42.7 107.3-107.1 107.3zm0-155.3c-24.7 0-41.3 19.3-41.3 48s16.6 48 41.3 48 41.3-19.3 41.3-48c.2-28.7-16.4-48-41.3-48zM788.1.1C854.7.1 899 43.1 899 108.5c0 64.7-44.3 107.6-110.9 107.6h-77.3V.1h77.3zm3.8 160.2c24.2 0 40.5-20.7 40.5-51.8s-16.3-51.8-40.5-51.8h-16.3v103.6h16.3z"/><path d="M935.4 62.8c-.8.3-1.5-.1-1.9-1-3.9-6.3-6.3-14.7-6.3-22.7C927.2 16.9 942.7 2 966 2s38.8 14.9 38.8 37.1c0 8-2.4 16.4-6.3 22.7-.4.9-1.2 1.3-1.9 1l-15-7.1c-1-.4-1.3-1.2-.9-2 2.3-4 3-7.9 3-12.5 0-9.7-7.1-16.2-17.8-16.2s-17.8 6.5-17.8 16.2c0 4.6.8 8.5 3 12.5.4.9.1 1.6-.9 2l-14.8 7.1zm67.9 89.9c0 .9-.8 1.5-1.6 1.5h-71.3c-.8 0-1.5-.6-1.5-1.5v-20c0-.9.8-1.6 1.5-1.6h31.7l-31.6-10.9c-.9-.3-1.6-1.7-1.6-2.7v-11.9c0-1 .8-2.4 1.6-2.7L962.1 92h-31.7c-.8 0-1.5-.8-1.5-1.6v-20c0-.9.8-1.5 1.5-1.5h71.3c.9 0 1.6.6 1.6 1.5V93c0 1.4-1 3-2.2 3.7l-41.2 14.9 41.2 14.9c1.2.6 2.2 2.3 2.2 3.7v22.5zm-51.8 15.2c1.1.3 1.4 1.1.9 1.9-2.8 5-4.9 10.9-5.2 15 0 3.5 1.6 5.7 4.1 5.7 6.4 0 6-30.3 29.6-30.3 14.5 0 24.1 10.9 24.1 27.3 0 7.7-3.1 17.4-7.8 24.2-.5.9-1.4 1.2-1.9.9l-15.2-6.8c-1.1-.3-1.4-1.1-.9-1.9 3-5.3 5.3-11.4 5.6-15.2 0-3.3-1.5-5.5-3.9-5.5-6.4 0-5.9 30.5-29.7 30.5-14.3 0-23.9-11.1-23.9-27.7 0-9.1 2.8-18.6 7.1-23.9.6-.9 1.4-1.2 1.9-.9l15.2 6.7z" fill="#eab92d"/></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1006 216"><path d="M139.8.1v86.7h44V.1h67.8v216h-67.8v-74h-44.1v74H108v-18H90v-18H72v-162h18V.1m-36 198H36v-18h18v18zm-36 18H0v-18h18v18zm45-198H45V.1h18v18zm18 198H63v-18h18v18zm286.9 0c-64.2 0-107.1-42.5-107.1-107.3C260.8 43.3 303.6-.1 367.9-.1 432.1-.1 475 43.3 475 108.8c.1 64.8-42.7 107.3-107.1 107.3zm0-155.3c-24.7 0-41.3 19.3-41.3 48s16.6 48 41.3 48c24.7 0 41.3-19.3 41.3-48 .2-28.7-16.4-48-41.3-48zm225 155.3c-64.2 0-107.1-42.5-107.1-107.3C485.8 43.3 528.6-.1 592.9-.1 657.1-.1 700 43.3 700 108.8c.1 64.8-42.7 107.3-107.1 107.3zm0-155.3c-24.7 0-41.3 19.3-41.3 48s16.6 48 41.3 48 41.3-19.3 41.3-48c.2-28.7-16.4-48-41.3-48zM788.1.1C854.7.1 899 43.1 899 108.5c0 64.7-44.3 107.6-110.9 107.6h-77.3V.1h77.3zm3.8 160.2c24.2 0 40.5-20.7 40.5-51.8s-16.3-51.8-40.5-51.8h-16.3v103.6h16.3z" fill="#fff"/><path d="M935.4 62.8c-.8.3-1.5-.1-1.9-1-3.9-6.3-6.3-14.7-6.3-22.7C927.2 16.9 942.7 2 966 2s38.8 14.9 38.8 37.1c0 8-2.4 16.4-6.3 22.7-.4.9-1.2 1.3-1.9 1l-15-7.1c-1-.4-1.3-1.2-.9-2 2.3-4 3-7.9 3-12.5 0-9.7-7.1-16.2-17.8-16.2s-17.8 6.5-17.8 16.2c0 4.6.8 8.5 3 12.5.4.9.1 1.6-.9 2l-14.8 7.1zm67.9 89.9c0 .9-.8 1.5-1.6 1.5h-71.3c-.8 0-1.5-.6-1.5-1.5v-20c0-.9.8-1.6 1.5-1.6h31.7l-31.6-10.9c-.9-.3-1.6-1.7-1.6-2.7v-11.9c0-1 .8-2.4 1.6-2.7L962.1 92h-31.7c-.8 0-1.5-.8-1.5-1.6v-20c0-.9.8-1.5 1.5-1.5h71.3c.9 0 1.6.6 1.6 1.5V93c0 1.4-1 3-2.2 3.7l-41.2 14.9 41.2 14.9c1.2.6 2.2 2.3 2.2 3.7v22.5zm-51.8 15.2c1.1.3 1.4 1.1.9 1.9-2.8 5-4.9 10.9-5.2 15 0 3.5 1.6 5.7 4.1 5.7 6.4 0 6-30.3 29.6-30.3 14.5 0 24.1 10.9 24.1 27.3 0 7.7-3.1 17.4-7.8 24.2-.5.9-1.4 1.2-1.9.9l-15.2-6.8c-1.1-.3-1.4-1.1-.9-1.9 3-5.3 5.3-11.4 5.6-15.2 0-3.3-1.5-5.5-3.9-5.5-6.4 0-5.9 30.5-29.7 30.5-14.3 0-23.9-11.1-23.9-27.7 0-9.1 2.8-18.6 7.1-23.9.6-.9 1.4-1.2 1.9-.9l15.2 6.7z" fill="#eab92d"/></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 927 216"><path d="M140.706.206l.002 4.711v81.977h43.973V4.917c0-2.512.015-4.545.015-4.711h67.828v216h-67.842v-74.032h-44.107v74.032h-31.711v-18h-18v-18h-18v-162h18v-18m-36.002 198h-18v-18h18v18zm-36 18h-18v-18h18v18zm45-198h-18v-18h18v18zm18 198h-18v-18h18v18zm287.077 0c-64.246 0-107.077-42.47-107.077-107.319C261.862 43.434 304.693 0 368.939 0s107.077 43.434 107.077 108.887c0 64.849-42.831 107.319-107.077 107.319zm0-155.278c-24.733 0-41.322 19.304-41.322 47.959 0 28.654 16.589 47.958 41.322 47.958s41.323-19.304 41.323-47.958c0-28.655-16.59-47.959-41.323-47.959zm225 155.278c-64.246 0-107.077-42.47-107.077-107.319C486.862 43.434 529.693 0 593.939 0s107.077 43.434 107.077 108.887c0 64.849-42.831 107.319-107.077 107.319zm0-155.278c-24.733 0-41.322 19.304-41.322 47.959 0 28.654 16.589 47.958 41.322 47.958s41.323-19.304 41.323-47.958c0-28.655-16.59-47.959-41.323-47.959zM789.127.206C855.714.206 900 43.236 900 108.567c0 64.702-44.286 107.64-110.873 107.64h-77.265V.206h77.265zm3.77 160.185c24.184 0 40.517-20.73 40.517-51.824 0-31.095-16.333-51.825-40.517-51.825h-16.333v103.649h16.333z" stroke="#000" stroke-miterlimit="10"/></svg>
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 899 216"><path d="M139.8.1v86.7h44V.1h67.8v216h-67.8v-74h-44.1v74H108v-18H90v-18H72v-162h18V.1m-36 198H36v-18h18v18zm-36 18H0v-18h18v18zm45-198H45V.1h18v18zm18 198H63v-18h18v18zm286.9 0c-64.2 0-107.1-42.5-107.1-107.3C260.8 43.3 303.6-.1 367.9-.1 432.1-.1 475 43.3 475 108.8c.1 64.8-42.7 107.3-107.1 107.3zm0-155.3c-24.7 0-41.3 19.3-41.3 48s16.6 48 41.3 48c24.7 0 41.3-19.3 41.3-48 .2-28.7-16.4-48-41.3-48zm225 155.3c-64.2 0-107.1-42.5-107.1-107.3C485.8 43.3 528.6-.1 592.9-.1 657.1-.1 700 43.3 700 108.8c.1 64.8-42.7 107.3-107.1 107.3zm0-155.3c-24.7 0-41.3 19.3-41.3 48s16.6 48 41.3 48 41.3-19.3 41.3-48c.2-28.7-16.4-48-41.3-48zM788.1.1C854.7.1 899 43.1 899 108.5c0 64.7-44.3 107.6-110.9 107.6h-77.3V.1h77.3zm3.8 160.2c24.2 0 40.5-20.7 40.5-51.8s-16.3-51.8-40.5-51.8h-16.3v103.6h16.3z" fill="#fff"/></svg>
|
package/images/hood.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="771 312.9 916.6 216"><path d="M921.8 313v86.7h44V313h67.8v216h-67.8v-74h-44.1v74H890v-18h-18v-18h-18V331h18v-18m-36 198h-18v-18h18v18zm-36 18h-18v-18h18v18zm45-198h-18v-18h18v18zm18 198h-18v-18h18v18zm286.9 0c-64.2 0-107.1-42.5-107.1-107.3 0-65.5 42.8-108.9 107.1-108.9 64.2 0 107.1 43.4 107.1 108.9.1 64.8-42.7 107.3-107.1 107.3zm0-155.3c-24.7 0-41.3 19.3-41.3 48s16.6 48 41.3 48 41.3-19.3 41.3-48c.2-28.7-16.4-48-41.3-48zm225 155.3c-64.2 0-107.1-42.5-107.1-107.3 0-65.5 42.8-108.9 107.1-108.9 64.2 0 107.1 43.4 107.1 108.9.1 64.8-42.7 107.3-107.1 107.3zm0-155.3c-24.7 0-41.3 19.3-41.3 48s16.6 48 41.3 48 41.3-19.3 41.3-48c.2-28.7-16.4-48-41.3-48zm195.2-60.7c66.6 0 110.9 43 110.9 108.4 0 64.7-44.3 107.6-110.9 107.6h-77.3V313h77.3zm3.8 160.2c24.2 0 40.5-20.7 40.5-51.8s-16.3-51.8-40.5-51.8h-16.3v103.6h16.3z" stroke="#000000,stroke-miterlimit:10,"/></svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid" class="lds-eclipse" style="background:0 0"><path d="M49.028 91a40 40 0 00-.056-80 42 40-.04 01.056 80"><animateTransform attributeName="transform" type="rotate" calcMode="linear" values="0 50 51;360 50 51" keyTimes="0;1" dur="1s" begin="0s" repeatCount="indefinite"/></path></svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|