@lenne.tech/ng-base 13.15.0 → 13.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/base-cms/base-cms.module.d.ts +6 -6
  2. package/base-cms/interfaces/base-cms-module-config.interface.d.ts +6 -6
  3. package/base-cms/pages/base-cms/base-cms.component.d.ts +0 -7
  4. package/base-components/base-components.module.d.ts +4 -3
  5. package/base-components/components/model-form/model-form.component.d.ts +14 -2
  6. package/base-components/components/model-form-sub/model-form-sub.component.d.ts +26 -0
  7. package/base-components/components/model-table/model-table.component.d.ts +4 -2
  8. package/base-components/public-api.d.ts +1 -0
  9. package/base-prototype/base-prototype.module.d.ts +7 -6
  10. package/base-prototype/pages/profile/profile.component.d.ts +34 -0
  11. package/base-prototype/public-api.d.ts +1 -0
  12. package/esm2020/base-cms/base-cms.module.mjs +3 -4
  13. package/esm2020/base-cms/interfaces/base-cms-module-config.interface.mjs +1 -1
  14. package/esm2020/base-cms/pages/base-cms/base-cms.component.mjs +17 -25
  15. package/esm2020/base-components/base-components.module.mjs +7 -3
  16. package/esm2020/base-components/components/model-form/model-form.component.mjs +60 -12
  17. package/esm2020/base-components/components/model-form-sub/model-form-sub.component.mjs +46 -0
  18. package/esm2020/base-components/components/model-table/model-table.component.mjs +23 -5
  19. package/esm2020/base-components/public-api.mjs +2 -1
  20. package/esm2020/base-prototype/base-prototype.module.mjs +8 -4
  21. package/esm2020/base-prototype/pages/profile/profile.component.mjs +45 -0
  22. package/esm2020/base-prototype/public-api.mjs +2 -1
  23. package/esm2020/shared/classes/graphql-meta.class.mjs +14 -2
  24. package/esm2020/shared/classes/sort.class.mjs +47 -0
  25. package/esm2020/shared/directives/sort.directive.mjs +54 -0
  26. package/esm2020/shared/public-api.mjs +4 -1
  27. package/esm2020/shared/services/graphql.service.mjs +6 -1
  28. package/esm2020/shared/services/user.service.mjs +2 -1
  29. package/fesm2015/lenne.tech-ng-base-base-cms.mjs +19 -27
  30. package/fesm2015/lenne.tech-ng-base-base-cms.mjs.map +1 -1
  31. package/fesm2015/lenne.tech-ng-base-base-components.mjs +130 -16
  32. package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +1 -1
  33. package/fesm2015/lenne.tech-ng-base-base-prototype.mjs +49 -5
  34. package/fesm2015/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
  35. package/fesm2015/lenne.tech-ng-base-shared.mjs +122 -3
  36. package/fesm2015/lenne.tech-ng-base-shared.mjs.map +1 -1
  37. package/fesm2020/lenne.tech-ng-base-base-cms.mjs +18 -27
  38. package/fesm2020/lenne.tech-ng-base-base-cms.mjs.map +1 -1
  39. package/fesm2020/lenne.tech-ng-base-base-components.mjs +124 -13
  40. package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +1 -1
  41. package/fesm2020/lenne.tech-ng-base-base-prototype.mjs +49 -5
  42. package/fesm2020/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
  43. package/fesm2020/lenne.tech-ng-base-shared.mjs +119 -3
  44. package/fesm2020/lenne.tech-ng-base-shared.mjs.map +1 -1
  45. package/package.json +3 -2
  46. package/shared/classes/sort.class.d.ts +19 -0
  47. package/shared/directives/sort.directive.d.ts +14 -0
  48. package/shared/public-api.d.ts +2 -0
@@ -1,10 +1,12 @@
1
- import { GraphQLNonNull, GraphQLList, buildClientSchema, getIntrospectionQuery } from 'graphql';
1
+ import { GraphQLInputObjectType, GraphQLNonNull, GraphQLList, buildClientSchema, getIntrospectionQuery } from 'graphql';
2
2
  import { cloneDeep } from '@apollo/client/utilities';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, Injectable, Inject } from '@angular/core';
4
+ import { Directive, Inject, Input, HostListener, InjectionToken, Injectable } from '@angular/core';
5
+ import { DOCUMENT } from '@angular/common';
5
6
  import { BehaviorSubject, of, throwError, Observable, map as map$1, filter } from 'rxjs';
6
7
  import * as i1 from 'apollo-angular';
7
8
  import { gql } from 'apollo-angular';
9
+ import { sha256 } from 'js-sha256';
8
10
  import { map } from 'rxjs/operators';
9
11
  import { FormControl, FormGroup } from '@angular/forms';
10
12
  import { __awaiter } from 'tslib';
@@ -565,6 +567,7 @@ class GraphQLMeta {
565
567
  * Get deep type data
566
568
  */
567
569
  getDeepType(type, prepared = new WeakMap(), setMetaData = false) {
570
+ var _a, _b;
568
571
  // Check type
569
572
  if (!type) {
570
573
  return type;
@@ -576,6 +579,12 @@ class GraphQLMeta {
576
579
  const preparedType = prepared.get(type);
577
580
  if (preparedType) {
578
581
  const clone = cloneDeep(preparedType);
582
+ // Disable meta flags for sub objects
583
+ if ((type === null || type === void 0 ? void 0 : type.type) instanceof GraphQLInputObjectType ||
584
+ ((type === null || type === void 0 ? void 0 : type.type) instanceof GraphQLNonNull && ((_a = type === null || type === void 0 ? void 0 : type.type) === null || _a === void 0 ? void 0 : _a.ofType) instanceof GraphQLInputObjectType && setMetaData)) {
585
+ setMetaData = false;
586
+ }
587
+ // Check for meta flags
579
588
  if (type.type && setMetaData) {
580
589
  if (type.type instanceof GraphQLNonNull) {
581
590
  clone.isRequired = true;
@@ -624,6 +633,12 @@ class GraphQLMeta {
624
633
  // Get type name
625
634
  if (type.type) {
626
635
  const typeResult = this.getDeepType(type.type, prepared, setMetaData);
636
+ // Disable meta flags for sub objects
637
+ if ((type === null || type === void 0 ? void 0 : type.type) instanceof GraphQLInputObjectType ||
638
+ ((type === null || type === void 0 ? void 0 : type.type) instanceof GraphQLNonNull && ((_b = type === null || type === void 0 ? void 0 : type.type) === null || _b === void 0 ? void 0 : _b.ofType) instanceof GraphQLInputObjectType && setMetaData)) {
639
+ setMetaData = false;
640
+ }
641
+ // Check for meta flags
627
642
  if (setMetaData) {
628
643
  if (type.type instanceof GraphQLNonNull) {
629
644
  typeResult.isRequired = true;
@@ -684,6 +699,105 @@ class Auth extends Standard {
684
699
  }
685
700
  }
686
701
 
702
+ class Sort {
703
+ constructor() {
704
+ this.sortOrder = 1;
705
+ this.collator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' });
706
+ }
707
+ /**
708
+ * Sorts clicked column
709
+ *
710
+ * @param property
711
+ * @param order
712
+ * @param type
713
+ */
714
+ startSort(property, order, type = '') {
715
+ if (order === 'desc') {
716
+ this.sortOrder = -1;
717
+ }
718
+ return (a, b) => {
719
+ if (type === 'date') {
720
+ return this.sortDate(new Date(a.latestStep[property]), new Date(b.latestStep[property]));
721
+ }
722
+ else if (type === 'position') {
723
+ return this.collator.compare(a.position.Value[property], b.position.Value[property]) * this.sortOrder;
724
+ }
725
+ else {
726
+ return this.collator.compare(a[property], b[property]) * this.sortOrder;
727
+ }
728
+ };
729
+ }
730
+ /**
731
+ * Sorts dates
732
+ *
733
+ * @param a
734
+ * @param b
735
+ */
736
+ sortDate(a, b) {
737
+ if (a < b) {
738
+ return -1 * this.sortOrder;
739
+ }
740
+ else if (a > b) {
741
+ return 1 * this.sortOrder;
742
+ }
743
+ else {
744
+ return 0 * this.sortOrder;
745
+ }
746
+ }
747
+ }
748
+
749
+ class SortDirective {
750
+ constructor(renderer, targetElem, document) {
751
+ this.renderer = renderer;
752
+ this.targetElem = targetElem;
753
+ }
754
+ /**
755
+ * Sorts columns on click
756
+ */
757
+ sortColumn() {
758
+ const items = document.getElementsByTagName('th');
759
+ for (let i = 0; i < items.length; i++) {
760
+ items[i].classList.remove('asc');
761
+ items[i].classList.remove('desc');
762
+ }
763
+ const sort = new Sort();
764
+ const elem = this.targetElem.nativeElement;
765
+ const order = elem.getAttribute('data-order');
766
+ const type = elem.getAttribute('data-type');
767
+ const property = elem.getAttribute('data-name');
768
+ if (order === 'desc') {
769
+ this.lcSort.sort(sort.startSort(property, order, type));
770
+ elem.setAttribute('data-order', 'asc');
771
+ elem.classList.remove('desc');
772
+ elem.classList.add('asc');
773
+ }
774
+ else {
775
+ this.lcSort.sort(sort.startSort(property, order, type));
776
+ elem.setAttribute('data-order', 'desc');
777
+ elem.classList.remove('asc');
778
+ elem.classList.add('desc');
779
+ }
780
+ }
781
+ }
782
+ SortDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SortDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
783
+ SortDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.3", type: SortDirective, selector: "[baseSort]", inputs: { lcSort: "lcSort" }, host: { listeners: { "click": "sortColumn()" } }, ngImport: i0 });
784
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SortDirective, decorators: [{
785
+ type: Directive,
786
+ args: [{
787
+ selector: '[baseSort]',
788
+ }]
789
+ }], ctorParameters: function () {
790
+ return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: Document, decorators: [{
791
+ type: Inject,
792
+ args: [DOCUMENT]
793
+ }] }];
794
+ }, propDecorators: { lcSort: [{
795
+ type: Input
796
+ }], sortColumn: [{
797
+ type: HostListener,
798
+ args: ['click']
799
+ }] } });
800
+
687
801
  const BASE_MODULE_CONFIG = new InjectionToken('BASE_MODULE_CONFIG');
688
802
 
689
803
  /**
@@ -1260,6 +1374,10 @@ class GraphQLService {
1260
1374
  result.push(key + ':' + value.value);
1261
1375
  continue;
1262
1376
  }
1377
+ if (key === 'password') {
1378
+ result.push(key + ':' + `"${sha256(value)}"`);
1379
+ continue;
1380
+ }
1263
1381
  // Process array
1264
1382
  else if (Array.isArray(value)) {
1265
1383
  result.push(key +
@@ -1569,6 +1687,7 @@ class UserService extends GraphQLPlusService {
1569
1687
  fields: ['token', { user: ['id', 'firstName', 'lastName', 'email', 'roles'] }],
1570
1688
  type: GraphQLRequestType.QUERY,
1571
1689
  loading: true,
1690
+ log: true,
1572
1691
  }).pipe(map$1((response) => {
1573
1692
  this.authService.token = response.token;
1574
1693
  this.authService.currentUser = BasicUser.map(response.user);
@@ -2090,5 +2209,5 @@ function createRestartableClient(options) {
2090
2209
  * Generated bundle index. Do not edit.
2091
2210
  */
2092
2211
 
2093
- export { Auth, AuthService, BASE_MODULE_CONFIG, BasicUser, BreadcrumbService, ComparisonOperatorEnum, FormsService, GraphQLEnum, GraphQLMeta, GraphQLMetaService, GraphQLPlusService, GraphQLRequestType, GraphQLService, GraphQLType, Helper, ImageService, LoaderService, LogicalOperatorEnum, ScrollService, SkeletonType, SortOrderEnum, Standard, StorageService, ToastService, ToastType, UserService, Validation, WsService, createRestartableClient };
2212
+ export { Auth, AuthService, BASE_MODULE_CONFIG, BasicUser, BreadcrumbService, ComparisonOperatorEnum, FormsService, GraphQLEnum, GraphQLMeta, GraphQLMetaService, GraphQLPlusService, GraphQLRequestType, GraphQLService, GraphQLType, Helper, ImageService, LoaderService, LogicalOperatorEnum, ScrollService, SkeletonType, Sort, SortDirective, SortOrderEnum, Standard, StorageService, ToastService, ToastType, UserService, Validation, WsService, createRestartableClient };
2094
2213
  //# sourceMappingURL=lenne.tech-ng-base-shared.mjs.map