nuxeo-development-framework 5.0.5 → 5.0.7

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.
Files changed (23) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +172 -99
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +1 -1
  4. package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +35 -35
  5. package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +1 -1
  6. package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
  7. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +22 -9
  8. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +22 -9
  9. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +40 -18
  10. package/esm2015/lib/shared/services/base/cache-base.service.js +36 -18
  11. package/esm2015/lib/shared/services/base/config/default-ttl-config.js +4 -2
  12. package/esm2015/lib/shared/services/base/constants/default-cache-options.js +2 -1
  13. package/esm2015/lib/shared/services/base/models/cache-info-model.js +1 -1
  14. package/fesm2015/nuxeo-development-framework.js +155 -86
  15. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  16. package/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.d.ts +12 -7
  17. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.d.ts +2 -1
  18. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.d.ts +2 -1
  19. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.d.ts +10 -4
  20. package/lib/shared/services/base/config/default-ttl-config.d.ts +2 -0
  21. package/lib/shared/services/base/constants/default-cache-options.d.ts +1 -0
  22. package/lib/shared/services/base/models/cache-info-model.d.ts +1 -0
  23. package/package.json +1 -1
@@ -3340,6 +3340,7 @@
3340
3340
  EXCLUDE_KEYS_WHEN_UPDATE: ["contextParameters"],
3341
3341
  CHILDREN_PATH: "contextParameters.children.entries",
3342
3342
  PARENT_KEY: "parentRef",
3343
+ ENABLE_QUICK_REFRESH: false,
3343
3344
  REQUEST: function () {
3344
3345
  return rxjs.of();
3345
3346
  },
@@ -3371,10 +3372,12 @@
3371
3372
  TTL: 3,
3372
3373
  UNIT: exports.CachingExpiryUnit.MONTHS,
3373
3374
  AUTO_CHECK: true,
3374
- RETRY: 3
3375
+ RETRY: 3,
3376
+ QUICK_REFRESH: 1,
3377
+ QUICK_REFRESH_UNIT: exports.CachingExpiryUnit.HOURS
3375
3378
  };
3376
3379
 
3377
- var _CacheBaseService_instances, _CacheBaseService_fetchedItems, _CacheBaseService_handleCacheItems, _CacheBaseService_findNode, _CacheBaseService_findLargestDate, _CacheBaseService_handleFetchedItems, _CacheBaseService_addItemsTo, _CacheBaseService_prepareOptions, _CacheBaseService_prepareConfig, _CacheBaseService_add1SecondToModifiedDate, _CacheBaseService_clear, _CacheBaseService_validateTTLForKey, _CacheBaseService_setItemInMap, _CacheBaseService_getItem, _CacheBaseService_setItem;
3380
+ var _CacheBaseService_instances, _CacheBaseService_fetchedItems, _CacheBaseService_handleCacheItems, _CacheBaseService_findNode, _CacheBaseService_findLargestDate, _CacheBaseService_handleFetchedItems, _CacheBaseService_addItemsTo, _CacheBaseService_prepareOptions, _CacheBaseService_prepareConfig, _CacheBaseService_add1SecondToModifiedDate, _CacheBaseService_clear, _CacheBaseService_validateTTLForKey, _CacheBaseService_validateQuickRefresh, _CacheBaseService_validateTimeDifference, _CacheBaseService_setItemInMap, _CacheBaseService_getItem, _CacheBaseService_setItem;
3378
3381
  var CacheBaseService = /** @class */ (function () {
3379
3382
  function CacheBaseService(userPreferencesService, utilityService) {
3380
3383
  this.userPreferencesService = userPreferencesService;
@@ -3428,35 +3431,42 @@
3428
3431
  }
3429
3432
  };
3430
3433
  CacheBaseService.prototype.validateTTLForKey = function (firstFetchingDate) {
3431
- if (!firstFetchingDate)
3432
- return;
3433
- var momentDate1 = moment__namespace(new Date(firstFetchingDate));
3434
- var momentDate2 = moment__namespace(new Date());
3435
- var difference = momentDate2.diff(momentDate1, DEFAULT_TTL_CONFIG.UNIT);
3436
- return difference >= DEFAULT_TTL_CONFIG.TTL;
3434
+ return __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_validateTimeDifference).call(this, firstFetchingDate, DEFAULT_TTL_CONFIG.UNIT, DEFAULT_TTL_CONFIG.TTL);
3437
3435
  };
3438
3436
  return CacheBaseService;
3439
3437
  }());
3440
3438
  _CacheBaseService_fetchedItems = new WeakMap(), _CacheBaseService_instances = new WeakSet(), _CacheBaseService_handleCacheItems = function _CacheBaseService_handleCacheItems(options) {
3441
- var _j, _k;
3439
+ var _l, _m, _o;
3442
3440
  var _this = this;
3443
3441
  var observable;
3444
3442
  __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_prepareOptions).call(this, options);
3445
3443
  var cachedItem = __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_getItem).call(this, options);
3446
3444
  if (cachedItem) {
3447
3445
  __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_setItemInMap).call(this, options.cacheKey, Object.assign(Object.assign({}, cachedItem), { fetchingItemsFromTheServer: false, onFinishFetching: new rxjs.Subject(), request: options.request }));
3448
- var params = (_j = {},
3449
- _j[options.pageKey] = 0,
3450
- _j[options.minCompareDateKey] = __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_add1SecondToModifiedDate).call(this, new Date(__classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].lastModifiedDate)).toISOString(),
3451
- _j);
3452
- __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].params = params;
3453
- observable = options.request(params);
3446
+ var shouldRefresh = __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_validateQuickRefresh).call(this, __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].firstFetchingDate);
3447
+ if (options.enableQuickRefresh || shouldRefresh) {
3448
+ __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].firstFetchingDate = new Date().toISOString();
3449
+ var params = (_l = {},
3450
+ _l[options.pageKey] = 0,
3451
+ _l[options.minCompareDateKey] = __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_add1SecondToModifiedDate).call(this, new Date(__classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].lastModifiedDate)).toISOString(),
3452
+ _l);
3453
+ __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].params = params;
3454
+ observable = options.request(params);
3455
+ }
3456
+ else {
3457
+ var item = __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey];
3458
+ observable = rxjs.of(_cloneDeep__default["default"]((_m = {},
3459
+ _m[options.mappedDataKey] = item.data,
3460
+ _m[options.lastModifiedDateKey] = item.lastModifiedDate,
3461
+ _m[options.resultsCount] = item[options.resultsCount],
3462
+ _m))).pipe(operators.delay(100));
3463
+ }
3454
3464
  }
3455
3465
  else {
3456
3466
  __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_setItemInMap).call(this, options.cacheKey);
3457
3467
  __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].request = options.request;
3458
3468
  __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].firstFetchingDate = new Date().toISOString();
3459
- observable = options.request((_k = {}, _k[options.pageKey] = 0, _k));
3469
+ observable = options.request((_o = {}, _o[options.pageKey] = 0, _o));
3460
3470
  }
3461
3471
  __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].fetchingItemsFromTheServer = true;
3462
3472
  return observable.pipe(operators.retry(DEFAULT_TTL_CONFIG.RETRY), operators.expand(function (results) {
@@ -3481,12 +3491,12 @@
3481
3491
  }
3482
3492
  return _fetchedItems;
3483
3493
  }), operators.map(function (res) {
3484
- var _j;
3485
- var result = _cloneDeep__default["default"]((_j = {},
3486
- _j[options.mappedDataKey] = res.data,
3487
- _j[options.lastModifiedDateKey] = res.lastModifiedDate,
3488
- _j[options.resultsCount] = res[options.resultsCount],
3489
- _j));
3494
+ var _l;
3495
+ var result = _cloneDeep__default["default"]((_l = {},
3496
+ _l[options.mappedDataKey] = res.data,
3497
+ _l[options.lastModifiedDateKey] = res.lastModifiedDate,
3498
+ _l[options.resultsCount] = res[options.resultsCount],
3499
+ _l));
3490
3500
  res.onFinishFetching.next(result);
3491
3501
  res.onFinishFetching.complete();
3492
3502
  return result;
@@ -3494,7 +3504,7 @@
3494
3504
  throw er;
3495
3505
  }));
3496
3506
  }, _CacheBaseService_findNode = function _CacheBaseService_findNode(items, uniqueCompareKey, childrenPath, value) {
3497
- var e_1, _j;
3507
+ var e_1, _l;
3498
3508
  try {
3499
3509
  for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
3500
3510
  var node = items_1_1.value;
@@ -3513,7 +3523,7 @@
3513
3523
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
3514
3524
  finally {
3515
3525
  try {
3516
- if (items_1_1 && !items_1_1.done && (_j = items_1.return)) _j.call(items_1);
3526
+ if (items_1_1 && !items_1_1.done && (_l = items_1.return)) _l.call(items_1);
3517
3527
  }
3518
3528
  finally { if (e_1) throw e_1.error; }
3519
3529
  }
@@ -3522,7 +3532,7 @@
3522
3532
  var _this = this;
3523
3533
  var largestDate = null;
3524
3534
  var traverse = function (node) {
3525
- var e_2, _j;
3535
+ var e_2, _l;
3526
3536
  if (!node)
3527
3537
  return;
3528
3538
  var children = _this.utilityService.getValue(node, childrenPath);
@@ -3540,7 +3550,7 @@
3540
3550
  catch (e_2_1) { e_2 = { error: e_2_1 }; }
3541
3551
  finally {
3542
3552
  try {
3543
- if (children_1_1 && !children_1_1.done && (_j = children_1.return)) _j.call(children_1);
3553
+ if (children_1_1 && !children_1_1.done && (_l = children_1.return)) _l.call(children_1);
3544
3554
  }
3545
3555
  finally { if (e_2) throw e_2.error; }
3546
3556
  }
@@ -3549,7 +3559,7 @@
3549
3559
  nodeList.forEach(function (node) { return traverse(node); });
3550
3560
  return largestDate;
3551
3561
  }, _CacheBaseService_handleFetchedItems = function _CacheBaseService_handleFetchedItems(options, res) {
3552
- var _j;
3562
+ var _l;
3553
3563
  var _this = this;
3554
3564
  var _a;
3555
3565
  if ((_a = __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].data) === null || _a === void 0 ? void 0 : _a.length) {
@@ -3588,7 +3598,7 @@
3588
3598
  __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].resultsCount = res[options.resultsCount];
3589
3599
  }
3590
3600
  if (res[options.totalPageKey] - res[options.pageKey] > 1) {
3591
- return __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].request(Object.assign(Object.assign({}, (__classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].params || {})), (_j = {}, _j[options.pageKey] = res[options.pageKey] + 1, _j)));
3601
+ return __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].request(Object.assign(Object.assign({}, (__classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].params || {})), (_l = {}, _l[options.pageKey] = res[options.pageKey] + 1, _l)));
3592
3602
  }
3593
3603
  else {
3594
3604
  return null;
@@ -3615,12 +3625,15 @@
3615
3625
  options.excludeKeysWhenUpdate = options.excludeKeysWhenUpdate || DEFAULT_CACHE_OPTIONS.EXCLUDE_KEYS_WHEN_UPDATE;
3616
3626
  options.childrenPath = options.childrenPath || DEFAULT_CACHE_OPTIONS.CHILDREN_PATH;
3617
3627
  options.parentKey = options.parentKey || DEFAULT_CACHE_OPTIONS.PARENT_KEY;
3628
+ options.enableQuickRefresh = options.enableQuickRefresh || DEFAULT_CACHE_OPTIONS.ENABLE_QUICK_REFRESH;
3618
3629
  }, _CacheBaseService_prepareConfig = function _CacheBaseService_prepareConfig() {
3619
- var _a, _b, _c, _d, _e, _f, _g, _h;
3630
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
3620
3631
  DEFAULT_TTL_CONFIG.TTL = ((_b = (_a = EnvManager.environment) === null || _a === void 0 ? void 0 : _a.cache) === null || _b === void 0 ? void 0 : _b.ttl) || DEFAULT_TTL_CONFIG.TTL;
3621
3632
  DEFAULT_TTL_CONFIG.UNIT = ((_d = (_c = EnvManager.environment) === null || _c === void 0 ? void 0 : _c.cache) === null || _d === void 0 ? void 0 : _d.ttlUnit) || DEFAULT_TTL_CONFIG.UNIT;
3622
3633
  DEFAULT_TTL_CONFIG.AUTO_CHECK = ((_f = (_e = EnvManager.environment) === null || _e === void 0 ? void 0 : _e.cache) === null || _f === void 0 ? void 0 : _f.autoCheck) == 'YES';
3623
- DEFAULT_TTL_CONFIG.RETRY = ((_h = (_g = EnvManager.environment) === null || _g === void 0 ? void 0 : _g.cache) === null || _h === void 0 ? void 0 : _h.retry) || DEFAULT_TTL_CONFIG.RETRY;
3634
+ DEFAULT_TTL_CONFIG.QUICK_REFRESH = ((_h = (_g = EnvManager.environment) === null || _g === void 0 ? void 0 : _g.cache) === null || _h === void 0 ? void 0 : _h.quickRefresh) || DEFAULT_TTL_CONFIG.QUICK_REFRESH;
3635
+ DEFAULT_TTL_CONFIG.QUICK_REFRESH_UNIT =
3636
+ ((_k = (_j = EnvManager.environment) === null || _j === void 0 ? void 0 : _j.cache) === null || _k === void 0 ? void 0 : _k.quickRefreshUnit) || DEFAULT_TTL_CONFIG.QUICK_REFRESH_UNIT;
3624
3637
  }, _CacheBaseService_add1SecondToModifiedDate = function _CacheBaseService_add1SecondToModifiedDate(date) {
3625
3638
  var newDate = new Date(date.getTime());
3626
3639
  newDate.setSeconds(newDate.getSeconds() + 1);
@@ -3636,6 +3649,14 @@
3636
3649
  var _a;
3637
3650
  if (this.validateTTLForKey((_a = __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_getItem).call(this, options)) === null || _a === void 0 ? void 0 : _a.firstFetchingDate))
3638
3651
  __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_clear).call(this, options.userName, options.cacheKey);
3652
+ }, _CacheBaseService_validateQuickRefresh = function _CacheBaseService_validateQuickRefresh(date) {
3653
+ return __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_validateTimeDifference).call(this, date, DEFAULT_TTL_CONFIG.QUICK_REFRESH_UNIT, DEFAULT_TTL_CONFIG.QUICK_REFRESH);
3654
+ }, _CacheBaseService_validateTimeDifference = function _CacheBaseService_validateTimeDifference(date, unit, threshold) {
3655
+ if (!date)
3656
+ return;
3657
+ var momentDate1 = moment__namespace(new Date(date));
3658
+ var momentDate2 = moment__namespace();
3659
+ return momentDate2.diff(momentDate1, unit) >= threshold;
3639
3660
  }, _CacheBaseService_setItemInMap = function _CacheBaseService_setItemInMap(key, val) {
3640
3661
  var empty = {
3641
3662
  data: [],
@@ -7283,18 +7304,31 @@
7283
7304
  this.disabled = false;
7284
7305
  this.range = false;
7285
7306
  this.vertical = false;
7307
+ this.emitOnBlur = true;
7286
7308
  this.hoveredDate = null;
7287
7309
  // this.selectedDate.from = calendar.getToday();
7288
7310
  }
7289
7311
  GregorianDatepickerComponent.prototype.isHovered = function (date) {
7290
- return this.selectedDate && (this.selectedDate.from && !this.selectedDate.to && this.hoveredDate && date.after(this.selectedDate.from) && date.before(this.hoveredDate));
7312
+ return (this.selectedDate &&
7313
+ this.selectedDate.from &&
7314
+ !this.selectedDate.to &&
7315
+ this.hoveredDate &&
7316
+ date.after(this.selectedDate.from) &&
7317
+ date.before(this.hoveredDate));
7291
7318
  };
7292
7319
  GregorianDatepickerComponent.prototype.isInside = function (date) {
7293
- return this.selectedDate && (this.selectedDate.to && date.after(this.selectedDate.from) && date.before(this.selectedDate.to));
7320
+ return (this.selectedDate &&
7321
+ this.selectedDate.to &&
7322
+ date.after(this.selectedDate.from) &&
7323
+ date.before(this.selectedDate.to));
7294
7324
  };
7295
7325
  GregorianDatepickerComponent.prototype.isRange = function (date) {
7296
7326
  if (this.range) {
7297
- return this.selectedDate && (date.equals(this.selectedDate.from) || (this.selectedDate.to && date.equals(this.selectedDate.to)) || this.isInside(date) || this.isHovered(date));
7327
+ return (this.selectedDate &&
7328
+ (date.equals(this.selectedDate.from) ||
7329
+ (this.selectedDate.to && date.equals(this.selectedDate.to)) ||
7330
+ this.isInside(date) ||
7331
+ this.isHovered(date)));
7298
7332
  }
7299
7333
  else {
7300
7334
  return false;
@@ -7331,7 +7365,7 @@
7331
7365
  return parsed && this.calendar.isValid(i1$5.NgbDate.from(parsed)) ? i1$5.NgbDate.from(parsed) : currentValue;
7332
7366
  };
7333
7367
  GregorianDatepickerComponent.prototype.onBlur = function () {
7334
- if (!this.selectedDate) {
7368
+ if (!this.selectedDate && this.emitOnBlur) {
7335
7369
  this.selectedDateChange.emit(null);
7336
7370
  }
7337
7371
  };
@@ -7351,15 +7385,13 @@
7351
7385
  return GregorianDatepickerComponent;
7352
7386
  }());
7353
7387
  GregorianDatepickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: GregorianDatepickerComponent, deps: [{ token: i1__namespace$5.NgbCalendar }, { token: i1__namespace$5.NgbDateParserFormatter }], target: i0__namespace.ɵɵFactoryTarget.Component });
7354
- GregorianDatepickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GregorianDatepickerComponent, selector: "gregorian-date-picker", inputs: { selectedDate: "selectedDate", readonly: "readonly", isRequired: "isRequired", disabled: "disabled", min: "min", max: "max", name: "name", range: "range", vertical: "vertical", placeHolder: "placeHolder" }, outputs: { selectedDateChange: "selectedDateChange" }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["d"], descendants: true }], ngImport: i0__namespace, template: "<div provideParentForm>\r\n\t<input\r\n\t\tclass=\"form-control\"\r\n\t\t[ngClass]=\"{ hidden: range, 'input-filled': selectedDate }\"\r\n\t\t[ngModel]=\"!range && selectedDate\"\r\n\t\t(ngModelChange)=\"!range && (selectedDate = $event)\"\r\n\t\t[placeholder]=\"placeHolder ? placeHolder : 'd/M/yyyy'\"\r\n\t\tngbDatepicker\r\n\t\t(click)=\"d.toggle()\"\r\n\t\t(keyup.enter)=\"openDatePicker()\"\r\n\t\t(dateSelect)=\"onDateSelection($event)\"\r\n\t\t#d=\"ngbDatepicker\"\r\n\t\tfirstDayOfWeek=\"7\"\r\n\t\t[readonly]=\"readonly\"\r\n\t\t[autoClose]=\"range ? 'outside' : true\"\r\n\t\t[minDate]=\"min\"\r\n\t\t[maxDate]=\"max\"\r\n\t\t[required]=\"isRequired\"\r\n\t\t[displayMonths]=\"range ? 2 : 1\"\r\n\t\t[name]=\"name\"\r\n\t\t[startDate]=\"range ? selectedDate.from! : selectedDate!\"\r\n\t\t[dayTemplate]=\"t\"\r\n\t\t(blur)=\"onBlur()\"\r\n\t\t[footerTemplate]=\"footerTemplate\"\r\n\t\t[disabled]=\"disabled\"\r\n\t\tcontainer=\"body\"\r\n\t/>\r\n\t<ng-container *ngIf=\"range\">\r\n\t\t<div class=\"form-group ranger\" [ngClass]=\"{ vertical: vertical }\">\r\n\t\t\t<div class=\"input-group\">\r\n\t\t\t\t<input\r\n\t\t\t\t\t#dpFromDate\r\n\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t(click)=\"d.toggle()\"\r\n\t\t\t\t\t[placeholder]=\"placeHolder ? placeHolder : 'd/M/yyyy'\"\r\n\t\t\t\t\tname=\"dpFromDate\"\r\n\t\t\t\t\t[value]=\"formatter.format(selectedDate.from)\"\r\n\t\t\t\t\t(input)=\"fromDate = validateInput(selectedDate.from, dpFromDate.value)\"\r\n\t\t\t\t/>\r\n\t\t\t\t<div class=\"input-group-append\">\r\n\t\t\t\t\t<button class=\"btn btn-outline-secondary\" (click)=\"d.toggle()\" type=\"button\">\r\n\t\t\t\t\t\t<i class=\"bi bi-calendar-week icon\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"form-group ranger\" [ngClass]=\"{ vertical: vertical }\">\r\n\t\t\t<div class=\"input-group\">\r\n\t\t\t\t<input\r\n\t\t\t\t\t#dpToDate\r\n\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t(click)=\"d.toggle()\"\r\n\t\t\t\t\t[placeholder]=\"placeHolder ? placeHolder : 'd/M/yyyy'\"\r\n\t\t\t\t\tname=\"dpToDate\"\r\n\t\t\t\t\t[value]=\"formatter.format(selectedDate.to)\"\r\n\t\t\t\t\t(input)=\"selectedDate.to = validateInput(selectedDate.to, dpToDate.value)\"\r\n\t\t\t\t/>\r\n\t\t\t\t<div class=\"input-group-append\">\r\n\t\t\t\t\t<button class=\"btn btn-outline-secondary\" (click)=\"d.toggle()\" type=\"button\">\r\n\t\t\t\t\t\t<i class=\"bi bi-calendar-week icon\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-container>\r\n</div>\r\n<ng-template #t let-date let-focused=\"focused\">\r\n\t<span\r\n\t\tclass=\"custom-day\"\r\n\t\t[class.focused]=\"focused || isToday(date)\"\r\n\t\t[class.range]=\"isRange(date) || isSelectedDate(date)\"\r\n\t\t[class.faded]=\"isHovered(date) || (isInside(date) && range)\"\r\n\t\t(mouseenter)=\"hoveredDate = date\"\r\n\t\t(mouseleave)=\"hoveredDate = null\"\r\n\t>\r\n\t\t{{ date.day }}\r\n\t</span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n\t<hr class=\"my-0\" />\r\n\t<button class=\"btn btn-secondary btn-sm m-2 float-right\" type=\"button\" (click)=\"d.close()\">\r\n\t\t{{ 'BUTTONS.CLOSE' | translate }}\r\n\t</button>\r\n\t<button class=\"btn btn-primary btn-sm m-2 float-left\" type=\"button\" (click)=\"clear()\">\r\n\t\t{{ 'BUTTONS.CLEAR' | translate }}\r\n\t</button>\r\n</ng-template>\r\n", styles: [".date-input-container{position:relative}.date-input-container .date-input-wrapper{position:absolute;width:100%;height:100%;z-index:999999}.hijriInput{border-top-left-radius:0;border-bottom-left-radius:0}.input-filled{border-color:#1a96c6!important}.ngb-dp-weekday{width:2.1rem!important}.custom-day{text-align:center;padding:.185rem .25rem;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range,.custom-day:hover{background-color:#0275d8;color:#fff}.custom-day.faded{background-color:#0275d880}.ranger{width:calc(50% - 5px);margin:0 2px;float:left}.ranger.vertical{width:calc(100% - 5px);margin:8px 2px}.ranger.vertical:nth-child(2){margin-top:0}.ranger.vertical:last-child{margin-bottom:0}.rtl .custom-select{background:#ffffff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") left .75rem center/8px 10px no-repeat}.rtl .ngb-dp-arrow-btn{transform:rotate(180deg)}.rtl .ranger{float:right}\n"], directives: [{ type: ProvideParentFormDirective, selector: "[provideParentForm]" }, { type: i1__namespace$5.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekdays", "showWeekNumbers", "startDate", "container", "positionTarget"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i2__namespace$6.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: i4__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2__namespace$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2__namespace$6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1__namespace.TranslatePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
7388
+ GregorianDatepickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GregorianDatepickerComponent, selector: "gregorian-date-picker", inputs: { selectedDate: "selectedDate", readonly: "readonly", isRequired: "isRequired", disabled: "disabled", min: "min", max: "max", name: "name", range: "range", vertical: "vertical", emitOnBlur: "emitOnBlur", placeHolder: "placeHolder" }, outputs: { selectedDateChange: "selectedDateChange" }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["d"], descendants: true }], ngImport: i0__namespace, template: "<div provideParentForm>\r\n\t<input\r\n\t\tclass=\"form-control\"\r\n\t\t[ngClass]=\"{ hidden: range, 'input-filled': selectedDate }\"\r\n\t\t[ngModel]=\"!range && selectedDate\"\r\n\t\t(ngModelChange)=\"!range && (selectedDate = $event)\"\r\n\t\t[placeholder]=\"placeHolder ? placeHolder : 'd/M/yyyy'\"\r\n\t\tngbDatepicker\r\n\t\t(click)=\"d.toggle()\"\r\n\t\t(keyup.enter)=\"openDatePicker()\"\r\n\t\t(dateSelect)=\"onDateSelection($event)\"\r\n\t\t#d=\"ngbDatepicker\"\r\n\t\tfirstDayOfWeek=\"7\"\r\n\t\t[readonly]=\"readonly\"\r\n\t\t[autoClose]=\"range ? 'outside' : true\"\r\n\t\t[minDate]=\"min\"\r\n\t\t[maxDate]=\"max\"\r\n\t\t[required]=\"isRequired\"\r\n\t\t[displayMonths]=\"range ? 2 : 1\"\r\n\t\t[name]=\"name\"\r\n\t\t[startDate]=\"range ? selectedDate.from! : selectedDate!\"\r\n\t\t[dayTemplate]=\"t\"\r\n\t\t(blur)=\"onBlur()\"\r\n\t\t[footerTemplate]=\"footerTemplate\"\r\n\t\t[disabled]=\"disabled\"\r\n\t\tcontainer=\"body\"\r\n\t/>\r\n\t<ng-container *ngIf=\"range\">\r\n\t\t<div class=\"form-group ranger\" [ngClass]=\"{ vertical: vertical }\">\r\n\t\t\t<div class=\"input-group\">\r\n\t\t\t\t<input\r\n\t\t\t\t\t#dpFromDate\r\n\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t(click)=\"d.toggle()\"\r\n\t\t\t\t\t[placeholder]=\"placeHolder ? placeHolder : 'd/M/yyyy'\"\r\n\t\t\t\t\tname=\"dpFromDate\"\r\n\t\t\t\t\t[value]=\"formatter.format(selectedDate.from)\"\r\n\t\t\t\t\t(input)=\"fromDate = validateInput(selectedDate.from, dpFromDate.value)\"\r\n\t\t\t\t/>\r\n\t\t\t\t<div class=\"input-group-append\">\r\n\t\t\t\t\t<button class=\"btn btn-outline-secondary\" (click)=\"d.toggle()\" type=\"button\">\r\n\t\t\t\t\t\t<i class=\"bi bi-calendar-week icon\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"form-group ranger\" [ngClass]=\"{ vertical: vertical }\">\r\n\t\t\t<div class=\"input-group\">\r\n\t\t\t\t<input\r\n\t\t\t\t\t#dpToDate\r\n\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t(click)=\"d.toggle()\"\r\n\t\t\t\t\t[placeholder]=\"placeHolder ? placeHolder : 'd/M/yyyy'\"\r\n\t\t\t\t\tname=\"dpToDate\"\r\n\t\t\t\t\t[value]=\"formatter.format(selectedDate.to)\"\r\n\t\t\t\t\t(input)=\"selectedDate.to = validateInput(selectedDate.to, dpToDate.value)\"\r\n\t\t\t\t/>\r\n\t\t\t\t<div class=\"input-group-append\">\r\n\t\t\t\t\t<button class=\"btn btn-outline-secondary\" (click)=\"d.toggle()\" type=\"button\">\r\n\t\t\t\t\t\t<i class=\"bi bi-calendar-week icon\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-container>\r\n</div>\r\n<ng-template #t let-date let-focused=\"focused\">\r\n\t<span\r\n\t\tclass=\"custom-day\"\r\n\t\t[class.focused]=\"focused || isToday(date)\"\r\n\t\t[class.range]=\"isRange(date) || isSelectedDate(date)\"\r\n\t\t[class.faded]=\"isHovered(date) || (isInside(date) && range)\"\r\n\t\t(mouseenter)=\"hoveredDate = date\"\r\n\t\t(mouseleave)=\"hoveredDate = null\"\r\n\t>\r\n\t\t{{ date.day }}\r\n\t</span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n\t<hr class=\"my-0\" />\r\n\t<button class=\"btn btn-secondary btn-sm m-2 float-right\" type=\"button\" (click)=\"d.close()\">\r\n\t\t{{ 'BUTTONS.CLOSE' | translate }}\r\n\t</button>\r\n\t<button class=\"btn btn-primary btn-sm m-2 float-left\" type=\"button\" (click)=\"clear()\">\r\n\t\t{{ 'BUTTONS.CLEAR' | translate }}\r\n\t</button>\r\n</ng-template>\r\n", styles: [".date-input-container{position:relative}.date-input-container .date-input-wrapper{position:absolute;width:100%;height:100%;z-index:999999}.hijriInput{border-top-left-radius:0;border-bottom-left-radius:0}.input-filled{border-color:#1a96c6!important}.ngb-dp-weekday{width:2.1rem!important}.custom-day{text-align:center;padding:.185rem .25rem;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range,.custom-day:hover{background-color:#0275d8;color:#fff}.custom-day.faded{background-color:#0275d880}.ranger{width:calc(50% - 5px);margin:0 2px;float:left}.ranger.vertical{width:calc(100% - 5px);margin:8px 2px}.ranger.vertical:nth-child(2){margin-top:0}.ranger.vertical:last-child{margin-bottom:0}.rtl .custom-select{background:#ffffff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") left .75rem center/8px 10px no-repeat}.rtl .ngb-dp-arrow-btn{transform:rotate(180deg)}.rtl .ranger{float:right}\n"], directives: [{ type: ProvideParentFormDirective, selector: "[provideParentForm]" }, { type: i1__namespace$5.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekdays", "showWeekNumbers", "startDate", "container", "positionTarget"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i2__namespace$6.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: i4__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2__namespace$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2__namespace$6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1__namespace.TranslatePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
7355
7389
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: GregorianDatepickerComponent, decorators: [{
7356
7390
  type: i0.Component,
7357
7391
  args: [{
7358
7392
  selector: 'gregorian-date-picker',
7359
7393
  templateUrl: './gregorian-datepicker.component.html',
7360
- styleUrls: [
7361
- './gregorian-date-picker.component.scss'
7362
- ],
7394
+ styleUrls: ['./gregorian-date-picker.component.scss'],
7363
7395
  encapsulation: i0.ViewEncapsulation.None
7364
7396
  }]
7365
7397
  }], ctorParameters: function () { return [{ type: i1__namespace$5.NgbCalendar }, { type: i1__namespace$5.NgbDateParserFormatter }]; }, propDecorators: { datePicker: [{
@@ -7385,6 +7417,8 @@
7385
7417
  type: i0.Input
7386
7418
  }], vertical: [{
7387
7419
  type: i0.Input
7420
+ }], emitOnBlur: [{
7421
+ type: i0.Input
7388
7422
  }], placeHolder: [{
7389
7423
  type: i0.Input
7390
7424
  }] } });
@@ -7427,14 +7461,23 @@
7427
7461
  this.disabled = false;
7428
7462
  this.range = false;
7429
7463
  this.vertical = false;
7464
+ this.emitOnBlur = true;
7430
7465
  this.hoveredDate = null;
7431
7466
  // this.fromDate = calendar.getToday();
7432
7467
  }
7433
7468
  HijriDatepickerComponent.prototype.isHovered = function (date) {
7434
- return this.selectedDate && (this.selectedDate.from && !this.selectedDate.to && this.hoveredDate && date.after(this.selectedDate.from) && date.before(this.hoveredDate));
7469
+ return (this.selectedDate &&
7470
+ this.selectedDate.from &&
7471
+ !this.selectedDate.to &&
7472
+ this.hoveredDate &&
7473
+ date.after(this.selectedDate.from) &&
7474
+ date.before(this.hoveredDate));
7435
7475
  };
7436
7476
  HijriDatepickerComponent.prototype.isInside = function (date) {
7437
- return this.selectedDate && (this.selectedDate.to && date.after(this.selectedDate.from) && date.before(this.selectedDate.to));
7477
+ return (this.selectedDate &&
7478
+ this.selectedDate.to &&
7479
+ date.after(this.selectedDate.from) &&
7480
+ date.before(this.selectedDate.to));
7438
7481
  };
7439
7482
  HijriDatepickerComponent.prototype.isToday = function (date) {
7440
7483
  return date.equals(this.calendar.getToday());
@@ -7443,7 +7486,11 @@
7443
7486
  return this.selectedDate && !this.range && date.equals(this.selectedDate);
7444
7487
  };
7445
7488
  HijriDatepickerComponent.prototype.isRange = function (date) {
7446
- return this.selectedDate && (date.equals(this.selectedDate.from) || (this.selectedDate.to && date.equals(this.selectedDate.to)) || this.isInside(date) || this.isHovered(date));
7489
+ return (this.selectedDate &&
7490
+ (date.equals(this.selectedDate.from) ||
7491
+ (this.selectedDate.to && date.equals(this.selectedDate.to)) ||
7492
+ this.isInside(date) ||
7493
+ this.isHovered(date)));
7447
7494
  };
7448
7495
  HijriDatepickerComponent.prototype.onDateSelection = function (date) {
7449
7496
  if (this.range) {
@@ -7470,7 +7517,7 @@
7470
7517
  return parsed && this.calendar.isValid(i1$5.NgbDate.from(parsed)) ? i1$5.NgbDate.from(parsed) : currentValue;
7471
7518
  };
7472
7519
  HijriDatepickerComponent.prototype.onBlur = function () {
7473
- if (!this.selectedDate) {
7520
+ if (!this.selectedDate && this.emitOnBlur) {
7474
7521
  this.selectedDateChange.emit(null);
7475
7522
  }
7476
7523
  };
@@ -7490,7 +7537,7 @@
7490
7537
  return HijriDatepickerComponent;
7491
7538
  }());
7492
7539
  HijriDatepickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: HijriDatepickerComponent, deps: [{ token: i1__namespace$5.NgbCalendar }, { token: i1__namespace$5.NgbDateParserFormatter }], target: i0__namespace.ɵɵFactoryTarget.Component });
7493
- HijriDatepickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: HijriDatepickerComponent, selector: "hijri-date-picker", inputs: { selectedDate: "selectedDate", readonly: "readonly", isRequired: "isRequired", disabled: "disabled", min: "min", max: "max", name: "name", range: "range", vertical: "vertical", placeHolder: "placeHolder" }, outputs: { selectedDateChange: "selectedDateChange" }, providers: [
7540
+ HijriDatepickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: HijriDatepickerComponent, selector: "hijri-date-picker", inputs: { selectedDate: "selectedDate", readonly: "readonly", isRequired: "isRequired", disabled: "disabled", min: "min", max: "max", name: "name", range: "range", vertical: "vertical", emitOnBlur: "emitOnBlur", placeHolder: "placeHolder" }, outputs: { selectedDateChange: "selectedDateChange" }, providers: [
7494
7541
  { provide: i1$5.NgbCalendar, useClass: i1$5.NgbCalendarIslamicUmalqura },
7495
7542
  { provide: i1$5.NgbDatepickerI18n, useClass: IslamicI18n }
7496
7543
  ], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["d"], descendants: true }], ngImport: i0__namespace, template: "<div provideParentForm>\r\n\t<input\r\n\t\tclass=\"form-control\"\r\n\t\t[ngClass]=\"{ hidden: range, 'input-filled': selectedDate }\"\r\n\t\t[ngModel]=\"!range && selectedDate\"\r\n\t\t(ngModelChange)=\"!range && (selectedDate = $event)\"\r\n\t\t[placeholder]=\"placeHolder ? placeHolder : 'd/M/yyyy'\"\r\n\t\tngbDatepicker\r\n\t\t(click)=\"d.toggle()\"\r\n\t\t(keyup.enter)=\"openDatePicker()\"\r\n\t\t(dateSelect)=\"onDateSelection($event)\"\r\n\t\t#d=\"ngbDatepicker\"\r\n\t\tfirstDayOfWeek=\"7\"\r\n\t\t[readonly]=\"readonly\"\r\n\t\t[autoClose]=\"range ? 'outside' : true\"\r\n\t\t[minDate]=\"min\"\r\n\t\t[maxDate]=\"max\"\r\n\t\t[required]=\"isRequired\"\r\n\t\t[displayMonths]=\"range ? 2 : 1\"\r\n\t\t[name]=\"name\"\r\n\t\t[startDate]=\"range ? selectedDate.from! : selectedDate!\"\r\n\t\t[dayTemplate]=\"t\"\r\n\t\t(blur)=\"onBlur()\"\r\n\t\t[footerTemplate]=\"footerTemplate\"\r\n\t\t[disabled]=\"disabled\"\r\n\t\tcontainer=\"body\"\r\n\t/>\r\n\t<ng-container *ngIf=\"range\">\r\n\t\t<div class=\"form-group ranger\" [ngClass]=\"{ vertical: vertical }\">\r\n\t\t\t<div class=\"input-group\">\r\n\t\t\t\t<input\r\n\t\t\t\t\t#dpFromDate\r\n\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t(click)=\"d.toggle()\"\r\n\t\t\t\t\t[placeholder]=\"placeHolder ? placeHolder : 'd/M/yyyy'\"\r\n\t\t\t\t\tname=\"dpFromDate\"\r\n\t\t\t\t\t[value]=\"formatter.format(selectedDate.from)\"\r\n\t\t\t\t\t(input)=\"fromDate = validateInput(selectedDate.from, dpFromDate.value)\"\r\n\t\t\t\t/>\r\n\t\t\t\t<div class=\"input-group-append\">\r\n\t\t\t\t\t<button class=\"btn btn-outline-secondary\" (click)=\"d.toggle()\" type=\"button\">\r\n\t\t\t\t\t\t<i class=\"bi bi-calendar-week icon\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"form-group ranger\" [ngClass]=\"{ vertical: vertical }\">\r\n\t\t\t<div class=\"input-group\">\r\n\t\t\t\t<input\r\n\t\t\t\t\t#dpToDate\r\n\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t(click)=\"d.toggle()\"\r\n\t\t\t\t\t[placeholder]=\"placeHolder ? placeHolder : 'd/M/yyyy'\"\r\n\t\t\t\t\tname=\"dpToDate\"\r\n\t\t\t\t\t[value]=\"formatter.format(selectedDate.to)\"\r\n\t\t\t\t\t(input)=\"selectedDate.to = validateInput(selectedDate.to, dpToDate.value)\"\r\n\t\t\t\t/>\r\n\t\t\t\t<div class=\"input-group-append\">\r\n\t\t\t\t\t<button class=\"btn btn-outline-secondary\" (click)=\"d.toggle()\" type=\"button\">\r\n\t\t\t\t\t\t<i class=\"bi bi-calendar-week icon\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-container>\r\n</div>\r\n<ng-template #t let-date let-focused=\"focused\">\r\n\t<span\r\n\t\tclass=\"custom-day\"\r\n\t\t[class.focused]=\"focused || isToday(date)\"\r\n\t\t[class.range]=\"isRange(date) || isSelectedDate(date)\"\r\n\t\t[class.faded]=\"isHovered(date) || (isInside(date) && range)\"\r\n\t\t(mouseenter)=\"hoveredDate = date\"\r\n\t\t(mouseleave)=\"hoveredDate = null\"\r\n\t>\r\n\t\t{{ date.day }}\r\n\t</span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n\t<hr class=\"my-0\" />\r\n\t<button class=\"btn btn-secondary btn-sm m-2 float-right\" type=\"button\" (click)=\"d.close()\">\r\n\t\t{{ 'BUTTONS.CLOSE' | translate }}\r\n\t</button>\r\n\t<button class=\"btn btn-primary btn-sm m-2 float-left\" type=\"button\" (click)=\"clear()\">\r\n\t\t{{ 'BUTTONS.CLEAR' | translate }}\r\n\t</button>\r\n</ng-template>\r\n", styles: [".date-input-container{position:relative}.date-input-container .date-input-wrapper{position:absolute;width:100%;height:100%;z-index:999999}.hijriInput{border-top-left-radius:0;border-bottom-left-radius:0}.input-filled{border-color:#1a96c6!important}.ngb-dp-weekday{width:2.1rem!important}.custom-day{text-align:center;padding:.185rem .25rem;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range,.custom-day:hover{background-color:#0275d8;color:#fff}.custom-day.faded{background-color:#0275d880}.ranger{width:calc(50% - 5px);margin:0 2px;float:left}.ranger.vertical{width:calc(100% - 5px);margin:8px 2px}.ranger.vertical:nth-child(2){margin-top:0}.ranger.vertical:last-child{margin-bottom:0}.rtl .custom-select{background:#ffffff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") left .75rem center/8px 10px no-repeat}.rtl .ngb-dp-arrow-btn{transform:rotate(180deg)}.rtl .ranger{float:right}\n"], directives: [{ type: ProvideParentFormDirective, selector: "[provideParentForm]" }, { type: i1__namespace$5.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekdays", "showWeekNumbers", "startDate", "container", "positionTarget"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i2__namespace$6.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: i4__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2__namespace$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2__namespace$6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1__namespace.TranslatePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
@@ -7503,9 +7550,7 @@
7503
7550
  { provide: i1$5.NgbCalendar, useClass: i1$5.NgbCalendarIslamicUmalqura },
7504
7551
  { provide: i1$5.NgbDatepickerI18n, useClass: IslamicI18n }
7505
7552
  ],
7506
- styleUrls: [
7507
- './hijri-date-picker.component.scss'
7508
- ],
7553
+ styleUrls: ['./hijri-date-picker.component.scss'],
7509
7554
  encapsulation: i0.ViewEncapsulation.None
7510
7555
  }]
7511
7556
  }], ctorParameters: function () { return [{ type: i1__namespace$5.NgbCalendar }, { type: i1__namespace$5.NgbDateParserFormatter }]; }, propDecorators: { datePicker: [{
@@ -7531,6 +7576,8 @@
7531
7576
  type: i0.Input
7532
7577
  }], vertical: [{
7533
7578
  type: i0.Input
7579
+ }], emitOnBlur: [{
7580
+ type: i0.Input
7534
7581
  }], placeHolder: [{
7535
7582
  type: i0.Input
7536
7583
  }] } });
@@ -7556,7 +7603,18 @@
7556
7603
  this.disabledbtn = false;
7557
7604
  this.range = false;
7558
7605
  this.vertical = false;
7606
+ this.emitOnBlur = true;
7559
7607
  }
7608
+ Object.defineProperty(HijriGregorianDatepickerComponent.prototype, "selectedDate", {
7609
+ get: function () {
7610
+ return this._selectedDate;
7611
+ },
7612
+ set: function (value) {
7613
+ this._selectedDate = value;
7614
+ },
7615
+ enumerable: false,
7616
+ configurable: true
7617
+ });
7560
7618
  Object.defineProperty(HijriGregorianDatepickerComponent.prototype, "DateType", {
7561
7619
  get: function () {
7562
7620
  return DateType;
@@ -7572,7 +7630,7 @@
7572
7630
  this.selectedDateType = DateType.Hijri;
7573
7631
  }
7574
7632
  };
7575
- HijriGregorianDatepickerComponent.prototype.ngOnChanges = function () {
7633
+ HijriGregorianDatepickerComponent.prototype.ngOnChanges = function (changes) {
7576
7634
  if (this.range && !this.selectedDate) {
7577
7635
  this.selectedDate = { from: undefined, to: undefined };
7578
7636
  }
@@ -7619,43 +7677,56 @@
7619
7677
  this.selectedDateChange.emit(this.selectedDate);
7620
7678
  };
7621
7679
  HijriGregorianDatepickerComponent.prototype.hijriClick = function () {
7622
- if (this.selectedDateType == DateType.Hijri) {
7680
+ if (this.selectedDateType === DateType.Hijri) {
7623
7681
  return;
7624
7682
  }
7625
7683
  this.selectedDateType = DateType.Hijri;
7626
- //to hijri
7684
+ if (this.hasValidDate()) {
7685
+ this.convertToHijri();
7686
+ this.selectedDateChange.emit(this.selectedDate);
7687
+ }
7688
+ };
7689
+ HijriGregorianDatepickerComponent.prototype.gregClick = function () {
7690
+ if (this.selectedDateType === DateType.Gregorian) {
7691
+ return;
7692
+ }
7693
+ this.selectedDateType = DateType.Gregorian;
7694
+ if (this.hasValidDate()) {
7695
+ this.convertToGregorian();
7696
+ this.selectedDateChange.emit(this.selectedDate);
7697
+ }
7698
+ };
7699
+ HijriGregorianDatepickerComponent.prototype.hasValidDate = function () {
7700
+ return !!this.selectedDate && Object.keys(this.selectedDate).length > 0;
7701
+ };
7702
+ HijriGregorianDatepickerComponent.prototype.convertToHijri = function () {
7703
+ var _a, _b, _c, _d;
7627
7704
  if (this.range) {
7628
7705
  this.selectedDate = {
7629
- from: this.dateFormatterService.ToHijri(this.selectedDate.from || null),
7630
- to: this.dateFormatterService.ToHijri(this.selectedDate.to || null)
7706
+ from: this.dateFormatterService.ToHijri((_b = (_a = this.selectedDate) === null || _a === void 0 ? void 0 : _a.from) !== null && _b !== void 0 ? _b : null),
7707
+ to: this.dateFormatterService.ToHijri((_d = (_c = this.selectedDate) === null || _c === void 0 ? void 0 : _c.to) !== null && _d !== void 0 ? _d : null)
7631
7708
  };
7632
7709
  }
7633
7710
  else {
7634
7711
  this.selectedDate = this.dateFormatterService.ToHijri(this.selectedDate);
7635
7712
  }
7636
- this.selectedDateChange.emit(this.selectedDate);
7637
7713
  };
7638
- HijriGregorianDatepickerComponent.prototype.gregClick = function () {
7639
- if (this.selectedDateType == DateType.Gregorian) {
7640
- return;
7641
- }
7642
- this.selectedDateType = DateType.Gregorian;
7643
- //to Gregorian
7714
+ HijriGregorianDatepickerComponent.prototype.convertToGregorian = function () {
7715
+ var _a, _b, _c, _d;
7644
7716
  if (this.range) {
7645
7717
  this.selectedDate = {
7646
- from: this.dateFormatterService.ToGregorian(this.selectedDate.from || null),
7647
- to: this.dateFormatterService.ToGregorian(this.selectedDate.to || null)
7718
+ from: this.dateFormatterService.ToGregorian((_b = (_a = this.selectedDate) === null || _a === void 0 ? void 0 : _a.from) !== null && _b !== void 0 ? _b : null),
7719
+ to: this.dateFormatterService.ToGregorian((_d = (_c = this.selectedDate) === null || _c === void 0 ? void 0 : _c.to) !== null && _d !== void 0 ? _d : null)
7648
7720
  };
7649
7721
  }
7650
7722
  else {
7651
7723
  this.selectedDate = this.dateFormatterService.ToGregorian(this.selectedDate);
7652
7724
  }
7653
- this.selectedDateChange.emit(this.selectedDate);
7654
7725
  };
7655
7726
  return HijriGregorianDatepickerComponent;
7656
7727
  }());
7657
7728
  HijriGregorianDatepickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: HijriGregorianDatepickerComponent, deps: [{ token: DateFormatterService }], target: i0__namespace.ɵɵFactoryTarget.Component });
7658
- HijriGregorianDatepickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: HijriGregorianDatepickerComponent, selector: "hijri-gregorian-datepicker", inputs: { selectedDateType: "selectedDateType", selectedDate: "selectedDate", label: "label", showLabel: "showLabel", readonly: "readonly", isRequired: "isRequired", disabled: "disabled", disabledbtn: "disabledbtn", minHijri: "minHijri", maxHijri: "maxHijri", minGreg: "minGreg", maxGreg: "maxGreg", hijriLabel: "hijriLabel", GregLabel: "GregLabel", placeHolder: "placeHolder", range: "range", vertical: "vertical" }, outputs: { selectedDateChange: "selectedDateChange" }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["d"], descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<div class=\"form-group\" provideParentForm>\r\n\t<label class=\"requiredInput\" *ngIf=\"showLabel\" for=\"input-birth-Date\">{{ label }} </label>\r\n\r\n\t<div class=\"input-group\">\r\n\t\t<gregorian-date-picker\r\n\t\t\t[vertical]=\"vertical\"\r\n\t\t\t*ngIf=\"selectedDateType == DateType.Gregorian\"\r\n\t\t\t[range]=\"range\"\r\n\t\t\t[(selectedDate)]=\"selectedDate\"\r\n\t\t\t(selectedDateChange)=\"dateSelected($event)\"\r\n\t\t\t[readonly]=\"readonly\"\r\n\t\t\t[min]=\"minGreg\"\r\n\t\t\t[max]=\"maxGreg\"\r\n\t\t\tstyle=\"flex: 1 1 auto\"\r\n\t\t\t[name]=\"label\"\r\n\t\t\t[isRequired]=\"isRequired\"\r\n\t\t\t[placeHolder]=\"placeHolder\"\r\n\t\t\t[disabled]=\"disabled\"\r\n\t\t>\r\n\t\t</gregorian-date-picker>\r\n\t\t<hijri-date-picker\r\n\t\t\t[vertical]=\"vertical\"\r\n\t\t\t*ngIf=\"selectedDateType == DateType.Hijri\"\r\n\t\t\t[range]=\"range\"\r\n\t\t\t[(selectedDate)]=\"selectedDate\"\r\n\t\t\t(selectedDateChange)=\"dateSelected($event)\"\r\n\t\t\t[readonly]=\"readonly\"\r\n\t\t\t[min]=\"minHijri\"\r\n\t\t\t[max]=\"maxHijri\"\r\n\t\t\tstyle=\"flex: 1 1 auto\"\r\n\t\t\t[name]=\"label\"\r\n\t\t\t[isRequired]=\"isRequired\"\r\n\t\t\t[placeHolder]=\"placeHolder\"\r\n\t\t\t[disabled]=\"disabled\"\r\n\t\t>\r\n\t\t</hijri-date-picker>\r\n\r\n\t\t<div class=\"input-group-append\">\r\n\t\t\t<button\r\n\t\t\t\tclass=\"btn btn-sm {{ selectedDateType == DateType.Hijri ? 'btn-info focus active' : 'btn-outline-info' }}\"\r\n\t\t\t\t(click)=\"hijriClick()\"\r\n\t\t\t\t[disabled]=\"disabledbtn\"\r\n\t\t\t\ttype=\"button\"\r\n\t\t\t>\r\n\t\t\t\t{{ hijriLabel ? hijriLabel : 'Hijri' }}\r\n\t\t\t</button>\r\n\t\t\t<button\r\n\t\t\t\tclass=\"btn btn-sm {{ selectedDateType == DateType.Gregorian ? 'btn-info focus active' : 'btn-outline-info' }}\"\r\n\t\t\t\t(click)=\"gregClick()\"\r\n\t\t\t\t[disabled]=\"disabledbtn\"\r\n\t\t\t\ttype=\"button\"\r\n\t\t\t>\r\n\t\t\t\t{{ GregLabel ? GregLabel : 'Gregorian' }}\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", components: [{ type: GregorianDatepickerComponent, selector: "gregorian-date-picker", inputs: ["selectedDate", "readonly", "isRequired", "disabled", "min", "max", "name", "range", "vertical", "placeHolder"], outputs: ["selectedDateChange"] }, { type: HijriDatepickerComponent, selector: "hijri-date-picker", inputs: ["selectedDate", "readonly", "isRequired", "disabled", "min", "max", "name", "range", "vertical", "placeHolder"], outputs: ["selectedDateChange"] }], directives: [{ type: ProvideParentFormDirective, selector: "[provideParentForm]" }, { type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
7729
+ HijriGregorianDatepickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: HijriGregorianDatepickerComponent, selector: "hijri-gregorian-datepicker", inputs: { selectedDateType: "selectedDateType", selectedDate: "selectedDate", label: "label", showLabel: "showLabel", readonly: "readonly", isRequired: "isRequired", disabled: "disabled", disabledbtn: "disabledbtn", minHijri: "minHijri", maxHijri: "maxHijri", minGreg: "minGreg", maxGreg: "maxGreg", hijriLabel: "hijriLabel", GregLabel: "GregLabel", placeHolder: "placeHolder", range: "range", vertical: "vertical", emitOnBlur: "emitOnBlur" }, outputs: { selectedDateChange: "selectedDateChange" }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["d"], descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<div class=\"form-group\" provideParentForm>\r\n\t<label class=\"requiredInput\" *ngIf=\"showLabel\" for=\"input-birth-Date\">{{ label }} </label>\r\n\r\n\t<div class=\"input-group\">\r\n\t\t<gregorian-date-picker\r\n\t\t\t[vertical]=\"vertical\"\r\n\t\t\t*ngIf=\"selectedDateType == DateType.Gregorian\"\r\n\t\t\t[range]=\"range\"\r\n\t\t\t[(selectedDate)]=\"selectedDate\"\r\n\t\t\t(selectedDateChange)=\"dateSelected($event)\"\r\n\t\t\t[readonly]=\"readonly\"\r\n\t\t\t[min]=\"minGreg\"\r\n\t\t\t[max]=\"maxGreg\"\r\n\t\t\t[emitOnBlur]=\"emitOnBlur\"\r\n\t\t\tstyle=\"flex: 1 1 auto\"\r\n\t\t\t[name]=\"label\"\r\n\t\t\t[isRequired]=\"isRequired\"\r\n\t\t\t[placeHolder]=\"placeHolder\"\r\n\t\t\t[disabled]=\"disabled\"\r\n\t\t>\r\n\t\t</gregorian-date-picker>\r\n\t\t<hijri-date-picker\r\n\t\t\t[vertical]=\"vertical\"\r\n\t\t\t*ngIf=\"selectedDateType == DateType.Hijri\"\r\n\t\t\t[range]=\"range\"\r\n\t\t\t[(selectedDate)]=\"selectedDate\"\r\n\t\t\t(selectedDateChange)=\"dateSelected($event)\"\r\n\t\t\t[readonly]=\"readonly\"\r\n\t\t\t[min]=\"minHijri\"\r\n\t\t\t[max]=\"maxHijri\"\r\n\t\t\tstyle=\"flex: 1 1 auto\"\r\n\t\t\t[name]=\"label\"\r\n\t\t\t[isRequired]=\"isRequired\"\r\n\t\t\t[placeHolder]=\"placeHolder\"\r\n\t\t\t[disabled]=\"disabled\"\r\n [emitOnBlur]=\"emitOnBlur\"\r\n\t\t>\r\n\t\t</hijri-date-picker>\r\n\r\n\t\t<div class=\"input-group-append\">\r\n\t\t\t<button\r\n\t\t\t\tclass=\"btn btn-sm {{ selectedDateType == DateType.Hijri ? 'btn-info focus active' : 'btn-outline-info' }}\"\r\n\t\t\t\t(click)=\"hijriClick()\"\r\n\t\t\t\t[disabled]=\"disabledbtn\"\r\n\t\t\t\ttype=\"button\"\r\n\t\t\t>\r\n\t\t\t\t{{ hijriLabel ? hijriLabel : 'Hijri' }}\r\n\t\t\t</button>\r\n\t\t\t<button\r\n\t\t\t\tclass=\"btn btn-sm {{ selectedDateType == DateType.Gregorian ? 'btn-info focus active' : 'btn-outline-info' }}\"\r\n\t\t\t\t(click)=\"gregClick()\"\r\n\t\t\t\t[disabled]=\"disabledbtn\"\r\n\t\t\t\ttype=\"button\"\r\n\t\t\t>\r\n\t\t\t\t{{ GregLabel ? GregLabel : 'Gregorian' }}\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", components: [{ type: GregorianDatepickerComponent, selector: "gregorian-date-picker", inputs: ["selectedDate", "readonly", "isRequired", "disabled", "min", "max", "name", "range", "vertical", "emitOnBlur", "placeHolder"], outputs: ["selectedDateChange"] }, { type: HijriDatepickerComponent, selector: "hijri-date-picker", inputs: ["selectedDate", "readonly", "isRequired", "disabled", "min", "max", "name", "range", "vertical", "emitOnBlur", "placeHolder"], outputs: ["selectedDateChange"] }], directives: [{ type: ProvideParentFormDirective, selector: "[provideParentForm]" }, { type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
7659
7730
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: HijriGregorianDatepickerComponent, decorators: [{
7660
7731
  type: i0.Component,
7661
7732
  args: [{
@@ -7701,6 +7772,8 @@
7701
7772
  type: i0.Input
7702
7773
  }], vertical: [{
7703
7774
  type: i0.Input
7775
+ }], emitOnBlur: [{
7776
+ type: i0.Input
7704
7777
  }] } });
7705
7778
 
7706
7779
  /** @ignore */
@@ -10764,9 +10837,10 @@
10764
10837
  * </cts-dynamic-form-hijri-dateitem>
10765
10838
  */
10766
10839
  var DynamicFormHijriDateitemComponent = /** @class */ (function () {
10767
- function DynamicFormHijriDateitemComponent(dateFormatterService, control) {
10840
+ function DynamicFormHijriDateitemComponent(dateFormatterService, control, _cdr) {
10768
10841
  this.dateFormatterService = dateFormatterService;
10769
10842
  this.control = control;
10843
+ this._cdr = _cdr;
10770
10844
  /** Minimum Hijri Date */
10771
10845
  this.minHijri = this.getHijriDateMinusYears(50);
10772
10846
  /** Minimum Gregorian Date */
@@ -10777,13 +10851,12 @@
10777
10851
  this.isReadOnly = true;
10778
10852
  /** Emitted when the value changes */
10779
10853
  this.valueChanged = new i0.EventEmitter();
10854
+ this.date = null;
10780
10855
  this.selectedDateType = DateType.Gregorian;
10856
+ this.emitOnBlur = true;
10781
10857
  this.onChange = function () { };
10782
10858
  this.onTouched = function () { };
10783
10859
  this.control.valueAccessor = this;
10784
- if (!this.range) {
10785
- // this.date = this.dateFormatterService.GetTodayGregorian();
10786
- }
10787
10860
  }
10788
10861
  DynamicFormHijriDateitemComponent.prototype.getGregDateMinusYears = function (years) {
10789
10862
  var today = this.dateFormatterService.GetTodayGregorian();
@@ -10794,20 +10867,14 @@
10794
10867
  return new i1$5.NgbDate(today.year - years, today.month, today.day);
10795
10868
  };
10796
10869
  DynamicFormHijriDateitemComponent.prototype.writeValue = function (obj) {
10797
- if (obj) {
10798
- if (!this.range) {
10799
- this.date = this.dateFormatterService.ToGregorianDateStruct(obj, '');
10800
- }
10801
- else if (obj.from && obj.to) {
10802
- this.date = {
10803
- from: this.dateFormatterService.ToGregorianDateStruct(obj.from, ''),
10804
- to: this.dateFormatterService.ToGregorianDateStruct(obj.to, '')
10805
- };
10806
- }
10807
- }
10808
- else {
10809
- this.date = null; // to reset ui too
10870
+ if (!obj) {
10871
+ this.date = null;
10872
+ this._cdr.markForCheck();
10873
+ return;
10810
10874
  }
10875
+ this.date = this.range
10876
+ ? this._convertRangeToGregorian(obj)
10877
+ : this.dateFormatterService.ToGregorianDateStruct(obj, '');
10811
10878
  };
10812
10879
  DynamicFormHijriDateitemComponent.prototype.registerOnChange = function (fn) {
10813
10880
  this.onChange = fn;
@@ -10815,27 +10882,23 @@
10815
10882
  DynamicFormHijriDateitemComponent.prototype.registerOnTouched = function (fn) {
10816
10883
  this.onTouched = fn;
10817
10884
  };
10818
- DynamicFormHijriDateitemComponent.prototype.setDisabledState = function (isDisabled) { };
10885
+ DynamicFormHijriDateitemComponent.prototype.setDisabledState = function (isDisabled) {
10886
+ this.isDisabled = isDisabled;
10887
+ };
10819
10888
  DynamicFormHijriDateitemComponent.prototype.ngOnInit = function () {
10820
10889
  this.placeHolder = this.placeholder ? this.placeholder : 'datePlaceHolder';
10821
10890
  };
10822
- DynamicFormHijriDateitemComponent.prototype.ngAfterViewInit = function () {
10823
- //Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.
10824
- //Add 'implements AfterViewInit' to the class.
10825
- // console.log('startDatePicker', this.startDatePicker);
10826
- };
10827
- DynamicFormHijriDateitemComponent.prototype.removelable = function () { };
10828
10891
  DynamicFormHijriDateitemComponent.prototype.setValue = function (event) {
10829
- this.dateString = this.startDatePicker.getSelectedDate();
10830
- if (this.dateString !== 'Invalid date') {
10831
- this.onChange(this.dateString);
10832
- this.valueChanged.emit(this.dateString);
10833
- }
10834
- else {
10835
- // set value to null when clear date
10892
+ var dateString = this.startDatePicker.getSelectedDate();
10893
+ if (!event || dateString === 'Invalid date') {
10894
+ this.dateString = null;
10836
10895
  this.onChange(null);
10837
10896
  this.valueChanged.emit(null);
10897
+ return;
10838
10898
  }
10899
+ this.dateString = dateString;
10900
+ this.onChange(this.dateString);
10901
+ this.valueChanged.emit(this.dateString);
10839
10902
  };
10840
10903
  DynamicFormHijriDateitemComponent.prototype.isRequired = function () {
10841
10904
  var _a;
@@ -10845,10 +10908,18 @@
10845
10908
  var validator = this.control.control.validator({});
10846
10909
  return validator && validator.required;
10847
10910
  };
10911
+ DynamicFormHijriDateitemComponent.prototype._convertRangeToGregorian = function (obj) {
10912
+ return obj.from && obj.to
10913
+ ? {
10914
+ from: this.dateFormatterService.ToGregorianDateStruct(obj.from, ''),
10915
+ to: this.dateFormatterService.ToGregorianDateStruct(obj.to, '')
10916
+ }
10917
+ : null;
10918
+ };
10848
10919
  return DynamicFormHijriDateitemComponent;
10849
10920
  }());
10850
- DynamicFormHijriDateitemComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DynamicFormHijriDateitemComponent, deps: [{ token: DateFormatterService }, { token: i2__namespace$6.NgControl, optional: true, self: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
10851
- DynamicFormHijriDateitemComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: { minHijri: "minHijri", maxHijri: "maxHijri", minGreg: "minGreg", maxGreg: "maxGreg", label: "label", isDisabled: "isDisabled", range: "range", vertical: "vertical", isReadOnly: "isReadOnly", placeholder: "placeholder" }, outputs: { valueChanged: "valueChanged" }, viewQueries: [{ propertyName: "startDatePicker", first: true, predicate: ["datePicker"], descendants: true }], ngImport: i0__namespace, template: "<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"hijri-date-lable\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<div class=\"hijri-date-container\">\r\n <hijri-gregorian-datepicker\r\n [placeHolder]=\"placeHolder | translate\"\r\n [(selectedDate)]=\"date\"\r\n [isRequired]=\"true\"\r\n [GregLabel]=\"'gregorian' | translate\"\r\n [hijriLabel]=\"'hijri' |translate\"\r\n [selectedDateType]=\"selectedDateType\"\r\n [disabled]=\"isDisabled\"\r\n [readonly]=\"isReadOnly\"\r\n [minHijri]=\"minHijri\"\r\n [maxHijri]=\"maxHijri\"\r\n [minGreg]=\"minGreg\"\r\n [maxGreg]=\"maxGreg\"\r\n [range]=\"range\"\r\n [vertical]=\"vertical\"\r\n (selectedDateChange)=\"setValue($event)\"\r\n #datePicker\r\n >\r\n </hijri-gregorian-datepicker>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.hijri-date-lable{color:#646f85;font-size:13px;margin-bottom:5px}hijri-gregorian-datepicker .form-group .requiredInput{display:none}hijri-gregorian-datepicker .form-group .input-group{display:flex;flex-wrap:nowrap;align-items:stretch;width:100%}hijri-gregorian-datepicker .form-group .input-group hijri-date-picker{display:block}hijri-gregorian-datepicker .form-group .input-group .form-control{border:1px solid #ccc;border-start-start-radius:5px;border-end-start-radius:5px;border-start-end-radius:0;border-end-end-radius:0;background-color:#8f98aa1a;height:40px}hijri-gregorian-datepicker .form-group .input-group .input-group-append{margin:0}hijri-gregorian-datepicker .form-group .input-group .input-group-append .btn{border-start-end-radius:5px!important;border-end-end-radius:5px!important;border-start-start-radius:0!important;border-end-start-radius:0!important;display:block;margin:0;border:none;color:#fff;background-color:#b4bac6}hijri-gregorian-datepicker .form-group .input-group .input-group-append .btn:hover{background-color:#8f98aa}hijri-gregorian-datepicker .form-group .input-group .input-group-append .active{display:none}\n"], components: [{ type: HijriGregorianDatepickerComponent, selector: "hijri-gregorian-datepicker", inputs: ["selectedDateType", "selectedDate", "label", "showLabel", "readonly", "isRequired", "disabled", "disabledbtn", "minHijri", "maxHijri", "minGreg", "maxGreg", "hijriLabel", "GregLabel", "placeHolder", "range", "vertical"], outputs: ["selectedDateChange"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1__namespace.TranslatePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
10921
+ DynamicFormHijriDateitemComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DynamicFormHijriDateitemComponent, deps: [{ token: DateFormatterService }, { token: i2__namespace$6.NgControl, optional: true, self: true }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
10922
+ DynamicFormHijriDateitemComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: { minHijri: "minHijri", maxHijri: "maxHijri", minGreg: "minGreg", maxGreg: "maxGreg", label: "label", isDisabled: "isDisabled", range: "range", vertical: "vertical", isReadOnly: "isReadOnly", placeholder: "placeholder", emitOnBlur: "emitOnBlur" }, outputs: { valueChanged: "valueChanged" }, viewQueries: [{ propertyName: "startDatePicker", first: true, predicate: ["datePicker"], descendants: true }], ngImport: i0__namespace, template: "<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"hijri-date-lable\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<div class=\"hijri-date-container\">\r\n <hijri-gregorian-datepicker\r\n [placeHolder]=\"placeHolder | translate\"\r\n [(selectedDate)]=\"date\"\r\n [isRequired]=\"true\"\r\n [GregLabel]=\"'gregorian' | translate\"\r\n [hijriLabel]=\"'hijri' |translate\"\r\n [selectedDateType]=\"selectedDateType\"\r\n [disabled]=\"isDisabled\"\r\n [readonly]=\"isReadOnly\"\r\n [minHijri]=\"minHijri\"\r\n [maxHijri]=\"maxHijri\"\r\n [minGreg]=\"minGreg\"\r\n [maxGreg]=\"maxGreg\"\r\n [range]=\"range\"\r\n [emitOnBlur]=\"emitOnBlur\"\r\n [vertical]=\"vertical\"\r\n (selectedDateChange)=\"setValue($event)\"\r\n #datePicker\r\n >\r\n </hijri-gregorian-datepicker>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.hijri-date-lable{color:#646f85;font-size:13px;margin-bottom:5px}hijri-gregorian-datepicker .form-group .requiredInput{display:none}hijri-gregorian-datepicker .form-group .input-group{display:flex;flex-wrap:nowrap;align-items:stretch;width:100%}hijri-gregorian-datepicker .form-group .input-group hijri-date-picker{display:block}hijri-gregorian-datepicker .form-group .input-group .form-control{border:1px solid #ccc;border-start-start-radius:5px;border-end-start-radius:5px;border-start-end-radius:0;border-end-end-radius:0;background-color:#8f98aa1a;height:40px}hijri-gregorian-datepicker .form-group .input-group .input-group-append{margin:0}hijri-gregorian-datepicker .form-group .input-group .input-group-append .btn{border-start-end-radius:5px!important;border-end-end-radius:5px!important;border-start-start-radius:0!important;border-end-start-radius:0!important;display:block;margin:0;border:none;color:#fff;background-color:#b4bac6}hijri-gregorian-datepicker .form-group .input-group .input-group-append .btn:hover{background-color:#8f98aa}hijri-gregorian-datepicker .form-group .input-group .input-group-append .active{display:none}\n"], components: [{ type: HijriGregorianDatepickerComponent, selector: "hijri-gregorian-datepicker", inputs: ["selectedDateType", "selectedDate", "label", "showLabel", "readonly", "isRequired", "disabled", "disabledbtn", "minHijri", "maxHijri", "minGreg", "maxGreg", "hijriLabel", "GregLabel", "placeHolder", "range", "vertical", "emitOnBlur"], outputs: ["selectedDateChange"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1__namespace.TranslatePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
10852
10923
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DynamicFormHijriDateitemComponent, decorators: [{
10853
10924
  type: i0.Component,
10854
10925
  args: [{
@@ -10862,7 +10933,7 @@
10862
10933
  type: i0.Self
10863
10934
  }, {
10864
10935
  type: i0.Optional
10865
- }] }];
10936
+ }] }, { type: i0__namespace.ChangeDetectorRef }];
10866
10937
  }, propDecorators: { minHijri: [{
10867
10938
  type: i0.Input
10868
10939
  }], maxHijri: [{
@@ -10885,6 +10956,8 @@
10885
10956
  type: i0.Input
10886
10957
  }], valueChanged: [{
10887
10958
  type: i0.Output
10959
+ }], emitOnBlur: [{
10960
+ type: i0.Input
10888
10961
  }], startDatePicker: [{
10889
10962
  type: i0.ViewChild,
10890
10963
  args: ['datePicker']
@@ -12564,7 +12637,7 @@
12564
12637
  return DateWrapperComponent;
12565
12638
  }());
12566
12639
  DateWrapperComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DateWrapperComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
12567
- DateWrapperComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DateWrapperComponent, selector: "app-date-wrapper", inputs: { value: "value", fixedKey: "fixedKey", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0__namespace, template: "<cts-dynamic-form-hijri-dateitem [(ngModel)]=\"value\" (valueChanged)=\"excuteFunction($event)\">\r\n</cts-dynamic-form-hijri-dateitem>\r\n", styles: [""], components: [{ type: DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: ["minHijri", "maxHijri", "minGreg", "maxGreg", "label", "isDisabled", "range", "vertical", "isReadOnly", "placeholder"], outputs: ["valueChanged"] }], directives: [{ type: i2__namespace$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
12640
+ DateWrapperComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DateWrapperComponent, selector: "app-date-wrapper", inputs: { value: "value", fixedKey: "fixedKey", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0__namespace, template: "<cts-dynamic-form-hijri-dateitem [(ngModel)]=\"value\" (valueChanged)=\"excuteFunction($event)\">\r\n</cts-dynamic-form-hijri-dateitem>\r\n", styles: [""], components: [{ type: DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: ["minHijri", "maxHijri", "minGreg", "maxGreg", "label", "isDisabled", "range", "vertical", "isReadOnly", "placeholder", "emitOnBlur"], outputs: ["valueChanged"] }], directives: [{ type: i2__namespace$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
12568
12641
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DateWrapperComponent, decorators: [{
12569
12642
  type: i0.Component,
12570
12643
  args: [{
@@ -22746,7 +22819,7 @@
22746
22819
  return DynamicFieldsRendererComponent;
22747
22820
  }());
22748
22821
  DynamicFieldsRendererComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DynamicFieldsRendererComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
22749
- DynamicFieldsRendererComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFieldsRendererComponent, selector: "app-dynamic-fields-renderer", inputs: { form: "form", agencyNameFilter: "agencyNameFilter", countryNameFilter: "countryNameFilter", orgNameFilter: "orgNameFilter", ngoNameFilter: "ngoNameFilter", disableInitSecrecyLevel: "disableInitSecrecyLevel", mode: "mode", fields: "fields" }, outputs: { checkTextSpellCheckerField: "checkTextSpellCheckerField" }, ngImport: i0__namespace, template: "<div [formGroup]=\"form\" *ngIf=\"form\">\r\n\t<div class=\"renderer-container\">\r\n\t\t<div class=\"field-container\" *ngFor=\"let field of fields\">\r\n\t\t\t<div class=\"flex gap-x-2 items-center\" *permission=\"{ name: field.permission, entity: field.formControlName }\">\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'text'\">\r\n\t\t\t\t\t<div class=\"label-style\">\r\n\t\t\t\t\t\t{{ field.label | translate }}\r\n\t\t\t\t\t\t<span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tclass=\"field-style\"\r\n\t\t\t\t\t\tid=\"{{ field.formControlName }}\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\tplaceholder=\" {{ field.placeholder | translate }}\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'number'\">\r\n\t\t\t\t\t<div class=\"label-style\">\r\n\t\t\t\t\t\t{{ field.label | translate }}\r\n\t\t\t\t\t\t<span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tmin=\"1\"\r\n\t\t\t\t\t\ttype=\"number\"\r\n\t\t\t\t\t\tclass=\"field-style\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\tplaceholder=\" {{ field.placeholder | translate }}\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'textarea'\">\r\n\t\t\t\t\t<app-dynamic-form-textarea\r\n\t\t\t\t\t\t[id]=\"field.formControlName\"\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\tplaceholder=\"{{ field.placeholder | translate }}\"\r\n\t\t\t\t\t\t[disabled]=\"field.disabled\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</app-dynamic-form-textarea>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'date'\">\r\n\t\t\t\t\t<cts-dynamic-form-hijri-dateitem\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t[minHijri]=\"field.minHijri\"\r\n\t\t\t\t\t\t[maxHijri]=\"field.maxHijri\"\r\n\t\t\t\t\t\t[minGreg]=\"field.minGreg\"\r\n\t\t\t\t\t\t[maxGreg]=\"field.maxGreg\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</cts-dynamic-form-hijri-dateitem>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'spellCheckerField'\">\r\n\t\t\t\t\t<ndf-spell-checker-text-field\r\n\t\t\t\t\t\t[id]=\"field.formControlName\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\t[placeholder]=\"field.placeholder\"\r\n\t\t\t\t\t\t[fieldType]=\"field.fieldType\"\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t(checkFromText)=\"checkTextOfSpellCheckField(field.formControlName)\"\r\n\t\t\t\t\t></ndf-spell-checker-text-field>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'dynamic-vocabulary'\">\r\n\t\t\t\t\t<app-dynamic-form-vocabulary-item\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t[bindLabel]=\"field.bindLabel\"\r\n\t\t\t\t\t\t[bindValue]=\"field.bindValue\"\r\n\t\t\t\t\t\tplaceholder=\"{{ field.placeholder | translate }}\"\r\n\t\t\t\t\t\t[multiple]=\"field.multiple\"\r\n\t\t\t\t\t\t[searchable]=\"field.searchable\"\r\n\t\t\t\t\t\t[closeOnSelect]=\"field.closeOnSelect\"\r\n\t\t\t\t\t\t[disabled]=\"field.disabled\"\r\n\t\t\t\t\t\t[hideSelectedItems]=\"field.hideSelectedItems\"\r\n\t\t\t\t\t\t[vocabularyType]=\"field.vocabularyType\"\r\n\t\t\t\t\t\t[onlyIds]=\"field.onlyIds\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</app-dynamic-form-vocabulary-item>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- <div class=\"single-field mb-3\" *ngIf=\"field.type === 'department-selector'\">\r\n <div class=\"label-style\">\r\n {{ field.label | translate }}\r\n <span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n </div>\r\n <app-dynamic-form-department\r\n [formControlName]=\"field.formControlName\"\r\n [placeholder]=\"field.placeholder\"\r\n [pp_departmentNestedTree]=\"field.pp_departmentNestedTree\"\r\n [pp_departmentTree]=\"field.pp_departmentTree\"\r\n [customPrefix]=\"field.customPrefix\"\r\n [customParentProperty]=\"field.customParentProperty\"\r\n [useCustomAddEditAction]=\"field.useCustomAddEditAction\"\r\n >\r\n </app-dynamic-form-department>\r\n </div> -->\r\n\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'translated-vocabulary'\">\r\n\t\t\t\t\t<app-translated-vocabulary-select\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t[arbBindLabel]=\"field.arbBindLabel\"\r\n\t\t\t\t\t\t[engBindLabel]=\"field.engBindLabel\"\r\n\t\t\t\t\t\t[bindValue]=\"field.bindValue\"\r\n\t\t\t\t\t\tplaceholder=\"{{ field.placeholder | translate }}\"\r\n\t\t\t\t\t\t[multiple]=\"field.multiple\"\r\n\t\t\t\t\t\t[searchable]=\"field.searchable\"\r\n\t\t\t\t\t\t[closeOnSelect]=\"field.closeOnSelect\"\r\n\t\t\t\t\t\t[hideSelectedItems]=\"field.hideSelectedItems\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\t[vocbularyId]=\"field.vocbularyId\"\r\n\t\t\t\t\t\t[useFilter]=\"field.useFilter\"\r\n\t\t\t\t\t\t[filter]=\"\r\n\t\t\t\t\t\t\tfield.filter === 'agencyName'\r\n\t\t\t\t\t\t\t\t? agencyNameFilter\r\n\t\t\t\t\t\t\t\t: field.filter === 'countryName'\r\n\t\t\t\t\t\t\t\t? countryNameFilter\r\n\t\t\t\t\t\t\t\t: field.filter === 'orgName'\r\n\t\t\t\t\t\t\t\t? orgNameFilter\r\n\t\t\t\t\t\t\t\t: field.filter === 'ngoName'\r\n\t\t\t\t\t\t\t\t? ngoNameFilter\r\n\t\t\t\t\t\t\t\t: {}\r\n\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t[params]=\"field.params || {}\"\r\n\t\t\t\t\t\t[getByDirectorySuggestion]=\"field.getByDirectorySuggestion\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</app-translated-vocabulary-select>\r\n\t\t\t\t</div>\r\n\t\t\t\t<ng-container *ngIf=\"field.selectable\">\r\n\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\tfieldsCheckBox;\r\n\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\tcheckBoxTemplate: field.template,\r\n\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\"\r\n\t\t\t\t\t></ng-container>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</div>\r\n\r\n\t\t\t<!-- template in client -->\r\n\t\t\t<ng-container *ngIf=\"field.suggest\">\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\tsuggest;\r\n\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\tfield: field.label,\r\n\t\t\t\t\t\t\tsuggestName: field.suggest,\r\n\t\t\t\t\t\t\tcontrolName: field.formControlName,\r\n\t\t\t\t\t\t\ttemplate: field.suggestTemplate\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\"\r\n\t\t\t\t></ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<ng-template #fieldsCheckBox let-checkBoxTemplate=\"checkBoxTemplate\" let-controlName=\"controlName\">\r\n\t<ng-container *ngTemplateOutlet=\"checkBoxTemplate; context: { controlName: controlName }\"> </ng-container>\r\n</ng-template>\r\n\r\n<ng-template\r\n\t#suggest\r\n\tlet-field=\"field\"\r\n\tlet-suggestName=\"suggestName\"\r\n\tlet-controlName=\"controlName\"\r\n\tlet-template=\"template\"\r\n>\r\n\t<ng-container\r\n\t\t*ngTemplateOutlet=\"\r\n\t\t\ttemplate;\r\n\t\t\tcontext: {\r\n\t\t\t\tfield: field,\r\n\t\t\t\tsuggestName: suggestName,\r\n\t\t\t\tcontrolName: controlName\r\n\t\t\t}\r\n\t\t\"\r\n\t>\r\n\t</ng-container>\r\n</ng-template>\r\n", styles: [".single-field{width:100%}\n"], components: [{ type: DynamicFormTextareaComponent, selector: "app-dynamic-form-textarea", inputs: ["property", "label", "editable", "disabled", "id", "placeholder", "displayEmpty", "horizontalAlign"] }, { type: DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: ["minHijri", "maxHijri", "minGreg", "maxGreg", "label", "isDisabled", "range", "vertical", "isReadOnly", "placeholder"], outputs: ["valueChanged"] }, { type: SpellCheckerTextFieldComponent, selector: "ndf-spell-checker-text-field", inputs: ["id", "placeholder", "fieldType", "label"], outputs: ["checkFromText"] }, { type: DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["onlyIds", "bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues"], outputs: ["onSelecting"] }, { type: TranslatedVocabularySelectComponent, selector: "app-translated-vocabulary-select", inputs: ["label", "bindValue", "arbBindLabel", "engBindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "clear", "filter", "useFilter", "vocbularyId", "mapingResponse", "params", "getByDirectorySuggestion"], outputs: ["onSelectItems"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2__namespace$6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i2__namespace$6.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: i2__namespace$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2__namespace$6.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { type: i2__namespace$6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i4__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i1__namespace.TranslatePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
22822
+ DynamicFieldsRendererComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFieldsRendererComponent, selector: "app-dynamic-fields-renderer", inputs: { form: "form", agencyNameFilter: "agencyNameFilter", countryNameFilter: "countryNameFilter", orgNameFilter: "orgNameFilter", ngoNameFilter: "ngoNameFilter", disableInitSecrecyLevel: "disableInitSecrecyLevel", mode: "mode", fields: "fields" }, outputs: { checkTextSpellCheckerField: "checkTextSpellCheckerField" }, ngImport: i0__namespace, template: "<div [formGroup]=\"form\" *ngIf=\"form\">\r\n\t<div class=\"renderer-container\">\r\n\t\t<div class=\"field-container\" *ngFor=\"let field of fields\">\r\n\t\t\t<div class=\"flex gap-x-2 items-center\" *permission=\"{ name: field.permission, entity: field.formControlName }\">\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'text'\">\r\n\t\t\t\t\t<div class=\"label-style\">\r\n\t\t\t\t\t\t{{ field.label | translate }}\r\n\t\t\t\t\t\t<span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tclass=\"field-style\"\r\n\t\t\t\t\t\tid=\"{{ field.formControlName }}\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\tplaceholder=\" {{ field.placeholder | translate }}\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'number'\">\r\n\t\t\t\t\t<div class=\"label-style\">\r\n\t\t\t\t\t\t{{ field.label | translate }}\r\n\t\t\t\t\t\t<span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tmin=\"1\"\r\n\t\t\t\t\t\ttype=\"number\"\r\n\t\t\t\t\t\tclass=\"field-style\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\tplaceholder=\" {{ field.placeholder | translate }}\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'textarea'\">\r\n\t\t\t\t\t<app-dynamic-form-textarea\r\n\t\t\t\t\t\t[id]=\"field.formControlName\"\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\tplaceholder=\"{{ field.placeholder | translate }}\"\r\n\t\t\t\t\t\t[disabled]=\"field.disabled\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</app-dynamic-form-textarea>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'date'\">\r\n\t\t\t\t\t<cts-dynamic-form-hijri-dateitem\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t[minHijri]=\"field.minHijri\"\r\n\t\t\t\t\t\t[maxHijri]=\"field.maxHijri\"\r\n\t\t\t\t\t\t[minGreg]=\"field.minGreg\"\r\n\t\t\t\t\t\t[maxGreg]=\"field.maxGreg\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</cts-dynamic-form-hijri-dateitem>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'spellCheckerField'\">\r\n\t\t\t\t\t<ndf-spell-checker-text-field\r\n\t\t\t\t\t\t[id]=\"field.formControlName\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\t[placeholder]=\"field.placeholder\"\r\n\t\t\t\t\t\t[fieldType]=\"field.fieldType\"\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t(checkFromText)=\"checkTextOfSpellCheckField(field.formControlName)\"\r\n\t\t\t\t\t></ndf-spell-checker-text-field>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'dynamic-vocabulary'\">\r\n\t\t\t\t\t<app-dynamic-form-vocabulary-item\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t[bindLabel]=\"field.bindLabel\"\r\n\t\t\t\t\t\t[bindValue]=\"field.bindValue\"\r\n\t\t\t\t\t\tplaceholder=\"{{ field.placeholder | translate }}\"\r\n\t\t\t\t\t\t[multiple]=\"field.multiple\"\r\n\t\t\t\t\t\t[searchable]=\"field.searchable\"\r\n\t\t\t\t\t\t[closeOnSelect]=\"field.closeOnSelect\"\r\n\t\t\t\t\t\t[disabled]=\"field.disabled\"\r\n\t\t\t\t\t\t[hideSelectedItems]=\"field.hideSelectedItems\"\r\n\t\t\t\t\t\t[vocabularyType]=\"field.vocabularyType\"\r\n\t\t\t\t\t\t[onlyIds]=\"field.onlyIds\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</app-dynamic-form-vocabulary-item>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- <div class=\"single-field mb-3\" *ngIf=\"field.type === 'department-selector'\">\r\n <div class=\"label-style\">\r\n {{ field.label | translate }}\r\n <span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n </div>\r\n <app-dynamic-form-department\r\n [formControlName]=\"field.formControlName\"\r\n [placeholder]=\"field.placeholder\"\r\n [pp_departmentNestedTree]=\"field.pp_departmentNestedTree\"\r\n [pp_departmentTree]=\"field.pp_departmentTree\"\r\n [customPrefix]=\"field.customPrefix\"\r\n [customParentProperty]=\"field.customParentProperty\"\r\n [useCustomAddEditAction]=\"field.useCustomAddEditAction\"\r\n >\r\n </app-dynamic-form-department>\r\n </div> -->\r\n\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'translated-vocabulary'\">\r\n\t\t\t\t\t<app-translated-vocabulary-select\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t[arbBindLabel]=\"field.arbBindLabel\"\r\n\t\t\t\t\t\t[engBindLabel]=\"field.engBindLabel\"\r\n\t\t\t\t\t\t[bindValue]=\"field.bindValue\"\r\n\t\t\t\t\t\tplaceholder=\"{{ field.placeholder | translate }}\"\r\n\t\t\t\t\t\t[multiple]=\"field.multiple\"\r\n\t\t\t\t\t\t[searchable]=\"field.searchable\"\r\n\t\t\t\t\t\t[closeOnSelect]=\"field.closeOnSelect\"\r\n\t\t\t\t\t\t[hideSelectedItems]=\"field.hideSelectedItems\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\t[vocbularyId]=\"field.vocbularyId\"\r\n\t\t\t\t\t\t[useFilter]=\"field.useFilter\"\r\n\t\t\t\t\t\t[filter]=\"\r\n\t\t\t\t\t\t\tfield.filter === 'agencyName'\r\n\t\t\t\t\t\t\t\t? agencyNameFilter\r\n\t\t\t\t\t\t\t\t: field.filter === 'countryName'\r\n\t\t\t\t\t\t\t\t? countryNameFilter\r\n\t\t\t\t\t\t\t\t: field.filter === 'orgName'\r\n\t\t\t\t\t\t\t\t? orgNameFilter\r\n\t\t\t\t\t\t\t\t: field.filter === 'ngoName'\r\n\t\t\t\t\t\t\t\t? ngoNameFilter\r\n\t\t\t\t\t\t\t\t: {}\r\n\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t[params]=\"field.params || {}\"\r\n\t\t\t\t\t\t[getByDirectorySuggestion]=\"field.getByDirectorySuggestion\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</app-translated-vocabulary-select>\r\n\t\t\t\t</div>\r\n\t\t\t\t<ng-container *ngIf=\"field.selectable\">\r\n\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\tfieldsCheckBox;\r\n\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\tcheckBoxTemplate: field.template,\r\n\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\"\r\n\t\t\t\t\t></ng-container>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</div>\r\n\r\n\t\t\t<!-- template in client -->\r\n\t\t\t<ng-container *ngIf=\"field.suggest\">\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\tsuggest;\r\n\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\tfield: field.label,\r\n\t\t\t\t\t\t\tsuggestName: field.suggest,\r\n\t\t\t\t\t\t\tcontrolName: field.formControlName,\r\n\t\t\t\t\t\t\ttemplate: field.suggestTemplate\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\"\r\n\t\t\t\t></ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<ng-template #fieldsCheckBox let-checkBoxTemplate=\"checkBoxTemplate\" let-controlName=\"controlName\">\r\n\t<ng-container *ngTemplateOutlet=\"checkBoxTemplate; context: { controlName: controlName }\"> </ng-container>\r\n</ng-template>\r\n\r\n<ng-template\r\n\t#suggest\r\n\tlet-field=\"field\"\r\n\tlet-suggestName=\"suggestName\"\r\n\tlet-controlName=\"controlName\"\r\n\tlet-template=\"template\"\r\n>\r\n\t<ng-container\r\n\t\t*ngTemplateOutlet=\"\r\n\t\t\ttemplate;\r\n\t\t\tcontext: {\r\n\t\t\t\tfield: field,\r\n\t\t\t\tsuggestName: suggestName,\r\n\t\t\t\tcontrolName: controlName\r\n\t\t\t}\r\n\t\t\"\r\n\t>\r\n\t</ng-container>\r\n</ng-template>\r\n", styles: [".single-field{width:100%}\n"], components: [{ type: DynamicFormTextareaComponent, selector: "app-dynamic-form-textarea", inputs: ["property", "label", "editable", "disabled", "id", "placeholder", "displayEmpty", "horizontalAlign"] }, { type: DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: ["minHijri", "maxHijri", "minGreg", "maxGreg", "label", "isDisabled", "range", "vertical", "isReadOnly", "placeholder", "emitOnBlur"], outputs: ["valueChanged"] }, { type: SpellCheckerTextFieldComponent, selector: "ndf-spell-checker-text-field", inputs: ["id", "placeholder", "fieldType", "label"], outputs: ["checkFromText"] }, { type: DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["onlyIds", "bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues"], outputs: ["onSelecting"] }, { type: TranslatedVocabularySelectComponent, selector: "app-translated-vocabulary-select", inputs: ["label", "bindValue", "arbBindLabel", "engBindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "clear", "filter", "useFilter", "vocbularyId", "mapingResponse", "params", "getByDirectorySuggestion"], outputs: ["onSelectItems"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2__namespace$6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i2__namespace$6.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: i2__namespace$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2__namespace$6.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { type: i2__namespace$6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i4__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i1__namespace.TranslatePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
22750
22823
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DynamicFieldsRendererComponent, decorators: [{
22751
22824
  type: i0.Component,
22752
22825
  args: [{
@@ -29648,7 +29721,7 @@
29648
29721
  return FilterComponent;
29649
29722
  }());
29650
29723
  FilterComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FilterComponent, deps: [{ token: i2__namespace$6.FormBuilder }], target: i0__namespace.ɵɵFactoryTarget.Component });
29651
- FilterComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FilterComponent, selector: "cts-filter", inputs: { fields: "fields", filterTitle: "filterTitle" }, outputs: { onFiltering: "onFiltering" }, ngImport: i0__namespace, template: "<div class=\"filter-wrapper\">\r\n <div class=\"filter-title\">\r\n <!-- {{filterTitle | translate}} -->\r\n </div>\r\n <div class=\"iner-filter-wrapper\" *ngIf=\"filterForm\">\r\n <form [formGroup]=\"filterForm\">\r\n <div class=\"single-control-wrapper\" *ngFor=\"let field of fields\">\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'text'\">\r\n <app-dynamic-form-textitem\r\n [label]=\"field.label\"\r\n [formControlName]=\"field.formControlName\"\r\n placeholder=\"{{ 'CREATE.PLACE_HOLDER' | translate }} {{\r\n field.placeholder | translate\r\n }}\"\r\n >\r\n </app-dynamic-form-textitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'dropdown'\">\r\n <app-dynamic-form-vocabulary-item\r\n [shwoAllValues]=\"field.shwoAllValues ? field.shwoAllValues : false\"\r\n [label]=\"field.label\"\r\n [bindLabel]=\"field.bindLabel\"\r\n [bindValue]=\"field.bindValue\"\r\n [placeholder]=\"field.placeholder | translate\"\r\n [multiple]=\"field.multiple\"\r\n [searchable]=\"field.searchable\"\r\n [closeOnSelect]=\"field.closeOnSelect\"\r\n [hideSelectedItems]=\"field.hideSelectedItems\"\r\n [vocabularyType]=\"field.vocabularyType\"\r\n [formControlName]=\"field.formControlName\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'rang'\">\r\n <cts-dynamic-form-hijri-dateitem [label]=\"field.label\" [formControlName]=\"field.formControlName\"[range]=\"true\" [vertical]=\"false\" >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'department'\">\r\n <app-dynamic-form-department\r\n [label]=\"field.label\"\r\n placeholder=\"{{ 'CREATE.PLACE_HOLDER' | translate }} {{\r\n field.placeholder | translate\r\n }}\"\r\n [formControlName]=\"field.formControlName\"\r\n >\r\n </app-dynamic-form-department>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'toggle'\">\r\n <cts-dynamic-form-slide-toggleitem\r\n [label]=\"field.label\"\r\n [formControlName]=\"field.formControlName\"\r\n ></cts-dynamic-form-slide-toggleitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'date'\">\r\n <cts-dynamic-form-hijri-dateitem\r\n [formControlName]=\"field.formControlName\"\r\n [label]=\"field.label\"\r\n >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n \r\n\r\n </div>\r\n\r\n </form>\r\n \r\n </div>\r\n <div class=\"form-actions\">\r\n <button class=\"my-button mx-2\" type=\"button\" (click)=\"filter()\"> {{'FILTER' | translate}}</button>\r\n <button class=\"my-button reset mx-2\" type=\"button\" (click)=\"reset()\"> {{'reset' | translate}}</button>\r\n </div>\r\n</div>\r\n\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.filter-wrapper .filter-title{font-size:18px;font-weight:bold;margin-bottom:15px}.filter-wrapper .iner-filter-wrapper{height:320px;overflow:auto;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;padding:15px 15px 0}.filter-wrapper .iner-filter-wrapper .single-control-wrapper{margin-bottom:15px}.filter-wrapper .form-actions{display:flex;justify-content:flex-start;align-content:center;padding:10px 15px}.filter-wrapper .form-actions .filter{border:none;background-color:transparent;font-weight:bold;width:80px;height:40px;background-image:linear-gradient(to bottom,#0dbab5,#2e62df);color:#fff;border-radius:5px}\n"], components: [{ type: DynamicFormTextItemComponent, selector: "app-dynamic-form-textitem", inputs: ["autoComplete", "nativeAutoComplete", "autoComplete_pageProvider", "autoComplete_propertyName", "autoComplete_propertyKey", "autoCompleteValueKey", "autoCompleteType", "tenantId", "emitFullObject", "outsideParams", "type", "property", "label", "editable", "placeholder", "disabled", "displayEmpty", "preventSpace", "id", "maxCharsNum"] }, { type: DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["onlyIds", "bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues"], outputs: ["onSelecting"] }, { type: DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: ["minHijri", "maxHijri", "minGreg", "maxGreg", "label", "isDisabled", "range", "vertical", "isReadOnly", "placeholder"], outputs: ["valueChanged"] }, { type: DynamicFormDepartmentComponent, selector: "app-dynamic-form-department", inputs: ["treeview", "treeViewAsFormControl", "placeholder", "multiple", "searchable", "label", "defaultSelect", "displayDepTypee", "displayIsAllowRecExternal", "pp_departmentNestedTree", "pp_departmentTree", "customPrefix", "useCustomAddEditAction", "customParentProperty", "customParams", "disabled", "nodesExpandedByDefault", "fixedParentNode"], outputs: ["onSelecting", "actionClicked", "onDataLoad"] }, { type: DynamicFormSlideToggleitemComponent, selector: "cts-dynamic-form-slide-toggleitem", inputs: ["label", "disabled", "checked", "theme"], outputs: ["onToggle"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2__namespace$6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2__namespace$6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i1__namespace.TranslatePipe } });
29724
+ FilterComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FilterComponent, selector: "cts-filter", inputs: { fields: "fields", filterTitle: "filterTitle" }, outputs: { onFiltering: "onFiltering" }, ngImport: i0__namespace, template: "<div class=\"filter-wrapper\">\r\n <div class=\"filter-title\">\r\n <!-- {{filterTitle | translate}} -->\r\n </div>\r\n <div class=\"iner-filter-wrapper\" *ngIf=\"filterForm\">\r\n <form [formGroup]=\"filterForm\">\r\n <div class=\"single-control-wrapper\" *ngFor=\"let field of fields\">\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'text'\">\r\n <app-dynamic-form-textitem\r\n [label]=\"field.label\"\r\n [formControlName]=\"field.formControlName\"\r\n placeholder=\"{{ 'CREATE.PLACE_HOLDER' | translate }} {{\r\n field.placeholder | translate\r\n }}\"\r\n >\r\n </app-dynamic-form-textitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'dropdown'\">\r\n <app-dynamic-form-vocabulary-item\r\n [shwoAllValues]=\"field.shwoAllValues ? field.shwoAllValues : false\"\r\n [label]=\"field.label\"\r\n [bindLabel]=\"field.bindLabel\"\r\n [bindValue]=\"field.bindValue\"\r\n [placeholder]=\"field.placeholder | translate\"\r\n [multiple]=\"field.multiple\"\r\n [searchable]=\"field.searchable\"\r\n [closeOnSelect]=\"field.closeOnSelect\"\r\n [hideSelectedItems]=\"field.hideSelectedItems\"\r\n [vocabularyType]=\"field.vocabularyType\"\r\n [formControlName]=\"field.formControlName\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'rang'\">\r\n <cts-dynamic-form-hijri-dateitem [label]=\"field.label\" [formControlName]=\"field.formControlName\"[range]=\"true\" [vertical]=\"false\" >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'department'\">\r\n <app-dynamic-form-department\r\n [label]=\"field.label\"\r\n placeholder=\"{{ 'CREATE.PLACE_HOLDER' | translate }} {{\r\n field.placeholder | translate\r\n }}\"\r\n [formControlName]=\"field.formControlName\"\r\n >\r\n </app-dynamic-form-department>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'toggle'\">\r\n <cts-dynamic-form-slide-toggleitem\r\n [label]=\"field.label\"\r\n [formControlName]=\"field.formControlName\"\r\n ></cts-dynamic-form-slide-toggleitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'date'\">\r\n <cts-dynamic-form-hijri-dateitem\r\n [formControlName]=\"field.formControlName\"\r\n [label]=\"field.label\"\r\n >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n \r\n\r\n </div>\r\n\r\n </form>\r\n \r\n </div>\r\n <div class=\"form-actions\">\r\n <button class=\"my-button mx-2\" type=\"button\" (click)=\"filter()\"> {{'FILTER' | translate}}</button>\r\n <button class=\"my-button reset mx-2\" type=\"button\" (click)=\"reset()\"> {{'reset' | translate}}</button>\r\n </div>\r\n</div>\r\n\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.filter-wrapper .filter-title{font-size:18px;font-weight:bold;margin-bottom:15px}.filter-wrapper .iner-filter-wrapper{height:320px;overflow:auto;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;padding:15px 15px 0}.filter-wrapper .iner-filter-wrapper .single-control-wrapper{margin-bottom:15px}.filter-wrapper .form-actions{display:flex;justify-content:flex-start;align-content:center;padding:10px 15px}.filter-wrapper .form-actions .filter{border:none;background-color:transparent;font-weight:bold;width:80px;height:40px;background-image:linear-gradient(to bottom,#0dbab5,#2e62df);color:#fff;border-radius:5px}\n"], components: [{ type: DynamicFormTextItemComponent, selector: "app-dynamic-form-textitem", inputs: ["autoComplete", "nativeAutoComplete", "autoComplete_pageProvider", "autoComplete_propertyName", "autoComplete_propertyKey", "autoCompleteValueKey", "autoCompleteType", "tenantId", "emitFullObject", "outsideParams", "type", "property", "label", "editable", "placeholder", "disabled", "displayEmpty", "preventSpace", "id", "maxCharsNum"] }, { type: DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["onlyIds", "bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues"], outputs: ["onSelecting"] }, { type: DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: ["minHijri", "maxHijri", "minGreg", "maxGreg", "label", "isDisabled", "range", "vertical", "isReadOnly", "placeholder", "emitOnBlur"], outputs: ["valueChanged"] }, { type: DynamicFormDepartmentComponent, selector: "app-dynamic-form-department", inputs: ["treeview", "treeViewAsFormControl", "placeholder", "multiple", "searchable", "label", "defaultSelect", "displayDepTypee", "displayIsAllowRecExternal", "pp_departmentNestedTree", "pp_departmentTree", "customPrefix", "useCustomAddEditAction", "customParentProperty", "customParams", "disabled", "nodesExpandedByDefault", "fixedParentNode"], outputs: ["onSelecting", "actionClicked", "onDataLoad"] }, { type: DynamicFormSlideToggleitemComponent, selector: "cts-dynamic-form-slide-toggleitem", inputs: ["label", "disabled", "checked", "theme"], outputs: ["onToggle"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2__namespace$6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2__namespace$6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i1__namespace.TranslatePipe } });
29652
29725
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FilterComponent, decorators: [{
29653
29726
  type: i0.Component,
29654
29727
  args: [{