@decaf-ts/ui-decorators 0.4.0
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/LICENSE.md +21 -0
- package/README.md +53 -0
- package/dist/esm/ui-decorators.bundle.min.esm.js +2 -0
- package/dist/esm/ui-decorators.bundle.min.esm.js.LICENSE.txt +14 -0
- package/dist/ui-decorators.bundle.min.js +2 -0
- package/dist/ui-decorators.bundle.min.js.LICENSE.txt +14 -0
- package/lib/esm/index.d.ts +12 -0
- package/lib/esm/index.js +14 -0
- package/lib/esm/model/decorators.d.ts +25 -0
- package/lib/esm/model/decorators.js +41 -0
- package/lib/esm/model/index.d.ts +7 -0
- package/lib/esm/model/index.js +9 -0
- package/lib/esm/model/model.d.ts +115 -0
- package/lib/esm/model/model.js +3 -0
- package/lib/esm/model/overrides.d.ts +1 -0
- package/lib/esm/model/overrides.js +11 -0
- package/lib/esm/ui/Rendering.d.ts +14 -0
- package/lib/esm/ui/Rendering.js +40 -0
- package/lib/esm/ui/constants.d.ts +28 -0
- package/lib/esm/ui/constants.js +31 -0
- package/lib/esm/ui/decorators.d.ts +47 -0
- package/lib/esm/ui/decorators.js +58 -0
- package/lib/esm/ui/index.d.ts +7 -0
- package/lib/esm/ui/index.js +9 -0
- package/lib/index.cjs +31 -0
- package/lib/index.d.ts +12 -0
- package/lib/model/decorators.cjs +45 -0
- package/lib/model/decorators.d.ts +25 -0
- package/lib/model/index.cjs +25 -0
- package/lib/model/index.d.ts +7 -0
- package/lib/model/model.cjs +4 -0
- package/lib/model/model.d.ts +115 -0
- package/lib/model/overrides.cjs +13 -0
- package/lib/model/overrides.d.ts +1 -0
- package/lib/ui/Rendering.cjs +44 -0
- package/lib/ui/Rendering.d.ts +14 -0
- package/lib/ui/constants.cjs +34 -0
- package/lib/ui/constants.d.ts +28 -0
- package/lib/ui/decorators.cjs +63 -0
- package/lib/ui/decorators.d.ts +47 -0
- package/lib/ui/index.cjs +25 -0
- package/lib/ui/index.d.ts +7 -0
- package/package.json +109 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @namespace model
|
|
4
|
+
* @memberOf ui-decorators
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
require("./model.cjs");
|
|
22
|
+
__exportStar(require("./decorators.cjs"), exports);
|
|
23
|
+
__exportStar(require("./overrides.cjs"), exports);
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb2RlbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsbUJBQWlCO0FBRWpCLCtDQUE2QjtBQUM3Qiw4Q0FBNEIiLCJmaWxlIjoibW9kZWwvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBuYW1lc3BhY2UgbW9kZWxcbiAqIEBtZW1iZXJPZiB1aS1kZWNvcmF0b3JzXG4gKi9cblxuaW1wb3J0IFwiLi9tb2RlbFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vdmVycmlkZXNcIjtcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb2RlbC9tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6Im1vZGVsL21vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxFcnJvckRlZmluaXRpb24gfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQge1xuICBCdWlsZGVyUmVnaXN0cnksXG4gIENvbXBhcmFibGUsXG4gIENvbnN0cnVjdG9yLFxuICBIYXNoYWJsZSxcbiAgTW9kZWxBcmcsXG4gIE1vZGVsQnVpbGRlckZ1bmN0aW9uLFxuICBNb2RlbENvbnN0cnVjdG9yLFxuICBTZXJpYWxpemFibGUsXG4gIFZhbGlkYXRhYmxlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbmRlY2xhcmUgbW9kdWxlIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCIge1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIGhhY2t5IG92ZXJyaWRlXG4gIGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgTW9kZWxcbiAgICBpbXBsZW1lbnRzIFZhbGlkYXRhYmxlLCBTZXJpYWxpemFibGUsIEhhc2hhYmxlLCBDb21wYXJhYmxlPE1vZGVsPlxuICB7XG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGFyZz86IE1vZGVsQXJnPE1vZGVsPik7XG5cbiAgICBoYXNFcnJvcnMoLi4uZXhjbHVzaW9uczogYW55W10pOiBNb2RlbEVycm9yRGVmaW5pdGlvbiB8IHVuZGVmaW5lZDtcbiAgICBoYXNFcnJvcnMoXG4gICAgICBwcmV2aW91c1ZlcnNpb24/OiBNb2RlbCB8IGFueSxcbiAgICAgIC4uLmV4Y2x1c2lvbnM6IGFueVtdXG4gICAgKTogTW9kZWxFcnJvckRlZmluaXRpb24gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAc3VtbWFyeSBDb21wYXJlIG9iamVjdCBlcXVhbGl0eSByZWN1cnNpdmVseVxuICAgICAqIEBwYXJhbSB7YW55fSBvYmogb2JqZWN0IHRvIGNvbXBhcmUgdG9cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4Y2VwdGlvbnNdIHByb3BlcnR5IG5hbWVzIHRvIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGNvbXBhcmlzb25cbiAgICAgKi9cbiAgICBlcXVhbHMob2JqOiBhbnksIC4uLmV4Y2VwdGlvbnM6IHN0cmluZ1tdKTogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBzZXJpYWxpemVkIG1vZGVsIGFjY29yZGluZyB0byB0aGUgY3VycmVudGx5IGRlZmluZWQge0BsaW5rIFNlcmlhbGl6ZXJ9XG4gICAgICovXG4gICAgc2VyaWFsaXplKCk6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBAc3VtbWFyeSBPdmVycmlkZSB0aGUgaW1wbGVtZW50YXRpb24gZm9yIGpzJ3MgJ3RvU3RyaW5nKCknIHdoaWNoIHN1Y2tzLi4uXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgdG9TdHJpbmcoKTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBzdW1tYXJ5IERlZmluZXMgYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciBvYmplY3QgaGFzaC4gUmVsaWVzIG9uIGEgdmVyeSBiYXNpYyBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbiBKYXZhJ3Mgc3RyaW5nIGhhc2g7XG4gICAgICovXG4gICAgaGFzaCgpOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQHN1bW1hcnkgRGVzZXJpYWxpemVzIGEgTW9kZWxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXJnc1xuICAgICAqIEB0aHJvd3Mge0Vycm9yfSBJZiBpdCBmYWlscyB0byBwYXJzZSB0aGUgc3RyaW5nLCBvciBpZiBpdCBmYWlscyB0byBidWlsZCB0aGUgbW9kZWxcbiAgICAgKi9cbiAgICBzdGF0aWMgZGVzZXJpYWxpemUoc3RyOiBzdHJpbmcpOiBhbnk7XG4gICAgLyoqXG4gICAgICogQHN1bW1hcnkgUmVwb3B1bGF0ZXMgdGhlIE9iamVjdCBwcm9wZXJ0aWVzIHdpdGggdGhlIG9uZXMgZnJvbSB0aGUgbmV3IG9iamVjdFxuICAgICAqIEBkZXNjcmlwdGlvbiBJdGVyYXRlcyBhbGwgY29tbW9uIHByb3BlcnRpZXMgb2Ygb2JqIChpZiBleGlzdGluZykgYW5kIHNlbGYsIGFuZCBjb3BpZXMgdGhlbSBvbnRvIHNlbGZcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7VH0gc2VsZlxuICAgICAqIEBwYXJhbSB7VCB8IFJlY29yZDxzdHJpbmcsIGFueT59IFtvYmpdXG4gICAgICpcbiAgICAgKi9cbiAgICBzdGF0aWMgZnJvbU9iamVjdDxUIGV4dGVuZHMgTW9kZWw+KFxuICAgICAgc2VsZjogVCxcbiAgICAgIG9iaj86IFQgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgKTogVDtcbiAgICAvKipcbiAgICAgKiBAc3VtbWFyeSBSZXBvcHVsYXRlcyB0aGUgaW5zdGFuY2Ugd2l0aCB0aGUgb25lcyBmcm9tIHRoZSBuZXcgTW9kZWwgT2JqZWN0XG4gICAgICogQGRlc2NyaXB0aW9uIEl0ZXJhdGVzIGFsbCBjb21tb24gcHJvcGVydGllcyBvZiBvYmogKGlmIGV4aXN0aW5nKSBhbmQgc2VsZiwgYW5kIGNvcGllcyB0aGVtIG9udG8gc2VsZi5cbiAgICAgKiBJcyBhd2FyZSBvZiBuZXN0ZWQgTW9kZWwgT2JqZWN0cyBhbmQgcmVidWlsZHMgdGhlbSBhbHNvLlxuICAgICAqIFdoZW4gTGlzdCBwcm9wZXJ0aWVzIGFyZSBkZWNvcmF0ZWQgd2l0aCB7QGxpbmsgbGlzdH0sIHRoZXkgbGlzdCBpdGVtcyB3aWxsIGFsc28gYmUgcmVidWlsdFxuICAgICAqXG4gICAgICogQHBhcmFtIHtUfSBzZWxmXG4gICAgICogQHBhcmFtIHtUIHwgUmVjb3JkPHN0cmluZywgYW55Pn0gW29ial1cbiAgICAgKlxuICAgICAqL1xuICAgIHN0YXRpYyBmcm9tTW9kZWw8VCBleHRlbmRzIE1vZGVsPihcbiAgICAgIHNlbGY6IFQsXG4gICAgICBvYmo/OiBUIHwgUmVjb3JkPHN0cmluZywgYW55PlxuICAgICk6IFQ7XG4gICAgLyoqXG4gICAgICogQHN1bW1hcnkgU2V0cyB0aGUgR2xvYmFsIHtAbGluayBNb2RlbEJ1aWxkZXJGdW5jdGlvbn1cbiAgICAgKiBAcGFyYW0ge01vZGVsQnVpbGRlckZ1bmN0aW9ufSBbYnVpbGRlcl1cbiAgICAgKi9cbiAgICBzdGF0aWMgc2V0QnVpbGRlcihidWlsZGVyPzogTW9kZWxCdWlsZGVyRnVuY3Rpb24pOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgY3VycmVudCBnbG9iYWwge0BsaW5rIE1vZGVsQnVpbGRlckZ1bmN0aW9ufVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRCdWlsZGVyKCk6IE1vZGVsQnVpbGRlckZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQge0BsaW5rIE1vZGVsUmVnaXN0cnlNYW5hZ2VyfVxuICAgICAqXG4gICAgICogQHJldHVybiBNb2RlbFJlZ2lzdHJ5LCBkZWZhdWx0cyB0byB7QGxpbmsgTW9kZWxSZWdpc3RyeU1hbmFnZXJ9XG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0UmVnaXN0cnk7XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBhY3RpbmdNb2RlbFJlZ2lzdHJ5XG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0J1aWxkZXJSZWdpc3RyeX0gbW9kZWxSZWdpc3RyeSB0aGUgbmV3IGltcGxlbWVudGF0aW9uIG9mIFJlZ2lzdHJ5XG4gICAgICovXG4gICAgc3RhdGljIHNldFJlZ2lzdHJ5KG1vZGVsUmVnaXN0cnk6IEJ1aWxkZXJSZWdpc3RyeTxhbnk+KTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBAc3VtbWFyeSByZWdpc3RlciBuZXcgTW9kZWxzXG4gICAgICogQHBhcmFtIHthbnl9IGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtuYW1lXSB3aGVuIG5vdCBkZWZpbmVkLCB0aGUgbmFtZSBvZiB0aGUgY29uc3RydWN0b3Igd2lsbCBiZSB1c2VkXG4gICAgICpcbiAgICAgKiBAc2VlIE1vZGVsUmVnaXN0cnlcbiAgICAgKi9cbiAgICBzdGF0aWMgcmVnaXN0ZXI8VCBleHRlbmRzIE1vZGVsPihcbiAgICAgIGNvbnN0cnVjdG9yOiBNb2RlbENvbnN0cnVjdG9yPFQ+LFxuICAgICAgbmFtZT86IHN0cmluZ1xuICAgICk6IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQHN1bW1hcnkgR2V0cyBhIHJlZ2lzdGVyZWQgTW9kZWwge0BsaW5rIE1vZGVsQ29uc3RydWN0b3J9XG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICAgKlxuICAgICAqIEBzZWUgTW9kZWxSZWdpc3RyeVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXQ8VCBleHRlbmRzIE1vZGVsPihuYW1lOiBzdHJpbmcpOiBNb2RlbENvbnN0cnVjdG9yPFQ+IHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gb2JqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjbGF6el0gd2hlbiBwcm92aWRlZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGZpbmQgdGhlIG1hdGNoaW5nIGNvbnN0cnVjdG9yXG4gICAgICpcbiAgICAgKiBAdGhyb3dzIEVycm9yIElmIGNsYXp6IGlzIG5vdCBmb3VuZCwgb3Igb2JqIGlzIG5vdCBhIHtAbGluayBNb2RlbH0gbWVhbmluZyBpdCBoYXMgbm8ge0BsaW5rIE1vZGVsS2V5cy5BTkNIT1J9IHByb3BlcnR5XG4gICAgICpcbiAgICAgKiBAc2VlIE1vZGVsUmVnaXN0cnlcbiAgICAgKi9cbiAgICBzdGF0aWMgYnVpbGQ8VCBleHRlbmRzIE1vZGVsPihvYmo/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBjbGF6ej86IHN0cmluZyk6IFQ7XG4gICAgc3RhdGljIGdldE1ldGFkYXRhPFYgZXh0ZW5kcyBNb2RlbD4obW9kZWw6IFYpOiBhbnk7XG4gICAgc3RhdGljIGdldEF0dHJpYnV0ZXM8ViBleHRlbmRzIE1vZGVsPihtb2RlbDogQ29uc3RydWN0b3I8Vj4gfCBWKTogc3RyaW5nW107XG4gICAgc3RhdGljIGVxdWFsczxWIGV4dGVuZHMgTW9kZWw+KFxuICAgICAgb2JqMTogVixcbiAgICAgIG9iajI6IFYsXG4gICAgICAuLi5leGNlcHRpb25zOiBhbnlbXVxuICAgICk6IGJvb2xlYW47XG4gICAgc3RhdGljIGhhc0Vycm9yczxWIGV4dGVuZHMgTW9kZWw+KFxuICAgICAgbW9kZWw6IFYsXG4gICAgICAuLi5leGNlcHRpb25zOiBhbnlbXVxuICAgICk6IE1vZGVsRXJyb3JEZWZpbml0aW9uIHwgdW5kZWZpbmVkO1xuICAgIHN0YXRpYyBzZXJpYWxpemU8ViBleHRlbmRzIE1vZGVsPihtb2RlbDogVik6IGFueTtcbiAgICBzdGF0aWMgaGFzaDxWIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBWKTogYW55O1xuICAgIC8qKlxuICAgICAqIEBzdW1tYXJ5IEJ1aWxkcyB0aGUga2V5IHRvIHN0b3JlIGFzIE1ldGFkYXRhIHVuZGVyIFJlZmxlY3Rpb25zXG4gICAgICogQGRlc2NyaXB0aW9uIGNvbmNhdGVuYXRlcyB7QGxpbmsgTW9kZWxLZXlzI1JFRkxFQ1R9IHdpdGggdGhlIHByb3ZpZGVkIGtleVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJcbiAgICAgKi9cbiAgICBzdGF0aWMga2V5KHN0cjogc3RyaW5nKTogc3RyaW5nO1xuICAgIHJlbmRlcjxSPiguLi5hcmdzOiBhbnlbXSk6IFI7XG4gICAgc3RhdGljIHVpS2V5KGtleTogc3RyaW5nKTogc3RyaW5nO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { ModelErrorDefinition } from "@decaf-ts/decorator-validation";
|
|
2
|
+
import { BuilderRegistry, Comparable, Constructor, Hashable, ModelArg, ModelBuilderFunction, ModelConstructor, Serializable, Validatable } from "@decaf-ts/decorator-validation";
|
|
3
|
+
declare module "@decaf-ts/decorator-validation" {
|
|
4
|
+
abstract class Model implements Validatable, Serializable, Hashable, Comparable<Model> {
|
|
5
|
+
protected constructor(arg?: ModelArg<Model>);
|
|
6
|
+
hasErrors(...exclusions: any[]): ModelErrorDefinition | undefined;
|
|
7
|
+
hasErrors(previousVersion?: Model | any, ...exclusions: any[]): ModelErrorDefinition | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* @summary Compare object equality recursively
|
|
10
|
+
* @param {any} obj object to compare to
|
|
11
|
+
* @param {string} [exceptions] property names to be excluded from the comparison
|
|
12
|
+
*/
|
|
13
|
+
equals(obj: any, ...exceptions: string[]): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* @summary Returns the serialized model according to the currently defined {@link Serializer}
|
|
16
|
+
*/
|
|
17
|
+
serialize(): string;
|
|
18
|
+
/**
|
|
19
|
+
* @summary Override the implementation for js's 'toString()' which sucks...
|
|
20
|
+
* @override
|
|
21
|
+
*/
|
|
22
|
+
toString(): string;
|
|
23
|
+
/**
|
|
24
|
+
* @summary Defines a default implementation for object hash. Relies on a very basic implementation based on Java's string hash;
|
|
25
|
+
*/
|
|
26
|
+
hash(): string;
|
|
27
|
+
/**
|
|
28
|
+
* @summary Deserializes a Model
|
|
29
|
+
* @param {string} str
|
|
30
|
+
*
|
|
31
|
+
* @param args
|
|
32
|
+
* @throws {Error} If it fails to parse the string, or if it fails to build the model
|
|
33
|
+
*/
|
|
34
|
+
static deserialize(str: string): any;
|
|
35
|
+
/**
|
|
36
|
+
* @summary Repopulates the Object properties with the ones from the new object
|
|
37
|
+
* @description Iterates all common properties of obj (if existing) and self, and copies them onto self
|
|
38
|
+
*
|
|
39
|
+
* @param {T} self
|
|
40
|
+
* @param {T | Record<string, any>} [obj]
|
|
41
|
+
*
|
|
42
|
+
*/
|
|
43
|
+
static fromObject<T extends Model>(self: T, obj?: T | Record<string, any>): T;
|
|
44
|
+
/**
|
|
45
|
+
* @summary Repopulates the instance with the ones from the new Model Object
|
|
46
|
+
* @description Iterates all common properties of obj (if existing) and self, and copies them onto self.
|
|
47
|
+
* Is aware of nested Model Objects and rebuilds them also.
|
|
48
|
+
* When List properties are decorated with {@link list}, they list items will also be rebuilt
|
|
49
|
+
*
|
|
50
|
+
* @param {T} self
|
|
51
|
+
* @param {T | Record<string, any>} [obj]
|
|
52
|
+
*
|
|
53
|
+
*/
|
|
54
|
+
static fromModel<T extends Model>(self: T, obj?: T | Record<string, any>): T;
|
|
55
|
+
/**
|
|
56
|
+
* @summary Sets the Global {@link ModelBuilderFunction}
|
|
57
|
+
* @param {ModelBuilderFunction} [builder]
|
|
58
|
+
*/
|
|
59
|
+
static setBuilder(builder?: ModelBuilderFunction): void;
|
|
60
|
+
/**
|
|
61
|
+
* @summary Retrieves the current global {@link ModelBuilderFunction}
|
|
62
|
+
*/
|
|
63
|
+
static getBuilder(): ModelBuilderFunction | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Returns the current {@link ModelRegistryManager}
|
|
66
|
+
*
|
|
67
|
+
* @return ModelRegistry, defaults to {@link ModelRegistryManager}
|
|
68
|
+
*/
|
|
69
|
+
private static getRegistry;
|
|
70
|
+
/**
|
|
71
|
+
* Returns the current actingModelRegistry
|
|
72
|
+
*
|
|
73
|
+
* @param {BuilderRegistry} modelRegistry the new implementation of Registry
|
|
74
|
+
*/
|
|
75
|
+
static setRegistry(modelRegistry: BuilderRegistry<any>): void;
|
|
76
|
+
/**
|
|
77
|
+
* @summary register new Models
|
|
78
|
+
* @param {any} constructor
|
|
79
|
+
* @param {string} [name] when not defined, the name of the constructor will be used
|
|
80
|
+
*
|
|
81
|
+
* @see ModelRegistry
|
|
82
|
+
*/
|
|
83
|
+
static register<T extends Model>(constructor: ModelConstructor<T>, name?: string): void;
|
|
84
|
+
/**
|
|
85
|
+
* @summary Gets a registered Model {@link ModelConstructor}
|
|
86
|
+
* @param {string} name
|
|
87
|
+
*
|
|
88
|
+
* @see ModelRegistry
|
|
89
|
+
*/
|
|
90
|
+
static get<T extends Model>(name: string): ModelConstructor<T> | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* @param {Record<string, any>} obj
|
|
93
|
+
* @param {string} [clazz] when provided, it will attempt to find the matching constructor
|
|
94
|
+
*
|
|
95
|
+
* @throws Error If clazz is not found, or obj is not a {@link Model} meaning it has no {@link ModelKeys.ANCHOR} property
|
|
96
|
+
*
|
|
97
|
+
* @see ModelRegistry
|
|
98
|
+
*/
|
|
99
|
+
static build<T extends Model>(obj?: Record<string, any>, clazz?: string): T;
|
|
100
|
+
static getMetadata<V extends Model>(model: V): any;
|
|
101
|
+
static getAttributes<V extends Model>(model: Constructor<V> | V): string[];
|
|
102
|
+
static equals<V extends Model>(obj1: V, obj2: V, ...exceptions: any[]): boolean;
|
|
103
|
+
static hasErrors<V extends Model>(model: V, ...exceptions: any[]): ModelErrorDefinition | undefined;
|
|
104
|
+
static serialize<V extends Model>(model: V): any;
|
|
105
|
+
static hash<V extends Model>(model: V): any;
|
|
106
|
+
/**
|
|
107
|
+
* @summary Builds the key to store as Metadata under Reflections
|
|
108
|
+
* @description concatenates {@link ModelKeys#REFLECT} with the provided key
|
|
109
|
+
* @param {string} str
|
|
110
|
+
*/
|
|
111
|
+
static key(str: string): string;
|
|
112
|
+
render<R>(...args: any[]): R;
|
|
113
|
+
static uiKey(key: string): string;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
4
|
+
const constants_1 = require("../ui/constants.cjs");
|
|
5
|
+
const Rendering_1 = require("../ui/Rendering.cjs");
|
|
6
|
+
decorator_validation_1.Model.prototype.render = function (...args) {
|
|
7
|
+
return Rendering_1.RenderingEngine.render(this, ...args);
|
|
8
|
+
};
|
|
9
|
+
decorator_validation_1.Model.uiKey = function (key) {
|
|
10
|
+
return `${constants_1.UIKeys.REFLECT}${key}`;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb2RlbC9vdmVycmlkZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5RUFBdUQ7QUFDdkQsK0NBQXlDO0FBQ3pDLCtDQUFrRDtBQUVsRCw0QkFBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsVUFBb0MsR0FBRyxJQUFXO0lBQ3pFLE9BQU8sMkJBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBRUYsNEJBQUssQ0FBQyxLQUFLLEdBQUcsVUFBVSxHQUFXO0lBQ2pDLE9BQU8sR0FBRyxrQkFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNuQyxDQUFDLENBQUMiLCJmaWxlIjoibW9kZWwvb3ZlcnJpZGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBVSUtleXMgfSBmcm9tIFwiLi4vdWkvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBSZW5kZXJpbmdFbmdpbmUgfSBmcm9tIFwiLi4vdWkvUmVuZGVyaW5nXCI7XG5cbk1vZGVsLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiA8TSBleHRlbmRzIE1vZGVsPih0aGlzOiBNLCAuLi5hcmdzOiBhbnlbXSkge1xuICByZXR1cm4gUmVuZGVyaW5nRW5naW5lLnJlbmRlcih0aGlzLCAuLi5hcmdzKTtcbn07XG5cbk1vZGVsLnVpS2V5ID0gZnVuY3Rpb24gKGtleTogc3RyaW5nKSB7XG4gIHJldHVybiBgJHtVSUtleXMuUkVGTEVDVH0ke2tleX1gO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderingEngine = void 0;
|
|
4
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
5
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
6
|
+
const constants_1 = require("./constants.cjs");
|
|
7
|
+
class RenderingEngine {
|
|
8
|
+
constructor(flavour) {
|
|
9
|
+
this.flavour = flavour;
|
|
10
|
+
this.initialized = false;
|
|
11
|
+
RenderingEngine.register(this);
|
|
12
|
+
}
|
|
13
|
+
static register(engine) {
|
|
14
|
+
this.cache = this.cache || {};
|
|
15
|
+
if (engine.flavour in this.cache)
|
|
16
|
+
throw new db_decorators_1.InternalError(`Rendering engine under ${engine.flavour} already exists`);
|
|
17
|
+
this.cache[engine.flavour] = engine;
|
|
18
|
+
this.current = engine;
|
|
19
|
+
}
|
|
20
|
+
static getOrBoot(obj) {
|
|
21
|
+
if (obj instanceof RenderingEngine)
|
|
22
|
+
return obj;
|
|
23
|
+
const engine = new obj();
|
|
24
|
+
engine.initialize(); // make the booting async. use the initialized flag to control it
|
|
25
|
+
return engine;
|
|
26
|
+
}
|
|
27
|
+
static get(flavour) {
|
|
28
|
+
if (!flavour)
|
|
29
|
+
return this.getOrBoot(this.current);
|
|
30
|
+
if (!(flavour in this.cache))
|
|
31
|
+
throw new db_decorators_1.InternalError(`Rendering engine under ${flavour} does not exist`);
|
|
32
|
+
return this.getOrBoot(this.cache[flavour]);
|
|
33
|
+
}
|
|
34
|
+
static render(model, ...args) {
|
|
35
|
+
const constructor = decorator_validation_1.Model.get(model.constructor.name);
|
|
36
|
+
if (!constructor)
|
|
37
|
+
throw new db_decorators_1.InternalError("No model registered found");
|
|
38
|
+
const flavour = Reflect.getMetadata(decorator_validation_1.Model.uiKey(constants_1.UIKeys.UIMODEL), constructor);
|
|
39
|
+
return this.get(flavour).render(model, ...args);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.RenderingEngine = RenderingEngine;
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS9SZW5kZXJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQXdEO0FBQ3hELHlFQUl3QztBQUN4QywyQ0FBcUM7QUFFckMsTUFBc0IsZUFBZTtJQVNuQyxZQUErQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUZwQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUdyQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFLRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQXVCO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDOUIsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQzlCLE1BQU0sSUFBSSw2QkFBYSxDQUNyQiwwQkFBMEIsTUFBTSxDQUFDLE9BQU8saUJBQWlCLENBQzFELENBQUM7UUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxTQUFTLENBQ3RCLEdBQW1EO1FBRW5ELElBQUksR0FBRyxZQUFZLGVBQWU7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUMvQyxNQUFNLE1BQU0sR0FBb0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMxQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxpRUFBaUU7UUFDdEYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBZ0I7UUFDekIsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzFCLE1BQU0sSUFBSSw2QkFBYSxDQUNyQiwwQkFBMEIsT0FBTyxpQkFBaUIsQ0FDbkQsQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQWtCLEtBQVEsRUFBRSxHQUFHLElBQVc7UUFDckQsTUFBTSxXQUFXLEdBQUcsNEJBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsV0FBVztZQUFFLE1BQU0sSUFBSSw2QkFBYSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDdkUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FDakMsNEJBQUssQ0FBQyxLQUFLLENBQUMsa0JBQU0sQ0FBQyxPQUFPLENBQUMsRUFDM0IsV0FBc0MsQ0FDdkMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBckRELDBDQXFEQyIsImZpbGUiOiJ1aS9SZW5kZXJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQge1xuICBDb25zdHJ1Y3RvcixcbiAgTW9kZWwsXG4gIE1vZGVsQ29uc3RydWN0b3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFVJS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVuZGVyaW5nRW5naW5lIHtcbiAgcHJpdmF0ZSBzdGF0aWMgY2FjaGU6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAgQ29uc3RydWN0b3I8UmVuZGVyaW5nRW5naW5lPiB8IFJlbmRlcmluZ0VuZ2luZVxuICA+O1xuICBwcml2YXRlIHN0YXRpYyBjdXJyZW50OiBDb25zdHJ1Y3RvcjxSZW5kZXJpbmdFbmdpbmU+IHwgUmVuZGVyaW5nRW5naW5lO1xuXG4gIHByb3RlY3RlZCBpbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihyZWFkb25seSBmbGF2b3VyOiBzdHJpbmcpIHtcbiAgICBSZW5kZXJpbmdFbmdpbmUucmVnaXN0ZXIodGhpcyk7XG4gIH1cblxuICBhYnN0cmFjdCBpbml0aWFsaXplKC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPjtcbiAgYWJzdHJhY3QgcmVuZGVyKC4uLmFyZ3M6IGFueVtdKTogYW55O1xuXG4gIHN0YXRpYyByZWdpc3RlcihlbmdpbmU6IFJlbmRlcmluZ0VuZ2luZSkge1xuICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNhY2hlIHx8IHt9O1xuICAgIGlmIChlbmdpbmUuZmxhdm91ciBpbiB0aGlzLmNhY2hlKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBSZW5kZXJpbmcgZW5naW5lIHVuZGVyICR7ZW5naW5lLmZsYXZvdXJ9IGFscmVhZHkgZXhpc3RzYFxuICAgICAgKTtcbiAgICB0aGlzLmNhY2hlW2VuZ2luZS5mbGF2b3VyXSA9IGVuZ2luZTtcbiAgICB0aGlzLmN1cnJlbnQgPSBlbmdpbmU7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRPckJvb3QoXG4gICAgb2JqOiBDb25zdHJ1Y3RvcjxSZW5kZXJpbmdFbmdpbmU+IHwgUmVuZGVyaW5nRW5naW5lXG4gICk6IFJlbmRlcmluZ0VuZ2luZSB7XG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIFJlbmRlcmluZ0VuZ2luZSkgcmV0dXJuIG9iajtcbiAgICBjb25zdCBlbmdpbmU6IFJlbmRlcmluZ0VuZ2luZSA9IG5ldyBvYmooKTtcbiAgICBlbmdpbmUuaW5pdGlhbGl6ZSgpOyAvLyBtYWtlIHRoZSBib290aW5nIGFzeW5jLiB1c2UgdGhlIGluaXRpYWxpemVkIGZsYWcgdG8gY29udHJvbCBpdFxuICAgIHJldHVybiBlbmdpbmU7XG4gIH1cblxuICBzdGF0aWMgZ2V0KGZsYXZvdXI/OiBzdHJpbmcpOiBSZW5kZXJpbmdFbmdpbmUge1xuICAgIGlmICghZmxhdm91cikgcmV0dXJuIHRoaXMuZ2V0T3JCb290KHRoaXMuY3VycmVudCk7XG4gICAgaWYgKCEoZmxhdm91ciBpbiB0aGlzLmNhY2hlKSlcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgUmVuZGVyaW5nIGVuZ2luZSB1bmRlciAke2ZsYXZvdXJ9IGRvZXMgbm90IGV4aXN0YFxuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcy5nZXRPckJvb3QodGhpcy5jYWNoZVtmbGF2b3VyXSk7XG4gIH1cblxuICBzdGF0aWMgcmVuZGVyPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IE0sIC4uLmFyZ3M6IGFueVtdKTogYW55IHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvciA9IE1vZGVsLmdldChtb2RlbC5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgICBpZiAoIWNvbnN0cnVjdG9yKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk5vIG1vZGVsIHJlZ2lzdGVyZWQgZm91bmRcIik7XG4gICAgY29uc3QgZmxhdm91ciA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXG4gICAgICBNb2RlbC51aUtleShVSUtleXMuVUlNT0RFTCksXG4gICAgICBjb25zdHJ1Y3RvciBhcyBNb2RlbENvbnN0cnVjdG9yPE1vZGVsPlxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KGZsYXZvdXIpLnJlbmRlcihtb2RlbCwgLi4uYXJncyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
|
+
export declare abstract class RenderingEngine {
|
|
3
|
+
readonly flavour: string;
|
|
4
|
+
private static cache;
|
|
5
|
+
private static current;
|
|
6
|
+
protected initialized: boolean;
|
|
7
|
+
protected constructor(flavour: string);
|
|
8
|
+
abstract initialize(...args: any[]): Promise<void>;
|
|
9
|
+
abstract render(...args: any[]): any;
|
|
10
|
+
static register(engine: RenderingEngine): void;
|
|
11
|
+
private static getOrBoot;
|
|
12
|
+
static get(flavour?: string): RenderingEngine;
|
|
13
|
+
static render<M extends Model>(model: M, ...args: any[]): any;
|
|
14
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UIKeys = void 0;
|
|
4
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
5
|
+
/**
|
|
6
|
+
* @enum UIKeys
|
|
7
|
+
* @category Constants
|
|
8
|
+
*/
|
|
9
|
+
exports.UIKeys = {
|
|
10
|
+
REFLECT: `${decorator_validation_1.ModelKeys.REFLECT}.ui.`,
|
|
11
|
+
UIMODEL: "uimodel",
|
|
12
|
+
RENDERED_BY: "rendered-by",
|
|
13
|
+
ELEMENT: "element",
|
|
14
|
+
PROP: "prop",
|
|
15
|
+
NAME: "name",
|
|
16
|
+
NAME_PREFIX: "input-",
|
|
17
|
+
CUSTOM_PROPS: "customValidationProps",
|
|
18
|
+
TYPE: "type",
|
|
19
|
+
SUB_TYPE: "subtype",
|
|
20
|
+
READ_ONLY: "readonly",
|
|
21
|
+
REQUIRED: decorator_validation_1.ValidationKeys.REQUIRED,
|
|
22
|
+
MIN: decorator_validation_1.ValidationKeys.MIN,
|
|
23
|
+
MIN_LENGTH: decorator_validation_1.ValidationKeys.MIN_LENGTH,
|
|
24
|
+
MAX: decorator_validation_1.ValidationKeys.MAX,
|
|
25
|
+
MAX_LENGTH: decorator_validation_1.ValidationKeys.MAX_LENGTH,
|
|
26
|
+
PATTERN: decorator_validation_1.ValidationKeys.PATTERN,
|
|
27
|
+
URL: decorator_validation_1.ValidationKeys.URL,
|
|
28
|
+
STEP: decorator_validation_1.ValidationKeys.STEP,
|
|
29
|
+
DATE: decorator_validation_1.ValidationKeys.DATE,
|
|
30
|
+
EMAIL: decorator_validation_1.ValidationKeys.EMAIL,
|
|
31
|
+
PASSWORD: decorator_validation_1.ValidationKeys.PASSWORD,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQTJFO0FBRTNFOzs7R0FHRztBQUNVLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLE9BQU8sRUFBRSxHQUFHLGdDQUFTLENBQUMsT0FBTyxNQUFNO0lBQ25DLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07SUFDWixXQUFXLEVBQUUsUUFBUTtJQUNyQixZQUFZLEVBQUUsdUJBQXVCO0lBRXJDLElBQUksRUFBRSxNQUFNO0lBQ1osUUFBUSxFQUFFLFNBQVM7SUFFbkIsU0FBUyxFQUFFLFVBQVU7SUFDckIsUUFBUSxFQUFFLHFDQUFjLENBQUMsUUFBUTtJQUNqQyxHQUFHLEVBQUUscUNBQWMsQ0FBQyxHQUFHO0lBQ3ZCLFVBQVUsRUFBRSxxQ0FBYyxDQUFDLFVBQVU7SUFDckMsR0FBRyxFQUFFLHFDQUFjLENBQUMsR0FBRztJQUN2QixVQUFVLEVBQUUscUNBQWMsQ0FBQyxVQUFVO0lBQ3JDLE9BQU8sRUFBRSxxQ0FBYyxDQUFDLE9BQU87SUFDL0IsR0FBRyxFQUFFLHFDQUFjLENBQUMsR0FBRztJQUN2QixJQUFJLEVBQUUscUNBQWMsQ0FBQyxJQUFJO0lBQ3pCLElBQUksRUFBRSxxQ0FBYyxDQUFDLElBQUk7SUFDekIsS0FBSyxFQUFFLHFDQUFjLENBQUMsS0FBSztJQUMzQixRQUFRLEVBQUUscUNBQWMsQ0FBQyxRQUFRO0NBQ2xDLENBQUMiLCJmaWxlIjoidWkvY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxLZXlzLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuLyoqXG4gKiBAZW51bSBVSUtleXNcbiAqIEBjYXRlZ29yeSBDb25zdGFudHNcbiAqL1xuZXhwb3J0IGNvbnN0IFVJS2V5cyA9IHtcbiAgUkVGTEVDVDogYCR7TW9kZWxLZXlzLlJFRkxFQ1R9LnVpLmAsXG4gIFVJTU9ERUw6IFwidWltb2RlbFwiLFxuICBSRU5ERVJFRF9CWTogXCJyZW5kZXJlZC1ieVwiLFxuICBFTEVNRU5UOiBcImVsZW1lbnRcIixcbiAgUFJPUDogXCJwcm9wXCIsXG4gIE5BTUU6IFwibmFtZVwiLFxuICBOQU1FX1BSRUZJWDogXCJpbnB1dC1cIixcbiAgQ1VTVE9NX1BST1BTOiBcImN1c3RvbVZhbGlkYXRpb25Qcm9wc1wiLFxuXG4gIFRZUEU6IFwidHlwZVwiLFxuICBTVUJfVFlQRTogXCJzdWJ0eXBlXCIsXG5cbiAgUkVBRF9PTkxZOiBcInJlYWRvbmx5XCIsXG4gIFJFUVVJUkVEOiBWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRCxcbiAgTUlOOiBWYWxpZGF0aW9uS2V5cy5NSU4sXG4gIE1JTl9MRU5HVEg6IFZhbGlkYXRpb25LZXlzLk1JTl9MRU5HVEgsXG4gIE1BWDogVmFsaWRhdGlvbktleXMuTUFYLFxuICBNQVhfTEVOR1RIOiBWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RILFxuICBQQVRURVJOOiBWYWxpZGF0aW9uS2V5cy5QQVRURVJOLFxuICBVUkw6IFZhbGlkYXRpb25LZXlzLlVSTCxcbiAgU1RFUDogVmFsaWRhdGlvbktleXMuU1RFUCxcbiAgREFURTogVmFsaWRhdGlvbktleXMuREFURSxcbiAgRU1BSUw6IFZhbGlkYXRpb25LZXlzLkVNQUlMLFxuICBQQVNTV09SRDogVmFsaWRhdGlvbktleXMuUEFTU1dPUkQsXG59O1xuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @enum UIKeys
|
|
3
|
+
* @category Constants
|
|
4
|
+
*/
|
|
5
|
+
export declare const UIKeys: {
|
|
6
|
+
REFLECT: string;
|
|
7
|
+
UIMODEL: string;
|
|
8
|
+
RENDERED_BY: string;
|
|
9
|
+
ELEMENT: string;
|
|
10
|
+
PROP: string;
|
|
11
|
+
NAME: string;
|
|
12
|
+
NAME_PREFIX: string;
|
|
13
|
+
CUSTOM_PROPS: string;
|
|
14
|
+
TYPE: string;
|
|
15
|
+
SUB_TYPE: string;
|
|
16
|
+
READ_ONLY: string;
|
|
17
|
+
REQUIRED: string;
|
|
18
|
+
MIN: string;
|
|
19
|
+
MIN_LENGTH: string;
|
|
20
|
+
MAX: string;
|
|
21
|
+
MAX_LENGTH: string;
|
|
22
|
+
PATTERN: string;
|
|
23
|
+
URL: string;
|
|
24
|
+
STEP: string;
|
|
25
|
+
DATE: string;
|
|
26
|
+
EMAIL: string;
|
|
27
|
+
PASSWORD: string;
|
|
28
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.uiprop = void 0;
|
|
4
|
+
exports.uielement = uielement;
|
|
5
|
+
require("reflect-metadata");
|
|
6
|
+
const constants_1 = require("./constants.cjs");
|
|
7
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
8
|
+
/**
|
|
9
|
+
* @namespace ui-decorators.ui.decorators
|
|
10
|
+
* @memberOf ui-decorators.ui
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @param {string} key
|
|
15
|
+
*
|
|
16
|
+
* @function getUIKey
|
|
17
|
+
*
|
|
18
|
+
* @memberOf ui-decorators.ui.decorators
|
|
19
|
+
*/
|
|
20
|
+
const getUIKey = (key) => constants_1.UIKeys.REFLECT + key;
|
|
21
|
+
/**
|
|
22
|
+
* Adds the UIElement definition as metadata to the property, allowing it to be read by any {@link RenderStrategy}
|
|
23
|
+
*
|
|
24
|
+
* @param {string} tag The component/HTML element tag name
|
|
25
|
+
* @param {{}} [props] The properties to pass to that component/HTML Element
|
|
26
|
+
* @param {any[]} [args] optional arguments that will be passed to the rendering strategy.
|
|
27
|
+
*
|
|
28
|
+
* @decorator uielement
|
|
29
|
+
*
|
|
30
|
+
* @category Decorators
|
|
31
|
+
* @subcategory ui-decorators
|
|
32
|
+
*/
|
|
33
|
+
function uielement(tag, props, serialize = false, ...args) {
|
|
34
|
+
const metadata = {
|
|
35
|
+
tag: tag,
|
|
36
|
+
serialize: serialize,
|
|
37
|
+
props: props,
|
|
38
|
+
args: args,
|
|
39
|
+
};
|
|
40
|
+
return (0, decorator_validation_1.propMetadata)(getUIKey(constants_1.UIKeys.ELEMENT), metadata);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Adds the UIProp definition as metadata to the property, allowing it to be read by any {@link RenderStrategy}
|
|
44
|
+
*
|
|
45
|
+
* this requires a '@uimodel' with a defined tag
|
|
46
|
+
*
|
|
47
|
+
* @param {string} [propName] the property name that will be passed to the component. defaults to the PropertyKey
|
|
48
|
+
*
|
|
49
|
+
* @decorator uiprop
|
|
50
|
+
*
|
|
51
|
+
* @category Decorators
|
|
52
|
+
* @subcategory ui-decorators
|
|
53
|
+
*/
|
|
54
|
+
const uiprop = (propName = undefined, stringify = false) => (target, propertyKey) => {
|
|
55
|
+
const metadata = {
|
|
56
|
+
name: propName || propertyKey,
|
|
57
|
+
stringify: stringify,
|
|
58
|
+
};
|
|
59
|
+
Reflect.defineMetadata(getUIKey(constants_1.UIKeys.PROP), metadata, target, propertyKey);
|
|
60
|
+
};
|
|
61
|
+
exports.uiprop = uiprop;
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTBDQSw4QkFhQztBQXZERCw0QkFBMEI7QUFDMUIsMkNBQXFDO0FBQ3JDLHlFQUE4RDtBQUU5RDs7O0dBR0c7QUFFSDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLGtCQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQWF2RDs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQWdCLFNBQVMsQ0FDdkIsR0FBVyxFQUNYLEtBQWtDLEVBQ2xDLFlBQXFCLEtBQUssRUFDMUIsR0FBRyxJQUFXO0lBRWQsTUFBTSxRQUFRLEdBQXNCO1FBQ2xDLEdBQUcsRUFBRSxHQUFHO1FBQ1IsU0FBUyxFQUFFLFNBQVM7UUFDcEIsS0FBSyxFQUFFLEtBQUs7UUFDWixJQUFJLEVBQUUsSUFBSTtLQUNYLENBQUM7SUFDRixPQUFPLElBQUEsbUNBQVksRUFBQyxRQUFRLENBQUMsa0JBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBVUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSSxNQUFNLE1BQU0sR0FDakIsQ0FBQyxXQUErQixTQUFTLEVBQUUsWUFBcUIsS0FBSyxFQUFFLEVBQUUsQ0FDekUsQ0FBQyxNQUFXLEVBQUUsV0FBbUIsRUFBRSxFQUFFO0lBQ25DLE1BQU0sUUFBUSxHQUFtQjtRQUMvQixJQUFJLEVBQUUsUUFBUSxJQUFJLFdBQVc7UUFDN0IsU0FBUyxFQUFFLFNBQVM7S0FDckIsQ0FBQztJQUVGLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLFFBQVEsQ0FBQyxrQkFBTSxDQUFDLElBQUksQ0FBQyxFQUNyQixRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsQ0FDWixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBZFMsUUFBQSxNQUFNLFVBY2YiLCJmaWxlIjoidWkvZGVjb3JhdG9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcbmltcG9ydCB7IFVJS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgcHJvcE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG4vKipcbiAqIEBuYW1lc3BhY2UgdWktZGVjb3JhdG9ycy51aS5kZWNvcmF0b3JzXG4gKiBAbWVtYmVyT2YgdWktZGVjb3JhdG9ycy51aVxuICovXG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqXG4gKiBAZnVuY3Rpb24gZ2V0VUlLZXlcbiAqXG4gKiBAbWVtYmVyT2YgdWktZGVjb3JhdG9ycy51aS5kZWNvcmF0b3JzXG4gKi9cbmNvbnN0IGdldFVJS2V5ID0gKGtleTogc3RyaW5nKSA9PiBVSUtleXMuUkVGTEVDVCArIGtleTtcblxuLyoqXG4gKiBAdHlwZWRlZiBVSUVsZW1lbnRNZXRhZGF0YVxuICogQG1lbWJlck9mIHVpLWRlY29yYXRvcnMudWkuZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBVSUVsZW1lbnRNZXRhZGF0YSA9IHtcbiAgdGFnOiBzdHJpbmc7XG4gIGFyZ3M/OiBhbnlbXTtcbiAgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBzZXJpYWxpemU/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBBZGRzIHRoZSBVSUVsZW1lbnQgZGVmaW5pdGlvbiBhcyBtZXRhZGF0YSB0byB0aGUgcHJvcGVydHksIGFsbG93aW5nIGl0IHRvIGJlIHJlYWQgYnkgYW55IHtAbGluayBSZW5kZXJTdHJhdGVneX1cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBjb21wb25lbnQvSFRNTCBlbGVtZW50IHRhZyBuYW1lXG4gKiBAcGFyYW0ge3t9fSBbcHJvcHNdIFRoZSBwcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhhdCBjb21wb25lbnQvSFRNTCBFbGVtZW50XG4gKiBAcGFyYW0ge2FueVtdfSBbYXJnc10gb3B0aW9uYWwgYXJndW1lbnRzIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHJlbmRlcmluZyBzdHJhdGVneS5cbiAqXG4gKiBAZGVjb3JhdG9yIHVpZWxlbWVudFxuICpcbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKiBAc3ViY2F0ZWdvcnkgdWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdWllbGVtZW50KFxuICB0YWc6IHN0cmluZyxcbiAgcHJvcHM/OiB7IFtpbmRleGVyOiBzdHJpbmddOiBhbnkgfSxcbiAgc2VyaWFsaXplOiBib29sZWFuID0gZmFsc2UsXG4gIC4uLmFyZ3M6IGFueVtdXG4pIHtcbiAgY29uc3QgbWV0YWRhdGE6IFVJRWxlbWVudE1ldGFkYXRhID0ge1xuICAgIHRhZzogdGFnLFxuICAgIHNlcmlhbGl6ZTogc2VyaWFsaXplLFxuICAgIHByb3BzOiBwcm9wcyxcbiAgICBhcmdzOiBhcmdzLFxuICB9O1xuICByZXR1cm4gcHJvcE1ldGFkYXRhKGdldFVJS2V5KFVJS2V5cy5FTEVNRU5UKSwgbWV0YWRhdGEpO1xufVxuLyoqXG4gKiBAdHlwZWRlZiBVSVByb3BNZXRhZGF0YVxuICogQG1lbWJlck9mIHVpLWRlY29yYXRvcnMudWkuZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBVSVByb3BNZXRhZGF0YSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBzdHJpbmdpZnk6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEFkZHMgdGhlIFVJUHJvcCBkZWZpbml0aW9uIGFzIG1ldGFkYXRhIHRvIHRoZSBwcm9wZXJ0eSwgYWxsb3dpbmcgaXQgdG8gYmUgcmVhZCBieSBhbnkge0BsaW5rIFJlbmRlclN0cmF0ZWd5fVxuICpcbiAqIHRoaXMgcmVxdWlyZXMgYSAnQHVpbW9kZWwnIHdpdGggYSBkZWZpbmVkIHRhZ1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbcHJvcE5hbWVdIHRoZSBwcm9wZXJ0eSBuYW1lIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGNvbXBvbmVudC4gZGVmYXVsdHMgdG8gdGhlIFByb3BlcnR5S2V5XG4gKlxuICogQGRlY29yYXRvciB1aXByb3BcbiAqXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICogQHN1YmNhdGVnb3J5IHVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IHVpcHJvcCA9XG4gIChwcm9wTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLCBzdHJpbmdpZnk6IGJvb2xlYW4gPSBmYWxzZSkgPT5cbiAgKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgbWV0YWRhdGE6IFVJUHJvcE1ldGFkYXRhID0ge1xuICAgICAgbmFtZTogcHJvcE5hbWUgfHwgcHJvcGVydHlLZXksXG4gICAgICBzdHJpbmdpZnk6IHN0cmluZ2lmeSxcbiAgICB9O1xuXG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIGdldFVJS2V5KFVJS2V5cy5QUk9QKSxcbiAgICAgIG1ldGFkYXRhLFxuICAgICAgdGFyZ2V0LFxuICAgICAgcHJvcGVydHlLZXlcbiAgICApO1xuICB9O1xuIl19
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
/**
|
|
3
|
+
* @typedef UIElementMetadata
|
|
4
|
+
* @memberOf ui-decorators.ui.decorators
|
|
5
|
+
*/
|
|
6
|
+
export type UIElementMetadata = {
|
|
7
|
+
tag: string;
|
|
8
|
+
args?: any[];
|
|
9
|
+
props?: Record<string, any>;
|
|
10
|
+
serialize?: boolean;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Adds the UIElement definition as metadata to the property, allowing it to be read by any {@link RenderStrategy}
|
|
14
|
+
*
|
|
15
|
+
* @param {string} tag The component/HTML element tag name
|
|
16
|
+
* @param {{}} [props] The properties to pass to that component/HTML Element
|
|
17
|
+
* @param {any[]} [args] optional arguments that will be passed to the rendering strategy.
|
|
18
|
+
*
|
|
19
|
+
* @decorator uielement
|
|
20
|
+
*
|
|
21
|
+
* @category Decorators
|
|
22
|
+
* @subcategory ui-decorators
|
|
23
|
+
*/
|
|
24
|
+
export declare function uielement(tag: string, props?: {
|
|
25
|
+
[indexer: string]: any;
|
|
26
|
+
}, serialize?: boolean, ...args: any[]): (target: object, propertyKey?: any, descriptor?: any) => void;
|
|
27
|
+
/**
|
|
28
|
+
* @typedef UIPropMetadata
|
|
29
|
+
* @memberOf ui-decorators.ui.decorators
|
|
30
|
+
*/
|
|
31
|
+
export type UIPropMetadata = {
|
|
32
|
+
name: string;
|
|
33
|
+
stringify: boolean;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Adds the UIProp definition as metadata to the property, allowing it to be read by any {@link RenderStrategy}
|
|
37
|
+
*
|
|
38
|
+
* this requires a '@uimodel' with a defined tag
|
|
39
|
+
*
|
|
40
|
+
* @param {string} [propName] the property name that will be passed to the component. defaults to the PropertyKey
|
|
41
|
+
*
|
|
42
|
+
* @decorator uiprop
|
|
43
|
+
*
|
|
44
|
+
* @category Decorators
|
|
45
|
+
* @subcategory ui-decorators
|
|
46
|
+
*/
|
|
47
|
+
export declare const uiprop: (propName?: string | undefined, stringify?: boolean) => (target: any, propertyKey: string) => void;
|
package/lib/ui/index.cjs
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @namespace ui-decorators.ui
|
|
4
|
+
* @memberOf ui-decorators
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
__exportStar(require("./constants.cjs"), exports);
|
|
22
|
+
__exportStar(require("./decorators.cjs"), exports);
|
|
23
|
+
__exportStar(require("./Rendering.cjs"), exports);
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsOENBQTRCO0FBQzVCLCtDQUE2QjtBQUM3Qiw4Q0FBNEIiLCJmaWxlIjoidWkvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBuYW1lc3BhY2UgdWktZGVjb3JhdG9ycy51aVxuICogQG1lbWJlck9mIHVpLWRlY29yYXRvcnNcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1JlbmRlcmluZ1wiO1xuIl19
|
package/package.json
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@decaf-ts/ui-decorators",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "Extension of decorator validation to ui elements to allow for web integration",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
"require": "./lib/index.cjs",
|
|
8
|
+
"import": "./lib/esm/index.js"
|
|
9
|
+
},
|
|
10
|
+
"types": "lib/index.d.ts",
|
|
11
|
+
"scripts": {
|
|
12
|
+
"do-install": "TOKEN=$(cat .token) npm install",
|
|
13
|
+
"update-dependencies": "rimraf node_modules/@decaf-ts package-lock.json && npm run do-install",
|
|
14
|
+
"flash-forward": "npx npm-check-updates -u && npm run do-install",
|
|
15
|
+
"reset": "rm -rf * && git checkout . && git pull && npm run do-install",
|
|
16
|
+
"build": "rimraf ./lib && rimraf ./dist && gulp dev",
|
|
17
|
+
"build:prod": "rimraf ./lib && rimraf ./dist && gulp prod",
|
|
18
|
+
"test": "jest --coverage --testPathPattern=\"/tests/unit\" --passWithNoTests --detectOpenHandles",
|
|
19
|
+
"test:integration": "jest --coverage --testPathPattern=\"/tests/(integration)\" --passWithNoTests --detectOpenHandles",
|
|
20
|
+
"test:all": "jest --coverage --testPathPattern=\"/tests/(unit|integration)\" --passWithNoTests --detectOpenHandles",
|
|
21
|
+
"lint": "eslint .",
|
|
22
|
+
"lint-fix": "eslint --fix ./src/*",
|
|
23
|
+
"test:circular": "dpdm -T --no-warning --no-tree ./src/index.ts",
|
|
24
|
+
"prepare-release": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
|
25
|
+
"release": "./bin/tag-release.sh",
|
|
26
|
+
"clean-publish": "npx clean-publish",
|
|
27
|
+
"coverage": "npm run test:all && cd workdocs && jest-coverage-badges",
|
|
28
|
+
"docs": "npx rimraf ./docs && mkdir docs && npm run do-install -- better-docs taffydb && gulp docs; npm remove better-docs taffydb"
|
|
29
|
+
},
|
|
30
|
+
"repository": {
|
|
31
|
+
"type": "git",
|
|
32
|
+
"url": "git+https://github.com/decaf-ts/ui-decorators.git"
|
|
33
|
+
},
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=20.0.0",
|
|
36
|
+
"npm": ">=10.0.0"
|
|
37
|
+
},
|
|
38
|
+
"files": [
|
|
39
|
+
"lib",
|
|
40
|
+
"dist"
|
|
41
|
+
],
|
|
42
|
+
"keywords": [
|
|
43
|
+
"plantuml",
|
|
44
|
+
"mermaid",
|
|
45
|
+
"uml",
|
|
46
|
+
"drawio",
|
|
47
|
+
"mddocs",
|
|
48
|
+
"md",
|
|
49
|
+
"jsdoc",
|
|
50
|
+
"doc",
|
|
51
|
+
"docs",
|
|
52
|
+
"documentation",
|
|
53
|
+
"ci/cd",
|
|
54
|
+
"ci",
|
|
55
|
+
"cd",
|
|
56
|
+
"template",
|
|
57
|
+
"typescript",
|
|
58
|
+
"ts"
|
|
59
|
+
],
|
|
60
|
+
"author": "Tiago Venceslau",
|
|
61
|
+
"license": "MIT",
|
|
62
|
+
"bugs": {
|
|
63
|
+
"url": "https://github.com/decaf-ts/ui-decorators/issues"
|
|
64
|
+
},
|
|
65
|
+
"homepage": "https://github.com/decaf-ts/ui-decorators#readme",
|
|
66
|
+
"devDependencies": {
|
|
67
|
+
"@eslint/js": "^9.14.0",
|
|
68
|
+
"@types/jest": "^29.5.14",
|
|
69
|
+
"@typescript-eslint/eslint-plugin": "^8.14.0",
|
|
70
|
+
"clean-publish": "^5.1.0",
|
|
71
|
+
"dpdm": "^3.14.0",
|
|
72
|
+
"eslint": "^9.14.0",
|
|
73
|
+
"eslint-config-prettier": "^9.1.0",
|
|
74
|
+
"eslint-plugin-prettier": "^5.2.1",
|
|
75
|
+
"globals": "^15.12.0",
|
|
76
|
+
"gulp": "^5.0.0",
|
|
77
|
+
"gulp-if": "^3.0.0",
|
|
78
|
+
"gulp-rename": "^2.0.0",
|
|
79
|
+
"gulp-replace": "^1.1.4",
|
|
80
|
+
"gulp-run-command": "^0.0.10",
|
|
81
|
+
"gulp-sourcemaps": "^2.6.5",
|
|
82
|
+
"gulp-typescript": "^6.0.0-alpha.1",
|
|
83
|
+
"gulp-uglify": "^3.0.2",
|
|
84
|
+
"jest": "^29.7.0",
|
|
85
|
+
"jest-coverage-badges": "^1.0.0",
|
|
86
|
+
"jest-junit": "^16.0.0",
|
|
87
|
+
"jsdoc": "^4.0.4",
|
|
88
|
+
"jsdoc-mermaid": "^1.0.0",
|
|
89
|
+
"markdown-include": "^0.4.3",
|
|
90
|
+
"merge-stream": "^2.0.0",
|
|
91
|
+
"nodemon": "^3.1.7",
|
|
92
|
+
"npm-check-updates": "^17.1.10",
|
|
93
|
+
"prettier": "^3.3.3",
|
|
94
|
+
"rimraf": "^6.0.1",
|
|
95
|
+
"ts-jest": "^29.2.5",
|
|
96
|
+
"ts-loader": "^9.5.1",
|
|
97
|
+
"ts-node": "^10.9.2",
|
|
98
|
+
"typescript": "^5.6.3",
|
|
99
|
+
"typescript-eslint": "^8.14.0",
|
|
100
|
+
"vinyl-named": "^1.1.0",
|
|
101
|
+
"webpack-stream": "^7.0.0"
|
|
102
|
+
},
|
|
103
|
+
"peerDependencies": {
|
|
104
|
+
"@decaf-ts/db-decorators": "latest",
|
|
105
|
+
"@decaf-ts/decorator-validation": "latest",
|
|
106
|
+
"@decaf-ts/reflection": "latest",
|
|
107
|
+
"reflect-metadata": "^0.2.1"
|
|
108
|
+
}
|
|
109
|
+
}
|