qumra-engine 2.0.2 → 2.0.4
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/dist/addFilter.d.ts +1 -0
- package/dist/extensions/index.d.ts +7 -0
- package/dist/extensions/index.js +20 -0
- package/dist/extensions/logic/content copy.d.ts +7 -0
- package/dist/extensions/logic/content copy.js +32 -0
- package/dist/extensions/logic/content.d.ts +10 -0
- package/dist/extensions/logic/content.js +74 -0
- package/dist/extensions/logic/footer copy.d.ts +10 -0
- package/dist/extensions/logic/footer copy.js +43 -0
- package/dist/extensions/logic/footer.d.ts +10 -0
- package/dist/extensions/logic/footer.js +51 -0
- package/dist/extensions/logic/form.d.ts +8 -0
- package/dist/extensions/logic/form.js +41 -0
- package/dist/extensions/logic/header copy.d.ts +10 -0
- package/dist/extensions/logic/header copy.js +33 -0
- package/dist/extensions/logic/header.d.ts +10 -0
- package/dist/extensions/logic/header.js +51 -0
- package/dist/extensions/logic/qumra-head.d.ts +7 -0
- package/dist/extensions/logic/qumra-head.js +34 -0
- package/dist/extensions/logic/schema.d.ts +6 -0
- package/dist/extensions/logic/schema.js +26 -0
- package/dist/extensions/logic/schemaExtension.d.ts +0 -0
- package/dist/extensions/logic/schemaExtension.js +1 -0
- package/dist/extensions/logic/seo copy.d.ts +7 -0
- package/dist/extensions/logic/seo copy.js +32 -0
- package/dist/extensions/logic/seo.d.ts +7 -0
- package/dist/extensions/logic/seo.js +32 -0
- package/dist/extensions/logic/t.d.ts +1 -0
- package/dist/extensions/logic/t.js +10 -0
- package/dist/extensions/logic/widget copy.d.ts +10 -0
- package/dist/extensions/logic/widget copy.js +33 -0
- package/dist/extensions/logic/widget.d.ts +10 -0
- package/dist/extensions/logic/widget.js +47 -0
- package/dist/extensions/logic/widgets copy.d.ts +10 -0
- package/dist/extensions/logic/widgets copy.js +33 -0
- package/dist/extensions/logic/widgets.d.ts +10 -0
- package/dist/extensions/logic/widgets.js +33 -0
- package/dist/extensions/registerAllExtensions.d.ts +2 -0
- package/dist/extensions/registerAllExtensions.js +50 -0
- package/dist/extensions/registerAllGlobals.d.ts +2 -0
- package/dist/extensions/registerAllGlobals.js +47 -0
- package/dist/filters/addFilter.d.ts +1 -0
- package/dist/filters/capitalize.d.ts +1 -0
- package/dist/filters/discountLabel.d.ts +1 -0
- package/dist/filters/formatDate.d.ts +1 -0
- package/dist/filters/formatMoney.d.ts +1 -0
- package/dist/filters/index.d.ts +22 -0
- package/dist/filters/index.js +43 -9
- package/dist/filters/logic/array/compact.d.ts +1 -0
- package/dist/filters/logic/array/compact.js +6 -0
- package/dist/filters/logic/array/concat.d.ts +1 -0
- package/dist/filters/logic/array/concat.js +6 -0
- package/dist/filters/logic/array/find.d.ts +1 -0
- package/dist/filters/logic/array/find.js +8 -0
- package/dist/filters/logic/array/first.d.ts +1 -0
- package/dist/filters/logic/array/first.js +6 -0
- package/dist/filters/logic/array/join.d.ts +1 -0
- package/dist/filters/logic/array/join.js +8 -0
- package/dist/filters/logic/array/last.d.ts +1 -0
- package/dist/filters/logic/array/last.js +8 -0
- package/dist/filters/logic/array/size.d.ts +1 -0
- package/dist/filters/logic/array/size.js +12 -0
- package/dist/filters/logic/array/split.d.ts +1 -0
- package/dist/filters/logic/array/split.js +6 -0
- package/dist/filters/logic/array/where.d.ts +1 -0
- package/dist/filters/logic/array/where.js +8 -0
- package/dist/filters/logic/capitalize.d.ts +1 -0
- package/dist/filters/logic/color_to_hex.d.ts +1 -0
- package/dist/filters/logic/color_to_hex.js +15 -0
- package/dist/filters/logic/colors/color_to_hex.d.ts +1 -0
- package/dist/filters/logic/colors/color_to_hex.js +15 -0
- package/dist/filters/logic/component.d.ts +2 -0
- package/dist/filters/logic/data/formatDate.d.ts +1 -0
- package/dist/filters/logic/data/formatDate.js +7 -0
- package/dist/filters/logic/discountLabel.d.ts +1 -0
- package/dist/filters/logic/first.d.ts +1 -0
- package/dist/filters/logic/first.js +6 -0
- package/dist/filters/logic/formatDate.d.ts +1 -0
- package/dist/filters/logic/formatDate.js +4 -6
- package/dist/filters/logic/formatMoney.d.ts +1 -0
- package/dist/filters/logic/json/json.d.ts +2 -0
- package/dist/filters/logic/json/json.js +15 -0
- package/dist/filters/logic/json.d.ts +2 -0
- package/dist/filters/logic/json.js +15 -0
- package/dist/filters/logic/money/discountLabel.d.ts +1 -0
- package/dist/filters/logic/money/discountLabel.js +8 -0
- package/dist/filters/logic/money/money_with_currency.d.ts +1 -0
- package/dist/filters/logic/money/money_with_currency.js +8 -0
- package/dist/filters/logic/money/money_without_trailing_zeros.d.ts +1 -0
- package/dist/filters/logic/money/money_without_trailing_zeros.js +8 -0
- package/dist/filters/logic/money_with_currency.d.ts +1 -0
- package/dist/filters/logic/money_with_currency.js +8 -0
- package/dist/filters/logic/money_without_trailing_zeros.d.ts +1 -0
- package/dist/filters/logic/money_without_trailing_zeros.js +8 -0
- package/dist/filters/logic/split.d.ts +1 -0
- package/dist/filters/logic/split.js +6 -0
- package/dist/filters/logic/strings/capitalize.d.ts +1 -0
- package/dist/filters/logic/strings/capitalize.js +8 -0
- package/dist/filters/logic/strings/downcase.d.ts +1 -0
- package/dist/filters/logic/strings/downcase.js +6 -0
- package/dist/filters/logic/strings/remove.d.ts +1 -0
- package/dist/filters/logic/strings/remove.js +8 -0
- package/dist/filters/logic/strings/split.d.ts +1 -0
- package/dist/filters/logic/strings/split.js +6 -0
- package/dist/filters/logic/strings/strip.d.ts +1 -0
- package/dist/filters/logic/strings/strip.js +6 -0
- package/dist/filters/logic/strings/truncate.d.ts +1 -0
- package/dist/filters/logic/strings/truncate.js +10 -0
- package/dist/filters/logic/strings/upcase.d.ts +1 -0
- package/dist/filters/logic/strings/upcase.js +8 -0
- package/dist/filters/logic/urls/assets.d.ts +1 -0
- package/dist/filters/logic/urls/assets.js +6 -0
- package/dist/filters/logic/urls/capitalize.d.ts +1 -0
- package/dist/filters/logic/urls/capitalize.js +8 -0
- package/dist/filters/registerAllFilters.d.ts +2 -0
- package/dist/globals/index.d.ts +1 -0
- package/dist/globals/index.js +8 -0
- package/dist/globals/logic/capitalize.d.ts +1 -0
- package/dist/globals/logic/capitalize.js +8 -0
- package/dist/globals/logic/component.d.ts +2 -0
- package/dist/globals/logic/component.js +6 -0
- package/dist/globals/logic/discountLabel.d.ts +1 -0
- package/dist/globals/logic/discountLabel.js +8 -0
- package/dist/globals/logic/formatDate.d.ts +1 -0
- package/dist/globals/logic/formatDate.js +9 -0
- package/dist/globals/logic/formatMoney.d.ts +1 -0
- package/dist/globals/logic/formatMoney.js +8 -0
- package/dist/globals/logic/t.d.ts +1 -0
- package/dist/globals/logic/t.js +10 -0
- package/dist/globals/registerAllFilters.d.ts +2 -0
- package/dist/globals/registerAllFilters.js +47 -0
- package/dist/globals/registerAllGlobals.d.ts +2 -0
- package/dist/globals/registerAllGlobals.js +47 -0
- package/dist/globals copy/index.d.ts +1 -0
- package/dist/globals copy/index.js +8 -0
- package/dist/globals copy/logic/t.d.ts +1 -0
- package/dist/globals copy/logic/t.js +10 -0
- package/dist/globals copy/registerAllGlobals.d.ts +2 -0
- package/dist/globals copy/registerAllGlobals.js +47 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -1
- package/dist/middleware/extension.middleware.d.ts +2 -0
- package/dist/middleware/extension.middleware.js +12 -0
- package/dist/middleware/extensions.middleware.d.ts +2 -0
- package/dist/middleware/extensions.middleware.js +12 -0
- package/dist/middleware/filters.middleware copy.d.ts +2 -0
- package/dist/middleware/filters.middleware copy.js +12 -0
- package/dist/middleware/filters.middleware.d.ts +2 -0
- package/dist/middleware/filters.middleware.js +12 -0
- package/dist/middleware/globals.middleware copy.d.ts +2 -0
- package/dist/middleware/globals.middleware copy.js +12 -0
- package/dist/middleware/globals.middleware.d.ts +2 -0
- package/dist/middleware/globals.middleware.js +12 -0
- package/dist/middleware/init.middleware.d.ts +9 -0
- package/dist/middleware/init.middleware.js +23 -0
- package/dist/middleware/initPaths.middleware.d.ts +2 -0
- package/dist/middleware/initPaths.middleware.js +28 -0
- package/dist/middleware/locals.middleware.d.ts +2 -0
- package/dist/middleware/locals.middleware.js +29 -0
- package/dist/middleware/mergeData.middleware.d.ts +2 -0
- package/dist/middleware/mergeData.middleware.js +55 -0
- package/dist/middleware/nunjucks.d.ts +2 -0
- package/dist/middleware/nunjucks.js +22 -0
- package/dist/middleware/nunjucks.middleware copy.d.ts +2 -0
- package/dist/middleware/nunjucks.middleware copy.js +26 -0
- package/dist/middleware/nunjucks.middleware.d.ts +2 -0
- package/dist/middleware/nunjucks.middleware.js +36 -0
- package/dist/middleware/nunjucksFilters.middleware.d.ts +2 -0
- package/dist/middleware/nunjucksFilters.middleware.js +12 -0
- package/dist/middleware/prepareData.d.ts +2 -0
- package/dist/middleware/prepareData.js +46 -0
- package/dist/middleware/prepareData.middleware copy.d.ts +2 -0
- package/dist/middleware/prepareData.middleware copy.js +49 -0
- package/dist/middleware/prepareData.middleware.d.ts +2 -0
- package/dist/middleware/prepareData.middleware.js +49 -0
- package/dist/middleware/prepareDataMiddleware.d.ts +2 -0
- package/dist/middleware/prepareDataMiddleware.js +46 -0
- package/dist/middleware/render.d.ts +2 -0
- package/dist/middleware/render.js +24 -0
- package/dist/middleware/render.middleware copy.d.ts +2 -0
- package/dist/middleware/render.middleware copy.js +39 -0
- package/dist/middleware/render.middleware.d.ts +2 -0
- package/dist/middleware/render.middleware.js +24 -0
- package/dist/middleware/serve-assets.middleware.d.ts +2 -0
- package/dist/middleware/serve-assets.middleware.js +6 -0
- package/dist/middleware.d.ts +8 -0
- package/dist/middleware.js +53 -8
- package/dist/middlewares/errorHandler.d.ts +8 -0
- package/dist/middlewares/pathMiddleware.d.ts +2 -0
- package/dist/middlewares/prepareDataMiddleware.d.ts +2 -0
- package/dist/middlewares/themeMiddleware.d.ts +2 -0
- package/dist/nunjucksEnv.d.ts +6 -0
- package/dist/nunjucksEnv.js +0 -2
- package/dist/registerAllFilters.d.ts +2 -0
- package/dist/render.d.ts +1 -0
- package/dist/services/getRenderData.d.ts +3 -0
- package/dist/services/prepareData.d.ts +2 -0
- package/dist/services/prepareData.js +34 -20
- package/dist/services/prepareDataMiddleware.d.ts +2 -0
- package/dist/services/renderHandler.d.ts +2 -0
- package/dist/services/renderHandler.js +27 -25
- package/dist/store/globals.d.ts +2 -0
- package/dist/store/globals.js +12 -0
- package/dist/store/locals.d.ts +2 -0
- package/dist/store/locals.js +12 -0
- package/dist/types/sharedTypes.d.ts +26 -0
- package/dist/utils/asyncHandler.d.ts +0 -0
- package/dist/utils/asyncHandler.js +1 -0
- package/dist/utils/findAvailablePort.d.ts +1 -0
- package/dist/utils/findAvailablePort.js +28 -0
- package/dist/utils/getLocalData.d.ts +4 -0
- package/dist/utils/getLocalData.js +21 -0
- package/dist/utils/getLocalFooterData copy.d.ts +4 -0
- package/dist/utils/getLocalFooterData copy.js +22 -0
- package/dist/utils/getLocalFooterData.d.ts +4 -0
- package/dist/utils/getLocalFooterData.js +22 -0
- package/dist/utils/getLocalHeaderData.d.ts +4 -0
- package/dist/utils/getLocalHeaderData.js +22 -0
- package/dist/utils/getLocalWidgetData copy.d.ts +4 -0
- package/dist/utils/getLocalWidgetData copy.js +22 -0
- package/dist/utils/getLocalWidgetData.d.ts +4 -0
- package/dist/utils/getLocalWidgetData.js +22 -0
- package/dist/utils/getNestedValue.d.ts +1 -0
- package/dist/utils/getNestedValue.js +7 -0
- package/dist/utils/isPathAllowedToRender.d.ts +1 -0
- package/dist/utils/isPathAllowedToRender.js +8 -0
- package/dist/utils/logger.d.ts +5 -0
- package/dist/utils/mergeNestedSchemaWithData.d.ts +16 -0
- package/dist/utils/mergeNestedSchemaWithData.js +34 -0
- package/dist/utils/mergeObjects.d.ts +1 -0
- package/dist/utils/mergeObjects.js +28 -0
- package/dist/utils/mergeSchemaWithData.d.ts +14 -0
- package/dist/utils/mergeSchemaWithData.js +11 -0
- package/dist/utils/mergeWidgetSources.d.ts +1 -0
- package/dist/utils/mergeWidgetSources.js +21 -0
- package/dist/utils/normalizeWidgetPath.d.ts +1 -0
- package/dist/utils/normalizeWidgetPath.js +19 -0
- package/dist/utils/parseUrl.d.ts +2 -0
- package/dist/utils/parseUrl.js +46 -0
- package/dist/utils/render.d.ts +2 -0
- package/dist/utils/render.js +21 -20
- package/dist/utils/resolveTranslations.d.ts +1 -0
- package/dist/utils/resolveTranslations.js +21 -0
- package/package.json +5 -3
- package/todo.txt +1 -0
- package/views/home.njk +0 -15
|
@@ -0,0 +1,33 @@
|
|
|
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 nunjucks_1 = __importDefault(require("nunjucks"));
|
|
7
|
+
const normalizeWidgetPath_1 = require("../../utils/normalizeWidgetPath");
|
|
8
|
+
exports.default = new (class WidgetExtension {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.tags = ["widget"];
|
|
11
|
+
}
|
|
12
|
+
parse(parser, nodes) {
|
|
13
|
+
const tok = parser.nextToken();
|
|
14
|
+
const args = parser.parseSignature(true, true);
|
|
15
|
+
parser.advanceAfterBlockEnd(tok.value);
|
|
16
|
+
return new nodes.CallExtension(this, "run", args);
|
|
17
|
+
}
|
|
18
|
+
run({ ctx, env }, widgetPath) {
|
|
19
|
+
const widget = (0, normalizeWidgetPath_1.normalizeWidgetPath)(widgetPath);
|
|
20
|
+
try {
|
|
21
|
+
console.log("🚀 ~ WidgetExtension ~ run ~ ctx:", env.getGlobal("pageRenderData"));
|
|
22
|
+
const rendered = env.render(widget, ctx);
|
|
23
|
+
return new nunjucks_1.default.runtime.SafeString(rendered);
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
return new nunjucks_1.default.runtime.SafeString(`
|
|
27
|
+
<div style="padding: 12px; background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; border-radius: 4px; margin: 8px 0;">
|
|
28
|
+
⚠️ <strong>تعذر تضمين الويجيت:</strong> ${widget}
|
|
29
|
+
</div>
|
|
30
|
+
`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
})();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import nunjucks from "nunjucks";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
tags: string[];
|
|
4
|
+
parse(parser: any, nodes: any): any;
|
|
5
|
+
run({ ctx, env }: {
|
|
6
|
+
ctx: any;
|
|
7
|
+
env: nunjucks.Environment;
|
|
8
|
+
}, widgetPath: string): nunjucks.runtime.SafeString;
|
|
9
|
+
};
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,47 @@
|
|
|
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 nunjucks_1 = __importDefault(require("nunjucks"));
|
|
7
|
+
const normalizeWidgetPath_1 = require("../../utils/normalizeWidgetPath");
|
|
8
|
+
const resolveTranslations_1 = require("../../utils/resolveTranslations");
|
|
9
|
+
exports.default = new (class WidgetExtension {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.tags = ["widget"];
|
|
12
|
+
}
|
|
13
|
+
parse(parser, nodes) {
|
|
14
|
+
const tok = parser.nextToken();
|
|
15
|
+
const args = parser.parseSignature(true, true);
|
|
16
|
+
parser.advanceAfterBlockEnd(tok.value);
|
|
17
|
+
return new nodes.CallExtension(this, "run", args);
|
|
18
|
+
}
|
|
19
|
+
run({ ctx, env }, widgetPath) {
|
|
20
|
+
if (["footer", "header"].includes(widgetPath)) {
|
|
21
|
+
return new nunjucks_1.default.runtime.SafeString(`
|
|
22
|
+
<div style="padding: 12px; background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; border-radius: 4px; margin: 8px 0;">
|
|
23
|
+
⚠️ <strong>لا يمكن تضمين ${widgetPath} بشكل مباشر:</strong>
|
|
24
|
+
</div>
|
|
25
|
+
`);
|
|
26
|
+
}
|
|
27
|
+
const widget = (0, normalizeWidgetPath_1.normalizeWidgetPath)(widgetPath);
|
|
28
|
+
if (!widget) {
|
|
29
|
+
return new nunjucks_1.default.runtime.SafeString(`
|
|
30
|
+
<div style="padding: 12px; background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; border-radius: 4px; margin: 8px 0;">
|
|
31
|
+
⚠️ <strong>مسار الويجيت غير صالح:</strong> ${widgetPath}
|
|
32
|
+
</div>
|
|
33
|
+
`);
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const rendered = env.render(widget, (0, resolveTranslations_1.resolveTranslations)(ctx, env.getGlobal("t")));
|
|
37
|
+
return new nunjucks_1.default.runtime.SafeString(rendered);
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
return new nunjucks_1.default.runtime.SafeString(`
|
|
41
|
+
<div style="padding: 12px; background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; border-radius: 4px; margin: 8px 0;">
|
|
42
|
+
⚠️ <strong>تعذر تضمين الويجيت:</strong> ${widget}
|
|
43
|
+
</div>
|
|
44
|
+
`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
})();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import nunjucks from "nunjucks";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
tags: string[];
|
|
4
|
+
parse(parser: any, nodes: any): any;
|
|
5
|
+
run({ ctx, env }: {
|
|
6
|
+
ctx: any;
|
|
7
|
+
env: nunjucks.Environment;
|
|
8
|
+
}, widgetPath: string): nunjucks.runtime.SafeString;
|
|
9
|
+
};
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,33 @@
|
|
|
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 nunjucks_1 = __importDefault(require("nunjucks"));
|
|
7
|
+
const normalizeWidgetPath_1 = require("../../utils/normalizeWidgetPath");
|
|
8
|
+
exports.default = new (class WidgetExtension {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.tags = ["widgets"];
|
|
11
|
+
}
|
|
12
|
+
parse(parser, nodes) {
|
|
13
|
+
const tok = parser.nextToken();
|
|
14
|
+
const args = parser.parseSignature(true, true);
|
|
15
|
+
parser.advanceAfterBlockEnd(tok.value);
|
|
16
|
+
return new nodes.CallExtension(this, "run", args);
|
|
17
|
+
}
|
|
18
|
+
run({ ctx, env }, widgetPath) {
|
|
19
|
+
const widget = (0, normalizeWidgetPath_1.normalizeWidgetPath)(widgetPath);
|
|
20
|
+
try {
|
|
21
|
+
console.log("🚀 ~ WidgetExtension ~ run ~ ctx:", env.getGlobal("pageRenderData"));
|
|
22
|
+
const rendered = env.render(widget, ctx);
|
|
23
|
+
return new nunjucks_1.default.runtime.SafeString(rendered);
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
return new nunjucks_1.default.runtime.SafeString(`
|
|
27
|
+
<div style="padding: 12px; background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; border-radius: 4px; margin: 8px 0;">
|
|
28
|
+
⚠️ <strong>تعذر تضمين الويجيت:</strong> ${widget}
|
|
29
|
+
</div>
|
|
30
|
+
`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
})();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import nunjucks from "nunjucks";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
tags: string[];
|
|
4
|
+
parse(parser: any, nodes: any): any;
|
|
5
|
+
run({ ctx, env }: {
|
|
6
|
+
ctx: any;
|
|
7
|
+
env: nunjucks.Environment;
|
|
8
|
+
}, widgetPath: string): nunjucks.runtime.SafeString;
|
|
9
|
+
};
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,33 @@
|
|
|
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 nunjucks_1 = __importDefault(require("nunjucks"));
|
|
7
|
+
const normalizeWidgetPath_1 = require("../../utils/normalizeWidgetPath");
|
|
8
|
+
exports.default = new (class WidgetExtension {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.tags = ["widgets"];
|
|
11
|
+
}
|
|
12
|
+
parse(parser, nodes) {
|
|
13
|
+
const tok = parser.nextToken();
|
|
14
|
+
const args = parser.parseSignature(true, true);
|
|
15
|
+
parser.advanceAfterBlockEnd(tok.value);
|
|
16
|
+
return new nodes.CallExtension(this, "run", args);
|
|
17
|
+
}
|
|
18
|
+
run({ ctx, env }, widgetPath) {
|
|
19
|
+
const widget = (0, normalizeWidgetPath_1.normalizeWidgetPath)(widgetPath);
|
|
20
|
+
try {
|
|
21
|
+
console.log("🚀 ~ WidgetExtension ~ run ~ ctx:", env.getGlobal("pageRenderData"));
|
|
22
|
+
const rendered = env.render(widget, ctx);
|
|
23
|
+
return new nunjucks_1.default.runtime.SafeString(rendered);
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
return new nunjucks_1.default.runtime.SafeString(`
|
|
27
|
+
<div style="padding: 12px; background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; border-radius: 4px; margin: 8px 0;">
|
|
28
|
+
⚠️ <strong>تعذر تضمين الويجيت:</strong> ${widget}
|
|
29
|
+
</div>
|
|
30
|
+
`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
})();
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.default = registerAllExtensions;
|
|
37
|
+
const extensions = __importStar(require("."));
|
|
38
|
+
function registerAllExtensions(env) {
|
|
39
|
+
Object.entries(extensions).forEach(([name, instance]) => {
|
|
40
|
+
if (instance &&
|
|
41
|
+
typeof instance === 'object' &&
|
|
42
|
+
typeof instance.parse === 'function' &&
|
|
43
|
+
typeof instance.run === 'function') {
|
|
44
|
+
env.addExtension(name, instance);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.warn(`[nunjucks] ⚠️ تخطى Extension '${name}' لأنه ليس كائن صالح.`);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.default = registerAllGlobals;
|
|
37
|
+
const filters = __importStar(require("."));
|
|
38
|
+
function registerAllGlobals(env) {
|
|
39
|
+
Object.entries(filters).forEach(([name, fn]) => {
|
|
40
|
+
if (typeof fn === 'function') {
|
|
41
|
+
env.addGlobal(name, fn);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
console.warn(`[nunjucks-middleware] تخطى الفلتر '${name}' لأنه ليس دالة صالحة.`);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function addFilter(env: any, name: string, fn: (...args: any[]) => any): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function capitalize(str: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function discountLabel(value: number): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function formatDate(date: Date | string, locale?: string): string | Date;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function formatMoney(value: number, currency?: string): string;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export { default as first } from './logic/array/first';
|
|
2
|
+
export { default as size } from './logic/array/size';
|
|
3
|
+
export { default as last } from './logic/array/last';
|
|
4
|
+
export { default as find } from './logic/array/find';
|
|
5
|
+
export { default as join } from './logic/array/join';
|
|
6
|
+
export { default as where } from './logic/array/where';
|
|
7
|
+
export { default as compact } from './logic/array/compact';
|
|
8
|
+
export { default as concat } from './logic/array/concat';
|
|
9
|
+
export { default as split } from './logic/array/split';
|
|
10
|
+
export { default as upcase } from './logic/strings/upcase';
|
|
11
|
+
export { default as capitalize } from './logic/strings/capitalize';
|
|
12
|
+
export { default as remove } from './logic/strings/remove';
|
|
13
|
+
export { default as downcase } from './logic/strings/downcase';
|
|
14
|
+
export { default as strip } from './logic/strings/strip';
|
|
15
|
+
export { default as truncate } from './logic/strings/truncate';
|
|
16
|
+
export { default as money } from './logic/money/money_with_currency';
|
|
17
|
+
export { default as date } from './logic/data/formatDate';
|
|
18
|
+
export { default as discountLabel } from './logic/money/discountLabel';
|
|
19
|
+
export { default as json } from './logic/json/json';
|
|
20
|
+
export { default as color_to_hex } from './logic/colors/color_to_hex';
|
|
21
|
+
export { default as money_without_trailing_zeros } from './logic/money/money_without_trailing_zeros';
|
|
22
|
+
export { default as assets } from './logic/urls/assets';
|
package/dist/filters/index.js
CHANGED
|
@@ -3,14 +3,48 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
var
|
|
8
|
-
Object.defineProperty(exports, "
|
|
9
|
-
var
|
|
10
|
-
Object.defineProperty(exports, "
|
|
11
|
-
var
|
|
6
|
+
exports.assets = exports.money_without_trailing_zeros = exports.color_to_hex = exports.json = exports.discountLabel = exports.date = exports.money = exports.truncate = exports.strip = exports.downcase = exports.remove = exports.capitalize = exports.upcase = exports.split = exports.concat = exports.compact = exports.where = exports.join = exports.find = exports.last = exports.size = exports.first = void 0;
|
|
7
|
+
var first_1 = require("./logic/array/first");
|
|
8
|
+
Object.defineProperty(exports, "first", { enumerable: true, get: function () { return __importDefault(first_1).default; } });
|
|
9
|
+
var size_1 = require("./logic/array/size");
|
|
10
|
+
Object.defineProperty(exports, "size", { enumerable: true, get: function () { return __importDefault(size_1).default; } });
|
|
11
|
+
var last_1 = require("./logic/array/last");
|
|
12
|
+
Object.defineProperty(exports, "last", { enumerable: true, get: function () { return __importDefault(last_1).default; } });
|
|
13
|
+
var find_1 = require("./logic/array/find");
|
|
14
|
+
Object.defineProperty(exports, "find", { enumerable: true, get: function () { return __importDefault(find_1).default; } });
|
|
15
|
+
var join_1 = require("./logic/array/join");
|
|
16
|
+
Object.defineProperty(exports, "join", { enumerable: true, get: function () { return __importDefault(join_1).default; } });
|
|
17
|
+
var where_1 = require("./logic/array/where");
|
|
18
|
+
Object.defineProperty(exports, "where", { enumerable: true, get: function () { return __importDefault(where_1).default; } });
|
|
19
|
+
var compact_1 = require("./logic/array/compact");
|
|
20
|
+
Object.defineProperty(exports, "compact", { enumerable: true, get: function () { return __importDefault(compact_1).default; } });
|
|
21
|
+
var concat_1 = require("./logic/array/concat");
|
|
22
|
+
Object.defineProperty(exports, "concat", { enumerable: true, get: function () { return __importDefault(concat_1).default; } });
|
|
23
|
+
var split_1 = require("./logic/array/split");
|
|
24
|
+
Object.defineProperty(exports, "split", { enumerable: true, get: function () { return __importDefault(split_1).default; } });
|
|
25
|
+
var upcase_1 = require("./logic/strings/upcase");
|
|
26
|
+
Object.defineProperty(exports, "upcase", { enumerable: true, get: function () { return __importDefault(upcase_1).default; } });
|
|
27
|
+
var capitalize_1 = require("./logic/strings/capitalize");
|
|
12
28
|
Object.defineProperty(exports, "capitalize", { enumerable: true, get: function () { return __importDefault(capitalize_1).default; } });
|
|
13
|
-
var
|
|
29
|
+
var remove_1 = require("./logic/strings/remove");
|
|
30
|
+
Object.defineProperty(exports, "remove", { enumerable: true, get: function () { return __importDefault(remove_1).default; } });
|
|
31
|
+
var downcase_1 = require("./logic/strings/downcase");
|
|
32
|
+
Object.defineProperty(exports, "downcase", { enumerable: true, get: function () { return __importDefault(downcase_1).default; } });
|
|
33
|
+
var strip_1 = require("./logic/strings/strip");
|
|
34
|
+
Object.defineProperty(exports, "strip", { enumerable: true, get: function () { return __importDefault(strip_1).default; } });
|
|
35
|
+
var truncate_1 = require("./logic/strings/truncate");
|
|
36
|
+
Object.defineProperty(exports, "truncate", { enumerable: true, get: function () { return __importDefault(truncate_1).default; } });
|
|
37
|
+
var money_with_currency_1 = require("./logic/money/money_with_currency");
|
|
38
|
+
Object.defineProperty(exports, "money", { enumerable: true, get: function () { return __importDefault(money_with_currency_1).default; } });
|
|
39
|
+
var formatDate_1 = require("./logic/data/formatDate");
|
|
40
|
+
Object.defineProperty(exports, "date", { enumerable: true, get: function () { return __importDefault(formatDate_1).default; } });
|
|
41
|
+
var discountLabel_1 = require("./logic/money/discountLabel");
|
|
14
42
|
Object.defineProperty(exports, "discountLabel", { enumerable: true, get: function () { return __importDefault(discountLabel_1).default; } });
|
|
15
|
-
var
|
|
16
|
-
Object.defineProperty(exports, "
|
|
43
|
+
var json_1 = require("./logic/json/json");
|
|
44
|
+
Object.defineProperty(exports, "json", { enumerable: true, get: function () { return __importDefault(json_1).default; } });
|
|
45
|
+
var color_to_hex_1 = require("./logic/colors/color_to_hex");
|
|
46
|
+
Object.defineProperty(exports, "color_to_hex", { enumerable: true, get: function () { return __importDefault(color_to_hex_1).default; } });
|
|
47
|
+
var money_without_trailing_zeros_1 = require("./logic/money/money_without_trailing_zeros");
|
|
48
|
+
Object.defineProperty(exports, "money_without_trailing_zeros", { enumerable: true, get: function () { return __importDefault(money_without_trailing_zeros_1).default; } });
|
|
49
|
+
var assets_1 = require("./logic/urls/assets");
|
|
50
|
+
Object.defineProperty(exports, "assets", { enumerable: true, get: function () { return __importDefault(assets_1).default; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function compact(array: any[]): any[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function concat(array: any[], ...args: any[]): any[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function find(arr: any[], key: string, value: any): any | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function first<T>(arr: T[]): T | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function join(value: any[], separator?: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function last(value: any[]): any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function size(value: any): number;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = size;
|
|
4
|
+
function size(value) {
|
|
5
|
+
if (Array.isArray(value) || typeof value === 'string') {
|
|
6
|
+
return value.length;
|
|
7
|
+
}
|
|
8
|
+
if (value && typeof value === 'object') {
|
|
9
|
+
return Object.keys(value).length;
|
|
10
|
+
}
|
|
11
|
+
return 0;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function split(str: string, delimiter: string): string[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function where(arr: any[], key: string, value: any): any[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function capitalize(str: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function color_to_hex(color: string): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
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.default = color_to_hex;
|
|
7
|
+
const color_1 = __importDefault(require("color"));
|
|
8
|
+
function color_to_hex(color) {
|
|
9
|
+
try {
|
|
10
|
+
return (0, color_1.default)(color).hex();
|
|
11
|
+
}
|
|
12
|
+
catch (err) {
|
|
13
|
+
return color;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function color_to_hex(color: string): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
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.default = color_to_hex;
|
|
7
|
+
const color_1 = __importDefault(require("color"));
|
|
8
|
+
function color_to_hex(color) {
|
|
9
|
+
try {
|
|
10
|
+
return (0, color_1.default)(color).hex();
|
|
11
|
+
}
|
|
12
|
+
catch (err) {
|
|
13
|
+
return color;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function date(input: string | number | Date, locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = date;
|
|
4
|
+
function date(input, locale = "en-US", options) {
|
|
5
|
+
const date = new Date(input);
|
|
6
|
+
return isNaN(date.getTime()) ? "" : date.toLocaleDateString(locale, options);
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function discountLabel(value: number): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function first<T>(arr: T[]): T | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function date(input: string | number | Date, locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default =
|
|
4
|
-
function
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
return date;
|
|
8
|
-
return d.toLocaleDateString(locale, { year: 'numeric', month: 'short', day: 'numeric' });
|
|
3
|
+
exports.default = date;
|
|
4
|
+
function date(input, locale = "en-US", options) {
|
|
5
|
+
const date = new Date(input);
|
|
6
|
+
return isNaN(date.getTime()) ? "" : date.toLocaleDateString(locale, options);
|
|
9
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function formatMoney(value: number, currency?: string): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
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.default = json;
|
|
7
|
+
const nunjucks_1 = __importDefault(require("nunjucks"));
|
|
8
|
+
function json(value) {
|
|
9
|
+
try {
|
|
10
|
+
return new nunjucks_1.default.runtime.SafeString(JSON.stringify(value, null, 2));
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return new nunjucks_1.default.runtime.SafeString('');
|
|
14
|
+
}
|
|
15
|
+
}
|