@smartsoft001/crud-shell-angular 1.2.72 → 1.2.77
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/{esm2020 → esm2022}/lib/+state/crud.effects.mjs +4 -4
- package/{esm2020 → esm2022}/lib/+state/crud.facade.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/components.module.mjs +51 -51
- package/{esm2020 → esm2022}/lib/components/export/export.component.mjs +4 -4
- package/esm2022/lib/components/filter/base/base.component.mjs +152 -0
- package/{esm2020 → esm2022}/lib/components/filter/check/check.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/filter/date/date.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/filter/date-time/date-time.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/filter/date-with-edit/date-with-edit.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/filter/filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/filter/flag/flag.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/filter/int/int.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/filter/radio/radio.component.mjs +4 -4
- package/esm2022/lib/components/filter/text/text.component.mjs +16 -0
- package/{esm2020 → esm2022}/lib/components/filters/filters.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/filters-config/filters-config.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/group/group.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/multiselect/multiselect.component.mjs +4 -4
- package/esm2022/lib/crud-full.module.mjs +103 -0
- package/{esm2020 → esm2022}/lib/crud.config.mjs +7 -7
- package/{esm2020 → esm2022}/lib/crud.module.mjs +33 -33
- package/{esm2020 → esm2022}/lib/factories/list-pagination/list-pagination.factory.mjs +4 -4
- package/esm2022/lib/pages/item/base/base.component.mjs +44 -0
- package/esm2022/lib/pages/item/item.component.mjs +395 -0
- package/{esm2020 → esm2022}/lib/pages/item/standard/standard.component.mjs +4 -4
- package/esm2022/lib/pages/list/base/base.component.mjs +23 -0
- package/{esm2020 → esm2022}/lib/pages/list/list.component.mjs +6 -6
- package/{esm2020 → esm2022}/lib/pages/list/standard/standard.component.mjs +6 -6
- package/{esm2020 → esm2022}/lib/pipes/form-options/form-options.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/pipes.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/services/crud/crud.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/list-group/list-group.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/page/page.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/search/search.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/socket/socket.service.mjs +7 -7
- package/{fesm2020 → fesm2022}/smartsoft001-crud-shell-angular.mjs +237 -237
- package/{fesm2020 → fesm2022}/smartsoft001-crud-shell-angular.mjs.map +1 -1
- package/lib/components/filter/base/base.component.d.ts +1 -1
- package/lib/components/filter/filter.component.d.ts +1 -1
- package/lib/components/filters/filters.component.d.ts +1 -1
- package/lib/components/group/group.component.d.ts +1 -1
- package/lib/models/interfaces.d.ts +1 -1
- package/lib/models/interfaces.d.ts.map +1 -1
- package/lib/pages/item/base/base.component.d.ts +1 -1
- package/lib/pages/list/base/base.component.d.ts +1 -1
- package/package.json +8 -14
- package/esm2020/lib/components/filter/base/base.component.mjs +0 -152
- package/esm2020/lib/components/filter/text/text.component.mjs +0 -16
- package/esm2020/lib/crud-full.module.mjs +0 -103
- package/esm2020/lib/pages/item/base/base.component.mjs +0 -44
- package/esm2020/lib/pages/item/item.component.mjs +0 -395
- package/esm2020/lib/pages/list/base/base.component.mjs +0 -23
- package/fesm2015/smartsoft001-crud-shell-angular.mjs +0 -2654
- package/fesm2015/smartsoft001-crud-shell-angular.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/+state/crud.actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/+state/crud.reducer.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/+state/crud.selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/filter/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pages/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/providers/model-possibilities/model-possibilities.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/smartsoft001-crud-shell-angular.mjs +0 -0
|
@@ -60,10 +60,10 @@ export class CrudListPaginationFactory {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CrudListPaginationFactory, deps: [{ token: i1.CrudFacade }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
64
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CrudListPaginationFactory }); }
|
|
63
65
|
}
|
|
64
|
-
|
|
65
|
-
/** @nocollapse */ CrudListPaginationFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CrudListPaginationFactory });
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CrudListPaginationFactory, decorators: [{
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CrudListPaginationFactory, decorators: [{
|
|
67
67
|
type: Injectable
|
|
68
68
|
}], ctorParameters: function () { return [{ type: i1.CrudFacade }]; } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdpbmF0aW9uLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2ZhY3Rvcmllcy9saXN0LXBhZ2luYXRpb24vbGlzdC1wYWdpbmF0aW9uLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUtyQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7OztBQUlwRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQTZCLE1BQXFCO1FBQXJCLFdBQU0sR0FBTixNQUFNLENBQWU7SUFBRyxDQUFDO0lBRXRELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FPWjtRQUNDLE9BQU87WUFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLFlBQVksRUFBRSxHQUFHLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJO29CQUNuRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRWhDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQzlDLElBQUksQ0FBQyxFQUFFOzRCQUNMLDZDQUE2Qzs0QkFDN0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQ0FDZCxHQUFHLENBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7b0NBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUNuQyxDQUFDOzRCQUNKLENBQUMsQ0FBQyxDQUFDO3lCQUNKO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUVILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNmLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7d0JBQy9CLE1BQU0sRUFDSixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU07NEJBQ25DLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSztxQkFDckMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELFlBQVksRUFBRSxHQUFHLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJO29CQUNuRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRWhDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQzlDLElBQUksQ0FBQyxFQUFFOzRCQUNMLDZDQUE2Qzs0QkFDN0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQ0FDZCxHQUFHLENBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7b0NBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUNuQyxDQUFDOzRCQUNKLENBQUMsQ0FBQyxDQUFDO3lCQUNKO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUVILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNmLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7d0JBQy9CLE1BQU0sRUFDSixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU07NEJBQ25DLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSztxQkFDckMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNSLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUNIO1lBQ0QsV0FBVyxFQUFFLGFBQWEsQ0FDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUN4QixDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFO2dCQUMzQixPQUFPLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxDQUNIO1NBQ0YsQ0FBQztJQUNKLENBQUM7aUlBOUVVLHlCQUF5QjtxSUFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7IElFbnRpdHkgfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0IHtJTGlzdFBhZ2luYXRpb25PcHRpb25zLCBQYWdpbmF0aW9uTW9kZX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvYW5ndWxhclwiO1xuXG5pbXBvcnQge0NydWRGYWNhZGV9IGZyb20gXCIuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGVcIjtcbmltcG9ydCB7SUNydWRGaWx0ZXJ9IGZyb20gXCIuLi8uLi9tb2RlbHMvaW50ZXJmYWNlc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RQYWdpbmF0aW9uRmFjdG9yeTxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmFjYWRlOiBDcnVkRmFjYWRlPFQ+KSB7fVxuXG4gIGFzeW5jIGNyZWF0ZShvcHRpb25zOiB7XG4gICAgbW9kZT86IFBhZ2luYXRpb25Nb2RlLFxuICAgIGxpbWl0OiBudW1iZXI7XG4gICAgcHJvdmlkZXI6IHtcbiAgICAgIGdldExpbmtzKCk6IGFueTtcbiAgICAgIGdldEZpbHRlcigpOiBJQ3J1ZEZpbHRlcjtcbiAgICB9O1xuICB9KTogUHJvbWlzZTxJTGlzdFBhZ2luYXRpb25PcHRpb25zPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGU6IG9wdGlvbnMubW9kZSxcbiAgICAgIGxpbWl0OiBvcHRpb25zLmxpbWl0LFxuICAgICAgbG9hZE5leHRQYWdlOiAoKSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5wcm92aWRlci5nZXRMaW5rcygpIHx8ICFvcHRpb25zLnByb3ZpZGVyLmdldExpbmtzKCkubmV4dClcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1YiA9IHRoaXMuZmFjYWRlLmxvYWRlZCQuc3Vic2NyaWJlKChsKSA9PiB7XG4gICAgICAgICAgICBpZiAobCkge1xuICAgICAgICAgICAgICAvLyBpZiAoc3ViICYmICFzdWIuY2xvc2VkKSBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzKFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wcm92aWRlci5nZXRMaW5rcygpICYmXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHJvdmlkZXIuZ2V0TGlua3MoKS5uZXh0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLmZhY2FkZS5yZWFkKHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMucHJvdmlkZXIuZ2V0RmlsdGVyKCksXG4gICAgICAgICAgICBvZmZzZXQ6XG4gICAgICAgICAgICAgIG9wdGlvbnMucHJvdmlkZXIuZ2V0RmlsdGVyKCkub2Zmc2V0ICtcbiAgICAgICAgICAgICAgb3B0aW9ucy5wcm92aWRlci5nZXRGaWx0ZXIoKS5saW1pdCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgbG9hZFByZXZQYWdlOiAoKSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5wcm92aWRlci5nZXRMaW5rcygpIHx8ICFvcHRpb25zLnByb3ZpZGVyLmdldExpbmtzKCkucHJldilcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1YiA9IHRoaXMuZmFjYWRlLmxvYWRlZCQuc3Vic2NyaWJlKChsKSA9PiB7XG4gICAgICAgICAgICBpZiAobCkge1xuICAgICAgICAgICAgICAvLyBpZiAoc3ViICYmICFzdWIuY2xvc2VkKSBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzKFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wcm92aWRlci5nZXRMaW5rcygpICYmXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHJvdmlkZXIuZ2V0TGlua3MoKS5wcmV2XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLmZhY2FkZS5yZWFkKHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMucHJvdmlkZXIuZ2V0RmlsdGVyKCksXG4gICAgICAgICAgICBvZmZzZXQ6XG4gICAgICAgICAgICAgIG9wdGlvbnMucHJvdmlkZXIuZ2V0RmlsdGVyKCkub2Zmc2V0IC1cbiAgICAgICAgICAgICAgb3B0aW9ucy5wcm92aWRlci5nZXRGaWx0ZXIoKS5saW1pdCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgcGFnZSQ6IHRoaXMuZmFjYWRlLmZpbHRlciQucGlwZShcbiAgICAgICAgbWFwKChmKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGY/LmxpbWl0ID8gZi5vZmZzZXQgLyBmLmxpbWl0ICsgMSA6IDA7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgdG90YWxQYWdlcyQ6IGNvbWJpbmVMYXRlc3QoXG4gICAgICAgIHRoaXMuZmFjYWRlLmZpbHRlciQsXG4gICAgICAgIHRoaXMuZmFjYWRlLnRvdGFsQ291bnQkXG4gICAgICApLnBpcGUoXG4gICAgICAgIG1hcCgoW2ZpbHRlciwgdG90YWxDb3VudF0pID0+IHtcbiAgICAgICAgICByZXR1cm4gZmlsdGVyPy5saW1pdCA/IE1hdGguY2VpbCh0b3RhbENvdW50IC8gZmlsdGVyLmxpbWl0KSA6IDA7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren, ViewContainerRef } from "@angular/core";
|
|
2
|
+
import { BaseComponent, FormComponent, } from "@smartsoft001/angular";
|
|
3
|
+
import { CrudFullConfig } from "../../../crud.config";
|
|
4
|
+
import { CrudFacade } from "../../../+state/crud.facade";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../../crud.config";
|
|
7
|
+
import * as i2 from "../../../+state/crud.facade";
|
|
8
|
+
export class CrudItemPageBaseComponent extends BaseComponent {
|
|
9
|
+
static { this.smartType = "crud-item-page"; }
|
|
10
|
+
constructor(config, facade) {
|
|
11
|
+
super();
|
|
12
|
+
this.config = config;
|
|
13
|
+
this.facade = facade;
|
|
14
|
+
this.formComponents = new QueryList();
|
|
15
|
+
this.onPartialChange = new EventEmitter();
|
|
16
|
+
this.onChange = new EventEmitter();
|
|
17
|
+
this.onValidChange = new EventEmitter();
|
|
18
|
+
this.selected$ = facade.selected$;
|
|
19
|
+
}
|
|
20
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CrudItemPageBaseComponent, deps: [{ token: i1.CrudFullConfig }, { token: i2.CrudFacade }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.3", type: CrudItemPageBaseComponent, inputs: { detailsOptions: "detailsOptions", mode: "mode", uniqueProvider: "uniqueProvider" }, outputs: { onPartialChange: "onPartialChange", onChange: "onChange", onValidChange: "onValidChange" }, viewQueries: [{ propertyName: "contentTpl", first: true, predicate: ["contentTpl"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "formComponents", predicate: FormComponent, descendants: true, read: FormComponent }], usesInheritance: true, ngImport: i0 }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CrudItemPageBaseComponent, decorators: [{
|
|
24
|
+
type: Directive
|
|
25
|
+
}], ctorParameters: function () { return [{ type: i1.CrudFullConfig }, { type: i2.CrudFacade }]; }, propDecorators: { contentTpl: [{
|
|
26
|
+
type: ViewChild,
|
|
27
|
+
args: ["contentTpl", { read: ViewContainerRef, static: true }]
|
|
28
|
+
}], formComponents: [{
|
|
29
|
+
type: ViewChildren,
|
|
30
|
+
args: [FormComponent, { read: FormComponent }]
|
|
31
|
+
}], detailsOptions: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], mode: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], uniqueProvider: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], onPartialChange: [{
|
|
38
|
+
type: Output
|
|
39
|
+
}], onChange: [{
|
|
40
|
+
type: Output
|
|
41
|
+
}], onValidChange: [{
|
|
42
|
+
type: Output
|
|
43
|
+
}] } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL3BhZ2VzL2l0ZW0vYmFzZS9iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUFFLFlBQVksRUFDdkIsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQ3hCLFNBQVMsRUFBRSxZQUFZLEVBQ3ZCLGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0gsYUFBYSxFQUNTLGFBQWEsR0FDdEMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBR3pELE1BQU0sT0FBZ0IseUJBQXFELFNBQVEsYUFBYTthQUNyRixjQUFTLEdBQXlCLGdCQUFnQixBQUF6QyxDQUEwQztJQTJCMUQsWUFDVyxNQUF5QixFQUN6QixNQUFxQjtRQUU1QixLQUFLLEVBQUUsQ0FBQztRQUhELFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ3pCLFdBQU0sR0FBTixNQUFNLENBQWU7UUF0QnNCLG1CQUFjLEdBQUcsSUFBSSxTQUFTLEVBQXNCLENBQUM7UUFZM0csb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBR2pELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO1FBR2pDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQU94QyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFHdEMsQ0FBQztpSUFwQ2lCLHlCQUF5QjtxSEFBekIseUJBQXlCLG9UQUtWLGdCQUFnQiwrREFHbkMsYUFBYSwyQkFBVSxhQUFhOzsyRkFSaEMseUJBQXlCO2tCQUQ5QyxTQUFTOzhIQU9OLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHWCxjQUFjO3NCQUFuRSxZQUFZO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7Z0JBR3BELGNBQWM7c0JBRGIsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU07Z0JBSVAsYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQge1xuICAgIEJhc2VDb21wb25lbnQsXG4gICAgRHluYW1pY0NvbXBvbmVudFR5cGUsIEZvcm1Db21wb25lbnQsIElEZXRhaWxzT3B0aW9ucyxcbn0gZnJvbSBcIkBzbWFydHNvZnQwMDEvYW5ndWxhclwiO1xuaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0IHsgQ3J1ZEZ1bGxDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vY3J1ZC5jb25maWdcIjtcbmltcG9ydCB7IENydWRGYWNhZGUgfSBmcm9tIFwiLi4vLi4vLi4vK3N0YXRlL2NydWQuZmFjYWRlXCI7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENydWRJdGVtUGFnZUJhc2VDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgc21hcnRUeXBlOiBEeW5hbWljQ29tcG9uZW50VHlwZSA9IFwiY3J1ZC1pdGVtLXBhZ2VcIjtcblxuICAgIHNlbGVjdGVkJDogT2JzZXJ2YWJsZTxUPjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjb250ZW50VHBsXCIsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgY29udGVudFRwbDogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIEBWaWV3Q2hpbGRyZW4oRm9ybUNvbXBvbmVudCwgeyByZWFkOiBGb3JtQ29tcG9uZW50IH0pIGZvcm1Db21wb25lbnRzID0gbmV3IFF1ZXJ5TGlzdDxGb3JtQ29tcG9uZW50PGFueT4+KCk7XG5cbiAgICBASW5wdXQoKVxuICAgIGRldGFpbHNPcHRpb25zOiBJRGV0YWlsc09wdGlvbnM8VD47XG5cbiAgICBASW5wdXQoKVxuICAgIG1vZGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgdW5pcXVlUHJvdmlkZXI6ICh2YWx1ZXM6IFJlY29yZDxrZXlvZiBULCBhbnk+KSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gICAgQE91dHB1dCgpXG4gICAgb25QYXJ0aWFsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxQYXJ0aWFsPFQ+PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBvblZhbGlkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBjb25maWc6IENydWRGdWxsQ29uZmlnPFQ+LFxuICAgICAgICBwdWJsaWMgZmFjYWRlOiBDcnVkRmFjYWRlPFQ+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQkID0gZmFjYWRlLnNlbGVjdGVkJDtcblxuXG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, NgModuleRef, QueryList, TemplateRef, ViewChild, ViewChildren, ViewContainerRef } from "@angular/core";
|
|
2
|
+
import { ActivatedRoute, Router } from "@angular/router";
|
|
3
|
+
import { BehaviorSubject } from "rxjs";
|
|
4
|
+
import { Location } from "@angular/common";
|
|
5
|
+
import { TranslateService } from "@ngx-translate/core";
|
|
6
|
+
import { AuthService, CreateDynamicComponent, DetailsService, DynamicComponentLoader, DynamicContentDirective, StyleService, ToastService, } from "@smartsoft001/angular";
|
|
7
|
+
import { getModelOptions } from "@smartsoft001/models";
|
|
8
|
+
import { SpecificationService } from "@smartsoft001/utils";
|
|
9
|
+
import { CrudFacade } from "../../+state/crud.facade";
|
|
10
|
+
import { CrudFullConfig } from "../../crud.config";
|
|
11
|
+
import { CrudService } from "../../services/crud/crud.service";
|
|
12
|
+
import { IonContent } from "@ionic/angular";
|
|
13
|
+
import { UntypedFormArray, UntypedFormControl, UntypedFormGroup } from "@angular/forms";
|
|
14
|
+
import { ItemStandardComponent } from "./standard/standard.component";
|
|
15
|
+
import { PageService } from "../../services/page/page.service";
|
|
16
|
+
import * as i0 from "@angular/core";
|
|
17
|
+
import * as i1 from "@angular/router";
|
|
18
|
+
import * as i2 from "../../+state/crud.facade";
|
|
19
|
+
import * as i3 from "../../services/crud/crud.service";
|
|
20
|
+
import * as i4 from "@smartsoft001/angular";
|
|
21
|
+
import * as i5 from "@ngx-translate/core";
|
|
22
|
+
import * as i6 from "../../crud.config";
|
|
23
|
+
import * as i7 from "@angular/common";
|
|
24
|
+
import * as i8 from "../../services/page/page.service";
|
|
25
|
+
import * as i9 from "./standard/standard.component";
|
|
26
|
+
export class ItemComponent extends CreateDynamicComponent('crud-item-page') {
|
|
27
|
+
set mode(val) {
|
|
28
|
+
this._mode = val;
|
|
29
|
+
this.refreshDynamicInstance();
|
|
30
|
+
}
|
|
31
|
+
get mode() {
|
|
32
|
+
return this._mode;
|
|
33
|
+
}
|
|
34
|
+
constructor(router, activeRoute, facade, service, route, dynamicComponentLoader, translateService, config, location, cd, authService, styleService, elementRef, toastService, pageService, moduleRef, componentFactoryResolver, detailsService) {
|
|
35
|
+
super(cd, moduleRef, componentFactoryResolver);
|
|
36
|
+
this.router = router;
|
|
37
|
+
this.activeRoute = activeRoute;
|
|
38
|
+
this.facade = facade;
|
|
39
|
+
this.service = service;
|
|
40
|
+
this.route = route;
|
|
41
|
+
this.dynamicComponentLoader = dynamicComponentLoader;
|
|
42
|
+
this.translateService = translateService;
|
|
43
|
+
this.config = config;
|
|
44
|
+
this.location = location;
|
|
45
|
+
this.cd = cd;
|
|
46
|
+
this.styleService = styleService;
|
|
47
|
+
this.elementRef = elementRef;
|
|
48
|
+
this.toastService = toastService;
|
|
49
|
+
this.pageService = pageService;
|
|
50
|
+
this.moduleRef = moduleRef;
|
|
51
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
52
|
+
this.detailsService = detailsService;
|
|
53
|
+
this.pageOptions = {
|
|
54
|
+
title: "",
|
|
55
|
+
showBackButton: true,
|
|
56
|
+
hideMenuButton: true,
|
|
57
|
+
};
|
|
58
|
+
this.formValid = false;
|
|
59
|
+
this.standardComponents = new QueryList();
|
|
60
|
+
this.dynamicContents = new QueryList();
|
|
61
|
+
this.selected$ = this.facade.selected$;
|
|
62
|
+
}
|
|
63
|
+
refreshProperties() {
|
|
64
|
+
this.baseInstance.detailsOptions = this.detailsOptions;
|
|
65
|
+
this.baseInstance.mode = this.mode;
|
|
66
|
+
this.baseInstance.uniqueProvider = this.uniqueProvider;
|
|
67
|
+
this.baseInstance.onPartialChange.pipe(this.takeUntilDestroy).subscribe(val => this.onPartialChange(val));
|
|
68
|
+
this.baseInstance.onChange.pipe(this.takeUntilDestroy).subscribe(val => this.onChange(val));
|
|
69
|
+
this.baseInstance.onValidChange.pipe(this.takeUntilDestroy).subscribe(val => this.onValidChange(val));
|
|
70
|
+
}
|
|
71
|
+
async ngOnInit() {
|
|
72
|
+
this.detailsService.init();
|
|
73
|
+
this.styleService.init(this.elementRef);
|
|
74
|
+
this.pageService.checkPermissions();
|
|
75
|
+
if (this.router.routerState.snapshot.url.split('?')[0].endsWith("/add")) {
|
|
76
|
+
this.mode = "create";
|
|
77
|
+
await this.generateComponents('add');
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
this.mode = this.config.details ? "details" : "update";
|
|
81
|
+
if (this.mode === 'update') {
|
|
82
|
+
await this.generateComponents('edit');
|
|
83
|
+
}
|
|
84
|
+
this.activeRoute.params
|
|
85
|
+
.pipe(this.takeUntilDestroy)
|
|
86
|
+
.subscribe(({ id }) => {
|
|
87
|
+
this.facade.select(id);
|
|
88
|
+
this.id = id;
|
|
89
|
+
});
|
|
90
|
+
this.activeRoute.queryParams
|
|
91
|
+
.pipe(this.takeUntilDestroy)
|
|
92
|
+
.subscribe(({ edit }) => {
|
|
93
|
+
if (edit) {
|
|
94
|
+
this.mode = "update";
|
|
95
|
+
this.generateComponents('edit');
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
this.uniqueProvider = async (values) => {
|
|
100
|
+
const filter = {
|
|
101
|
+
query: [],
|
|
102
|
+
};
|
|
103
|
+
Object.keys(values).forEach((key) => {
|
|
104
|
+
filter.query.push({
|
|
105
|
+
key: key,
|
|
106
|
+
value: values[key],
|
|
107
|
+
type: "=",
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
if (this.id) {
|
|
111
|
+
filter.query.push({
|
|
112
|
+
key: "id",
|
|
113
|
+
value: this.id,
|
|
114
|
+
type: "!=",
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
const { totalCount } = await this.service.getList(filter).toPromise();
|
|
118
|
+
return !totalCount;
|
|
119
|
+
};
|
|
120
|
+
if (this.config.details) {
|
|
121
|
+
const compiledComponents = await this.dynamicComponentLoader.getComponentsWithFactories({
|
|
122
|
+
components: [
|
|
123
|
+
...(this.config.details &&
|
|
124
|
+
this.config.details["components"] &&
|
|
125
|
+
this.config.details["components"].top
|
|
126
|
+
? [this.config.details["components"].top]
|
|
127
|
+
: []),
|
|
128
|
+
...(this.config.details &&
|
|
129
|
+
this.config.details["components"] &&
|
|
130
|
+
this.config.details["components"].bottom
|
|
131
|
+
? [this.config.details["components"].bottom]
|
|
132
|
+
: []),
|
|
133
|
+
],
|
|
134
|
+
});
|
|
135
|
+
this.detailsOptions = {
|
|
136
|
+
type: this.config.type,
|
|
137
|
+
item$: this.facade.selected$,
|
|
138
|
+
cellPipe: this.config.details ? this.config.details.cellPipe : null,
|
|
139
|
+
componentFactories: {
|
|
140
|
+
top: this.config.details &&
|
|
141
|
+
this.config.details["components"] &&
|
|
142
|
+
this.config.details["components"].top
|
|
143
|
+
? compiledComponents.find((cc) => cc.component === this.config.details["components"].top).factory
|
|
144
|
+
: null,
|
|
145
|
+
bottom: this.config.details &&
|
|
146
|
+
this.config.details["components"] &&
|
|
147
|
+
this.config.details["components"].bottom
|
|
148
|
+
? compiledComponents.find((cc) => cc.component === this.config.details["components"].bottom).factory
|
|
149
|
+
: null,
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
this.initPageOptions();
|
|
154
|
+
this.facade.selected$.pipe(this.takeUntilDestroy).subscribe(item => {
|
|
155
|
+
this.item = item;
|
|
156
|
+
this.initPageOptions();
|
|
157
|
+
this.cd.detectChanges();
|
|
158
|
+
});
|
|
159
|
+
this.refreshDynamicInstance();
|
|
160
|
+
}
|
|
161
|
+
async generateComponents(mode) {
|
|
162
|
+
const compiledComponents = await this.dynamicComponentLoader.getComponentsWithFactories({
|
|
163
|
+
components: [
|
|
164
|
+
...(this.config[mode] &&
|
|
165
|
+
this.config[mode]["components"] &&
|
|
166
|
+
this.config[mode]["components"].top
|
|
167
|
+
? [this.config[mode]["components"].top]
|
|
168
|
+
: []),
|
|
169
|
+
...(this.config[mode] &&
|
|
170
|
+
this.config[mode]["components"] &&
|
|
171
|
+
this.config[mode]["components"].bottom
|
|
172
|
+
? [this.config[mode]["components"].bottom]
|
|
173
|
+
: []),
|
|
174
|
+
],
|
|
175
|
+
});
|
|
176
|
+
const topComponentFactory = compiledComponents.find((cc) => cc.component === this.config[mode]["components"]?.top)?.factory;
|
|
177
|
+
const bottomComponentFactory = compiledComponents.find((cc) => cc.component === this.config[mode]["components"]?.bottom)?.factory;
|
|
178
|
+
if (!this.topTpl.get(0) && topComponentFactory) {
|
|
179
|
+
this.topTpl.createComponent(topComponentFactory);
|
|
180
|
+
}
|
|
181
|
+
if (!this.bottomTpl.get(0) && bottomComponentFactory) {
|
|
182
|
+
this.bottomTpl.createComponent(bottomComponentFactory);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
onPartialChange(val) {
|
|
186
|
+
this.formPartialValue = val;
|
|
187
|
+
}
|
|
188
|
+
onChange(val) {
|
|
189
|
+
this.formValue = val;
|
|
190
|
+
}
|
|
191
|
+
onValidChange(val) {
|
|
192
|
+
this.formValid = val;
|
|
193
|
+
}
|
|
194
|
+
initPageOptions() {
|
|
195
|
+
this.pageOptions = {
|
|
196
|
+
...this.pageOptions,
|
|
197
|
+
title: this.getTitle(),
|
|
198
|
+
endButtons: this.getButtons(),
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
getButtons() {
|
|
202
|
+
const options = getModelOptions(this.config.type);
|
|
203
|
+
switch (this.mode) {
|
|
204
|
+
case "create":
|
|
205
|
+
return [
|
|
206
|
+
{
|
|
207
|
+
icon: "add",
|
|
208
|
+
text: "add",
|
|
209
|
+
handler: () => {
|
|
210
|
+
if (this.checkFirstInvalid()) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
this.facade.create(this.formValue);
|
|
214
|
+
this.location.back();
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
];
|
|
218
|
+
case "update":
|
|
219
|
+
return [
|
|
220
|
+
...(this.config.details
|
|
221
|
+
? [
|
|
222
|
+
{
|
|
223
|
+
icon: "close",
|
|
224
|
+
text: "cancel",
|
|
225
|
+
handler: () => {
|
|
226
|
+
this.mode = "details";
|
|
227
|
+
this.initPageOptions();
|
|
228
|
+
this.topTpl.clear();
|
|
229
|
+
this.bottomTpl.clear();
|
|
230
|
+
},
|
|
231
|
+
disabled$: new BehaviorSubject(false),
|
|
232
|
+
},
|
|
233
|
+
]
|
|
234
|
+
: []),
|
|
235
|
+
{
|
|
236
|
+
icon: "save",
|
|
237
|
+
text: "save",
|
|
238
|
+
handler: () => {
|
|
239
|
+
if (this.checkFirstInvalid()) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
this.formPartialValue.id = this.id;
|
|
243
|
+
this.facade.updatePartial(this.formPartialValue);
|
|
244
|
+
if (this.config.details) {
|
|
245
|
+
this.mode = "details";
|
|
246
|
+
this.initPageOptions();
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
this.location.back();
|
|
250
|
+
}
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
];
|
|
254
|
+
case "details":
|
|
255
|
+
return this.config.edit && (!options?.update?.enabled || SpecificationService.valid(this.item, options?.update?.enabled))
|
|
256
|
+
? [
|
|
257
|
+
{
|
|
258
|
+
icon: "create",
|
|
259
|
+
text: "edit",
|
|
260
|
+
handler: () => {
|
|
261
|
+
this.mode = "update";
|
|
262
|
+
this.generateComponents('edit');
|
|
263
|
+
this.initPageOptions();
|
|
264
|
+
},
|
|
265
|
+
disabled$: new BehaviorSubject(false),
|
|
266
|
+
},
|
|
267
|
+
]
|
|
268
|
+
: [];
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
getTitle() {
|
|
272
|
+
const options = getModelOptions(this.config.type);
|
|
273
|
+
const prefix = options.titleKey && this.item ? this.removeParagraph(this.item[options.titleKey]) + ' - ' : '';
|
|
274
|
+
switch (this.mode) {
|
|
275
|
+
case "create":
|
|
276
|
+
return "add";
|
|
277
|
+
case "update":
|
|
278
|
+
return prefix + this.translateService.instant("change");
|
|
279
|
+
case "details":
|
|
280
|
+
return prefix + this.translateService.instant("details");
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
removeParagraph(val) {
|
|
284
|
+
if (!val || val.indexOf('<p>') !== 0)
|
|
285
|
+
return val;
|
|
286
|
+
const div = document.createElement("div");
|
|
287
|
+
div.innerHTML = val;
|
|
288
|
+
const item = div.querySelectorAll("p").item(0);
|
|
289
|
+
return item.innerHTML;
|
|
290
|
+
}
|
|
291
|
+
checkFirstInvalid() {
|
|
292
|
+
this.cd.detectChanges();
|
|
293
|
+
const form = this.template === 'default'
|
|
294
|
+
? this.standardComponents.first.formComponents.first.form
|
|
295
|
+
: this.baseInstance.formComponents.first.form;
|
|
296
|
+
this.cd.detectChanges();
|
|
297
|
+
if (form.valid)
|
|
298
|
+
return false;
|
|
299
|
+
const invalidFields = [];
|
|
300
|
+
this.getInvalidFields(form, invalidFields, '');
|
|
301
|
+
this.toastService.info({
|
|
302
|
+
title: this.translateService.instant('INPUT.ERRORS.requires'),
|
|
303
|
+
message: invalidFields.slice(0, 3).join('<br/>')
|
|
304
|
+
});
|
|
305
|
+
return true;
|
|
306
|
+
}
|
|
307
|
+
getInvalidFields(control, invalidFields, baseField, key = null) {
|
|
308
|
+
if (control.valid)
|
|
309
|
+
return;
|
|
310
|
+
const field = key ? baseField + ' > ' + this.translateService.instant('MODEL.' + key) : baseField;
|
|
311
|
+
if (control.errors?.customMessage) {
|
|
312
|
+
invalidFields.push(field + ` (${control.errors.customMessage})`);
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
if (control instanceof UntypedFormControl) {
|
|
316
|
+
invalidFields.push(field);
|
|
317
|
+
}
|
|
318
|
+
if (control instanceof UntypedFormGroup) {
|
|
319
|
+
Object.keys(control.controls).forEach(groupKey => {
|
|
320
|
+
this.getInvalidFields(control.controls[groupKey], invalidFields, field, groupKey);
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
if (control instanceof UntypedFormArray) {
|
|
324
|
+
control.controls.forEach((c, index) => {
|
|
325
|
+
this.getInvalidFields(c, invalidFields, field + `(${index + 1})`);
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ItemComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.CrudFacade }, { token: i3.CrudService }, { token: i1.ActivatedRoute }, { token: i4.DynamicComponentLoader }, { token: i5.TranslateService }, { token: i6.CrudFullConfig }, { token: i7.Location }, { token: i0.ChangeDetectorRef }, { token: i4.AuthService }, { token: i4.StyleService }, { token: i0.ElementRef }, { token: i4.ToastService }, { token: i8.PageService }, { token: i0.NgModuleRef }, { token: i0.ComponentFactoryResolver }, { token: i4.DetailsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
330
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: ItemComponent, selector: "smart-crud-item-page", viewQueries: [{ propertyName: "content", first: true, predicate: IonContent, descendants: true, static: true }, { propertyName: "contentTpl", first: true, predicate: ["contentTpl"], descendants: true, read: TemplateRef }, { propertyName: "topTpl", first: true, predicate: ["topTpl"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "bottomTpl", first: true, predicate: ["bottomTpl"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "standardComponents", predicate: ItemStandardComponent, descendants: true, read: ItemStandardComponent }, { propertyName: "dynamicContents", predicate: DynamicContentDirective, descendants: true, read: DynamicContentDirective }], usesInheritance: true, ngImport: i0, template: `
|
|
331
|
+
<smart-page [options]="pageOptions">
|
|
332
|
+
<div #topTpl class="top-content"></div>
|
|
333
|
+
<smart-crud-item-standard-page *ngIf="template === 'default'"
|
|
334
|
+
[detailsOptions]="detailsOptions"
|
|
335
|
+
[mode]="mode"
|
|
336
|
+
[uniqueProvider]="uniqueProvider"
|
|
337
|
+
(onPartialChange)="onPartialChange($event)"
|
|
338
|
+
(onChange)="onChange($event)"
|
|
339
|
+
(onValidChange)="onValidChange($event)"
|
|
340
|
+
>
|
|
341
|
+
<ng-container [ngTemplateOutlet]="contentTpl"></ng-container>
|
|
342
|
+
</smart-crud-item-standard-page>
|
|
343
|
+
<ng-template #contentTpl>
|
|
344
|
+
<ng-content></ng-content>
|
|
345
|
+
</ng-template>
|
|
346
|
+
<div class="dynamic-content"></div>
|
|
347
|
+
<div #bottomTpl class="bottom-content"></div>
|
|
348
|
+
</smart-page>
|
|
349
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.PageComponent, selector: "smart-page", inputs: ["options"] }, { kind: "directive", type: i4.DynamicContentDirective, selector: ".dynamic-content" }, { kind: "component", type: i9.ItemStandardComponent, selector: "smart-crud-item-standard-page" }] }); }
|
|
350
|
+
}
|
|
351
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ItemComponent, decorators: [{
|
|
352
|
+
type: Component,
|
|
353
|
+
args: [{
|
|
354
|
+
selector: "smart-crud-item-page",
|
|
355
|
+
template: `
|
|
356
|
+
<smart-page [options]="pageOptions">
|
|
357
|
+
<div #topTpl class="top-content"></div>
|
|
358
|
+
<smart-crud-item-standard-page *ngIf="template === 'default'"
|
|
359
|
+
[detailsOptions]="detailsOptions"
|
|
360
|
+
[mode]="mode"
|
|
361
|
+
[uniqueProvider]="uniqueProvider"
|
|
362
|
+
(onPartialChange)="onPartialChange($event)"
|
|
363
|
+
(onChange)="onChange($event)"
|
|
364
|
+
(onValidChange)="onValidChange($event)"
|
|
365
|
+
>
|
|
366
|
+
<ng-container [ngTemplateOutlet]="contentTpl"></ng-container>
|
|
367
|
+
</smart-crud-item-standard-page>
|
|
368
|
+
<ng-template #contentTpl>
|
|
369
|
+
<ng-content></ng-content>
|
|
370
|
+
</ng-template>
|
|
371
|
+
<div class="dynamic-content"></div>
|
|
372
|
+
<div #bottomTpl class="bottom-content"></div>
|
|
373
|
+
</smart-page>
|
|
374
|
+
`
|
|
375
|
+
}]
|
|
376
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.CrudFacade }, { type: i3.CrudService }, { type: i1.ActivatedRoute }, { type: i4.DynamicComponentLoader }, { type: i5.TranslateService }, { type: i6.CrudFullConfig }, { type: i7.Location }, { type: i0.ChangeDetectorRef }, { type: i4.AuthService }, { type: i4.StyleService }, { type: i0.ElementRef }, { type: i4.ToastService }, { type: i8.PageService }, { type: i0.NgModuleRef }, { type: i0.ComponentFactoryResolver }, { type: i4.DetailsService }]; }, propDecorators: { standardComponents: [{
|
|
377
|
+
type: ViewChildren,
|
|
378
|
+
args: [ItemStandardComponent, { read: ItemStandardComponent }]
|
|
379
|
+
}], content: [{
|
|
380
|
+
type: ViewChild,
|
|
381
|
+
args: [IonContent, { static: true }]
|
|
382
|
+
}], contentTpl: [{
|
|
383
|
+
type: ViewChild,
|
|
384
|
+
args: ["contentTpl", { read: TemplateRef, static: false }]
|
|
385
|
+
}], topTpl: [{
|
|
386
|
+
type: ViewChild,
|
|
387
|
+
args: ["topTpl", { read: ViewContainerRef, static: true }]
|
|
388
|
+
}], bottomTpl: [{
|
|
389
|
+
type: ViewChild,
|
|
390
|
+
args: ["bottomTpl", { read: ViewContainerRef, static: true }]
|
|
391
|
+
}], dynamicContents: [{
|
|
392
|
+
type: ViewChildren,
|
|
393
|
+
args: [DynamicContentDirective, { read: DynamicContentDirective }]
|
|
394
|
+
}] } });
|
|
395
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL3BhZ2VzL2l0ZW0vaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsd0JBQXdCLEVBQ25DLFVBQVUsRUFBRSxXQUFXLEVBRXZCLFNBQVMsRUFBRSxXQUFXLEVBQ3RCLFNBQVMsRUFDVCxZQUFZLEVBQUUsZ0JBQWdCLEVBQy9CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUNMLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQ25ELHNCQUFzQixFQUFFLHVCQUF1QixFQUdqQyxZQUFZLEVBQUUsWUFBWSxHQUN6QyxNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFrQixnQkFBZ0Is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QUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSTdELE1BQU07c0JBREwsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJN0QsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUloRSxlQUFlO3NCQURkLFlBQVk7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEVsZW1lbnRSZWYsIE5nTW9kdWxlUmVmLFxuICBPbkluaXQsXG4gIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLCBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuXG5pbXBvcnQge1xuICBBdXRoU2VydmljZSwgQ3JlYXRlRHluYW1pY0NvbXBvbmVudCwgRGV0YWlsc1NlcnZpY2UsXG4gIER5bmFtaWNDb21wb25lbnRMb2FkZXIsIER5bmFtaWNDb250ZW50RGlyZWN0aXZlLCBJQ2VsbFBpcGUsXG4gIElEZXRhaWxzT3B0aW9ucyxcbiAgSUljb25CdXR0b25PcHRpb25zLFxuICBJUGFnZU9wdGlvbnMsIFN0eWxlU2VydmljZSwgVG9hc3RTZXJ2aWNlLFxufSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9hbmd1bGFyXCI7XG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcbmltcG9ydCB7Z2V0TW9kZWxPcHRpb25zfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9tb2RlbHNcIjtcbmltcG9ydCB7IFNwZWNpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBzbWFydHNvZnQwMDEvdXRpbHNcIjtcblxuaW1wb3J0IHsgQ3J1ZEZhY2FkZSB9IGZyb20gXCIuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGVcIjtcbmltcG9ydCB7IENydWRGdWxsQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NydWQuY29uZmlnXCI7XG5pbXBvcnQgeyBDcnVkU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jcnVkL2NydWQuc2VydmljZVwiO1xuaW1wb3J0IHsgSUNydWRGaWx0ZXIgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7IElvbkNvbnRlbnQgfSBmcm9tIFwiQGlvbmljL2FuZ3VsYXJcIjtcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiXG5pbXBvcnQge0l0ZW1TdGFuZGFyZENvbXBvbmVudH0gZnJvbSBcIi4vc3RhbmRhcmQvc3RhbmRhcmQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDcnVkSXRlbVBhZ2VCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4vYmFzZS9iYXNlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUGFnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvcGFnZS9wYWdlLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInNtYXJ0LWNydWQtaXRlbS1wYWdlXCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNtYXJ0LXBhZ2UgW29wdGlvbnNdPVwicGFnZU9wdGlvbnNcIj5cbiAgICAgIDxkaXYgI3RvcFRwbCBjbGFzcz1cInRvcC1jb250ZW50XCI+PC9kaXY+XG4gICAgICA8c21hcnQtY3J1ZC1pdGVtLXN0YW5kYXJkLXBhZ2UgKm5nSWY9XCJ0ZW1wbGF0ZSA9PT0gJ2RlZmF1bHQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGV0YWlsc09wdGlvbnNdPVwiZGV0YWlsc09wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1bmlxdWVQcm92aWRlcl09XCJ1bmlxdWVQcm92aWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uUGFydGlhbENoYW5nZSk9XCJvblBhcnRpYWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblZhbGlkQ2hhbmdlKT1cIm9uVmFsaWRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9zbWFydC1jcnVkLWl0ZW0tc3RhbmRhcmQtcGFnZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudFRwbD5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJkeW5hbWljLWNvbnRlbnRcIj48L2Rpdj5cbiAgICAgIDxkaXYgI2JvdHRvbVRwbCBjbGFzcz1cImJvdHRvbS1jb250ZW50XCI+PC9kaXY+XG4gICAgPC9zbWFydC1wYWdlPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIEl0ZW1Db21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj5cbiAgICBleHRlbmRzIENyZWF0ZUR5bmFtaWNDb21wb25lbnQ8Q3J1ZEl0ZW1QYWdlQmFzZUNvbXBvbmVudDxhbnk+PignY3J1ZC1pdGVtLXBhZ2UnKVxuICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgX21vZGU6IHN0cmluZztcblxuICBwYWdlT3B0aW9uczogSVBhZ2VPcHRpb25zID0ge1xuICAgIHRpdGxlOiBcIlwiLFxuICAgIHNob3dCYWNrQnV0dG9uOiB0cnVlLFxuICAgIGhpZGVNZW51QnV0dG9uOiB0cnVlLFxuICB9O1xuICBkZXRhaWxzT3B0aW9uczogSURldGFpbHNPcHRpb25zPFQ+O1xuICBpZDogc3RyaW5nO1xuICBmb3JtVmFsdWU6IFQ7XG4gIGZvcm1WYWxpZCA9IGZhbHNlO1xuICBpdGVtOiBUO1xuICBmb3JtUGFydGlhbFZhbHVlOiBQYXJ0aWFsPFQ+O1xuICB1bmlxdWVQcm92aWRlcjogKHZhbHVlczogUmVjb3JkPGtleW9mIFQsIGFueT4pID0+IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgc2V0IG1vZGUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9tb2RlID0gdmFsO1xuICAgIHRoaXMucmVmcmVzaER5bmFtaWNJbnN0YW5jZSgpO1xuICB9XG4gIGdldCBtb2RlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGU7XG4gIH1cblxuXG4gIHNlbGVjdGVkJDogT2JzZXJ2YWJsZTxUPjtcblxuICBAVmlld0NoaWxkcmVuKEl0ZW1TdGFuZGFyZENvbXBvbmVudCwgeyByZWFkOiBJdGVtU3RhbmRhcmRDb21wb25lbnQgfSkgc3RhbmRhcmRDb21wb25lbnRzID0gbmV3IFF1ZXJ5TGlzdDxJdGVtU3RhbmRhcmRDb21wb25lbnQ8YW55Pj4oKTtcbiAgQFZpZXdDaGlsZChJb25Db250ZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250ZW50OiBJb25Db250ZW50O1xuXG4gIEBWaWV3Q2hpbGQoXCJjb250ZW50VHBsXCIsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgY29udGVudFRwbDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKFwidG9wVHBsXCIsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHRvcFRwbDogVmlld0NvbnRhaW5lclJlZjtcblxuICBAVmlld0NoaWxkKFwiYm90dG9tVHBsXCIsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIGJvdHRvbVRwbDogVmlld0NvbnRhaW5lclJlZjtcblxuICBAVmlld0NoaWxkcmVuKER5bmFtaWNDb250ZW50RGlyZWN0aXZlLCB7IHJlYWQ6IER5bmFtaWNDb250ZW50RGlyZWN0aXZlIH0pXG4gIGR5bmFtaWNDb250ZW50cyA9IG5ldyBRdWVyeUxpc3Q8RHluYW1pY0NvbnRlbnREaXJlY3RpdmU+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGl2ZVJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGZhY2FkZTogQ3J1ZEZhY2FkZTxUPixcbiAgICBwcml2YXRlIHNlcnZpY2U6IENydWRTZXJ2aWNlPFQ+LFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZHluYW1pY0NvbXBvbmVudExvYWRlcjogRHluYW1pY0NvbXBvbmVudExvYWRlcjxUPixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIGNvbmZpZzogQ3J1ZEZ1bGxDb25maWc8VD4sXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBTdHlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYWdlU2VydmljZTogUGFnZVNlcnZpY2U8VD4sXG4gICAgcHJpdmF0ZSBtb2R1bGVSZWY6IE5nTW9kdWxlUmVmPGFueT4sXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIGRldGFpbHNTZXJ2aWNlOiBEZXRhaWxzU2VydmljZVxuICApIHtcbiAgICBzdXBlcihjZCwgbW9kdWxlUmVmLCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpO1xuXG4gICAgdGhpcy5zZWxlY3RlZCQgPSB0aGlzLmZhY2FkZS5zZWxlY3RlZCQ7XG4gIH1cblxuICByZWZyZXNoUHJvcGVydGllcygpIHtcbiAgICB0aGlzLmJhc2VJbnN0YW5jZS5kZXRhaWxzT3B0aW9ucyA9IHRoaXMuZGV0YWlsc09wdGlvbnM7XG4gICAgdGhpcy5iYXNlSW5zdGFuY2UubW9kZSA9IHRoaXMubW9kZTtcbiAgICB0aGlzLmJhc2VJbnN0YW5jZS51bmlxdWVQcm92aWRlciA9IHRoaXMudW5pcXVlUHJvdmlkZXI7XG4gICAgdGhpcy5iYXNlSW5zdGFuY2Uub25QYXJ0aWFsQ2hhbmdlLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUodmFsID0+IHRoaXMub25QYXJ0aWFsQ2hhbmdlKHZhbCkpO1xuICAgIHRoaXMuYmFzZUluc3RhbmNlLm9uQ2hhbmdlLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUodmFsID0+IHRoaXMub25DaGFuZ2UodmFsKSk7XG4gICAgdGhpcy5iYXNlSW5zdGFuY2Uub25WYWxpZENoYW5nZS5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLm9uVmFsaWRDaGFuZ2UodmFsKSk7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRldGFpbHNTZXJ2aWNlLmluaXQoKTtcbiAgICB0aGlzLnN0eWxlU2VydmljZS5pbml0KHRoaXMuZWxlbWVudFJlZik7XG5cbiAgICB0aGlzLnBhZ2VTZXJ2aWNlLmNoZWNrUGVybWlzc2lvbnMoKTtcblxuICAgIGlmICh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwuc3BsaXQoJz8nKVswXS5lbmRzV2l0aChcIi9hZGRcIikpIHtcbiAgICAgIHRoaXMubW9kZSA9IFwiY3JlYXRlXCI7XG4gICAgICBhd2FpdCB0aGlzLmdlbmVyYXRlQ29tcG9uZW50cygnYWRkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kZSA9IHRoaXMuY29uZmlnLmRldGFpbHMgPyBcImRldGFpbHNcIiA6IFwidXBkYXRlXCI7XG5cbiAgICAgIGlmICh0aGlzLm1vZGUgPT09ICd1cGRhdGUnKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZ2VuZXJhdGVDb21wb25lbnRzKCdlZGl0Jyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYWN0aXZlUm91dGUucGFyYW1zXG4gICAgICAgIC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveSlcbiAgICAgICAgLnN1YnNjcmliZSgoeyBpZCB9KSA9PiB7XG4gICAgICAgICAgdGhpcy5mYWNhZGUuc2VsZWN0KGlkKTtcbiAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLmFjdGl2ZVJvdXRlLnF1ZXJ5UGFyYW1zXG4gICAgICAgICAgLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95KVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHsgZWRpdCB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoZWRpdCkge1xuICAgICAgICAgICAgICB0aGlzLm1vZGUgPSBcInVwZGF0ZVwiO1xuICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQ29tcG9uZW50cygnZWRpdCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudW5pcXVlUHJvdmlkZXIgPSBhc3luYyAodmFsdWVzKSA9PiB7XG4gICAgICBjb25zdCBmaWx0ZXI6IElDcnVkRmlsdGVyID0ge1xuICAgICAgICBxdWVyeTogW10sXG4gICAgICB9O1xuXG4gICAgICBPYmplY3Qua2V5cyh2YWx1ZXMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBmaWx0ZXIucXVlcnkucHVzaCh7XG4gICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgdmFsdWU6IHZhbHVlc1trZXldLFxuICAgICAgICAgIHR5cGU6IFwiPVwiLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICBmaWx0ZXIucXVlcnkucHVzaCh7XG4gICAgICAgICAga2V5OiBcImlkXCIsXG4gICAgICAgICAgdmFsdWU6IHRoaXMuaWQsXG4gICAgICAgICAgdHlwZTogXCIhPVwiLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgdG90YWxDb3VudCB9ID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldExpc3QoZmlsdGVyKS50b1Byb21pc2UoKTtcblxuICAgICAgcmV0dXJuICF0b3RhbENvdW50O1xuICAgIH07XG5cbiAgICBpZiAodGhpcy5jb25maWcuZGV0YWlscykge1xuICAgICAgY29uc3QgY29tcGlsZWRDb21wb25lbnRzID0gYXdhaXQgdGhpcy5keW5hbWljQ29tcG9uZW50TG9hZGVyLmdldENvbXBvbmVudHNXaXRoRmFjdG9yaWVzKFxuICAgICAgICB7XG4gICAgICAgICAgY29tcG9uZW50czogW1xuICAgICAgICAgICAgLi4uKHRoaXMuY29uZmlnLmRldGFpbHMgJiZcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdICYmXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXS50b3BcbiAgICAgICAgICAgICAgPyBbdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0udG9wXVxuICAgICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICAgIC4uLih0aGlzLmNvbmZpZy5kZXRhaWxzICYmXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXSAmJlxuICAgICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0uYm90dG9tXG4gICAgICAgICAgICAgICAgPyBbdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0uYm90dG9tXVxuICAgICAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIHRoaXMuZGV0YWlsc09wdGlvbnMgPSB7XG4gICAgICAgIHR5cGU6IHRoaXMuY29uZmlnLnR5cGUsXG4gICAgICAgIGl0ZW0kOiB0aGlzLmZhY2FkZS5zZWxlY3RlZCQsXG4gICAgICAgIGNlbGxQaXBlOiB0aGlzLmNvbmZpZy5kZXRhaWxzID8gKHRoaXMuY29uZmlnLmRldGFpbHMgYXMge2NlbGxQaXBlPzogSUNlbGxQaXBlPFQ+fSkuY2VsbFBpcGUgOiBudWxsLFxuICAgICAgICBjb21wb25lbnRGYWN0b3JpZXM6IHtcbiAgICAgICAgICB0b3A6XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzICYmXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXSAmJlxuICAgICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0udG9wXG4gICAgICAgICAgICAgID8gY29tcGlsZWRDb21wb25lbnRzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAoY2MpID0+IGNjLmNvbXBvbmVudCA9PT0gdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0udG9wXG4gICAgICAgICAgICAgICAgKS5mYWN0b3J5XG4gICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICBib3R0b206XG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHMgJiZcbiAgICAgICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0gJiZcbiAgICAgICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0uYm90dG9tXG4gICAgICAgICAgICAgICAgICA/IGNvbXBpbGVkQ29tcG9uZW50cy5maW5kKFxuICAgICAgICAgICAgICAgICAgKGNjKSA9PiBjYy5jb21wb25lbnQgPT09IHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdLmJvdHRvbVxuICAgICAgICAgICAgICAgICAgKS5mYWN0b3J5XG4gICAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuaW5pdFBhZ2VPcHRpb25zKCk7XG5cbiAgICB0aGlzLmZhY2FkZS5zZWxlY3RlZCQucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZShpdGVtID0+IHtcbiAgICAgIHRoaXMuaXRlbSA9IGl0ZW07XG4gICAgICB0aGlzLmluaXRQYWdlT3B0aW9ucygpO1xuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJlZnJlc2hEeW5hbWljSW5zdGFuY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2VuZXJhdGVDb21wb25lbnRzKG1vZGU6ICdhZGQnIHwgJ2VkaXQnKSB7XG4gICAgY29uc3QgY29tcGlsZWRDb21wb25lbnRzID0gYXdhaXQgdGhpcy5keW5hbWljQ29tcG9uZW50TG9hZGVyLmdldENvbXBvbmVudHNXaXRoRmFjdG9yaWVzKFxuICAgICAgICB7XG4gICAgICAgICAgY29tcG9uZW50czogW1xuICAgICAgICAgICAgLi4uKHRoaXMuY29uZmlnW21vZGVdICYmXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ1ttb2RlXVtcImNvbXBvbmVudHNcIl0gJiZcbiAgICAgICAgICAgIHRoaXMuY29uZmlnW21vZGVdW1wiY29tcG9uZW50c1wiXS50b3BcbiAgICAgICAgICAgICAgICA/IFt0aGlzLmNvbmZpZ1ttb2RlXVtcImNvbXBvbmVudHNcIl0udG9wXVxuICAgICAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgICAgLi4uKHRoaXMuY29uZmlnW21vZGVdICYmXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ1ttb2RlXVtcImNvbXBvbmVudHNcIl0gJiZcbiAgICAgICAgICAgIHRoaXMuY29uZmlnW21vZGVdW1wiY29tcG9uZW50c1wiXS5ib3R0b21cbiAgICAgICAgICAgICAgICA/IFt0aGlzLmNvbmZpZ1ttb2RlXVtcImNvbXBvbmVudHNcIl0uYm90dG9tXVxuICAgICAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgdG9wQ29tcG9uZW50RmFjdG9yeSA9IGNvbXBpbGVkQ29tcG9uZW50cy5maW5kKFxuICAgICAgICAoY2MpID0+IGNjLmNvbXBvbmVudCA9PT0gdGhpcy5jb25maWdbbW9kZV1bXCJjb21wb25lbnRzXCJdPy50b3BcbiAgICApPy5mYWN0b3J5O1xuXG4gICAgY29uc3QgYm90dG9tQ29tcG9uZW50RmFjdG9yeSA9IGNvbXBpbGVkQ29tcG9uZW50cy5maW5kKFxuICAgICAgICAoY2MpID0+IGNjLmNvbXBvbmVudCA9PT0gdGhpcy5jb25maWdbbW9kZV1bXCJjb21wb25lbnRzXCJdPy5ib3R0b21cbiAgICApPy5mYWN0b3J5O1xuXG4gICAgaWYgKCF0aGlzLnRvcFRwbC5nZXQoMCkgJiYgdG9wQ29tcG9uZW50RmFjdG9yeSkge1xuICAgICAgdGhpcy50b3BUcGwuY3JlYXRlQ29tcG9uZW50KHRvcENvbXBvbmVudEZhY3RvcnkpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5ib3R0b21UcGwuZ2V0KDApICYmIGJvdHRvbUNvbXBvbmVudEZhY3RvcnkpIHtcbiAgICAgIHRoaXMuYm90dG9tVHBsLmNyZWF0ZUNvbXBvbmVudChib3R0b21Db21wb25lbnRGYWN0b3J5KTtcbiAgICB9XG4gIH1cblxuICBvblBhcnRpYWxDaGFuZ2UodmFsOiBQYXJ0aWFsPFQ+KSB7XG4gICAgdGhpcy5mb3JtUGFydGlhbFZhbHVlID0gdmFsO1xuICB9XG5cbiAgb25DaGFuZ2UodmFsOiBUKSB7XG4gICAgdGhpcy5mb3JtVmFsdWUgPSB2YWw7XG4gIH1cblxuICBvblZhbGlkQ2hhbmdlKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuZm9ybVZhbGlkID0gdmFsO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UGFnZU9wdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5wYWdlT3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMucGFnZU9wdGlvbnMsXG4gICAgICB0aXRsZTogdGhpcy5nZXRUaXRsZSgpLFxuICAgICAgZW5kQnV0dG9uczogdGhpcy5nZXRCdXR0b25zKCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QnV0dG9ucygpOiBBcnJheTxJSWNvbkJ1dHRvbk9wdGlvbnM+IHtcbiAgICBjb25zdCBvcHRpb25zID0gZ2V0TW9kZWxPcHRpb25zKHRoaXMuY29uZmlnLnR5cGUpO1xuXG4gICAgc3dpdGNoICh0aGlzLm1vZGUpIHtcbiAgICAgIGNhc2UgXCJjcmVhdGVcIjpcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpY29uOiBcImFkZFwiLFxuICAgICAgICAgICAgdGV4dDogXCJhZGRcIixcbiAgICAgICAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tGaXJzdEludmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHRoaXMuZmFjYWRlLmNyZWF0ZSh0aGlzLmZvcm1WYWx1ZSk7XG4gICAgICAgICAgICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgY2FzZSBcInVwZGF0ZVwiOlxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIC4uLih0aGlzLmNvbmZpZy5kZXRhaWxzXG4gICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBpY29uOiBcImNsb3NlXCIsXG4gICAgICAgICAgICAgICAgICB0ZXh0OiBcImNhbmNlbFwiLFxuICAgICAgICAgICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGUgPSBcImRldGFpbHNcIjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0UGFnZU9wdGlvbnMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b3BUcGwuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ib3R0b21UcGwuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZCQ6IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGljb246IFwic2F2ZVwiLFxuICAgICAgICAgICAgdGV4dDogXCJzYXZlXCIsXG4gICAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrRmlyc3RJbnZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0aGlzLmZvcm1QYXJ0aWFsVmFsdWUuaWQgPSB0aGlzLmlkO1xuICAgICAgICAgICAgICB0aGlzLmZhY2FkZS51cGRhdGVQYXJ0aWFsKHRoaXMuZm9ybVBhcnRpYWxWYWx1ZSBhcyBhbnkpO1xuXG4gICAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5kZXRhaWxzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gXCJkZXRhaWxzXCI7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0UGFnZU9wdGlvbnMoKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgY2FzZSBcImRldGFpbHNcIjpcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmVkaXQgJiYgKFxuICAgICAgICAgICAgIW9wdGlvbnM/LnVwZGF0ZT8uZW5hYmxlZCB8fCBTcGVjaWZpY2F0aW9uU2VydmljZS52YWxpZCh0aGlzLml0ZW0sIG9wdGlvbnM/LnVwZGF0ZT8uZW5hYmxlZClcbiAgICAgICAgKVxuICAgICAgICAgID8gW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWNvbjogXCJjcmVhdGVcIixcbiAgICAgICAgICAgICAgICB0ZXh0OiBcImVkaXRcIixcbiAgICAgICAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLm1vZGUgPSBcInVwZGF0ZVwiO1xuICAgICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZUNvbXBvbmVudHMoJ2VkaXQnKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFBhZ2VPcHRpb25zKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCQ6IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXVxuICAgICAgICAgIDogW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUaXRsZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBnZXRNb2RlbE9wdGlvbnModGhpcy5jb25maWcudHlwZSk7XG5cbiAgICBjb25zdCBwcmVmaXggPSBvcHRpb25zLnRpdGxlS2V5ICYmIHRoaXMuaXRlbSA/IHRoaXMucmVtb3ZlUGFyYWdyYXBoKHRoaXMuaXRlbVtvcHRpb25zLnRpdGxlS2V5XSkgKyAnIC0gJyA6ICcnO1xuXG4gICAgc3dpdGNoICh0aGlzLm1vZGUpIHtcbiAgICAgIGNhc2UgXCJjcmVhdGVcIjpcbiAgICAgICAgcmV0dXJuIFwiYWRkXCI7XG4gICAgICBjYXNlIFwidXBkYXRlXCI6XG4gICAgICAgIHJldHVybiBwcmVmaXggKyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImNoYW5nZVwiKTtcbiAgICAgIGNhc2UgXCJkZXRhaWxzXCI6XG4gICAgICAgIHJldHVybiBwcmVmaXggKyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImRldGFpbHNcIik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVQYXJhZ3JhcGgodmFsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdmFsIHx8IHZhbC5pbmRleE9mKCc8cD4nKSAhPT0gMCkgcmV0dXJuIHZhbDtcblxuICAgIGNvbnN0IGRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIGRpdi5pbm5lckhUTUw9dmFsO1xuXG4gICAgY29uc3QgaXRlbSA9IGRpdi5xdWVyeVNlbGVjdG9yQWxsKFwicFwiKS5pdGVtKDApO1xuXG4gICAgcmV0dXJuIGl0ZW0uaW5uZXJIVE1MO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZpcnN0SW52YWxpZCgpOiBib29sZWFuIHtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcblxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLnRlbXBsYXRlID09PSAnZGVmYXVsdCdcbiAgICAgICAgPyB0aGlzLnN0YW5kYXJkQ29tcG9uZW50cy5maXJzdC5mb3JtQ29tcG9uZW50cy5maXJzdC5mb3JtXG4gICAgICAgIDogdGhpcy5iYXNlSW5zdGFuY2UuZm9ybUNvbXBvbmVudHMuZmlyc3QuZm9ybTtcblxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgaWYgKGZvcm0udmFsaWQpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGludmFsaWRGaWVsZHMgPSBbXTtcblxuICAgIHRoaXMuZ2V0SW52YWxpZEZpZWxkcyhmb3JtLCBpbnZhbGlkRmllbGRzLCAnJyk7XG5cbiAgICB0aGlzLnRvYXN0U2VydmljZS5pbmZvKHtcbiAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnSU5QVVQuRVJST1JTLnJlcXVpcmVzJyksXG4gICAgICBtZXNzYWdlOiBpbnZhbGlkRmllbGRzLnNsaWNlKDAsIDMpLmpvaW4oJzxici8+JylcbiAgICB9KTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnZhbGlkRmllbGRzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgaW52YWxpZEZpZWxkczogYW55W10sIGJhc2VGaWVsZDogc3RyaW5nLCBrZXkgPSBudWxsKSB7XG4gICAgaWYgKGNvbnRyb2wudmFsaWQpIHJldHVybjtcblxuICAgIGNvbnN0IGZpZWxkID0ga2V5ID8gYmFzZUZpZWxkICsgJyA+ICcgKyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTU9ERUwuJyArIGtleSkgOiBiYXNlRmllbGQ7XG5cbiAgICBpZiAoY29udHJvbC5lcnJvcnM/LmN1c3RvbU1lc3NhZ2UpIHtcbiAgICAgIGludmFsaWRGaWVsZHMucHVzaChmaWVsZCArIGAgKCR7Y29udHJvbC5lcnJvcnMuY3VzdG9tTWVzc2FnZX0pYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICAgIGludmFsaWRGaWVsZHMucHVzaChmaWVsZCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUdyb3VwKSB7XG4gICAgICBPYmplY3Qua2V5cyhjb250cm9sLmNvbnRyb2xzKS5mb3JFYWNoKGdyb3VwS2V5ID0+IHtcbiAgICAgICAgdGhpcy5nZXRJbnZhbGlkRmllbGRzKGNvbnRyb2wuY29udHJvbHNbZ3JvdXBLZXldLCBpbnZhbGlkRmllbGRzLCBmaWVsZCwgZ3JvdXBLZXkpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XG4gICAgICBjb250cm9sLmNvbnRyb2xzLmZvckVhY2goKGMsIGluZGV4KSA9PiB7XG4gICAgICAgIHRoaXMuZ2V0SW52YWxpZEZpZWxkcyhjLCBpbnZhbGlkRmllbGRzLCBmaWVsZCArIGAoJHtpbmRleCArIDF9KWApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -5,11 +5,11 @@ import * as i1 from "@angular/common";
|
|
|
5
5
|
import * as i2 from "@smartsoft001/angular";
|
|
6
6
|
import * as i3 from "../../../pipes/form-options/form-options.pipe";
|
|
7
7
|
export class ItemStandardComponent extends CrudItemPageBaseComponent {
|
|
8
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ItemStandardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: ItemStandardComponent, selector: "smart-crud-item-standard-page", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"mode === 'details'; else editTpl\">\n <smart-details *ngIf=\"detailsOptions\" [options]='detailsOptions'></smart-details>\n</ng-container>\n\n<ng-template #editTpl>\n <smart-form\n [options]=\"\n (selected$ | async)\n | smartFormOptions : mode:config?.type:uniqueProvider : config.inputComponents\n \"\n (valuePartialChange)=\"onPartialChange.emit($event)\"\n (valueChange)=\"onChange.emit($event)\"\n (validChange)=\"onValidChange.emit($event)\"\n ></smart-form>\n</ng-template>\n\n<br/><br/>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormComponent, selector: "smart-form", inputs: ["options"], outputs: ["invokeSubmit", "valueChange", "valuePartialChange", "validChange"] }, { kind: "component", type: i2.DetailsComponent, selector: "smart-details", inputs: ["options"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.FormOptionsPipe, name: "smartFormOptions" }] }); }
|
|
8
10
|
}
|
|
9
|
-
|
|
10
|
-
/** @nocollapse */ ItemStandardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: ItemStandardComponent, selector: "smart-crud-item-standard-page", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"mode === 'details'; else editTpl\">\n <smart-details *ngIf=\"detailsOptions\" [options]='detailsOptions'></smart-details>\n</ng-container>\n\n<ng-template #editTpl>\n <smart-form\n [options]=\"\n (selected$ | async)\n | smartFormOptions : mode:config?.type:uniqueProvider : config.inputComponents\n \"\n (valuePartialChange)=\"onPartialChange.emit($event)\"\n (valueChange)=\"onChange.emit($event)\"\n (validChange)=\"onValidChange.emit($event)\"\n ></smart-form>\n</ng-template>\n\n<br/><br/>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormComponent, selector: "smart-form", inputs: ["options"], outputs: ["invokeSubmit", "valueChange", "valuePartialChange", "validChange"] }, { kind: "component", type: i2.DetailsComponent, selector: "smart-details", inputs: ["options"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.FormOptionsPipe, name: "smartFormOptions" }] });
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ItemStandardComponent, decorators: [{
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ItemStandardComponent, decorators: [{
|
|
12
12
|
type: Component,
|
|
13
13
|
args: [{ selector: "smart-crud-item-standard-page", template: "<ng-container *ngIf=\"mode === 'details'; else editTpl\">\n <smart-details *ngIf=\"detailsOptions\" [options]='detailsOptions'></smart-details>\n</ng-container>\n\n<ng-template #editTpl>\n <smart-form\n [options]=\"\n (selected$ | async)\n | smartFormOptions : mode:config?.type:uniqueProvider : config.inputComponents\n \"\n (valuePartialChange)=\"onPartialChange.emit($event)\"\n (valueChange)=\"onChange.emit($event)\"\n (validChange)=\"onValidChange.emit($event)\"\n ></smart-form>\n</ng-template>\n\n<br/><br/>" }]
|
|
14
14
|
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9wYWdlcy9pdGVtL3N0YW5kYXJkL3N0YW5kYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvcGFnZXMvaXRlbS9zdGFuZGFyZC9zdGFuZGFyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXhDLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7OztBQU9qRSxNQUFNLE9BQU8scUJBQWlELFNBQVEseUJBQTRCO2lJQUFyRixxQkFBcUI7cUhBQXJCLHFCQUFxQiw0RkNYbEMsbWxCQWdCVTs7MkZETEcscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNJLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQge0lFbnRpdHl9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5cbmltcG9ydCB7Q3J1ZEl0ZW1QYWdlQmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwic21hcnQtY3J1ZC1pdGVtLXN0YW5kYXJkLXBhZ2VcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3N0YW5kYXJkLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL3N0YW5kYXJkLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBJdGVtU3RhbmRhcmRDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4gZXh0ZW5kcyBDcnVkSXRlbVBhZ2VCYXNlQ29tcG9uZW50PFQ+IHt9IiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT09ICdkZXRhaWxzJzsgZWxzZSBlZGl0VHBsXCI+XG4gICAgPHNtYXJ0LWRldGFpbHMgKm5nSWY9XCJkZXRhaWxzT3B0aW9uc1wiIFtvcHRpb25zXT0nZGV0YWlsc09wdGlvbnMnPjwvc21hcnQtZGV0YWlscz5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2VkaXRUcGw+XG4gICAgPHNtYXJ0LWZvcm1cbiAgICAgICAgICAgIFtvcHRpb25zXT1cIlxuICAgICAgICAgIChzZWxlY3RlZCQgfCBhc3luYylcbiAgICAgICAgICB8IHNtYXJ0Rm9ybU9wdGlvbnMgOiBtb2RlOmNvbmZpZz8udHlwZTp1bmlxdWVQcm92aWRlciA6IGNvbmZpZy5pbnB1dENvbXBvbmVudHNcbiAgICAgICAgXCJcbiAgICAgICAgICAgICh2YWx1ZVBhcnRpYWxDaGFuZ2UpPVwib25QYXJ0aWFsQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICh2YWxpZENoYW5nZSk9XCJvblZhbGlkQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgPjwvc21hcnQtZm9ybT5cbjwvbmctdGVtcGxhdGU+XG5cbjxici8+PGJyLz4iXX0=
|