ng-ipa-library 0.6.0 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,7 +18,7 @@ export class ErrorInterceptor {
18
18
  const toastrConfig = {
19
19
  disableTimeOut: true,
20
20
  };
21
- switch (response.statusCode) {
21
+ switch (response === null || response === void 0 ? void 0 : response.statusCode) {
22
22
  case 500:
23
23
  this.toastrService.error((response === null || response === void 0 ? void 0 : response.innerException) + ' ' + (response === null || response === void 0 ? void 0 : response.stackTrace), response.message, toastrConfig);
24
24
  break;
@@ -43,4 +43,4 @@ ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ver
43
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ErrorInterceptor, decorators: [{
44
44
  type: Injectable
45
45
  }], ctorParameters: function () { return [{ type: i1.ErrorService }, { type: i2.ToastrService }]; } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2NvcmUvaW50ZXJjZXB0b3JzL2Vycm9yLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNNUMsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNVLFlBQTBCLEVBQzFCLGFBQTRCO1FBRDVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQ25DLENBQUM7SUFFSixTQUFTLENBQ1AsR0FBeUIsRUFDekIsSUFBaUI7UUFFakIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzFCLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFxQixDQUFDO1lBQzdDLE1BQU0sWUFBWSxHQUE4QjtnQkFDOUMsY0FBYyxFQUFFLElBQUk7YUFDckIsQ0FBQztZQUNGLFFBQVEsUUFBUSxDQUFDLFVBQVUsRUFBRTtnQkFDM0IsS0FBSyxHQUFHO29CQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUN0QixDQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxjQUFjLElBQUcsR0FBRyxJQUFHLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxVQUFVLENBQUEsRUFDckQsUUFBUSxDQUFDLE9BQU8sRUFDaEIsWUFBWSxDQUNiLENBQUM7b0JBQ0YsTUFBTTtnQkFFUjtvQkFDRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQztvQkFDN0QsTUFBTTthQUNUO1lBQ0QsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBcUI7UUFDL0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRTtZQUN4QyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNELE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7NkdBN0NVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgSHR0cFJlcXVlc3QsXHJcbiAgSHR0cEhhbmRsZXIsXHJcbiAgSHR0cEV2ZW50LFxyXG4gIEh0dHBJbnRlcmNlcHRvcixcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZXJyb3Iuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwaUV4Y2VwdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hcGlFeGNlcHRpb24nO1xyXG5pbXBvcnQgeyBJbmRpdmlkdWFsQ29uZmlnLCBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFcnJvckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZXJyb3JTZXJ2aWNlOiBFcnJvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0clNlcnZpY2U6IFRvYXN0clNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGludGVyY2VwdChcclxuICAgIHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sXHJcbiAgICBuZXh0OiBIdHRwSGFuZGxlclxyXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XHJcbiAgICBpZiAodGhpcy5pc0V4Y2VwdGlvbihyZXEpKSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBlcnJvci5lcnJvciBhcyBBcGlFeGNlcHRpb247XHJcbiAgICAgICAgY29uc3QgdG9hc3RyQ29uZmlnOiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc+ID0ge1xyXG4gICAgICAgICAgZGlzYWJsZVRpbWVPdXQ6IHRydWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBzd2l0Y2ggKHJlc3BvbnNlLnN0YXR1c0NvZGUpIHtcclxuICAgICAgICAgIGNhc2UgNTAwOlxyXG4gICAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgcmVzcG9uc2U/LmlubmVyRXhjZXB0aW9uICsgJyAnICsgcmVzcG9uc2U/LnN0YWNrVHJhY2UsXHJcbiAgICAgICAgICAgICAgcmVzcG9uc2UubWVzc2FnZSxcclxuICAgICAgICAgICAgICB0b2FzdHJDb25maWdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UsICcnLCB0b2FzdHJDb25maWcpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlzRXhjZXB0aW9uKHJlcTogSHR0cFJlcXVlc3Q8YW55Pik6IGJvb2xlYW4ge1xyXG4gICAgZm9yIChjb25zdCB1cmwgb2YgdGhpcy5lcnJvclNlcnZpY2UudXJscykge1xyXG4gICAgICBpZiAocmVxLnVybC5pbmNsdWRlcyh1cmwucGF0aCkgJiYgcmVxLm1ldGhvZCA9PT0gdXJsLm1ldGhvZCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2NvcmUvaW50ZXJjZXB0b3JzL2Vycm9yLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNNUMsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNVLFlBQTBCLEVBQzFCLGFBQTRCO1FBRDVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQ25DLENBQUM7SUFFSixTQUFTLENBQ1AsR0FBeUIsRUFDekIsSUFBaUI7UUFFakIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzFCLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFxQixDQUFDO1lBQzdDLE1BQU0sWUFBWSxHQUE4QjtnQkFDOUMsY0FBYyxFQUFFLElBQUk7YUFDckIsQ0FBQztZQUNGLFFBQVEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLFVBQVUsRUFBRTtnQkFDNUIsS0FBSyxHQUFHO29CQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUN0QixDQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxjQUFjLElBQUcsR0FBRyxJQUFHLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxVQUFVLENBQUEsRUFDckQsUUFBUSxDQUFDLE9BQU8sRUFDaEIsWUFBWSxDQUNiLENBQUM7b0JBQ0YsTUFBTTtnQkFFUjtvQkFDRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQztvQkFDN0QsTUFBTTthQUNUO1lBQ0QsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBcUI7UUFDL0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRTtZQUN4QyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNELE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7NkdBN0NVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgSHR0cFJlcXVlc3QsXHJcbiAgSHR0cEhhbmRsZXIsXHJcbiAgSHR0cEV2ZW50LFxyXG4gIEh0dHBJbnRlcmNlcHRvcixcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZXJyb3Iuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwaUV4Y2VwdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hcGlFeGNlcHRpb24nO1xyXG5pbXBvcnQgeyBJbmRpdmlkdWFsQ29uZmlnLCBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFcnJvckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZXJyb3JTZXJ2aWNlOiBFcnJvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0clNlcnZpY2U6IFRvYXN0clNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGludGVyY2VwdChcclxuICAgIHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sXHJcbiAgICBuZXh0OiBIdHRwSGFuZGxlclxyXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XHJcbiAgICBpZiAodGhpcy5pc0V4Y2VwdGlvbihyZXEpKSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBlcnJvci5lcnJvciBhcyBBcGlFeGNlcHRpb247XHJcbiAgICAgICAgY29uc3QgdG9hc3RyQ29uZmlnOiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc+ID0ge1xyXG4gICAgICAgICAgZGlzYWJsZVRpbWVPdXQ6IHRydWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBzd2l0Y2ggKHJlc3BvbnNlPy5zdGF0dXNDb2RlKSB7XHJcbiAgICAgICAgICBjYXNlIDUwMDpcclxuICAgICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgIHJlc3BvbnNlPy5pbm5lckV4Y2VwdGlvbiArICcgJyArIHJlc3BvbnNlPy5zdGFja1RyYWNlLFxyXG4gICAgICAgICAgICAgIHJlc3BvbnNlLm1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgdG9hc3RyQ29uZmlnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RyU2VydmljZS5lcnJvcihyZXNwb25zZS5tZXNzYWdlLCAnJywgdG9hc3RyQ29uZmlnKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpc0V4Y2VwdGlvbihyZXE6IEh0dHBSZXF1ZXN0PGFueT4pOiBib29sZWFuIHtcclxuICAgIGZvciAoY29uc3QgdXJsIG9mIHRoaXMuZXJyb3JTZXJ2aWNlLnVybHMpIHtcclxuICAgICAgaWYgKHJlcS51cmwuaW5jbHVkZXModXJsLnBhdGgpICYmIHJlcS5tZXRob2QgPT09IHVybC5tZXRob2QpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -113,7 +113,7 @@ export class GenerateFormComponent {
113
113
  }
114
114
  }
115
115
  GenerateFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: GenerateFormComponent, deps: [{ token: i1.IPAFormService }], target: i0.ɵɵFactoryTarget.Component });
116
- GenerateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: GenerateFormComponent, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain", authorization: "authorization" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted", recaptchaOutput: "recaptchaOutput" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\"></ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [items]=\"column.data\" [valueField]=\"column.valueField\"\r\n [textField]=\"column.textField\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\">\r\n <label [for]=\"column.englishName\">{{column.arabicLabel}}</label>\r\n <div [formArrayName]=\"'items'\" *ngFor=\"let control of formControls.controls; let i = index\">\r\n <div [formGroupName]=\"i\" [id]=\"column.englishName\">\r\n <div class=\"form-check\">\r\n <input [id]=\"column.englishName+control.value.id\" class=\"form-check-input\" type=\"checkbox\"\r\n formControlName=\"checkbox\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+control.value.id\">\r\n {{control.value.description}}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.englishName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\">\r\n <label [for]=\"column.englishName\">{{column.arabicLabel}}</label>\r\n <div *ngFor=\"let item of column.data; let i = index\" [id]=\"column.englishName\">\r\n <div class=\"form-check\">\r\n <input [id]=\"column.englishName+item.id\" class=\"form-check-input\" type=\"radio\"\r\n [formControlName]=\"column.englishName\" [value]=\"item.id\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+item.id\">\r\n {{item.description}}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.englishName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\">\r\n <ipa-file-upload [label]=\"column.arabicLabel\" [acceptedFiles]=\"column.acceptedFiles\"\r\n [multiple]=\"column.multipleFile\" [maxFileSize]=\"column.size\" [method]=\"column.apiURlMethod\"\r\n [autoUpload]=\"column.autoUploadFile\" [apiUrl]=\"column.apiUrl\" [authorization]=\"authorization\"\r\n ngDefaultControl [formControlName]=\"column.englishName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.englishName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.englishName)\"></ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"lang\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.englishName}}\"></ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\" [type]=\"column.type\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\"></ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""], components: [{ type: i2.TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["id", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses"] }, { type: i3.DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "label", "items", "textField", "valueField", "required", "disabled", "patternErrorMsg", "pattern", "classes", "containerClasses"] }, { type: i4.FileUploadComponent, selector: "ipa-file-upload", inputs: ["label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { type: i5.RecaptchaComponent, selector: "ipa-recaptcha", inputs: ["recaptchaSize", "lang", "recaptchaType", "theme", "useGlobalDomain"] }, { type: i6.TextInputComponent, selector: "ipa-text-input", inputs: ["id", "type", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses"] }], directives: [{ type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i7.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i7.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
116
+ GenerateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: GenerateFormComponent, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain", authorization: "authorization" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted", recaptchaOutput: "recaptchaOutput" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\"></ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [items]=\"column.data\" [valueField]=\"column.valueField\"\r\n [textField]=\"column.textField\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\">\r\n <label [for]=\"column.englishName\">{{column.arabicLabel}}</label>\r\n <div [formArrayName]=\"'items'\" *ngFor=\"let control of formControls.controls; let i = index\">\r\n <div [formGroupName]=\"i\" [id]=\"column.englishName\">\r\n <div class=\"form-check\">\r\n <input [id]=\"column.englishName+control.value.id\" class=\"form-check-input\" type=\"checkbox\"\r\n formControlName=\"checkbox\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+control.value.id\">\r\n {{control.value.description}}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.englishName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\">\r\n <label [for]=\"column.englishName\">{{column.arabicLabel}}</label>\r\n <div *ngFor=\"let item of column.data; let i = index\" [id]=\"column.englishName\">\r\n <div class=\"form-check\">\r\n <input [id]=\"column.englishName+item.id\" class=\"form-check-input\" type=\"radio\"\r\n [formControlName]=\"column.englishName\" [value]=\"item.id\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+item.id\">\r\n {{item.description}}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.englishName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\">\r\n <ipa-file-upload [label]=\"column.arabicLabel\" [acceptedFiles]=\"column.acceptedFiles\"\r\n [multiple]=\"column.multipleFile\" [maxFileSize]=\"column.size\" [method]=\"column.apiURlMethod\"\r\n [autoUpload]=\"column.autoUploadFile\" [apiUrl]=\"column.apiUrl\" [authorization]=\"authorization\"\r\n ngDefaultControl [formControlName]=\"column.englishName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.englishName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.englishName)\"></ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"lang\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.englishName}}\"></ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\" [type]=\"column.type\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\"></ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""], components: [{ type: i2.TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["id", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses"] }, { type: i3.DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "label", "items", "textField", "valueField", "required", "disabled", "patternErrorMsg", "pattern", "classes", "containerClasses"] }, { type: i4.FileUploadComponent, selector: "ipa-file-upload", inputs: ["label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { type: i5.RecaptchaComponent, selector: "ipa-recaptcha", inputs: ["siteKey", "recaptchaSize", "lang", "recaptchaType", "theme", "useGlobalDomain"] }, { type: i6.TextInputComponent, selector: "ipa-text-input", inputs: ["id", "type", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses"] }], directives: [{ type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i7.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i7.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
117
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: GenerateFormComponent, decorators: [{
118
118
  type: Component,
119
119
  args: [{
@@ -6,12 +6,12 @@ import * as i2 from "ngx-captcha";
6
6
  export class RecaptchaComponent {
7
7
  constructor(controlDir) {
8
8
  this.controlDir = controlDir;
9
+ this.siteKey = '6LefJQYdAAAAAIlxmfkjNlWidMk8VukIZcs6lO5e';
9
10
  this.recaptchaSize = 'normal';
10
11
  this.lang = 'ar';
11
12
  this.recaptchaType = 'image';
12
13
  this.theme = 'light';
13
14
  this.useGlobalDomain = true;
14
- this.siteKey = '6LefJQYdAAAAAIlxmfkjNlWidMk8VukIZcs6lO5e';
15
15
  this.formControl = new FormControl('');
16
16
  this.controlDir.valueAccessor = this;
17
17
  }
@@ -33,7 +33,7 @@ export class RecaptchaComponent {
33
33
  }
34
34
  }
35
35
  RecaptchaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: RecaptchaComponent, deps: [{ token: i1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component });
36
- RecaptchaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: RecaptchaComponent, selector: "ipa-recaptcha", inputs: { recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, ngImport: i0, template: "<ngx-recaptcha2 [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" [formControl]=\"formControl\">\n</ngx-recaptcha2>", styles: [""], components: [{ type: i2.ReCaptcha2Component, selector: "ngx-recaptcha2", inputs: ["theme", "size", "hl"] }], directives: [{ type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
36
+ RecaptchaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: RecaptchaComponent, selector: "ipa-recaptcha", inputs: { siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, ngImport: i0, template: "<ngx-recaptcha2 [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" [formControl]=\"formControl\">\n</ngx-recaptcha2>", styles: [""], components: [{ type: i2.ReCaptcha2Component, selector: "ngx-recaptcha2", inputs: ["theme", "size", "hl"] }], directives: [{ type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: RecaptchaComponent, decorators: [{
38
38
  type: Component,
39
39
  args: [{
@@ -43,7 +43,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImpor
43
43
  }]
44
44
  }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
45
45
  type: Self
46
- }] }]; }, propDecorators: { recaptchaSize: [{
46
+ }] }]; }, propDecorators: { siteKey: [{
47
+ type: Input
48
+ }], recaptchaSize: [{
47
49
  type: Input
48
50
  }], lang: [{
49
51
  type: Input
@@ -54,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImpor
54
56
  }], useGlobalDomain: [{
55
57
  type: Input
56
58
  }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vcmVjYXB0Y2hhL3JlY2FwdGNoYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL3JlY2FwdGNoYS9yZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU94RCxNQUFNLE9BQU8sa0JBQWtCO0lBUTdCLFlBQTJCLFVBQXFCO1FBQXJCLGVBQVUsR0FBVixVQUFVLENBQVc7UUFQdkMsa0JBQWEsR0FBeUIsUUFBUSxDQUFDO1FBQy9DLFNBQUksR0FBRyxJQUFJLENBQUM7UUFDWixrQkFBYSxHQUFzQixPQUFPLENBQUM7UUFDM0MsVUFBSyxHQUFxQixPQUFPLENBQUM7UUFDbEMsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDaEMsWUFBTyxHQUFHLDBDQUEwQyxDQUFDO1FBQ3JELGdCQUFXLEdBQWdCLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVqRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxzQkFBc0IsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBc0IsQ0FBQztJQUM1QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVUsSUFBUyxDQUFDO0lBRTdCLFNBQVMsS0FBVSxDQUFDO0lBQ3BCLFVBQVUsQ0FBQyxHQUFRLElBQVMsQ0FBQztJQUU3QixnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7OytHQWhDVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixtTUNSL0Isc05BRWlCOzJGRE1KLGtCQUFrQjtrQkFMOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsV0FBVyxFQUFFLDRCQUE0QjtvQkFDekMsU0FBUyxFQUFFLENBQUMsNEJBQTRCLENBQUM7aUJBQzFDOzswQkFTYyxJQUFJOzRDQVBSLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lwYS1yZWNhcHRjaGEnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjYXB0Y2hhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjYXB0Y2hhLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJlY2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHJlY2FwdGNoYVNpemU6ICdjb21wYWN0JyB8ICdub3JtYWwnID0gJ25vcm1hbCc7XG4gIEBJbnB1dCgpIGxhbmcgPSAnYXInO1xuICBASW5wdXQoKSByZWNhcHRjaGFUeXBlOiAnaW1hZ2UnIHwgJ2F1ZGlvJyA9ICdpbWFnZSc7XG4gIEBJbnB1dCgpIHRoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnID0gJ2xpZ2h0JztcbiAgQElucHV0KCkgdXNlR2xvYmFsRG9tYWluID0gdHJ1ZTtcbiAgc2l0ZUtleSA9ICc2TGVmSlFZZEFBQUFBSWx4bWZrak5sV2lkTWs4VnVrSVpjczZsTzVlJztcbiAgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgY29uc3RydWN0b3IoQFNlbGYoKSBwdWJsaWMgY29udHJvbERpcjogTmdDb250cm9sKSB7XG4gICAgdGhpcy5jb250cm9sRGlyLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbERpci5jb250cm9sO1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBjb250cm9sPy52YWxpZGF0b3IgPyBbY29udHJvbC52YWxpZGF0b3JdIDogW107XG5cbiAgICBjb250cm9sPy5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgIGNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB0aGlzLmZvcm1Db250cm9sID0gY29udHJvbCBhcyBGb3JtQ29udHJvbDtcbiAgfVxuXG4gIG9uQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHt9XG5cbiAgb25Ub3VjaGVkKCk6IHZvaWQge31cbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge31cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxufVxuIiwiPG5neC1yZWNhcHRjaGEyIFtzaXRlS2V5XT1cInNpdGVLZXlcIiBbc2l6ZV09XCJyZWNhcHRjaGFTaXplXCIgW2hsXT1cImxhbmdcIiBbdGhlbWVdPVwidGhlbWVcIiBbdHlwZV09XCJyZWNhcHRjaGFUeXBlXCJcbiAgICBbdXNlR2xvYmFsRG9tYWluXT1cInVzZUdsb2JhbERvbWFpblwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiPlxuPC9uZ3gtcmVjYXB0Y2hhMj4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vcmVjYXB0Y2hhL3JlY2FwdGNoYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL3JlY2FwdGNoYS9yZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU94RCxNQUFNLE9BQU8sa0JBQWtCO0lBUTdCLFlBQTJCLFVBQXFCO1FBQXJCLGVBQVUsR0FBVixVQUFVLENBQVc7UUFQdkMsWUFBTyxHQUFHLDBDQUEwQyxDQUFDO1FBQ3JELGtCQUFhLEdBQXlCLFFBQVEsQ0FBQztRQUMvQyxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osa0JBQWEsR0FBc0IsT0FBTyxDQUFDO1FBQzNDLFVBQUssR0FBcUIsT0FBTyxDQUFDO1FBQ2xDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLGdCQUFXLEdBQWdCLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVqRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxzQkFBc0IsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBc0IsQ0FBQztJQUM1QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVUsSUFBUyxDQUFDO0lBRTdCLFNBQVMsS0FBVSxDQUFDO0lBQ3BCLFVBQVUsQ0FBQyxHQUFRLElBQVMsQ0FBQztJQUU3QixnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7OytHQWhDVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix1TkNSL0Isc05BRWlCOzJGRE1KLGtCQUFrQjtrQkFMOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsV0FBVyxFQUFFLDRCQUE0QjtvQkFDekMsU0FBUyxFQUFFLENBQUMsNEJBQTRCLENBQUM7aUJBQzFDOzswQkFTYyxJQUFJOzRDQVBSLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpcGEtcmVjYXB0Y2hhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2FwdGNoYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2FwdGNoYS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSZWNhcHRjaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBzaXRlS2V5ID0gJzZMZWZKUVlkQUFBQUFJbHhtZmtqTmxXaWRNazhWdWtJWmNzNmxPNWUnO1xuICBASW5wdXQoKSByZWNhcHRjaGFTaXplOiAnY29tcGFjdCcgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xuICBASW5wdXQoKSBsYW5nID0gJ2FyJztcbiAgQElucHV0KCkgcmVjYXB0Y2hhVHlwZTogJ2ltYWdlJyB8ICdhdWRpbycgPSAnaW1hZ2UnO1xuICBASW5wdXQoKSB0aGVtZTogJ2xpZ2h0JyB8ICdkYXJrJyA9ICdsaWdodCc7XG4gIEBJbnB1dCgpIHVzZUdsb2JhbERvbWFpbiA9IHRydWU7XG4gIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIGNvbnN0cnVjdG9yKEBTZWxmKCkgcHVibGljIGNvbnRyb2xEaXI6IE5nQ29udHJvbCkge1xuICAgIHRoaXMuY29udHJvbERpci52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbnRyb2xEaXIuY29udHJvbDtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gY29udHJvbD8udmFsaWRhdG9yID8gW2NvbnRyb2wudmFsaWRhdG9yXSA6IFtdO1xuXG4gICAgY29udHJvbD8uc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcbiAgICBjb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBvbkNoYW5nZShldmVudDogYW55KTogdm9pZCB7fVxuXG4gIG9uVG91Y2hlZCgpOiB2b2lkIHt9XG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHt9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cbn1cbiIsIjxuZ3gtcmVjYXB0Y2hhMiBbc2l0ZUtleV09XCJzaXRlS2V5XCIgW3NpemVdPVwicmVjYXB0Y2hhU2l6ZVwiIFtobF09XCJsYW5nXCIgW3RoZW1lXT1cInRoZW1lXCIgW3R5cGVdPVwicmVjYXB0Y2hhVHlwZVwiXG4gICAgW3VzZUdsb2JhbERvbWFpbl09XCJ1c2VHbG9iYWxEb21haW5cIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIj5cbjwvbmd4LXJlY2FwdGNoYTI+Il19
@@ -8,6 +8,12 @@ export class BreadcrumbsService {
8
8
  titleEl.textContent = text;
9
9
  }
10
10
  }
11
+ setMainPageTitle(text, url) {
12
+ const div = document.getElementsByClassName('main-section-title');
13
+ if (div && div.length > 0) {
14
+ div[0].innerHTML = `<a id="site-url" href="${url}">${text}</a>`;
15
+ }
16
+ }
11
17
  addBreadcrumb(nodeName, spanClasses = 'bc-current', linkClasses = 'bc-node') {
12
18
  var _a;
13
19
  const spans = (_a = document.getElementById('ctl00_path')) === null || _a === void 0 ? void 0 : _a.children;
@@ -19,7 +25,7 @@ export class BreadcrumbsService {
19
25
  //add new link
20
26
  lastIndex.appendChild(this.createLink(innerHTML, location.pathname, linkClasses));
21
27
  //add new span and empty span
22
- const newSpan = this.createSapn(nodeName, spanClasses);
28
+ const newSpan = this.createSpan(nodeName, spanClasses);
23
29
  const emptySpan = document.createElement('span');
24
30
  lastIndex.after(...[emptySpan, newSpan]);
25
31
  }
@@ -42,19 +48,19 @@ export class BreadcrumbsService {
42
48
  lastIndex.after(...[emptySpan, newSpan]);
43
49
  }
44
50
  else {
45
- const newSpan = this.createSapn(nodeList[i].nodeName, spanClasses);
51
+ const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);
46
52
  const emptySpan = document.createElement('span');
47
53
  lastIndex.after(...[emptySpan, newSpan]);
48
54
  }
49
55
  }
50
56
  }
51
57
  createBreadcrumbs(nodeList, spanClasses = 'bc-current', linkClasses = 'bc-node') {
52
- const cuurentSpan = document.getElementById('ctl00_path');
53
- cuurentSpan.innerHTML = '';
58
+ const currentSpan = document.getElementById('ctl00_path');
59
+ currentSpan.innerHTML = '';
54
60
  const newSpan = document.createElement('span');
55
- cuurentSpan === null || cuurentSpan === void 0 ? void 0 : cuurentSpan.appendChild(newSpan);
61
+ currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.appendChild(newSpan);
56
62
  newSpan.appendChild(this.createLink(nodeList[0].nodeName, nodeList[0].nodeUrl, linkClasses));
57
- const spans = cuurentSpan === null || cuurentSpan === void 0 ? void 0 : cuurentSpan.children;
63
+ const spans = currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.children;
58
64
  for (let i = 1; i < nodeList.length; i++) {
59
65
  const lastIndex = spans === null || spans === void 0 ? void 0 : spans.item(spans.length - 1);
60
66
  if (nodeList[i].nodeUrl) {
@@ -64,7 +70,7 @@ export class BreadcrumbsService {
64
70
  lastIndex === null || lastIndex === void 0 ? void 0 : lastIndex.after(...[emptySpan, newSpan]);
65
71
  }
66
72
  else {
67
- const newSpan = this.createSapn(nodeList[i].nodeName, spanClasses);
73
+ const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);
68
74
  const emptySpan = document.createElement('span');
69
75
  lastIndex.after(...[emptySpan, newSpan]);
70
76
  }
@@ -120,7 +126,7 @@ export class BreadcrumbsService {
120
126
  link.classList.add(...[classes]);
121
127
  return link;
122
128
  }
123
- createSapn(innerHTML, classes) {
129
+ createSpan(innerHTML, classes) {
124
130
  const span = document.createElement('span');
125
131
  span.classList.add(...[classes]);
126
132
  span.innerHTML = ' ' + innerHTML;
@@ -142,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImpor
142
148
  providedIn: 'root',
143
149
  }]
144
150
  }], ctorParameters: function () { return []; } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvc2VydmljZXMvYnJlYWRjcnVtYnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLGdCQUFlLENBQUM7SUFFaEIsWUFBWSxDQUFDLElBQVk7UUFDdkIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzdELElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUNYLFFBQWdCLEVBQ2hCLFdBQVcsR0FBRyxZQUFZLEVBQzFCLFdBQVcsR0FBRyxTQUFTOztRQUV2QixNQUFNLEtBQUssR0FBRyxNQUFBLFFBQVEsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLDBDQUFFLFFBQVEsQ0FBQztRQUM5RCxnQkFBZ0I7UUFDaEIsTUFBTSxTQUFTLEdBQUcsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBb0IsQ0FBQztRQUNuRSxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ3RDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzlDLGNBQWM7UUFDZCxTQUFTLENBQUMsV0FBVyxDQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUMz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RyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzNDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQztJQUM5QyxDQUFDOzsrR0E5S1Usa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1icyB9IGZyb20gJy4uL21vZGVscy9icmVhZGNydW1icy5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYnNTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIHNldFBhZ2VUaXRsZSh0ZXh0OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRpdGxlRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc3ViLXNlY3Rpb24tdGl0bGUnKTtcclxuICAgIGlmICh0aXRsZUVsKSB7XHJcbiAgICAgIHRpdGxlRWwudGV4dENvbnRlbnQgPSB0ZXh0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkQnJlYWRjcnVtYihcclxuICAgIG5vZGVOYW1lOiBzdHJpbmcsXHJcbiAgICBzcGFuQ2xhc3NlcyA9ICdiYy1jdXJyZW50JyxcclxuICAgIGxpbmtDbGFzc2VzID0gJ2JjLW5vZGUnXHJcbiAgKSB7XHJcbiAgICBjb25zdCBzcGFucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGwwMF9wYXRoJyk/LmNoaWxkcmVuO1xyXG4gICAgLy9nZXQgbGFzdCBjaGlsZFxyXG4gICAgY29uc3QgbGFzdEluZGV4ID0gc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgY29uc3QgaW5uZXJIVE1MID0gbGFzdEluZGV4LmlubmVySFRNTDtcclxuICAgIGxhc3RJbmRleC5pbm5lckhUTUwgPSAnJztcclxuICAgIGxhc3RJbmRleC5jbGFzc0xpc3QucmVtb3ZlKC4uLlsnYmMtY3VycmVudCddKTtcclxuICAgIC8vYWRkIG5ldyBsaW5rXHJcbiAgICBsYXN0SW5kZXguYXBwZW5kQ2hpbGQoXHJcbiAgICAgIHRoaXMuY3JlYXRlTGluayhpbm5lckhUTUwsIGxvY2F0aW9uLnBhdGhuYW1lLCBsaW5rQ2xhc3NlcylcclxuICAgICk7XHJcbiAgICAvL2FkZCBuZXcgc3BhbiBhbmQgZW1wdHkgc3BhblxyXG4gICAgY29uc3QgbmV3U3BhbiA9IHRoaXMuY3JlYXRlU2Fwbihub2RlTmFtZSwgc3BhbkNsYXNzZXMpO1xyXG4gICAgY29uc3QgZW1wdHlTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgbGFzdEluZGV4LmFmdGVyKC4uLltlbXB0eVNwYW4sIG5ld1NwYW5dKTtcclxuICB9XHJcblxyXG4gIGFkZEJyZWFkY3J1bWJMaXN0KFxyXG4gICAgbm9kZUxpc3Q6IEJyZWFkY3J1bWJzW10sXHJcbiAgICBzcGFuQ2xhc3NlcyA9ICdiYy1jdXJyZW50JyxcclxuICAgIGxpbmtDbGFzc2VzID0gJ2JjLW5vZGUnXHJcbiAgKSB7XHJcbiAgICBjb25zdCBzcGFucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGwwMF9wYXRoJyk/LmNoaWxkTm9kZXM7XHJcbiAgICAvL2dldCBsYXN0IGNoaWxkXHJcbiAgICBjb25zdCBsYXN0U3BhbiA9IHNwYW5zPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpIGFzIEhUTUxTcGFuRWxlbWVudDtcclxuICAgIGNvbnN0IGlubmVySFRNTCA9IGxhc3RTcGFuLmlubmVySFRNTDtcclxuICAgIGxhc3RTcGFuLmNsYXNzTGlzdC5yZW1vdmUoLi4uW3NwYW5DbGFzc2VzXSk7XHJcbiAgICBsYXN0U3Bhbi5pbm5lckhUTUwgPSAnJztcclxuICAgIC8vYWRkIG5ldyBsaW5rXHJcbiAgICBsYXN0U3Bhbi5hcHBlbmRDaGlsZChcclxuICAgICAgdGhpcy5jcmVhdGVMaW5rKGlubmVySFRNTCwgbG9jYXRpb24ucGF0aG5hbWUsIGxpbmtDbGFzc2VzKVxyXG4gICAgKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHNwYW5zPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpIGFzIEhUTUxTcGFuRWxlbWVudDtcclxuICAgICAgaWYgKG5vZGVMaXN0W2ldLm5vZGVVcmwpIHtcclxuICAgICAgICBjb25zdCBuZXdTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIG5ld1NwYW4uYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZUxpbmsoXHJcbiAgICAgICAgICAgIG5vZGVMaXN0W2ldLm5vZGVOYW1lLFxyXG4gICAgICAgICAgICBub2RlTGlzdFtpXS5ub2RlVXJsLFxyXG4gICAgICAgICAgICBsaW5rQ2xhc3Nlc1xyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgZW1wdHlTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIGxhc3RJbmRleC5hZnRlciguLi5bZW1wdHlTcGFuLCBuZXdTcGFuXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbmV3U3BhbiA9IHRoaXMuY3JlYXRlU2Fwbihub2RlTGlzdFtpXS5ub2RlTmFtZSwgc3BhbkNsYXNzZXMpO1xyXG4gICAgICAgIGNvbnN0IGVtcHR5U3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICBsYXN0SW5kZXguYWZ0ZXIoLi4uW2VtcHR5U3BhbiwgbmV3U3Bhbl0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVCcmVhZGNydW1icyhcclxuICAgIG5vZGVMaXN0OiBCcmVhZGNydW1ic1tdLFxyXG4gICAgc3BhbkNsYXNzZXMgPSAnYmMtY3VycmVudCcsXHJcbiAgICBsaW5rQ2xhc3NlcyA9ICdiYy1ub2RlJ1xyXG4gICkge1xyXG4gICAgY29uc3QgY3V1cmVudFNwYW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcclxuICAgICAgJ2N0bDAwX3BhdGgnXHJcbiAgICApIGFzIEhUTUxTcGFuRWxlbWVudDtcclxuICAgIGN1dXJlbnRTcGFuLmlubmVySFRNTCA9ICcnO1xyXG4gICAgY29uc3QgbmV3U3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIGN1dXJlbnRTcGFuPy5hcHBlbmRDaGlsZChuZXdTcGFuKTtcclxuICAgIG5ld1NwYW4uYXBwZW5kQ2hpbGQoXHJcbiAgICAgIHRoaXMuY3JlYXRlTGluayhub2RlTGlzdFswXS5ub2RlTmFtZSwgbm9kZUxpc3RbMF0ubm9kZVVybCwgbGlua0NsYXNzZXMpXHJcbiAgICApO1xyXG4gICAgY29uc3Qgc3BhbnMgPSBjdXVyZW50U3Bhbj8uY2hpbGRyZW47XHJcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IG5vZGVMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHNwYW5zPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpIGFzIEhUTUxTcGFuRWxlbWVudDtcclxuICAgICAgaWYgKG5vZGVMaXN0W2ldLm5vZGVVcmwpIHtcclxuICAgICAgICBjb25zdCBuZXdTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIG5ld1NwYW4uYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZUxpbmsoXHJcbiAgICAgICAgICAgIG5vZGVMaXN0W2ldLm5vZGVOYW1lLFxyXG4gICAgICAgICAgICBub2RlTGlzdFtpXS5ub2RlVXJsLFxyXG4gICAgICAgICAgICBsaW5rQ2xhc3Nlc1xyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgZW1wdHlTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIGxhc3RJbmRleD8uYWZ0ZXIoLi4uW2VtcHR5U3BhbiwgbmV3U3Bhbl0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG5ld1NwYW4gPSB0aGlzLmNyZWF0ZVNhcG4obm9kZUxpc3RbaV0ubm9kZU5hbWUsIHNwYW5DbGFzc2VzKTtcclxuICAgICAgICBjb25zdCBlbXB0eVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgbGFzdEluZGV4LmFmdGVyKC4uLltlbXB0eVNwYW4sIG5ld1NwYW5dKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTGFzdEJyZWFkY3J1bWIoKSB7XHJcbiAgICBjb25zdCBzcGFucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGwwMF9wYXRoJyk/LmNoaWxkcmVuO1xyXG4gICAgc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSk/LnJlbW92ZSgpO1xyXG4gICAgc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSk/LnJlbW92ZSgpO1xyXG4gICAgdGhpcy5zZXRDdXJyZW50Tm9kZShzcGFucyk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVCcmVhZGNydW1iQnlOb2RlTmFtZShub2RlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzcGFucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGwwMF9wYXRoJylcclxuICAgICAgPy5jaGlsZHJlbiBhcyBIVE1MQ29sbGVjdGlvbjtcclxuICAgIGxldCBpbmRleCA9IC0xO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGFucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBzcGFuID0gc3BhbnMuaXRlbShpKTtcclxuICAgICAgaWYgKHNwYW4/LnRleHRDb250ZW50Py50cmltKCkgPT09IG5vZGVOYW1lKSB7XHJcbiAgICAgICAgaW5kZXggPSBpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBsYXN0Tm9kZSA9IHNwYW5zLmxlbmd0aCAtIDEgPT09IGluZGV4O1xyXG4gICAgaWYgKGluZGV4ICE9PSAtMSAmJiAhbGFzdE5vZGUpIHtcclxuICAgICAgc3BhbnM/Lml0ZW0oaW5kZXgpPy5yZW1vdmUoKTtcclxuICAgICAgc3BhbnM/Lml0ZW0oaW5kZXgpPy5yZW1vdmUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNwYW5zPy5pdGVtKGluZGV4KT8ucmVtb3ZlKCk7XHJcbiAgICAgIHNwYW5zPy5pdGVtKGluZGV4IC0gMSk/LnJlbW92ZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGxhc3ROb2RlKSB7XHJcbiAgICAgIHRoaXMuc2V0Q3VycmVudE5vZGUoc3BhbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTGFzdEJyZWFkY3J1bWJzQnlMZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHNwYW5zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N0bDAwX3BhdGgnKVxyXG4gICAgICA/LmNoaWxkcmVuIGFzIEhUTUxDb2xsZWN0aW9uO1xyXG4gICAgd2hpbGUgKGxlbmd0aCA+IDApIHtcclxuICAgICAgc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSk/LnJlbW92ZSgpO1xyXG4gICAgICBzcGFucz8uaXRlbShzcGFucy5sZW5ndGggLSAxKT8ucmVtb3ZlKCk7XHJcbiAgICAgIGxlbmd0aC0tO1xyXG4gICAgfVxyXG4gICAgaWYgKHNwYW5zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zZXRDdXJyZW50Tm9kZShzcGFucyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUxpbmsoXHJcbiAgICBpbm5lckhUTUw6IHN0cmluZyxcclxuICAgIGhyZWY6IHN0cmluZyB8IG51bGwsXHJcbiAgICBjbGFzc2VzOiBzdHJpbmdcclxuICApOiBIVE1MQW5jaG9yRWxlbWVudCB7XHJcbiAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgbGluay5pbm5lckhUTUwgPSAnICcgKyBpbm5lckhUTUw7XHJcbiAgICBsaW5rLmhyZWYgPSBocmVmID8/ICcnO1xyXG4gICAgbGluay5jbGFzc0xpc3QuYWRkKC4uLltjbGFzc2VzXSk7XHJcbiAgICByZXR1cm4gbGluaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlU2Fwbihpbm5lckhUTUw6IHN0cmluZywgY2xhc3Nlczogc3RyaW5nKTogSFRNTFNwYW5FbGVtZW50IHtcclxuICAgIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICBzcGFuLmNsYXNzTGlzdC5hZGQoLi4uW2NsYXNzZXNdKTtcclxuICAgIHNwYW4uaW5uZXJIVE1MID0gJyAnICsgaW5uZXJIVE1MO1xyXG4gICAgcmV0dXJuIHNwYW47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEN1cnJlbnROb2RlKHNwYW5zPzogSFRNTENvbGxlY3Rpb24pIHtcclxuICAgIGNvbnN0IGxhc3RTcGFuID0gc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgY29uc3QgbGFzdFNwYW5MaW5rID0gc3BhbnNcclxuICAgICAgPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpXHJcbiAgICAgID8uY2hpbGRyZW4uaXRlbSgwKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuICAgIGxhc3RTcGFuPy5jbGFzc0xpc3QuYWRkKC4uLlsnYmMtY3VycmVudCddKTtcclxuICAgIGxhc3RTcGFuLmlubmVySFRNTCA9IGxhc3RTcGFuTGluay5pbm5lckhUTUw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvc2VydmljZXMvYnJlYWRjcnVtYnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLGdCQUFlLENBQUM7SUFFaEIsWUFBWSxDQUFDLElBQVk7UUFDdkIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzdELElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLEdBQVc7UUFDeEMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEUsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekIsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRywwQkFBMEIsR0FBRyxLQUFLLElBQUksTUFBTSxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FDWCxRQUFnQixFQUNoQixXQUFXLEdBQUcsWUFBWSxFQUMxQixXQUFXLEdBQUcsU0FBUzs7UUFFdkIsTUFBTSxLQUFLLEdBQUcsTUFBQSxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQywwQ0FBRSxRQUFRLENBQUM7UUFDOUQsZ0JBQWdCO1FBQ2hCLE1BQU0sU0FBUyxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQW9CLENBQUM7UUFDbkUsTUFBTSxT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Q0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBb0IsQ0FBQztRQUNsRSxNQUFNLFlBQVksR0FBRyxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLDBDQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBc0IsQ0FBQztRQUMxQyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUMzQyxRQUFRLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUM7SUFDOUMsQ0FBQzs7K0dBckxVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYnMgfSBmcm9tICcuLi9tb2RlbHMvYnJlYWRjcnVtYnMubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBzZXRQYWdlVGl0bGUodGV4dDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB0aXRsZUVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnN1Yi1zZWN0aW9uLXRpdGxlJyk7XHJcbiAgICBpZiAodGl0bGVFbCkge1xyXG4gICAgICB0aXRsZUVsLnRleHRDb250ZW50ID0gdGV4dDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldE1haW5QYWdlVGl0bGUodGV4dDogc3RyaW5nLCB1cmw6IHN0cmluZykge1xyXG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWFpbi1zZWN0aW9uLXRpdGxlJyk7XHJcbiAgICBpZiAoZGl2ICYmIGRpdi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGRpdlswXS5pbm5lckhUTUwgPSBgPGEgaWQ9XCJzaXRlLXVybFwiIGhyZWY9XCIke3VybH1cIj4ke3RleHR9PC9hPmA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRCcmVhZGNydW1iKFxyXG4gICAgbm9kZU5hbWU6IHN0cmluZyxcclxuICAgIHNwYW5DbGFzc2VzID0gJ2JjLWN1cnJlbnQnLFxyXG4gICAgbGlua0NsYXNzZXMgPSAnYmMtbm9kZSdcclxuICApIHtcclxuICAgIGNvbnN0IHNwYW5zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N0bDAwX3BhdGgnKT8uY2hpbGRyZW47XHJcbiAgICAvL2dldCBsYXN0IGNoaWxkXHJcbiAgICBjb25zdCBsYXN0SW5kZXggPSBzcGFucz8uaXRlbShzcGFucy5sZW5ndGggLSAxKSBhcyBIVE1MU3BhbkVsZW1lbnQ7XHJcbiAgICBjb25zdCBpbm5lckhUTUwgPSBsYXN0SW5kZXguaW5uZXJIVE1MO1xyXG4gICAgbGFzdEluZGV4LmlubmVySFRNTCA9ICcnO1xyXG4gICAgbGFzdEluZGV4LmNsYXNzTGlzdC5yZW1vdmUoLi4uWydiYy1jdXJyZW50J10pO1xyXG4gICAgLy9hZGQgbmV3IGxpbmtcclxuICAgIGxhc3RJbmRleC5hcHBlbmRDaGlsZChcclxuICAgICAgdGhpcy5jcmVhdGVMaW5rKGlubmVySFRNTCwgbG9jYXRpb24ucGF0aG5hbWUsIGxpbmtDbGFzc2VzKVxyXG4gICAgKTtcclxuICAgIC8vYWRkIG5ldyBzcGFuIGFuZCBlbXB0eSBzcGFuXHJcbiAgICBjb25zdCBuZXdTcGFuID0gdGhpcy5jcmVhdGVTcGFuKG5vZGVOYW1lLCBzcGFuQ2xhc3Nlcyk7XHJcbiAgICBjb25zdCBlbXB0eVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICBsYXN0SW5kZXguYWZ0ZXIoLi4uW2VtcHR5U3BhbiwgbmV3U3Bhbl0pO1xyXG4gIH1cclxuXHJcbiAgYWRkQnJlYWRjcnVtYkxpc3QoXHJcbiAgICBub2RlTGlzdDogQnJlYWRjcnVtYnNbXSxcclxuICAgIHNwYW5DbGFzc2VzID0gJ2JjLWN1cnJlbnQnLFxyXG4gICAgbGlua0NsYXNzZXMgPSAnYmMtbm9kZSdcclxuICApIHtcclxuICAgIGNvbnN0IHNwYW5zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N0bDAwX3BhdGgnKT8uY2hpbGROb2RlcztcclxuICAgIC8vZ2V0IGxhc3QgY2hpbGRcclxuICAgIGNvbnN0IGxhc3RTcGFuID0gc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgY29uc3QgaW5uZXJIVE1MID0gbGFzdFNwYW4uaW5uZXJIVE1MO1xyXG4gICAgbGFzdFNwYW4uY2xhc3NMaXN0LnJlbW92ZSguLi5bc3BhbkNsYXNzZXNdKTtcclxuICAgIGxhc3RTcGFuLmlubmVySFRNTCA9ICcnO1xyXG4gICAgLy9hZGQgbmV3IGxpbmtcclxuICAgIGxhc3RTcGFuLmFwcGVuZENoaWxkKFxyXG4gICAgICB0aGlzLmNyZWF0ZUxpbmsoaW5uZXJIVE1MLCBsb2NhdGlvbi5wYXRobmFtZSwgbGlua0NsYXNzZXMpXHJcbiAgICApO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZUxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgbGFzdEluZGV4ID0gc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgICBpZiAobm9kZUxpc3RbaV0ubm9kZVVybCkge1xyXG4gICAgICAgIGNvbnN0IG5ld1NwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgbmV3U3Bhbi5hcHBlbmRDaGlsZChcclxuICAgICAgICAgIHRoaXMuY3JlYXRlTGluayhcclxuICAgICAgICAgICAgbm9kZUxpc3RbaV0ubm9kZU5hbWUsXHJcbiAgICAgICAgICAgIG5vZGVMaXN0W2ldLm5vZGVVcmwsXHJcbiAgICAgICAgICAgIGxpbmtDbGFzc2VzXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBlbXB0eVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgbGFzdEluZGV4LmFmdGVyKC4uLltlbXB0eVNwYW4sIG5ld1NwYW5dKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBuZXdTcGFuID0gdGhpcy5jcmVhdGVTcGFuKG5vZGVMaXN0W2ldLm5vZGVOYW1lLCBzcGFuQ2xhc3Nlcyk7XHJcbiAgICAgICAgY29uc3QgZW1wdHlTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIGxhc3RJbmRleC5hZnRlciguLi5bZW1wdHlTcGFuLCBuZXdTcGFuXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZUJyZWFkY3J1bWJzKFxyXG4gICAgbm9kZUxpc3Q6IEJyZWFkY3J1bWJzW10sXHJcbiAgICBzcGFuQ2xhc3NlcyA9ICdiYy1jdXJyZW50JyxcclxuICAgIGxpbmtDbGFzc2VzID0gJ2JjLW5vZGUnXHJcbiAgKSB7XHJcbiAgICBjb25zdCBjdXJyZW50U3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxyXG4gICAgICAnY3RsMDBfcGF0aCdcclxuICAgICkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgY3VycmVudFNwYW4uaW5uZXJIVE1MID0gJyc7XHJcbiAgICBjb25zdCBuZXdTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgY3VycmVudFNwYW4/LmFwcGVuZENoaWxkKG5ld1NwYW4pO1xyXG4gICAgbmV3U3Bhbi5hcHBlbmRDaGlsZChcclxuICAgICAgdGhpcy5jcmVhdGVMaW5rKG5vZGVMaXN0WzBdLm5vZGVOYW1lLCBub2RlTGlzdFswXS5ub2RlVXJsLCBsaW5rQ2xhc3NlcylcclxuICAgICk7XHJcbiAgICBjb25zdCBzcGFucyA9IGN1cnJlbnRTcGFuPy5jaGlsZHJlbjtcclxuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbm9kZUxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgbGFzdEluZGV4ID0gc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgICBpZiAobm9kZUxpc3RbaV0ubm9kZVVybCkge1xyXG4gICAgICAgIGNvbnN0IG5ld1NwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgbmV3U3Bhbi5hcHBlbmRDaGlsZChcclxuICAgICAgICAgIHRoaXMuY3JlYXRlTGluayhcclxuICAgICAgICAgICAgbm9kZUxpc3RbaV0ubm9kZU5hbWUsXHJcbiAgICAgICAgICAgIG5vZGVMaXN0W2ldLm5vZGVVcmwsXHJcbiAgICAgICAgICAgIGxpbmtDbGFzc2VzXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBlbXB0eVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgbGFzdEluZGV4Py5hZnRlciguLi5bZW1wdHlTcGFuLCBuZXdTcGFuXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbmV3U3BhbiA9IHRoaXMuY3JlYXRlU3Bhbihub2RlTGlzdFtpXS5ub2RlTmFtZSwgc3BhbkNsYXNzZXMpO1xyXG4gICAgICAgIGNvbnN0IGVtcHR5U3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICBsYXN0SW5kZXguYWZ0ZXIoLi4uW2VtcHR5U3BhbiwgbmV3U3Bhbl0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVMYXN0QnJlYWRjcnVtYigpIHtcclxuICAgIGNvbnN0IHNwYW5zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N0bDAwX3BhdGgnKT8uY2hpbGRyZW47XHJcbiAgICBzcGFucz8uaXRlbShzcGFucy5sZW5ndGggLSAxKT8ucmVtb3ZlKCk7XHJcbiAgICBzcGFucz8uaXRlbShzcGFucy5sZW5ndGggLSAxKT8ucmVtb3ZlKCk7XHJcbiAgICB0aGlzLnNldEN1cnJlbnROb2RlKHNwYW5zKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUJyZWFkY3J1bWJCeU5vZGVOYW1lKG5vZGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHNwYW5zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N0bDAwX3BhdGgnKVxyXG4gICAgICA/LmNoaWxkcmVuIGFzIEhUTUxDb2xsZWN0aW9uO1xyXG4gICAgbGV0IGluZGV4ID0gLTE7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwYW5zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHNwYW4gPSBzcGFucy5pdGVtKGkpO1xyXG4gICAgICBpZiAoc3Bhbj8udGV4dENvbnRlbnQ/LnRyaW0oKSA9PT0gbm9kZU5hbWUpIHtcclxuICAgICAgICBpbmRleCA9IGk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGxhc3ROb2RlID0gc3BhbnMubGVuZ3RoIC0gMSA9PT0gaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggIT09IC0xICYmICFsYXN0Tm9kZSkge1xyXG4gICAgICBzcGFucz8uaXRlbShpbmRleCk/LnJlbW92ZSgpO1xyXG4gICAgICBzcGFucz8uaXRlbShpbmRleCk/LnJlbW92ZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3BhbnM/Lml0ZW0oaW5kZXgpPy5yZW1vdmUoKTtcclxuICAgICAgc3BhbnM/Lml0ZW0oaW5kZXggLSAxKT8ucmVtb3ZlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAobGFzdE5vZGUpIHtcclxuICAgICAgdGhpcy5zZXRDdXJyZW50Tm9kZShzcGFucyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVMYXN0QnJlYWRjcnVtYnNCeUxlbmd0aChsZW5ndGg6IG51bWJlcikge1xyXG4gICAgY29uc3Qgc3BhbnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3RsMDBfcGF0aCcpXHJcbiAgICAgID8uY2hpbGRyZW4gYXMgSFRNTENvbGxlY3Rpb247XHJcbiAgICB3aGlsZSAobGVuZ3RoID4gMCkge1xyXG4gICAgICBzcGFucz8uaXRlbShzcGFucy5sZW5ndGggLSAxKT8ucmVtb3ZlKCk7XHJcbiAgICAgIHNwYW5zPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpPy5yZW1vdmUoKTtcclxuICAgICAgbGVuZ3RoLS07XHJcbiAgICB9XHJcbiAgICBpZiAoc3BhbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnNldEN1cnJlbnROb2RlKHNwYW5zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTGluayhcclxuICAgIGlubmVySFRNTDogc3RyaW5nLFxyXG4gICAgaHJlZjogc3RyaW5nIHwgbnVsbCxcclxuICAgIGNsYXNzZXM6IHN0cmluZ1xyXG4gICk6IEhUTUxBbmNob3JFbGVtZW50IHtcclxuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBsaW5rLmlubmVySFRNTCA9ICcgJyArIGlubmVySFRNTDtcclxuICAgIGxpbmsuaHJlZiA9IGhyZWYgPz8gJyc7XHJcbiAgICBsaW5rLmNsYXNzTGlzdC5hZGQoLi4uW2NsYXNzZXNdKTtcclxuICAgIHJldHVybiBsaW5rO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVTcGFuKGlubmVySFRNTDogc3RyaW5nLCBjbGFzc2VzOiBzdHJpbmcpOiBIVE1MU3BhbkVsZW1lbnQge1xyXG4gICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIHNwYW4uY2xhc3NMaXN0LmFkZCguLi5bY2xhc3Nlc10pO1xyXG4gICAgc3Bhbi5pbm5lckhUTUwgPSAnICcgKyBpbm5lckhUTUw7XHJcbiAgICByZXR1cm4gc3BhbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q3VycmVudE5vZGUoc3BhbnM/OiBIVE1MQ29sbGVjdGlvbikge1xyXG4gICAgY29uc3QgbGFzdFNwYW4gPSBzcGFucz8uaXRlbShzcGFucy5sZW5ndGggLSAxKSBhcyBIVE1MU3BhbkVsZW1lbnQ7XHJcbiAgICBjb25zdCBsYXN0U3BhbkxpbmsgPSBzcGFuc1xyXG4gICAgICA/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSlcclxuICAgICAgPy5jaGlsZHJlbi5pdGVtKDApIGFzIEhUTUxBbmNob3JFbGVtZW50O1xyXG4gICAgbGFzdFNwYW4/LmNsYXNzTGlzdC5hZGQoLi4uWydiYy1jdXJyZW50J10pO1xyXG4gICAgbGFzdFNwYW4uaW5uZXJIVE1MID0gbGFzdFNwYW5MaW5rLmlubmVySFRNTDtcclxuICB9XHJcbn1cclxuIl19
@@ -5,14 +5,21 @@ export class ShareButtonComponent {
5
5
  constructor() {
6
6
  this.title = '';
7
7
  this.description = '';
8
+ this.btnLabel = '';
8
9
  }
9
10
  ngAfterViewInit() {
10
11
  const elements = document.getElementsByClassName('sb-show-icon');
11
12
  elements[0].setAttribute('type', 'button');
13
+ elements[0].setAttribute('id', 'IPAShareBtn');
14
+ const label = document.createElement('label');
15
+ label.innerHTML = this.btnLabel;
16
+ label.classList.add('sm-share-title');
17
+ label.classList.add('me-1');
18
+ elements[0].before(label);
12
19
  }
13
20
  }
14
21
  ShareButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ShareButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- ShareButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: ShareButtonComponent, selector: "ipa-share-button", inputs: { title: "title", description: "description" }, ngImport: i0, template: "<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','email','copy']\">\r\n</share-popup-button>", styles: [""], components: [{ type: i1.SharePopupComponent, selector: "share-popup-button", inputs: ["theme", "icon", "text", "include", "exclude", "closeIcon", "url", "title", "description", "image", "tags", "autoSetMeta", "show", "showIcon", "showText", "disabled", "hasBackdrop", "backdropClass"], outputs: ["opened", "closed", "popupClosed"] }] });
22
+ ShareButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: ShareButtonComponent, selector: "ipa-share-button", inputs: { title: "title", description: "description", btnLabel: "btnLabel" }, ngImport: i0, template: "<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share-alt'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','email','copy']\">\r\n</share-popup-button>", styles: [""], components: [{ type: i1.SharePopupComponent, selector: "share-popup-button", inputs: ["theme", "icon", "text", "include", "exclude", "closeIcon", "url", "title", "description", "image", "tags", "autoSetMeta", "show", "showIcon", "showText", "disabled", "hasBackdrop", "backdropClass"], outputs: ["opened", "closed", "popupClosed"] }] });
16
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ShareButtonComponent, decorators: [{
17
24
  type: Component,
18
25
  args: [{
@@ -24,5 +31,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImpor
24
31
  type: Input
25
32
  }], description: [{
26
33
  type: Input
34
+ }], btnLabel: [{
35
+ type: Input
27
36
  }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvc2hhcmUtYnV0dG9uL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL3NoYXJlLWJ1dHRvbi9zaGFyZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPaEUsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQjtRQUZTLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztJQUNYLENBQUM7SUFDaEIsZUFBZTtRQUNiLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDOztpSEFQVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixnSENQakMsOE1BRXFCOzJGREtSLG9CQUFvQjtrQkFMaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsK0JBQStCO29CQUM1QyxTQUFTLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztpQkFDN0M7MEVBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lwYS1zaGFyZS1idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGFyZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hhcmVCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xyXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJyc7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnc2Itc2hvdy1pY29uJyk7XHJcbiAgICBlbGVtZW50c1swXS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnYnV0dG9uJyk7XHJcbiAgfVxyXG59XHJcbiIsIjxzaGFyZS1wb3B1cC1idXR0b24gW3RpdGxlXT1cInRpdGxlXCIgW2Rlc2NyaXB0aW9uXT1cImRlc2NyaXB0aW9uXCIgW2ljb25dPVwiJ3NoYXJlJ1wiXHJcbiAgICBbaW5jbHVkZV09XCJbJ2ZhY2Vib29rJywndHdpdHRlcicsJ2xpbmtlZGluJywndGVsZWdyYW0nLCd3aGF0c2FwcCcsJ2VtYWlsJywnY29weSddXCI+XHJcbjwvc2hhcmUtcG9wdXAtYnV0dG9uPiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvc2hhcmUtYnV0dG9uL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL3NoYXJlLWJ1dHRvbi9zaGFyZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPaEUsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQjtRQUhTLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixhQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ1IsQ0FBQztJQUNoQixlQUFlO1FBQ2IsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2hDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUIsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOztpSEFkVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixzSUNQakMsa05BRXFCOzJGREtSLG9CQUFvQjtrQkFMaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsK0JBQStCO29CQUM1QyxTQUFTLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztpQkFDN0M7MEVBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXBhLXNoYXJlLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2hhcmUtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGFyZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb24gPSAnJztcclxuICBASW5wdXQoKSBidG5MYWJlbCA9ICcnO1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3NiLXNob3ctaWNvbicpO1xyXG4gICAgZWxlbWVudHNbMF0uc2V0QXR0cmlidXRlKCd0eXBlJywgJ2J1dHRvbicpO1xyXG4gICAgZWxlbWVudHNbMF0uc2V0QXR0cmlidXRlKCdpZCcsICdJUEFTaGFyZUJ0bicpO1xyXG4gICAgY29uc3QgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpO1xyXG4gICAgbGFiZWwuaW5uZXJIVE1MID0gdGhpcy5idG5MYWJlbDtcclxuICAgIGxhYmVsLmNsYXNzTGlzdC5hZGQoJ3NtLXNoYXJlLXRpdGxlJyk7XHJcbiAgICBsYWJlbC5jbGFzc0xpc3QuYWRkKCdtZS0xJyk7XHJcbiAgICBlbGVtZW50c1swXS5iZWZvcmUobGFiZWwpO1xyXG4gIH1cclxufVxyXG4iLCI8c2hhcmUtcG9wdXAtYnV0dG9uIFt0aXRsZV09XCJ0aXRsZVwiIFtkZXNjcmlwdGlvbl09XCJkZXNjcmlwdGlvblwiIFtpY29uXT1cIidzaGFyZS1hbHQnXCJcclxuICAgIFtpbmNsdWRlXT1cIlsnZmFjZWJvb2snLCd0d2l0dGVyJywnbGlua2VkaW4nLCd0ZWxlZ3JhbScsJ3doYXRzYXBwJywnZW1haWwnLCdjb3B5J11cIj5cclxuPC9zaGFyZS1wb3B1cC1idXR0b24+Il19
@@ -681,12 +681,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImpor
681
681
  class RecaptchaComponent {
682
682
  constructor(controlDir) {
683
683
  this.controlDir = controlDir;
684
+ this.siteKey = '6LefJQYdAAAAAIlxmfkjNlWidMk8VukIZcs6lO5e';
684
685
  this.recaptchaSize = 'normal';
685
686
  this.lang = 'ar';
686
687
  this.recaptchaType = 'image';
687
688
  this.theme = 'light';
688
689
  this.useGlobalDomain = true;
689
- this.siteKey = '6LefJQYdAAAAAIlxmfkjNlWidMk8VukIZcs6lO5e';
690
690
  this.formControl = new FormControl('');
691
691
  this.controlDir.valueAccessor = this;
692
692
  }
@@ -708,7 +708,7 @@ class RecaptchaComponent {
708
708
  }
709
709
  }
710
710
  RecaptchaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: RecaptchaComponent, deps: [{ token: i2$1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component });
711
- RecaptchaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: RecaptchaComponent, selector: "ipa-recaptcha", inputs: { recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, ngImport: i0, template: "<ngx-recaptcha2 [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" [formControl]=\"formControl\">\n</ngx-recaptcha2>", styles: [""], components: [{ type: i2$3.ReCaptcha2Component, selector: "ngx-recaptcha2", inputs: ["theme", "size", "hl"] }], directives: [{ type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
711
+ RecaptchaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: RecaptchaComponent, selector: "ipa-recaptcha", inputs: { siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, ngImport: i0, template: "<ngx-recaptcha2 [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" [formControl]=\"formControl\">\n</ngx-recaptcha2>", styles: [""], components: [{ type: i2$3.ReCaptcha2Component, selector: "ngx-recaptcha2", inputs: ["theme", "size", "hl"] }], directives: [{ type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
712
712
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: RecaptchaComponent, decorators: [{
713
713
  type: Component,
714
714
  args: [{
@@ -718,7 +718,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImpor
718
718
  }]
719
719
  }], ctorParameters: function () { return [{ type: i2$1.NgControl, decorators: [{
720
720
  type: Self
721
- }] }]; }, propDecorators: { recaptchaSize: [{
721
+ }] }]; }, propDecorators: { siteKey: [{
722
+ type: Input
723
+ }], recaptchaSize: [{
722
724
  type: Input
723
725
  }], lang: [{
724
726
  type: Input
@@ -834,7 +836,7 @@ class GenerateFormComponent {
834
836
  }
835
837
  }
836
838
  GenerateFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: GenerateFormComponent, deps: [{ token: IPAFormService }], target: i0.ɵɵFactoryTarget.Component });
837
- GenerateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: GenerateFormComponent, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain", authorization: "authorization" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted", recaptchaOutput: "recaptchaOutput" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\"></ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [items]=\"column.data\" [valueField]=\"column.valueField\"\r\n [textField]=\"column.textField\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\">\r\n <label [for]=\"column.englishName\">{{column.arabicLabel}}</label>\r\n <div [formArrayName]=\"'items'\" *ngFor=\"let control of formControls.controls; let i = index\">\r\n <div [formGroupName]=\"i\" [id]=\"column.englishName\">\r\n <div class=\"form-check\">\r\n <input [id]=\"column.englishName+control.value.id\" class=\"form-check-input\" type=\"checkbox\"\r\n formControlName=\"checkbox\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+control.value.id\">\r\n {{control.value.description}}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.englishName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\">\r\n <label [for]=\"column.englishName\">{{column.arabicLabel}}</label>\r\n <div *ngFor=\"let item of column.data; let i = index\" [id]=\"column.englishName\">\r\n <div class=\"form-check\">\r\n <input [id]=\"column.englishName+item.id\" class=\"form-check-input\" type=\"radio\"\r\n [formControlName]=\"column.englishName\" [value]=\"item.id\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+item.id\">\r\n {{item.description}}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.englishName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\">\r\n <ipa-file-upload [label]=\"column.arabicLabel\" [acceptedFiles]=\"column.acceptedFiles\"\r\n [multiple]=\"column.multipleFile\" [maxFileSize]=\"column.size\" [method]=\"column.apiURlMethod\"\r\n [autoUpload]=\"column.autoUploadFile\" [apiUrl]=\"column.apiUrl\" [authorization]=\"authorization\"\r\n ngDefaultControl [formControlName]=\"column.englishName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.englishName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.englishName)\"></ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"lang\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.englishName}}\"></ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\" [type]=\"column.type\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\"></ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""], components: [{ type: TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["id", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses"] }, { type: DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "label", "items", "textField", "valueField", "required", "disabled", "patternErrorMsg", "pattern", "classes", "containerClasses"] }, { type: FileUploadComponent, selector: "ipa-file-upload", inputs: ["label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { type: RecaptchaComponent, selector: "ipa-recaptcha", inputs: ["recaptchaSize", "lang", "recaptchaType", "theme", "useGlobalDomain"] }, { type: TextInputComponent, selector: "ipa-text-input", inputs: ["id", "type", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses"] }], directives: [{ type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i2$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
839
+ GenerateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: GenerateFormComponent, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain", authorization: "authorization" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted", recaptchaOutput: "recaptchaOutput" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\"></ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [items]=\"column.data\" [valueField]=\"column.valueField\"\r\n [textField]=\"column.textField\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\">\r\n <label [for]=\"column.englishName\">{{column.arabicLabel}}</label>\r\n <div [formArrayName]=\"'items'\" *ngFor=\"let control of formControls.controls; let i = index\">\r\n <div [formGroupName]=\"i\" [id]=\"column.englishName\">\r\n <div class=\"form-check\">\r\n <input [id]=\"column.englishName+control.value.id\" class=\"form-check-input\" type=\"checkbox\"\r\n formControlName=\"checkbox\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+control.value.id\">\r\n {{control.value.description}}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.englishName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\">\r\n <label [for]=\"column.englishName\">{{column.arabicLabel}}</label>\r\n <div *ngFor=\"let item of column.data; let i = index\" [id]=\"column.englishName\">\r\n <div class=\"form-check\">\r\n <input [id]=\"column.englishName+item.id\" class=\"form-check-input\" type=\"radio\"\r\n [formControlName]=\"column.englishName\" [value]=\"item.id\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+item.id\">\r\n {{item.description}}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.englishName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\">\r\n <ipa-file-upload [label]=\"column.arabicLabel\" [acceptedFiles]=\"column.acceptedFiles\"\r\n [multiple]=\"column.multipleFile\" [maxFileSize]=\"column.size\" [method]=\"column.apiURlMethod\"\r\n [autoUpload]=\"column.autoUploadFile\" [apiUrl]=\"column.apiUrl\" [authorization]=\"authorization\"\r\n ngDefaultControl [formControlName]=\"column.englishName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.englishName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.englishName)\"></ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"lang\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.englishName}}\"></ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\" [type]=\"column.type\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\"></ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""], components: [{ type: TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["id", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses"] }, { type: DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "label", "items", "textField", "valueField", "required", "disabled", "patternErrorMsg", "pattern", "classes", "containerClasses"] }, { type: FileUploadComponent, selector: "ipa-file-upload", inputs: ["label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { type: RecaptchaComponent, selector: "ipa-recaptcha", inputs: ["siteKey", "recaptchaSize", "lang", "recaptchaType", "theme", "useGlobalDomain"] }, { type: TextInputComponent, selector: "ipa-text-input", inputs: ["id", "type", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses"] }], directives: [{ type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i2$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
838
840
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: GenerateFormComponent, decorators: [{
839
841
  type: Component,
840
842
  args: [{
@@ -1045,14 +1047,21 @@ class ShareButtonComponent {
1045
1047
  constructor() {
1046
1048
  this.title = '';
1047
1049
  this.description = '';
1050
+ this.btnLabel = '';
1048
1051
  }
1049
1052
  ngAfterViewInit() {
1050
1053
  const elements = document.getElementsByClassName('sb-show-icon');
1051
1054
  elements[0].setAttribute('type', 'button');
1055
+ elements[0].setAttribute('id', 'IPAShareBtn');
1056
+ const label = document.createElement('label');
1057
+ label.innerHTML = this.btnLabel;
1058
+ label.classList.add('sm-share-title');
1059
+ label.classList.add('me-1');
1060
+ elements[0].before(label);
1052
1061
  }
1053
1062
  }
1054
1063
  ShareButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ShareButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1055
- ShareButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: ShareButtonComponent, selector: "ipa-share-button", inputs: { title: "title", description: "description" }, ngImport: i0, template: "<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','email','copy']\">\r\n</share-popup-button>", styles: [""], components: [{ type: i1$1.SharePopupComponent, selector: "share-popup-button", inputs: ["theme", "icon", "text", "include", "exclude", "closeIcon", "url", "title", "description", "image", "tags", "autoSetMeta", "show", "showIcon", "showText", "disabled", "hasBackdrop", "backdropClass"], outputs: ["opened", "closed", "popupClosed"] }] });
1064
+ ShareButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: ShareButtonComponent, selector: "ipa-share-button", inputs: { title: "title", description: "description", btnLabel: "btnLabel" }, ngImport: i0, template: "<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share-alt'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','email','copy']\">\r\n</share-popup-button>", styles: [""], components: [{ type: i1$1.SharePopupComponent, selector: "share-popup-button", inputs: ["theme", "icon", "text", "include", "exclude", "closeIcon", "url", "title", "description", "image", "tags", "autoSetMeta", "show", "showIcon", "showText", "disabled", "hasBackdrop", "backdropClass"], outputs: ["opened", "closed", "popupClosed"] }] });
1056
1065
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ShareButtonComponent, decorators: [{
1057
1066
  type: Component,
1058
1067
  args: [{
@@ -1064,6 +1073,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImpor
1064
1073
  type: Input
1065
1074
  }], description: [{
1066
1075
  type: Input
1076
+ }], btnLabel: [{
1077
+ type: Input
1067
1078
  }] } });
1068
1079
 
1069
1080
  class ShareButtonModule {
@@ -1281,7 +1292,7 @@ class ErrorInterceptor {
1281
1292
  const toastrConfig = {
1282
1293
  disableTimeOut: true,
1283
1294
  };
1284
- switch (response.statusCode) {
1295
+ switch (response === null || response === void 0 ? void 0 : response.statusCode) {
1285
1296
  case 500:
1286
1297
  this.toastrService.error((response === null || response === void 0 ? void 0 : response.innerException) + ' ' + (response === null || response === void 0 ? void 0 : response.stackTrace), response.message, toastrConfig);
1287
1298
  break;
@@ -1425,6 +1436,12 @@ class BreadcrumbsService {
1425
1436
  titleEl.textContent = text;
1426
1437
  }
1427
1438
  }
1439
+ setMainPageTitle(text, url) {
1440
+ const div = document.getElementsByClassName('main-section-title');
1441
+ if (div && div.length > 0) {
1442
+ div[0].innerHTML = `<a id="site-url" href="${url}">${text}</a>`;
1443
+ }
1444
+ }
1428
1445
  addBreadcrumb(nodeName, spanClasses = 'bc-current', linkClasses = 'bc-node') {
1429
1446
  var _a;
1430
1447
  const spans = (_a = document.getElementById('ctl00_path')) === null || _a === void 0 ? void 0 : _a.children;
@@ -1436,7 +1453,7 @@ class BreadcrumbsService {
1436
1453
  //add new link
1437
1454
  lastIndex.appendChild(this.createLink(innerHTML, location.pathname, linkClasses));
1438
1455
  //add new span and empty span
1439
- const newSpan = this.createSapn(nodeName, spanClasses);
1456
+ const newSpan = this.createSpan(nodeName, spanClasses);
1440
1457
  const emptySpan = document.createElement('span');
1441
1458
  lastIndex.after(...[emptySpan, newSpan]);
1442
1459
  }
@@ -1459,19 +1476,19 @@ class BreadcrumbsService {
1459
1476
  lastIndex.after(...[emptySpan, newSpan]);
1460
1477
  }
1461
1478
  else {
1462
- const newSpan = this.createSapn(nodeList[i].nodeName, spanClasses);
1479
+ const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);
1463
1480
  const emptySpan = document.createElement('span');
1464
1481
  lastIndex.after(...[emptySpan, newSpan]);
1465
1482
  }
1466
1483
  }
1467
1484
  }
1468
1485
  createBreadcrumbs(nodeList, spanClasses = 'bc-current', linkClasses = 'bc-node') {
1469
- const cuurentSpan = document.getElementById('ctl00_path');
1470
- cuurentSpan.innerHTML = '';
1486
+ const currentSpan = document.getElementById('ctl00_path');
1487
+ currentSpan.innerHTML = '';
1471
1488
  const newSpan = document.createElement('span');
1472
- cuurentSpan === null || cuurentSpan === void 0 ? void 0 : cuurentSpan.appendChild(newSpan);
1489
+ currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.appendChild(newSpan);
1473
1490
  newSpan.appendChild(this.createLink(nodeList[0].nodeName, nodeList[0].nodeUrl, linkClasses));
1474
- const spans = cuurentSpan === null || cuurentSpan === void 0 ? void 0 : cuurentSpan.children;
1491
+ const spans = currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.children;
1475
1492
  for (let i = 1; i < nodeList.length; i++) {
1476
1493
  const lastIndex = spans === null || spans === void 0 ? void 0 : spans.item(spans.length - 1);
1477
1494
  if (nodeList[i].nodeUrl) {
@@ -1481,7 +1498,7 @@ class BreadcrumbsService {
1481
1498
  lastIndex === null || lastIndex === void 0 ? void 0 : lastIndex.after(...[emptySpan, newSpan]);
1482
1499
  }
1483
1500
  else {
1484
- const newSpan = this.createSapn(nodeList[i].nodeName, spanClasses);
1501
+ const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);
1485
1502
  const emptySpan = document.createElement('span');
1486
1503
  lastIndex.after(...[emptySpan, newSpan]);
1487
1504
  }
@@ -1537,7 +1554,7 @@ class BreadcrumbsService {
1537
1554
  link.classList.add(...[classes]);
1538
1555
  return link;
1539
1556
  }
1540
- createSapn(innerHTML, classes) {
1557
+ createSpan(innerHTML, classes) {
1541
1558
  const span = document.createElement('span');
1542
1559
  span.classList.add(...[classes]);
1543
1560
  span.innerHTML = ' ' + innerHTML;