@lenne.tech/ng-base 13.17.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 +13 -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 -3
  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 +10 -24
  15. package/esm2020/base-components/base-components.module.mjs +7 -3
  16. package/esm2020/base-components/components/model-form/model-form.component.mjs +47 -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 +14 -10
  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 +2 -2
  28. package/esm2020/shared/services/user.service.mjs +2 -1
  29. package/fesm2015/lenne.tech-ng-base-base-cms.mjs +16 -30
  30. package/fesm2015/lenne.tech-ng-base-base-cms.mjs.map +1 -1
  31. package/fesm2015/lenne.tech-ng-base-base-components.mjs +108 -21
  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 +118 -4
  36. package/fesm2015/lenne.tech-ng-base-shared.mjs.map +1 -1
  37. package/fesm2020/lenne.tech-ng-base-base-cms.mjs +11 -26
  38. package/fesm2020/lenne.tech-ng-base-base-cms.mjs.map +1 -1
  39. package/fesm2020/lenne.tech-ng-base-base-components.mjs +102 -18
  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 +115 -4
  44. package/fesm2020/lenne.tech-ng-base-shared.mjs.map +1 -1
  45. package/package.json +1 -1
  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,7 +1,8 @@
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';
@@ -596,6 +597,12 @@ class GraphQLMeta {
596
597
  const preparedType = prepared.get(type);
597
598
  if (preparedType) {
598
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
599
606
  if (type.type && setMetaData) {
600
607
  if (type.type instanceof GraphQLNonNull) {
601
608
  clone.isRequired = true;
@@ -644,6 +651,12 @@ class GraphQLMeta {
644
651
  // Get type name
645
652
  if (type.type) {
646
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
647
660
  if (setMetaData) {
648
661
  if (type.type instanceof GraphQLNonNull) {
649
662
  typeResult.isRequired = true;
@@ -704,6 +717,103 @@ class Auth extends Standard {
704
717
  }
705
718
  }
706
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
+
707
817
  const BASE_MODULE_CONFIG = new InjectionToken('BASE_MODULE_CONFIG');
708
818
 
709
819
  /**
@@ -1297,7 +1407,7 @@ class GraphQLService {
1297
1407
  continue;
1298
1408
  }
1299
1409
  if (key === 'password') {
1300
- result.push(key + ':' + sha256(value));
1410
+ result.push(key + ':' + `"${sha256(value)}"`);
1301
1411
  continue;
1302
1412
  }
1303
1413
  // Process array
@@ -1617,6 +1727,7 @@ class UserService extends GraphQLPlusService {
1617
1727
  fields: ['token', { user: ['id', 'firstName', 'lastName', 'email', 'roles'] }],
1618
1728
  type: GraphQLRequestType.QUERY,
1619
1729
  loading: true,
1730
+ log: true,
1620
1731
  }).pipe(map$1((response) => {
1621
1732
  this.authService.token = response.token;
1622
1733
  this.authService.currentUser = BasicUser.map(response.user);
@@ -2155,5 +2266,5 @@ function createRestartableClient(options) {
2155
2266
  * Generated bundle index. Do not edit.
2156
2267
  */
2157
2268
 
2158
- 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 };
2159
2270
  //# sourceMappingURL=lenne.tech-ng-base-shared.mjs.map