@cleavelandprice/ngx-lib 3.13.0 → 3.14.1

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.
@@ -27,10 +27,10 @@ export class UserPhotoComponent {
27
27
  }
28
28
  }
29
29
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: UserPhotoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: UserPhotoComponent, selector: "user-photo", inputs: { user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: true, transformFunction: null }, userPhotos: { classPropertyName: "userPhotos", publicName: "userPhotos", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, notRound: { classPropertyName: "notRound", publicName: "notRound", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (_user) {\r\n @if ((_user | userPhotoUrl:userPhotos() | async)) {\r\n <img\r\n [src]=\"_user | userPhotoUrl:userPhotos() | async\"\r\n [style.width]=\"size\"\r\n [style.height]=\"size\"\r\n [style.border-radius]=\"notRound() ? 'default' : '100%'\">\r\n }\r\n}", styles: [""], dependencies: [{ kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.UserPhotoUrlPipe, name: "userPhotoUrl" }] }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: UserPhotoComponent, selector: "user-photo", inputs: { user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: true, transformFunction: null }, userPhotos: { classPropertyName: "userPhotos", publicName: "userPhotos", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, notRound: { classPropertyName: "notRound", publicName: "notRound", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (_user) {\r\n @if ((_user | userPhotoUrl:userPhotos() | async)) {\r\n <img\r\n [src]=\"_user | userPhotoUrl:userPhotos() | async\"\r\n [style.width]=\"size()\"\r\n [style.height]=\"size()\"\r\n [style.border-radius]=\"notRound() ? 'default' : '100%'\">\r\n }\r\n}\r\n", styles: [""], dependencies: [{ kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.UserPhotoUrlPipe, name: "userPhotoUrl" }] }); }
31
31
  }
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: UserPhotoComponent, decorators: [{
33
33
  type: Component,
34
- args: [{ selector: 'user-photo', template: "@if (_user) {\r\n @if ((_user | userPhotoUrl:userPhotos() | async)) {\r\n <img\r\n [src]=\"_user | userPhotoUrl:userPhotos() | async\"\r\n [style.width]=\"size\"\r\n [style.height]=\"size\"\r\n [style.border-radius]=\"notRound() ? 'default' : '100%'\">\r\n }\r\n}" }]
34
+ args: [{ selector: 'user-photo', template: "@if (_user) {\r\n @if ((_user | userPhotoUrl:userPhotos() | async)) {\r\n <img\r\n [src]=\"_user | userPhotoUrl:userPhotos() | async\"\r\n [style.width]=\"size()\"\r\n [style.height]=\"size()\"\r\n [style.border-radius]=\"notRound() ? 'default' : '100%'\">\r\n }\r\n}\r\n" }]
35
35
  }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1waG90by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zaGFyZXBvaW50L3NyYy9jb21wb25lbnRzL3VzZXItcGhvdG8vdXNlci1waG90by5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zaGFyZXBvaW50L3NyYy9jb21wb25lbnRzL3VzZXItcGhvdG8vdXNlci1waG90by5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUF1QixNQUFNLDJDQUEyQyxDQUFDOzs7O0FBUXhHLE1BQU0sT0FBTyxrQkFBa0I7SUFML0I7UUFNVSwyQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVoRSxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBZ0MsQ0FBQztRQUd0RCxzREFBc0Q7UUFDdEQsUUFBUTtRQUNSLDRDQUE0QztRQUU1QyxlQUFVLEdBQUcsS0FBSyxFQUEyQixDQUFDO1FBQzlDLFNBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQVl6QjtJQVZDLFFBQVE7UUFBVSxDQUFDO1FBQ2pCLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsK0RBQStEO1lBQy9ELDhEQUE4RDtZQUM5RCxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQVksQ0FBQztpQkFDdkQsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBeUIsQ0FBQztRQUNsRCxDQUFDO0lBQ0gsQ0FBQzs4R0F2QlUsa0JBQWtCO2tHQUFsQixrQkFBa0IsK2lCQ1QvQixrU0FRQzs7MkZEQ1ksa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgaW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLCBDbGVhdmVsYW5kUHJpY2VVc2VyIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnknO1xyXG5pbXBvcnQgeyBQaG90b0l0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbC9waG90by1pdGVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndXNlci1waG90bycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItcGhvdG8uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXItcGhvdG8uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyUGhvdG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgYWN0aXZlRGlyZWN0b3J5U2VydmljZSA9IGluamVjdChBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlKTtcclxuXHJcbiAgdXNlciA9IGlucHV0LnJlcXVpcmVkPENsZWF2ZWxhbmRQcmljZVVzZXIgfCBzdHJpbmc+KCk7XHJcbiAgcHJvdGVjdGVkIF91c2VyITogQ2xlYXZlbGFuZFByaWNlVXNlcjtcclxuXHJcbiAgLy9lbXBsb3llZSA9IGlucHV0PENsZWF2ZWxhbmRQcmljZVVzZXIgfCB1bmRlZmluZWQ+KCk7XHJcbiAgLy8gT3IuLi5cclxuICAvL2FjY291bnROYW1lID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xyXG5cclxuICB1c2VyUGhvdG9zID0gaW5wdXQ8UGhvdG9JdGVtW10gfCB1bmRlZmluZWQ+KCk7XHJcbiAgc2l6ZSA9IGlucHV0KFwiMmVtXCIpO1xyXG4gIG5vdFJvdW5kID0gaW5wdXQoZmFsc2UpO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHs7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMudXNlcigpID09PSAnc3RyaW5nJykge1xyXG4gICAgICAvLyBEZXZlbG9wZXIgcGFzc2VkIGluIGFuIGFjY291bnQgbmFtZSBpbnN0ZWFkIG9mIGEgdXNlciBvYmplY3RcclxuICAgICAgLy8gV2UgbmVlZCB0byBkbyB0aGUgd29yayBvZiBnZXR0aW5nIHRoZSB1c2VyIG9iamVjdCBvdXJzZWx2ZXNcclxuICAgICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmdldFVzZXIodGhpcy51c2VyKCkgYXMgc3RyaW5nKVxyXG4gICAgICAgIC5zdWJzY3JpYmUodXNlciA9PiB0aGlzLl91c2VyID0gdXNlcik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl91c2VyID0gdGhpcy51c2VyKCkgYXMgQ2xlYXZlbGFuZFByaWNlVXNlcjtcclxuICAgIH1cclxuICB9XHJcbn0iLCJAaWYgKF91c2VyKSB7XHJcbiAgQGlmICgoX3VzZXIgfCB1c2VyUGhvdG9Vcmw6dXNlclBob3RvcygpIHwgYXN5bmMpKSB7XHJcbiAgICA8aW1nXHJcbiAgICAgIFtzcmNdPVwiX3VzZXIgfCB1c2VyUGhvdG9Vcmw6dXNlclBob3RvcygpIHwgYXN5bmNcIlxyXG4gICAgICBbc3R5bGUud2lkdGhdPVwic2l6ZVwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHRdPVwic2l6ZVwiXHJcbiAgICAgIFtzdHlsZS5ib3JkZXItcmFkaXVzXT1cIm5vdFJvdW5kKCkgPyAnZGVmYXVsdCcgOiAnMTAwJSdcIj5cclxuICB9XHJcbn0iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1waG90by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zaGFyZXBvaW50L3NyYy9jb21wb25lbnRzL3VzZXItcGhvdG8vdXNlci1waG90by5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zaGFyZXBvaW50L3NyYy9jb21wb25lbnRzL3VzZXItcGhvdG8vdXNlci1waG90by5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUF1QixNQUFNLDJDQUEyQyxDQUFDOzs7O0FBUXhHLE1BQU0sT0FBTyxrQkFBa0I7SUFML0I7UUFNVSwyQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVoRSxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBZ0MsQ0FBQztRQUd0RCxzREFBc0Q7UUFDdEQsUUFBUTtRQUNSLDRDQUE0QztRQUU1QyxlQUFVLEdBQUcsS0FBSyxFQUEyQixDQUFDO1FBQzlDLFNBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQVl6QjtJQVZDLFFBQVE7UUFBVSxDQUFDO1FBQ2pCLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsK0RBQStEO1lBQy9ELDhEQUE4RDtZQUM5RCxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQVksQ0FBQztpQkFDdkQsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBeUIsQ0FBQztRQUNsRCxDQUFDO0lBQ0gsQ0FBQzs4R0F2QlUsa0JBQWtCO2tHQUFsQixrQkFBa0IsK2lCQ1QvQiwwU0FTQTs7MkZEQWEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgaW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLCBDbGVhdmVsYW5kUHJpY2VVc2VyIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnknO1xyXG5pbXBvcnQgeyBQaG90b0l0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbC9waG90by1pdGVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndXNlci1waG90bycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItcGhvdG8uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXItcGhvdG8uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyUGhvdG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgYWN0aXZlRGlyZWN0b3J5U2VydmljZSA9IGluamVjdChBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlKTtcclxuXHJcbiAgdXNlciA9IGlucHV0LnJlcXVpcmVkPENsZWF2ZWxhbmRQcmljZVVzZXIgfCBzdHJpbmc+KCk7XHJcbiAgcHJvdGVjdGVkIF91c2VyITogQ2xlYXZlbGFuZFByaWNlVXNlcjtcclxuXHJcbiAgLy9lbXBsb3llZSA9IGlucHV0PENsZWF2ZWxhbmRQcmljZVVzZXIgfCB1bmRlZmluZWQ+KCk7XHJcbiAgLy8gT3IuLi5cclxuICAvL2FjY291bnROYW1lID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xyXG5cclxuICB1c2VyUGhvdG9zID0gaW5wdXQ8UGhvdG9JdGVtW10gfCB1bmRlZmluZWQ+KCk7XHJcbiAgc2l6ZSA9IGlucHV0KFwiMmVtXCIpO1xyXG4gIG5vdFJvdW5kID0gaW5wdXQoZmFsc2UpO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHs7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMudXNlcigpID09PSAnc3RyaW5nJykge1xyXG4gICAgICAvLyBEZXZlbG9wZXIgcGFzc2VkIGluIGFuIGFjY291bnQgbmFtZSBpbnN0ZWFkIG9mIGEgdXNlciBvYmplY3RcclxuICAgICAgLy8gV2UgbmVlZCB0byBkbyB0aGUgd29yayBvZiBnZXR0aW5nIHRoZSB1c2VyIG9iamVjdCBvdXJzZWx2ZXNcclxuICAgICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmdldFVzZXIodGhpcy51c2VyKCkgYXMgc3RyaW5nKVxyXG4gICAgICAgIC5zdWJzY3JpYmUodXNlciA9PiB0aGlzLl91c2VyID0gdXNlcik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl91c2VyID0gdGhpcy51c2VyKCkgYXMgQ2xlYXZlbGFuZFByaWNlVXNlcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGlmIChfdXNlcikge1xyXG4gIEBpZiAoKF91c2VyIHwgdXNlclBob3RvVXJsOnVzZXJQaG90b3MoKSB8IGFzeW5jKSkge1xyXG4gICAgPGltZ1xyXG4gICAgICBbc3JjXT1cIl91c2VyIHwgdXNlclBob3RvVXJsOnVzZXJQaG90b3MoKSB8IGFzeW5jXCJcclxuICAgICAgW3N0eWxlLndpZHRoXT1cInNpemUoKVwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHRdPVwic2l6ZSgpXCJcclxuICAgICAgW3N0eWxlLmJvcmRlci1yYWRpdXNdPVwibm90Um91bmQoKSA/ICdkZWZhdWx0JyA6ICcxMDAlJ1wiPlxyXG4gIH1cclxufVxyXG4iXX0=
@@ -234,11 +234,11 @@ class UserPhotoComponent {
234
234
  }
235
235
  }
236
236
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: UserPhotoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
237
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: UserPhotoComponent, selector: "user-photo", inputs: { user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: true, transformFunction: null }, userPhotos: { classPropertyName: "userPhotos", publicName: "userPhotos", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, notRound: { classPropertyName: "notRound", publicName: "notRound", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (_user) {\r\n @if ((_user | userPhotoUrl:userPhotos() | async)) {\r\n <img\r\n [src]=\"_user | userPhotoUrl:userPhotos() | async\"\r\n [style.width]=\"size\"\r\n [style.height]=\"size\"\r\n [style.border-radius]=\"notRound() ? 'default' : '100%'\">\r\n }\r\n}", styles: [""], dependencies: [{ kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: UserPhotoUrlPipe, name: "userPhotoUrl" }] }); }
237
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: UserPhotoComponent, selector: "user-photo", inputs: { user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: true, transformFunction: null }, userPhotos: { classPropertyName: "userPhotos", publicName: "userPhotos", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, notRound: { classPropertyName: "notRound", publicName: "notRound", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (_user) {\r\n @if ((_user | userPhotoUrl:userPhotos() | async)) {\r\n <img\r\n [src]=\"_user | userPhotoUrl:userPhotos() | async\"\r\n [style.width]=\"size()\"\r\n [style.height]=\"size()\"\r\n [style.border-radius]=\"notRound() ? 'default' : '100%'\">\r\n }\r\n}\r\n", styles: [""], dependencies: [{ kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: UserPhotoUrlPipe, name: "userPhotoUrl" }] }); }
238
238
  }
239
239
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: UserPhotoComponent, decorators: [{
240
240
  type: Component,
241
- args: [{ selector: 'user-photo', template: "@if (_user) {\r\n @if ((_user | userPhotoUrl:userPhotos() | async)) {\r\n <img\r\n [src]=\"_user | userPhotoUrl:userPhotos() | async\"\r\n [style.width]=\"size\"\r\n [style.height]=\"size\"\r\n [style.border-radius]=\"notRound() ? 'default' : '100%'\">\r\n }\r\n}" }]
241
+ args: [{ selector: 'user-photo', template: "@if (_user) {\r\n @if ((_user | userPhotoUrl:userPhotos() | async)) {\r\n <img\r\n [src]=\"_user | userPhotoUrl:userPhotos() | async\"\r\n [style.width]=\"size()\"\r\n [style.height]=\"size()\"\r\n [style.border-radius]=\"notRound() ? 'default' : '100%'\">\r\n }\r\n}\r\n" }]
242
242
  }] });
243
243
 
244
244
  class SharePointModule {
@@ -1 +1 @@
1
- {"version":3,"file":"cleavelandprice-ngx-lib-sharepoint.mjs","sources":["../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/model/service-config.ts","../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/services/sharepoint.service.ts","../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/pipes/user-photo-url.pipe.ts","../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/components/user-photo/user-photo.component.ts","../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/components/user-photo/user-photo.component.html","../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/sharepoint.module.ts","../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/cleavelandprice-ngx-lib-sharepoint.ts"],"sourcesContent":["import { ServiceConfig as NgxLibServiceConfig } from '@cleavelandprice/ngx-lib';\r\n\r\nexport class ServiceConfig extends NgxLibServiceConfig {\r\n usersEndpoint = '/sharepoint/users';\r\n listItemsEndpoint = '/sharepoint/listitems';\r\n username?: string;\r\n password?: string;\r\n photos = {\r\n site: 'https://sharepoint.cleavelandprice.com/digitaldisplay',\r\n list: 'Employee Thumbnail Photos',\r\n additionalPropertiesToRetrieve: [\r\n 'EncodedAbsUrl'\r\n ]\r\n };\r\n caching = {\r\n enabled: true,\r\n lifeMinutes: 720\r\n };\r\n logging = {\r\n dataCached: true,\r\n cachedDataReturned: true,\r\n freshDataReturned: true,\r\n cacheCleared: true\r\n };\r\n\r\n // See the comment in the library's main service-config.ts file for an explanation\r\n constructor(useSsl_or_customApiUrl: boolean | string = false) {\r\n super(useSsl_or_customApiUrl);\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\nimport { Observable, of } from 'rxjs';\r\n\r\nimport { CacheObject } from '../model/cache-object';\r\nimport { ListItem } from '../model/list-item';\r\nimport { ListItemsRequest } from '../model/list-items-request';\r\nimport { PhotoItem } from '../model/photo-item';\r\nimport { ServiceConfig } from '../model/service-config';\r\nimport { User } from '../model/user';\r\nimport { UserRequest } from '../model/user-request';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharePointService {\r\n //#region Services\r\n private config = inject(ServiceConfig, { optional: true }) ?? new ServiceConfig();\r\n private http = inject(HttpClient);\r\n //#endregion\r\n\r\n private cache: {\r\n users?: CacheObject<User>,\r\n photos?: CacheObject<PhotoItem>\r\n } | undefined;\r\n\r\n private defaultCacheLifeMinutes = 720;\r\n\r\n //#region Utilities\r\n private cacheExpired<T>(cache: CacheObject<T>): boolean {\r\n if (!cache) {\r\n return true;\r\n }\r\n\r\n const lifeMinutes = this.config?.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;\r\n const expiration = cache.lastUpdate.plus({ minutes: lifeMinutes});\r\n\r\n return DateTime.now() > expiration;\r\n }\r\n //#endregion\r\n\r\n //#region Initialization\r\n constructor() {\r\n this.configureCaching();\r\n this.configureLogging();\r\n }\r\n\r\n private configureCaching(): void {\r\n // If caching config is missing entirely, give it a default\r\n if (this.config) {\r\n this.config.caching = this.config?.caching ?? {\r\n enabled: false,\r\n lifeMinutes: this.defaultCacheLifeMinutes\r\n };\r\n }\r\n\r\n this.cache = {\r\n photos: undefined,\r\n users: undefined\r\n };\r\n }\r\n\r\n private configureLogging(): void {\r\n // If logging config is missing entirely, give it a default\r\n if (this.config) {\r\n this.config.logging = this.config.logging ?? {\r\n dataCached: false,\r\n cachedDataReturned: false,\r\n freshDataReturned: false,\r\n cacheCleared: false\r\n }\r\n }\r\n }\r\n //#endregion\r\n\r\n getListItems(request: ListItemsRequest): Observable<ListItem[]> {\r\n const apiUrl = this.config?.apiUrl;\r\n const endpoint = this.config?.listItemsEndpoint;\r\n\r\n return this.http.post<ListItem[]>(`${apiUrl}${endpoint}`, request);\r\n }\r\n\r\n getPhotos(): Observable<PhotoItem[]> {\r\n const request: ListItemsRequest = {\r\n username: this.config?.username,\r\n password: this.config?.password,\r\n site: this.config?.photos.site,\r\n list: this.config?.photos.list,\r\n additionalPropertiesToRetrieve: this.config?.photos.additionalPropertiesToRetrieve\r\n };\r\n\r\n const observable$ = this.getListItems(request) as Observable<PhotoItem[]>;\r\n\r\n if (this.config?.caching?.enabled) {\r\n if (this.cacheExpired<PhotoItem>(this.cache?.photos!)) {\r\n // Get the data and cache it\r\n observable$.subscribe(data => {\r\n this.cache!.photos = {\r\n data,\r\n lastUpdate: DateTime.now()\r\n };\r\n\r\n if (this.config?.logging?.dataCached) {\r\n const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;\r\n console.log(`Photos cached for ${lifeMinutes} minutes`);\r\n }\r\n });\r\n } else {\r\n // Cache exists and hasn't expired yet\r\n if (this.config.logging?.cachedDataReturned) {\r\n console.log('Returning cached photos');\r\n }\r\n\r\n return of(this.cache!.photos!.data);\r\n }\r\n }\r\n\r\n // Cache is either disabled or expired, return data from API\r\n if (this.config?.logging?.freshDataReturned) {\r\n console.log('Returning fresh photos');\r\n }\r\n\r\n return observable$;\r\n }\r\n\r\n getUsers(request: UserRequest, id?: number): Observable<User | User[]> {\r\n const apiUrl = this.config?.apiUrl;\r\n const endpoint = this.config?.usersEndpoint;\r\n \r\n const observable$ = this.http.post<User | User[]>(`${apiUrl}${endpoint}/${id ?? ''}`, request);\r\n\r\n //#region Single user\r\n if (id) {\r\n return observable$;\r\n }\r\n //#endregion\r\n\r\n //#region Multiple users\r\n if (this.config?.caching?.enabled) {\r\n if (this.cacheExpired<User>(this.cache!.users!)) {\r\n // Get the data and cache it\r\n observable$.subscribe(data => {\r\n this.cache!.users = {\r\n data: data as User[],\r\n lastUpdate: DateTime.now()\r\n };\r\n\r\n if (this.config?.logging?.dataCached) {\r\n const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;\r\n console.log(`Users cached for ${lifeMinutes} minutes`);\r\n }\r\n });\r\n } else {\r\n // Cache exists and hasn't expired yet\r\n if (this.config.logging?.cachedDataReturned) {\r\n console.log('Returning cached users');\r\n }\r\n\r\n return of(this.cache!.users!.data);\r\n }\r\n }\r\n\r\n // Cache is either disabled or expired, return data from API\r\n if (this.config?.logging?.freshDataReturned) {\r\n console.log('Returning fresh users');\r\n }\r\n\r\n return observable$;\r\n //#endregion\r\n }\r\n\r\n clearCache(): void {\r\n this.cache = undefined;\r\n\r\n if (this.config?.logging?.cacheCleared) {\r\n console.log('Cache cleared');\r\n }\r\n }\r\n}","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { CleavelandPriceUser } from '@cleavelandprice/ngx-lib/active-directory';\r\nimport { map, of } from 'rxjs';\r\nimport { PhotoItem } from '../model/photo-item';\r\nimport { SharePointService } from '../services/sharepoint.service';\r\n\r\n@Pipe({\r\n name: 'userPhotoUrl'\r\n})\r\nexport class UserPhotoUrlPipe implements PipeTransform {\r\n private sharePointService = inject(SharePointService);\r\n\r\n transform(user: CleavelandPriceUser, userPhotos?: PhotoItem[]): any {\r\n const observable$ = userPhotos ? of(userPhotos) : this.sharePointService.getPhotos();\r\n\r\n return observable$\r\n .pipe(\r\n map(photos =>\r\n photos.find(pic =>\r\n // Try to match by employeeNumber, accountName, or title\r\n (pic.employeeNumber && user.employeeNumber && +pic.employeeNumber === +user.employeeNumber) ||\r\n (pic.accountName && pic.accountName.toLowerCase() === user.sAMAccountName.toLowerCase()) ||\r\n (pic.title && pic.title.toLowerCase() === user.displayName.toLowerCase())\r\n )?.encodedAbsUrl\r\n )\r\n );\r\n\r\n /*const photo = photos\r\n .find(pic =>\r\n (pic.employeeNumber && user.employeeNumber && +pic.employeeNumber === +user.employeeNumber) ||\r\n (pic.accountName && pic.accountName.toLowerCase() === user.sAMAccountName.toLowerCase()) ||\r\n (pic.title && pic.title.toLowerCase() === user.displayName.toLowerCase()));\r\n\r\n if (!photo) {\r\n console.log(`No photo match for ${user.displayName}`);\r\n }\r\n\r\n return photo ? photo.encodedAbsUrl : null;*/\r\n }\r\n}","import { Component, inject, input, OnInit } from '@angular/core';\r\nimport { ActiveDirectoryService, CleavelandPriceUser } from '@cleavelandprice/ngx-lib/active-directory';\r\nimport { PhotoItem } from '../../model/photo-item';\r\n\r\n@Component({\r\n selector: 'user-photo',\r\n templateUrl: './user-photo.component.html',\r\n styleUrls: ['./user-photo.component.css']\r\n})\r\nexport class UserPhotoComponent implements OnInit {\r\n private activeDirectoryService = inject(ActiveDirectoryService);\r\n\r\n user = input.required<CleavelandPriceUser | string>();\r\n protected _user!: CleavelandPriceUser;\r\n\r\n //employee = input<CleavelandPriceUser | undefined>();\r\n // Or...\r\n //accountName = input<string | undefined>();\r\n\r\n userPhotos = input<PhotoItem[] | undefined>();\r\n size = input(\"2em\");\r\n notRound = input(false);\r\n\r\n ngOnInit(): void {;\r\n if (typeof this.user() === 'string') {\r\n // Developer passed in an account name instead of a user object\r\n // We need to do the work of getting the user object ourselves\r\n this.activeDirectoryService.getUser(this.user() as string)\r\n .subscribe(user => this._user = user);\r\n } else {\r\n this._user = this.user() as CleavelandPriceUser;\r\n }\r\n }\r\n}","@if (_user) {\r\n @if ((_user | userPhotoUrl:userPhotos() | async)) {\r\n <img\r\n [src]=\"_user | userPhotoUrl:userPhotos() | async\"\r\n [style.width]=\"size\"\r\n [style.height]=\"size\"\r\n [style.border-radius]=\"notRound() ? 'default' : '100%'\">\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\n\r\nimport { UserPhotoComponent } from './components/user-photo/user-photo.component';\r\nimport { ServiceConfig } from './model/service-config';\r\nimport { UserPhotoUrlPipe } from './pipes/user-photo-url.pipe';\r\nimport { SharePointService } from './services/sharepoint.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n UserPhotoUrlPipe,\r\n UserPhotoComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n UserPhotoUrlPipe,\r\n UserPhotoComponent\r\n ]\r\n})\r\nexport class SharePointModule {\r\n static forRoot(config: ServiceConfig): ModuleWithProviders<SharePointModule> {\r\n return {\r\n ngModule: SharePointModule,\r\n providers: [\r\n SharePointService,\r\n { provide: ServiceConfig, useValue: config }\r\n ]\r\n };\r\n }\r\n\r\n constructor(@Optional() @SkipSelf() parentModule: SharePointModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'SharePointModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["NgxLibServiceConfig","i2.UserPhotoUrlPipe"],"mappings":"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"}
1
+ {"version":3,"file":"cleavelandprice-ngx-lib-sharepoint.mjs","sources":["../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/model/service-config.ts","../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/services/sharepoint.service.ts","../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/pipes/user-photo-url.pipe.ts","../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/components/user-photo/user-photo.component.ts","../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/components/user-photo/user-photo.component.html","../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/sharepoint.module.ts","../../../../projects/cleavelandprice/ngx-lib/sharepoint/src/cleavelandprice-ngx-lib-sharepoint.ts"],"sourcesContent":["import { ServiceConfig as NgxLibServiceConfig } from '@cleavelandprice/ngx-lib';\r\n\r\nexport class ServiceConfig extends NgxLibServiceConfig {\r\n usersEndpoint = '/sharepoint/users';\r\n listItemsEndpoint = '/sharepoint/listitems';\r\n username?: string;\r\n password?: string;\r\n photos = {\r\n site: 'https://sharepoint.cleavelandprice.com/digitaldisplay',\r\n list: 'Employee Thumbnail Photos',\r\n additionalPropertiesToRetrieve: [\r\n 'EncodedAbsUrl'\r\n ]\r\n };\r\n caching = {\r\n enabled: true,\r\n lifeMinutes: 720\r\n };\r\n logging = {\r\n dataCached: true,\r\n cachedDataReturned: true,\r\n freshDataReturned: true,\r\n cacheCleared: true\r\n };\r\n\r\n // See the comment in the library's main service-config.ts file for an explanation\r\n constructor(useSsl_or_customApiUrl: boolean | string = false) {\r\n super(useSsl_or_customApiUrl);\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\nimport { Observable, of } from 'rxjs';\r\n\r\nimport { CacheObject } from '../model/cache-object';\r\nimport { ListItem } from '../model/list-item';\r\nimport { ListItemsRequest } from '../model/list-items-request';\r\nimport { PhotoItem } from '../model/photo-item';\r\nimport { ServiceConfig } from '../model/service-config';\r\nimport { User } from '../model/user';\r\nimport { UserRequest } from '../model/user-request';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharePointService {\r\n //#region Services\r\n private config = inject(ServiceConfig, { optional: true }) ?? new ServiceConfig();\r\n private http = inject(HttpClient);\r\n //#endregion\r\n\r\n private cache: {\r\n users?: CacheObject<User>,\r\n photos?: CacheObject<PhotoItem>\r\n } | undefined;\r\n\r\n private defaultCacheLifeMinutes = 720;\r\n\r\n //#region Utilities\r\n private cacheExpired<T>(cache: CacheObject<T>): boolean {\r\n if (!cache) {\r\n return true;\r\n }\r\n\r\n const lifeMinutes = this.config?.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;\r\n const expiration = cache.lastUpdate.plus({ minutes: lifeMinutes});\r\n\r\n return DateTime.now() > expiration;\r\n }\r\n //#endregion\r\n\r\n //#region Initialization\r\n constructor() {\r\n this.configureCaching();\r\n this.configureLogging();\r\n }\r\n\r\n private configureCaching(): void {\r\n // If caching config is missing entirely, give it a default\r\n if (this.config) {\r\n this.config.caching = this.config?.caching ?? {\r\n enabled: false,\r\n lifeMinutes: this.defaultCacheLifeMinutes\r\n };\r\n }\r\n\r\n this.cache = {\r\n photos: undefined,\r\n users: undefined\r\n };\r\n }\r\n\r\n private configureLogging(): void {\r\n // If logging config is missing entirely, give it a default\r\n if (this.config) {\r\n this.config.logging = this.config.logging ?? {\r\n dataCached: false,\r\n cachedDataReturned: false,\r\n freshDataReturned: false,\r\n cacheCleared: false\r\n }\r\n }\r\n }\r\n //#endregion\r\n\r\n getListItems(request: ListItemsRequest): Observable<ListItem[]> {\r\n const apiUrl = this.config?.apiUrl;\r\n const endpoint = this.config?.listItemsEndpoint;\r\n\r\n return this.http.post<ListItem[]>(`${apiUrl}${endpoint}`, request);\r\n }\r\n\r\n getPhotos(): Observable<PhotoItem[]> {\r\n const request: ListItemsRequest = {\r\n username: this.config?.username,\r\n password: this.config?.password,\r\n site: this.config?.photos.site,\r\n list: this.config?.photos.list,\r\n additionalPropertiesToRetrieve: this.config?.photos.additionalPropertiesToRetrieve\r\n };\r\n\r\n const observable$ = this.getListItems(request) as Observable<PhotoItem[]>;\r\n\r\n if (this.config?.caching?.enabled) {\r\n if (this.cacheExpired<PhotoItem>(this.cache?.photos!)) {\r\n // Get the data and cache it\r\n observable$.subscribe(data => {\r\n this.cache!.photos = {\r\n data,\r\n lastUpdate: DateTime.now()\r\n };\r\n\r\n if (this.config?.logging?.dataCached) {\r\n const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;\r\n console.log(`Photos cached for ${lifeMinutes} minutes`);\r\n }\r\n });\r\n } else {\r\n // Cache exists and hasn't expired yet\r\n if (this.config.logging?.cachedDataReturned) {\r\n console.log('Returning cached photos');\r\n }\r\n\r\n return of(this.cache!.photos!.data);\r\n }\r\n }\r\n\r\n // Cache is either disabled or expired, return data from API\r\n if (this.config?.logging?.freshDataReturned) {\r\n console.log('Returning fresh photos');\r\n }\r\n\r\n return observable$;\r\n }\r\n\r\n getUsers(request: UserRequest, id?: number): Observable<User | User[]> {\r\n const apiUrl = this.config?.apiUrl;\r\n const endpoint = this.config?.usersEndpoint;\r\n \r\n const observable$ = this.http.post<User | User[]>(`${apiUrl}${endpoint}/${id ?? ''}`, request);\r\n\r\n //#region Single user\r\n if (id) {\r\n return observable$;\r\n }\r\n //#endregion\r\n\r\n //#region Multiple users\r\n if (this.config?.caching?.enabled) {\r\n if (this.cacheExpired<User>(this.cache!.users!)) {\r\n // Get the data and cache it\r\n observable$.subscribe(data => {\r\n this.cache!.users = {\r\n data: data as User[],\r\n lastUpdate: DateTime.now()\r\n };\r\n\r\n if (this.config?.logging?.dataCached) {\r\n const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;\r\n console.log(`Users cached for ${lifeMinutes} minutes`);\r\n }\r\n });\r\n } else {\r\n // Cache exists and hasn't expired yet\r\n if (this.config.logging?.cachedDataReturned) {\r\n console.log('Returning cached users');\r\n }\r\n\r\n return of(this.cache!.users!.data);\r\n }\r\n }\r\n\r\n // Cache is either disabled or expired, return data from API\r\n if (this.config?.logging?.freshDataReturned) {\r\n console.log('Returning fresh users');\r\n }\r\n\r\n return observable$;\r\n //#endregion\r\n }\r\n\r\n clearCache(): void {\r\n this.cache = undefined;\r\n\r\n if (this.config?.logging?.cacheCleared) {\r\n console.log('Cache cleared');\r\n }\r\n }\r\n}","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { CleavelandPriceUser } from '@cleavelandprice/ngx-lib/active-directory';\r\nimport { map, of } from 'rxjs';\r\nimport { PhotoItem } from '../model/photo-item';\r\nimport { SharePointService } from '../services/sharepoint.service';\r\n\r\n@Pipe({\r\n name: 'userPhotoUrl'\r\n})\r\nexport class UserPhotoUrlPipe implements PipeTransform {\r\n private sharePointService = inject(SharePointService);\r\n\r\n transform(user: CleavelandPriceUser, userPhotos?: PhotoItem[]): any {\r\n const observable$ = userPhotos ? of(userPhotos) : this.sharePointService.getPhotos();\r\n\r\n return observable$\r\n .pipe(\r\n map(photos =>\r\n photos.find(pic =>\r\n // Try to match by employeeNumber, accountName, or title\r\n (pic.employeeNumber && user.employeeNumber && +pic.employeeNumber === +user.employeeNumber) ||\r\n (pic.accountName && pic.accountName.toLowerCase() === user.sAMAccountName.toLowerCase()) ||\r\n (pic.title && pic.title.toLowerCase() === user.displayName.toLowerCase())\r\n )?.encodedAbsUrl\r\n )\r\n );\r\n\r\n /*const photo = photos\r\n .find(pic =>\r\n (pic.employeeNumber && user.employeeNumber && +pic.employeeNumber === +user.employeeNumber) ||\r\n (pic.accountName && pic.accountName.toLowerCase() === user.sAMAccountName.toLowerCase()) ||\r\n (pic.title && pic.title.toLowerCase() === user.displayName.toLowerCase()));\r\n\r\n if (!photo) {\r\n console.log(`No photo match for ${user.displayName}`);\r\n }\r\n\r\n return photo ? photo.encodedAbsUrl : null;*/\r\n }\r\n}","import { Component, inject, input, OnInit } from '@angular/core';\r\nimport { ActiveDirectoryService, CleavelandPriceUser } from '@cleavelandprice/ngx-lib/active-directory';\r\nimport { PhotoItem } from '../../model/photo-item';\r\n\r\n@Component({\r\n selector: 'user-photo',\r\n templateUrl: './user-photo.component.html',\r\n styleUrls: ['./user-photo.component.css']\r\n})\r\nexport class UserPhotoComponent implements OnInit {\r\n private activeDirectoryService = inject(ActiveDirectoryService);\r\n\r\n user = input.required<CleavelandPriceUser | string>();\r\n protected _user!: CleavelandPriceUser;\r\n\r\n //employee = input<CleavelandPriceUser | undefined>();\r\n // Or...\r\n //accountName = input<string | undefined>();\r\n\r\n userPhotos = input<PhotoItem[] | undefined>();\r\n size = input(\"2em\");\r\n notRound = input(false);\r\n\r\n ngOnInit(): void {;\r\n if (typeof this.user() === 'string') {\r\n // Developer passed in an account name instead of a user object\r\n // We need to do the work of getting the user object ourselves\r\n this.activeDirectoryService.getUser(this.user() as string)\r\n .subscribe(user => this._user = user);\r\n } else {\r\n this._user = this.user() as CleavelandPriceUser;\r\n }\r\n }\r\n}\r\n","@if (_user) {\r\n @if ((_user | userPhotoUrl:userPhotos() | async)) {\r\n <img\r\n [src]=\"_user | userPhotoUrl:userPhotos() | async\"\r\n [style.width]=\"size()\"\r\n [style.height]=\"size()\"\r\n [style.border-radius]=\"notRound() ? 'default' : '100%'\">\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\n\r\nimport { UserPhotoComponent } from './components/user-photo/user-photo.component';\r\nimport { ServiceConfig } from './model/service-config';\r\nimport { UserPhotoUrlPipe } from './pipes/user-photo-url.pipe';\r\nimport { SharePointService } from './services/sharepoint.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n UserPhotoUrlPipe,\r\n UserPhotoComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n UserPhotoUrlPipe,\r\n UserPhotoComponent\r\n ]\r\n})\r\nexport class SharePointModule {\r\n static forRoot(config: ServiceConfig): ModuleWithProviders<SharePointModule> {\r\n return {\r\n ngModule: SharePointModule,\r\n providers: [\r\n SharePointService,\r\n { provide: ServiceConfig, useValue: config }\r\n ]\r\n };\r\n }\r\n\r\n constructor(@Optional() @SkipSelf() parentModule: SharePointModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'SharePointModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["NgxLibServiceConfig","i2.UserPhotoUrlPipe"],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "comment": "NGX-LIB primary entry point package.json",
3
3
  "name": "@cleavelandprice/ngx-lib",
4
- "version": "3.13.0",
5
- "description": "Angular 15+ library providing foundational functionality to Cleaveland-Price applications",
4
+ "version": "3.14.1",
5
+ "description": "Angular library providing foundational functionality to Cleaveland-Price applications",
6
6
  "peerDependencies": {
7
- "@angular/common": "^17.1.2",
8
- "@angular/core": "^17.1.2"
7
+ "@angular/common": "^17.3.0",
8
+ "@angular/core": "^17.3.0"
9
9
  },
10
10
  "dependencies": {
11
11
  "tslib": "^2.3.0"
@@ -58,36 +58,36 @@
58
58
  "esm": "./esm2022/msgraph/cleavelandprice-ngx-lib-msgraph.mjs",
59
59
  "default": "./fesm2022/cleavelandprice-ngx-lib-msgraph.mjs"
60
60
  },
61
- "./sharepoint": {
62
- "types": "./sharepoint/index.d.ts",
63
- "esm2022": "./esm2022/sharepoint/cleavelandprice-ngx-lib-sharepoint.mjs",
64
- "esm": "./esm2022/sharepoint/cleavelandprice-ngx-lib-sharepoint.mjs",
65
- "default": "./fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs"
66
- },
67
61
  "./quill": {
68
62
  "types": "./quill/index.d.ts",
69
63
  "esm2022": "./esm2022/quill/cleavelandprice-ngx-lib-quill.mjs",
70
64
  "esm": "./esm2022/quill/cleavelandprice-ngx-lib-quill.mjs",
71
65
  "default": "./fesm2022/cleavelandprice-ngx-lib-quill.mjs"
72
66
  },
67
+ "./sharepoint": {
68
+ "types": "./sharepoint/index.d.ts",
69
+ "esm2022": "./esm2022/sharepoint/cleavelandprice-ngx-lib-sharepoint.mjs",
70
+ "esm": "./esm2022/sharepoint/cleavelandprice-ngx-lib-sharepoint.mjs",
71
+ "default": "./fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs"
72
+ },
73
73
  "./upload": {
74
74
  "types": "./upload/index.d.ts",
75
75
  "esm2022": "./esm2022/upload/cleavelandprice-ngx-lib-upload.mjs",
76
76
  "esm": "./esm2022/upload/cleavelandprice-ngx-lib-upload.mjs",
77
77
  "default": "./fesm2022/cleavelandprice-ngx-lib-upload.mjs"
78
78
  },
79
- "./url-utilities": {
80
- "types": "./url-utilities/index.d.ts",
81
- "esm2022": "./esm2022/url-utilities/cleavelandprice-ngx-lib-url-utilities.mjs",
82
- "esm": "./esm2022/url-utilities/cleavelandprice-ngx-lib-url-utilities.mjs",
83
- "default": "./fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs"
84
- },
85
79
  "./table": {
86
80
  "types": "./table/index.d.ts",
87
81
  "esm2022": "./esm2022/table/cleavelandprice-ngx-lib-table.mjs",
88
82
  "esm": "./esm2022/table/cleavelandprice-ngx-lib-table.mjs",
89
83
  "default": "./fesm2022/cleavelandprice-ngx-lib-table.mjs"
90
84
  },
85
+ "./url-utilities": {
86
+ "types": "./url-utilities/index.d.ts",
87
+ "esm2022": "./esm2022/url-utilities/cleavelandprice-ngx-lib-url-utilities.mjs",
88
+ "esm": "./esm2022/url-utilities/cleavelandprice-ngx-lib-url-utilities.mjs",
89
+ "default": "./fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs"
90
+ },
91
91
  "./active-directory/gui": {
92
92
  "types": "./active-directory/gui/index.d.ts",
93
93
  "esm2022": "./esm2022/active-directory/gui/cleavelandprice-ngx-lib-active-directory-gui.mjs",