@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 * as i1$1 from '@angular/router';
@@ -595,6 +597,12 @@ class GraphQLMeta {
595
597
  const preparedType = prepared.get(type);
596
598
  if (preparedType) {
597
599
  const clone = cloneDeep(preparedType);
600
+ // Disable meta flags for sub objects
601
+ if (type?.type instanceof GraphQLInputObjectType ||
602
+ (type?.type instanceof GraphQLNonNull && type?.type?.ofType instanceof GraphQLInputObjectType && setMetaData)) {
603
+ setMetaData = false;
604
+ }
605
+ // Check for meta flags
598
606
  if (type.type && setMetaData) {
599
607
  if (type.type instanceof GraphQLNonNull) {
600
608
  clone.isRequired = true;
@@ -643,6 +651,12 @@ class GraphQLMeta {
643
651
  // Get type name
644
652
  if (type.type) {
645
653
  const typeResult = this.getDeepType(type.type, prepared, setMetaData);
654
+ // Disable meta flags for sub objects
655
+ if (type?.type instanceof GraphQLInputObjectType ||
656
+ (type?.type instanceof GraphQLNonNull && type?.type?.ofType instanceof GraphQLInputObjectType && setMetaData)) {
657
+ setMetaData = false;
658
+ }
659
+ // Check for meta flags
646
660
  if (setMetaData) {
647
661
  if (type.type instanceof GraphQLNonNull) {
648
662
  typeResult.isRequired = true;
@@ -703,6 +717,103 @@ class Auth extends Standard {
703
717
  }
704
718
  }
705
719
 
720
+ class Sort {
721
+ constructor() {
722
+ this.sortOrder = 1;
723
+ this.collator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' });
724
+ }
725
+ /**
726
+ * Sorts clicked column
727
+ *
728
+ * @param property
729
+ * @param order
730
+ * @param type
731
+ */
732
+ startSort(property, order, type = '') {
733
+ if (order === 'desc') {
734
+ this.sortOrder = -1;
735
+ }
736
+ return (a, b) => {
737
+ if (type === 'date') {
738
+ return this.sortDate(new Date(a.latestStep[property]), new Date(b.latestStep[property]));
739
+ }
740
+ else if (type === 'position') {
741
+ return this.collator.compare(a.position.Value[property], b.position.Value[property]) * this.sortOrder;
742
+ }
743
+ else {
744
+ return this.collator.compare(a[property], b[property]) * this.sortOrder;
745
+ }
746
+ };
747
+ }
748
+ /**
749
+ * Sorts dates
750
+ *
751
+ * @param a
752
+ * @param b
753
+ */
754
+ sortDate(a, b) {
755
+ if (a < b) {
756
+ return -1 * this.sortOrder;
757
+ }
758
+ else if (a > b) {
759
+ return 1 * this.sortOrder;
760
+ }
761
+ else {
762
+ return 0 * this.sortOrder;
763
+ }
764
+ }
765
+ }
766
+
767
+ class SortDirective {
768
+ constructor(renderer, targetElem, document) {
769
+ this.renderer = renderer;
770
+ this.targetElem = targetElem;
771
+ }
772
+ /**
773
+ * Sorts columns on click
774
+ */
775
+ sortColumn() {
776
+ const items = document.getElementsByTagName('th');
777
+ for (let i = 0; i < items.length; i++) {
778
+ items[i].classList.remove('asc');
779
+ items[i].classList.remove('desc');
780
+ }
781
+ const sort = new Sort();
782
+ const elem = this.targetElem.nativeElement;
783
+ const order = elem.getAttribute('data-order');
784
+ const type = elem.getAttribute('data-type');
785
+ const property = elem.getAttribute('data-name');
786
+ if (order === 'desc') {
787
+ this.lcSort.sort(sort.startSort(property, order, type));
788
+ elem.setAttribute('data-order', 'asc');
789
+ elem.classList.remove('desc');
790
+ elem.classList.add('asc');
791
+ }
792
+ else {
793
+ this.lcSort.sort(sort.startSort(property, order, type));
794
+ elem.setAttribute('data-order', 'desc');
795
+ elem.classList.remove('asc');
796
+ elem.classList.add('desc');
797
+ }
798
+ }
799
+ }
800
+ 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 });
801
+ 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 });
802
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SortDirective, decorators: [{
803
+ type: Directive,
804
+ args: [{
805
+ selector: '[baseSort]',
806
+ }]
807
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: Document, decorators: [{
808
+ type: Inject,
809
+ args: [DOCUMENT]
810
+ }] }]; }, propDecorators: { lcSort: [{
811
+ type: Input
812
+ }], sortColumn: [{
813
+ type: HostListener,
814
+ args: ['click']
815
+ }] } });
816
+
706
817
  const BASE_MODULE_CONFIG = new InjectionToken('BASE_MODULE_CONFIG');
707
818
 
708
819
  /**
@@ -1295,6 +1406,10 @@ class GraphQLService {
1295
1406
  result.push(key + ':' + value.value);
1296
1407
  continue;
1297
1408
  }
1409
+ if (key === 'password') {
1410
+ result.push(key + ':' + `"${sha256(value)}"`);
1411
+ continue;
1412
+ }
1298
1413
  // Process array
1299
1414
  else if (Array.isArray(value)) {
1300
1415
  result.push(key +
@@ -1612,6 +1727,7 @@ class UserService extends GraphQLPlusService {
1612
1727
  fields: ['token', { user: ['id', 'firstName', 'lastName', 'email', 'roles'] }],
1613
1728
  type: GraphQLRequestType.QUERY,
1614
1729
  loading: true,
1730
+ log: true,
1615
1731
  }).pipe(map$1((response) => {
1616
1732
  this.authService.token = response.token;
1617
1733
  this.authService.currentUser = BasicUser.map(response.user);
@@ -2150,5 +2266,5 @@ function createRestartableClient(options) {
2150
2266
  * Generated bundle index. Do not edit.
2151
2267
  */
2152
2268
 
2153
- 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 };
2269
+ 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 };
2154
2270
  //# sourceMappingURL=lenne.tech-ng-base-shared.mjs.map