@ng-atomic/common 17.8.0 → 17.10.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.
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
30
30
  type: Pipe,
31
31
  args: [{ name: 'smartField', standalone: true, pure: true }]
32
32
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmllbGQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvcGlwZXMvc21hcnQtZmllbGQvc21hcnQtZmllbGQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBeUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3BGLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQzs7QUFtSDdCLGtCQUFrQjtBQUNsQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWUsK0JBQStCLENBQUMsQ0FBQztBQUVoRyxrQkFBa0I7QUFDbEIsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFVBQThCO0lBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ2pELENBQUM7QUFJRCxrQkFBa0I7QUFDbEIsTUFBTSxVQUFVLFlBQVksQ0FBSSxLQUFjO0lBQzVDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUMsQ0FBYyxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUVELGtCQUFrQjtBQUVsQixNQUFNLE9BQU8sY0FBYztJQUQzQjtRQUVZLFFBQUcsR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLElBQUk7WUFDMUQsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUMzQixTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQzNCLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7U0FDNUIsQ0FBQztLQUtIO0lBSEMsU0FBUyxDQUFDLEdBQVcsRUFBRSxNQUFvQixJQUFJLENBQUMsR0FBRztRQUNqRCxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLENBQUM7SUFDMUMsQ0FBQzs4R0FUVSxjQUFjOzRHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBTaWduYWwsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQG5nLWF0b21pYy9jb3JlJztcbmltcG9ydCB7IFNpZ25hbE9yVmFsdWUgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9waXBlcy9zaWduYWwnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2guZ2V0JztcblxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbjxUPiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IFQ7XG59XG5cbmludGVyZmFjZSBCYXNlRmllbGQge1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgaGludD86IFNpZ25hbE9yVmFsdWU8c3RyaW5nPjtcbiAgYWN0aW9ucz86IEFjdGlvbltdIHwgU2lnbmFsPEFjdGlvbltdPjtcbn1cblxuaW50ZXJmYWNlIFRleHRGaWVsZCBleHRlbmRzIEJhc2VGaWVsZCB7XG4gIHR5cGU6ICd0ZXh0JztcbiAgYXV0b0NvbXBsZXRlPzogU2lnbmFsT3JWYWx1ZTxzdHJpbmdbXT47XG59XG5cbmludGVyZmFjZSBQYXNzd29yZEZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ3Bhc3N3b3JkJztcbn1cblxuaW50ZXJmYWNlIE51bWJlckZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ251bWJlcic7XG59XG5cbmludGVyZmFjZSBUZXh0YXJlYUZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ3RleHRhcmVhJztcbiAgcm93cz86IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIERhdGVJbnB1dEZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ2RhdGUnO1xufVxuXG5pbnRlcmZhY2UgRGF0ZVJhbmdlSW5wdXRGaWVsZCBleHRlbmRzIEJhc2VGaWVsZCB7XG4gIHR5cGU6ICdkYXRlLXJhbmdlJztcbn1cblxuaW50ZXJmYWNlIFNlbGVjdEZpZWxkPFQ+IGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ3NlbGVjdCc7XG4gIG9wdGlvbnM6IE9wdGlvbjxUPltdIHwgU2lnbmFsPE9wdGlvbjxUPltdPjtcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgVGltZVJhbmdlRmllbGQgZXh0ZW5kcyBCYXNlRmllbGQge1xuICB0eXBlOiAndGltZS1yYW5nZSc7XG59XG5cbi8vKiBAZGVwcmVjYXRlZCB1c2UgbXVsdGlwbGUgb3B0aW9uICovXG5pbnRlcmZhY2UgTXVsdGlTZWxlY3RGaWVsZDxUPiBleHRlbmRzIEJhc2VGaWVsZCB7XG4gIHR5cGU6ICdtdWx0aS1zZWxlY3QnO1xuICBvcHRpb25zOiBPcHRpb248VD5bXSB8IFNpZ25hbDxPcHRpb248VD5bXT47XG59XG5cbmludGVyZmFjZSBGaWxlRmllbGQgZXh0ZW5kcyBCYXNlRmllbGQge1xuICB0eXBlOiAnZmlsZSc7XG4gIHByb2dyZXNzPzogU2lnbmFsPG51bWJlciB8IG51bGw+O1xufVxuXG5pbnRlcmZhY2UgQWN0aW9uRmllbGQgZXh0ZW5kcyBCYXNlRmllbGQge1xuICB0eXBlOiAnYWN0aW9uJztcbiAgYWN0aW9uczogQWN0aW9uW10gfCBTaWduYWw8QWN0aW9uW10+O1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBBZ3JlZW1lbnRGaWVsZCB7XG4gIHR5cGU6ICdhZ3JlZW1lbnQnO1xuICBsYWJlbFRlbXA6IG51bGwgfCBhbnk7XG59XG5cbmludGVyZmFjZSBTbGlkZXJGaWVsZCBleHRlbmRzIEJhc2VGaWVsZCB7XG4gIHR5cGU6ICdzbGlkZXInO1xuICBzbGlkZXI6IHtcbiAgICBtaW4/OiBudW1iZXI7XG4gICAgbWF4PzogbnVtYmVyO1xuICAgIHN0ZXA/OiBudW1iZXI7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEhpZGRlbkZpZWxkIHtcbiAgdHlwZTogJ2hpZGRlbic7XG59XG5cbmludGVyZmFjZSBQcmV2aWV3RmllbGQgZXh0ZW5kcyBCYXNlRmllbGQge1xuICB0eXBlOiAncHJldmlldyc7XG59XG5cbmludGVyZmFjZSBQcmV2aWV3SW1hZ2VGaWVsZCBleHRlbmRzIEJhc2VGaWVsZCB7XG4gIHR5cGU6ICdwcmV2aWV3OmltYWdlJztcbn1cblxuZXhwb3J0IHR5cGUgRm9ybUZpZWxkPFYgPSBhbnk+ID0gXG4gIHwgVGV4dEZpZWxkXG4gIHwgUGFzc3dvcmRGaWVsZFxuICB8IFRleHRhcmVhRmllbGRcbiAgfCBEYXRlSW5wdXRGaWVsZFxuICB8IERhdGVSYW5nZUlucHV0RmllbGRcbiAgfCBTZWxlY3RGaWVsZDxWPlxuICB8IFRpbWVSYW5nZUZpZWxkXG4gIHwgTXVsdGlTZWxlY3RGaWVsZDxWPlxuICB8IEZpbGVGaWVsZFxuICB8IEFjdGlvbkZpZWxkXG4gIHwgSGlkZGVuRmllbGRcbiAgfCBOdW1iZXJGaWVsZFxuICB8IFByZXZpZXdGaWVsZFxuICB8IEFncmVlbWVudEZpZWxkXG4gIHwgU2xpZGVyRmllbGRcbiAgfCBQcmV2aWV3SW1hZ2VGaWVsZDtcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtRmllbGRNYXAge1xuICBba2V5OiBzdHJpbmddOiBGb3JtRmllbGQ8YW55PiB8IEZvcm1GaWVsZE1hcDtcbn1cblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgY29uc3QgRk9STV9GSUVMRF9NQVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48Rm9ybUZpZWxkTWFwPignW0BuZy1hdG9taWNdIFNtYXJ0IEZvcm0gRmllbGQnKTtcblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUZvcm1GaWVsZE1hcCh1c2VGYWN0b3J5OiAoKSA9PiBGb3JtRmllbGRNYXApIHtcbiAgcmV0dXJuIHsgcHJvdmlkZTogRk9STV9GSUVMRF9NQVAsIHVzZUZhY3RvcnkgfTtcbn1cblxudHlwZSBFbnVtPFQ+ID0gUmVjb3JkPHN0cmluZywgVD47XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkT3B0aW9uczxUPihfZW51bTogRW51bTxUPik6IE9wdGlvbjxUPltdIHtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoX2VudW0pLm1hcCh2YWx1ZSA9PiAoe3ZhbHVlLCBuYW1lOiB2YWx1ZX0pIGFzIE9wdGlvbjxUPik7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuQFBpcGUoe25hbWU6ICdzbWFydEZpZWxkJywgc3RhbmRhbG9uZTogdHJ1ZSwgcHVyZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgU21hcnRGaWVsZFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJvdGVjdGVkIG1hcCA9IGluamVjdChGT1JNX0ZJRUxEX01BUCwge29wdGlvbmFsOiB0cnVlfSkgPz8ge1xuICAgIGNyZWF0ZWRBdDogeyB0eXBlOiAnZGF0ZScgfSxcbiAgICB1cGRhdGVkQXQ6IHsgdHlwZTogJ2RhdGUnIH0sXG4gICAgZGVsZXRlZEF0OiB7IHR5cGU6ICdkYXRlJyB9LFxuICB9O1xuXG4gIHRyYW5zZm9ybShrZXk6IHN0cmluZywgbWFwOiBGb3JtRmllbGRNYXAgPSB0aGlzLm1hcCk6IEZvcm1GaWVsZDxhbnk+IHtcbiAgICByZXR1cm4gZ2V0KG1hcCwga2V5KSA/PyB7dHlwZTogJ2lucHV0J307XG4gIH1cbn1cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmllbGQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvcGlwZXMvc21hcnQtZmllbGQvc21hcnQtZmllbGQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBeUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3BGLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQzs7QUFvSDdCLGtCQUFrQjtBQUNsQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWUsK0JBQStCLENBQUMsQ0FBQztBQUVoRyxrQkFBa0I7QUFDbEIsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFVBQThCO0lBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ2pELENBQUM7QUFJRCxrQkFBa0I7QUFDbEIsTUFBTSxVQUFVLFlBQVksQ0FBSSxLQUFjO0lBQzVDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUMsQ0FBYyxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUVELGtCQUFrQjtBQUVsQixNQUFNLE9BQU8sY0FBYztJQUQzQjtRQUVZLFFBQUcsR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLElBQUk7WUFDMUQsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUMzQixTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQzNCLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7U0FDNUIsQ0FBQztLQUtIO0lBSEMsU0FBUyxDQUFDLEdBQVcsRUFBRSxNQUFvQixJQUFJLENBQUMsR0FBRztRQUNqRCxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLENBQUM7SUFDMUMsQ0FBQzs4R0FUVSxjQUFjOzRHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBTaWduYWwsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQG5nLWF0b21pYy9jb3JlJztcbmltcG9ydCB7IFNpZ25hbE9yVmFsdWUgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9waXBlcy9zaWduYWwnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2guZ2V0JztcblxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbjxUPiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IFQ7XG59XG5cbmludGVyZmFjZSBCYXNlRmllbGQge1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgaGludD86IFNpZ25hbE9yVmFsdWU8c3RyaW5nPjtcbiAgYWN0aW9ucz86IEFjdGlvbltdIHwgU2lnbmFsPEFjdGlvbltdPjtcbn1cblxuaW50ZXJmYWNlIFRleHRGaWVsZCBleHRlbmRzIEJhc2VGaWVsZCB7XG4gIHR5cGU6ICd0ZXh0JztcbiAgYXV0b0NvbXBsZXRlPzogU2lnbmFsT3JWYWx1ZTxzdHJpbmdbXT47XG59XG5cbmludGVyZmFjZSBQYXNzd29yZEZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ3Bhc3N3b3JkJztcbn1cblxuaW50ZXJmYWNlIE51bWJlckZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ251bWJlcic7XG59XG5cbmludGVyZmFjZSBUZXh0YXJlYUZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ3RleHRhcmVhJztcbiAgcm93cz86IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIERhdGVJbnB1dEZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ2RhdGUnO1xufVxuXG5pbnRlcmZhY2UgRGF0ZVJhbmdlSW5wdXRGaWVsZCBleHRlbmRzIEJhc2VGaWVsZCB7XG4gIHR5cGU6ICdkYXRlLXJhbmdlJztcbn1cblxuaW50ZXJmYWNlIFNlbGVjdEZpZWxkPFQ+IGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ3NlbGVjdCc7XG4gIG9wdGlvbnM6IE9wdGlvbjxUPltdIHwgU2lnbmFsPE9wdGlvbjxUPltdPjtcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgVGltZVJhbmdlRmllbGQgZXh0ZW5kcyBCYXNlRmllbGQge1xuICB0eXBlOiAndGltZS1yYW5nZSc7XG59XG5cbi8vKiBAZGVwcmVjYXRlZCB1c2UgbXVsdGlwbGUgb3B0aW9uICovXG5pbnRlcmZhY2UgTXVsdGlTZWxlY3RGaWVsZDxUPiBleHRlbmRzIEJhc2VGaWVsZCB7XG4gIHR5cGU6ICdtdWx0aS1zZWxlY3QnO1xuICBvcHRpb25zOiBPcHRpb248VD5bXSB8IFNpZ25hbDxPcHRpb248VD5bXT47XG59XG5cbmludGVyZmFjZSBGaWxlRmllbGQgZXh0ZW5kcyBCYXNlRmllbGQge1xuICB0eXBlOiAnZmlsZSc7XG4gIHByb2dyZXNzPzogU2lnbmFsPG51bWJlciB8IG51bGw+O1xufVxuXG5pbnRlcmZhY2UgQWN0aW9uRmllbGQgZXh0ZW5kcyBCYXNlRmllbGQge1xuICB0eXBlOiAnYWN0aW9uJztcbiAgYWN0aW9uczogQWN0aW9uW10gfCBTaWduYWw8QWN0aW9uW10+O1xuICBidXR0b25UeXBlPzogJ2ZsYXQnIHwgJ3JhaXNlZCcgfCAnc3Ryb2tlZCcgfCAnaWNvbic7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIEFncmVlbWVudEZpZWxkIHtcbiAgdHlwZTogJ2FncmVlbWVudCc7XG4gIGxhYmVsVGVtcDogbnVsbCB8IGFueTtcbn1cblxuaW50ZXJmYWNlIFNsaWRlckZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ3NsaWRlcic7XG4gIHNsaWRlcjoge1xuICAgIG1pbj86IG51bWJlcjtcbiAgICBtYXg/OiBudW1iZXI7XG4gICAgc3RlcD86IG51bWJlcjtcbiAgfVxufVxuXG5pbnRlcmZhY2UgSGlkZGVuRmllbGQge1xuICB0eXBlOiAnaGlkZGVuJztcbn1cblxuaW50ZXJmYWNlIFByZXZpZXdGaWVsZCBleHRlbmRzIEJhc2VGaWVsZCB7XG4gIHR5cGU6ICdwcmV2aWV3Jztcbn1cblxuaW50ZXJmYWNlIFByZXZpZXdJbWFnZUZpZWxkIGV4dGVuZHMgQmFzZUZpZWxkIHtcbiAgdHlwZTogJ3ByZXZpZXc6aW1hZ2UnO1xufVxuXG5leHBvcnQgdHlwZSBGb3JtRmllbGQ8ViA9IGFueT4gPSBcbiAgfCBUZXh0RmllbGRcbiAgfCBQYXNzd29yZEZpZWxkXG4gIHwgVGV4dGFyZWFGaWVsZFxuICB8IERhdGVJbnB1dEZpZWxkXG4gIHwgRGF0ZVJhbmdlSW5wdXRGaWVsZFxuICB8IFNlbGVjdEZpZWxkPFY+XG4gIHwgVGltZVJhbmdlRmllbGRcbiAgfCBNdWx0aVNlbGVjdEZpZWxkPFY+XG4gIHwgRmlsZUZpZWxkXG4gIHwgQWN0aW9uRmllbGRcbiAgfCBIaWRkZW5GaWVsZFxuICB8IE51bWJlckZpZWxkXG4gIHwgUHJldmlld0ZpZWxkXG4gIHwgQWdyZWVtZW50RmllbGRcbiAgfCBTbGlkZXJGaWVsZFxuICB8IFByZXZpZXdJbWFnZUZpZWxkO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1GaWVsZE1hcCB7XG4gIFtrZXk6IHN0cmluZ106IEZvcm1GaWVsZDxhbnk+IHwgRm9ybUZpZWxkTWFwO1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCBjb25zdCBGT1JNX0ZJRUxEX01BUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGb3JtRmllbGRNYXA+KCdbQG5nLWF0b21pY10gU21hcnQgRm9ybSBGaWVsZCcpO1xuXG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRm9ybUZpZWxkTWFwKHVzZUZhY3Rvcnk6ICgpID0+IEZvcm1GaWVsZE1hcCkge1xuICByZXR1cm4geyBwcm92aWRlOiBGT1JNX0ZJRUxEX01BUCwgdXNlRmFjdG9yeSB9O1xufVxuXG50eXBlIEVudW08VD4gPSBSZWNvcmQ8c3RyaW5nLCBUPjtcblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRPcHRpb25zPFQ+KF9lbnVtOiBFbnVtPFQ+KTogT3B0aW9uPFQ+W10ge1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhfZW51bSkubWFwKHZhbHVlID0+ICh7dmFsdWUsIG5hbWU6IHZhbHVlfSkgYXMgT3B0aW9uPFQ+KTtcbn1cblxuLyoqIEBkZXByZWNhdGVkICovXG5AUGlwZSh7bmFtZTogJ3NtYXJ0RmllbGQnLCBzdGFuZGFsb25lOiB0cnVlLCBwdXJlOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBTbWFydEZpZWxkUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcm90ZWN0ZWQgbWFwID0gaW5qZWN0KEZPUk1fRklFTERfTUFQLCB7b3B0aW9uYWw6IHRydWV9KSA/PyB7XG4gICAgY3JlYXRlZEF0OiB7IHR5cGU6ICdkYXRlJyB9LFxuICAgIHVwZGF0ZWRBdDogeyB0eXBlOiAnZGF0ZScgfSxcbiAgICBkZWxldGVkQXQ6IHsgdHlwZTogJ2RhdGUnIH0sXG4gIH07XG5cbiAgdHJhbnNmb3JtKGtleTogc3RyaW5nLCBtYXA6IEZvcm1GaWVsZE1hcCA9IHRoaXMubWFwKTogRm9ybUZpZWxkPGFueT4ge1xuICAgIHJldHVybiBnZXQobWFwLCBrZXkpID8/IHt0eXBlOiAnaW5wdXQnfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,30 @@
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { LoadingService } from '@ng-atomic/common/services/loading';
4
+ import { SideAppService } from '@ng-atomic/common/services/side-app';
5
+ import { SideNavModeService } from '@ng-atomic/common/services/side-nav-mode';
6
+ import { FabService } from '@ng-atomic/common/services/fab';
7
+ import { SnackBarService } from '@ng-atomic/common/services/snack-bar';
8
+ import { Clipboard } from '@angular/cdk/clipboard';
9
+ import * as i0 from "@angular/core";
10
+ export class AppService {
11
+ constructor() {
12
+ this.loading = inject(LoadingService);
13
+ this.sideApp = inject(SideAppService);
14
+ this.sideNavMode = inject(SideNavModeService);
15
+ this.sideNav = inject(SideNavModeService);
16
+ this.router = inject(Router);
17
+ this.fab = inject(FabService);
18
+ this.snackBar = inject(SnackBarService);
19
+ this.clipboard = inject(Clipboard);
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AppService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
22
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AppService, providedIn: 'root' }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AppService, decorators: [{
25
+ type: Injectable,
26
+ args: [{
27
+ providedIn: 'root'
28
+ }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2FwcC9hcHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFLbkQsTUFBTSxPQUFPLFVBQVU7SUFIdkI7UUFJVyxZQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pDLFlBQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN6QyxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixRQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUN4Qzs4R0FUWSxVQUFVO2tIQUFWLFVBQVUsY0FGVCxNQUFNOzsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vc2VydmljZXMvbG9hZGluZyc7XG5pbXBvcnQgeyBTaWRlQXBwU2VydmljZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3NpZGUtYXBwJztcbmltcG9ydCB7IFNpZGVOYXZNb2RlU2VydmljZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3NpZGUtbmF2LW1vZGUnO1xuaW1wb3J0IHsgRmFiU2VydmljZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL2ZhYic7XG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9zbmFjay1iYXInO1xuaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NsaXBib2FyZCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcFNlcnZpY2Uge1xuICByZWFkb25seSBsb2FkaW5nID0gaW5qZWN0KExvYWRpbmdTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgc2lkZUFwcCA9IGluamVjdChTaWRlQXBwU2VydmljZSk7XG4gIHJlYWRvbmx5IHNpZGVOYXZNb2RlID0gaW5qZWN0KFNpZGVOYXZNb2RlU2VydmljZSk7XG4gIHJlYWRvbmx5IHNpZGVOYXYgPSBpbmplY3QoU2lkZU5hdk1vZGVTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHJlYWRvbmx5IGZhYiA9IGluamVjdChGYWJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgc25hY2tCYXIgPSBpbmplY3QoU25hY2tCYXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgY2xpcGJvYXJkID0gaW5qZWN0KENsaXBib2FyZCk7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './app.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2FwcC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwLnNlcnZpY2UnO1xuXG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1hcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2FwcC9uZy1hdG9taWMtY29tbW9uLXNlcnZpY2VzLWFwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { Injectable, inject } from '@angular/core';
2
2
  import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
3
  import { Auth, authState, signInWithCustomToken, GoogleAuthProvider, TwitterAuthProvider, signInWithPopup, signOut, signInWithEmailAndPassword, createUserWithEmailAndPassword } from '@angular/fire/auth';
4
+ import { get } from 'lodash-es';
4
5
  import { distinctUntilChanged, map, of, shareReplay, switchMap } from 'rxjs';
5
6
  import * as i0 from "@angular/core";
6
7
  export class AuthService {
@@ -8,6 +9,7 @@ export class AuthService {
8
9
  this.#auth = inject(Auth);
9
10
  this.auth$ = authState(this.#auth);
10
11
  this.auth = toSignal(this.auth$);
12
+ this.customClaims$ = this.auth$.pipe(switchMap(auth => auth ? auth.getIdTokenResult() : of(null)), map(token => token?.claims ?? {}), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
11
13
  }
12
14
  #auth;
13
15
  signInWithTwitter() {
@@ -55,6 +57,9 @@ export function injectTwitterId$() {
55
57
  return inject(AuthService).auth$.pipe(map(auth => auth?.providerData?.[0]?.uid ?? null), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
56
58
  }
57
59
  export function injectClaim$(claim) {
58
- return inject(AuthService).auth$.pipe(switchMap(auth => auth ? auth?.getIdTokenResult() : of(null)), map(token => token?.claims?.[claim] ?? false), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
60
+ return inject(AuthService).customClaims$.pipe(map(token => claim ? get(token, claim) : token), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
59
61
  }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBa0IsMEJBQTBCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzTixPQUFPLEVBQWMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQTJCekYsTUFBTSxPQUFPLFdBQVc7SUFIeEI7UUFLRSxVQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLFVBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLFNBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBMkI3QjtJQTdCQyxLQUFLLENBQWdCO0lBSXJCLGlCQUFpQjtRQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUMzQyxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBb0IsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzFDLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELDBCQUEwQixDQUFDLEtBQWEsRUFBRSxRQUFnQjtRQUN4RCxPQUFPLDBCQUEwQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCw4QkFBOEIsQ0FBQyxLQUFhLEVBQUUsUUFBZ0I7UUFDNUQsT0FBTyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQscUJBQXFCLENBQUMsV0FBbUI7UUFDdkMsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBb0IsQ0FBQztJQUMzRSxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQTlCVSxXQUFXO2tIQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUFrQ0QsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlO0lBQzdCLE9BQU8sUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDbkMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFDOUIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUNkLGtCQUFrQixFQUFFLENBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVk7SUFDMUIsT0FBTyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNuQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxFQUNqRCxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2Qsa0JBQWtCLEVBQUUsQ0FDckIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFhLEtBQWE7SUFDcEQsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzdELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsRUFDN0Msb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUNkLGtCQUFrQixFQUFFLENBQ2QsQ0FBQztBQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBTaWduYWwsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwsIHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEF1dGgsIGF1dGhTdGF0ZSwgc2lnbkluV2l0aEN1c3RvbVRva2VuLCBHb29nbGVBdXRoUHJvdmlkZXIsIFR3aXR0ZXJBdXRoUHJvdmlkZXIsIHNpZ25JbldpdGhQb3B1cCwgc2lnbk91dCwgVXNlckNyZWRlbnRpYWwsIHNpZ25JbldpdGhFbWFpbEFuZFBhc3N3b3JkLCBjcmVhdGVVc2VyV2l0aEVtYWlsQW5kUGFzc3dvcmQgfSBmcm9tICdAYW5ndWxhci9maXJlL2F1dGgnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgb2YsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBUd2l0dGVyQ3JlZGVudGlhbCB7XG4gIGNvbnRleHQ6IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgZW1haWxWZXJpZmllZDogYm9vbGVhbjtcbiAgZXhwaXJlc0luOiBzdHJpbmc7XG4gIGZlZGVyYXRlZElkOiBzdHJpbmc7XG4gIGZ1bGxOYW1lOiBzdHJpbmc7XG4gIGlkVG9rZW46IHN0cmluZztcbiAga2luZDogJ2lkZW50aXR5dG9vbGtpdCNWZXJpZnlBc3NlcnRpb25SZXNwb25zZSc7XG4gIGxvY2FsSWQ6IHN0cmluZztcbiAgb2F1dGhBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBvYXV0aFRva2VuU2VjcmV0OiBzdHJpbmc7XG4gIHBob3RvVXJsOiBzdHJpbmc7XG4gIHByb3ZpZGVySWQ6ICd0d2l0dGVyLmNvbSc7XG4gIHJhd1VzZXJJbmZvOiBzdHJpbmc7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICBzY3JlZW5OYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFJlc3VsdCA9IFVzZXJDcmVkZW50aWFsICYge190b2tlblJlc3BvbnNlOiBUd2l0dGVyQ3JlZGVudGlhbH07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcblxuICAjYXV0aCA9IGluamVjdChBdXRoKTtcbiAgYXV0aCQgPSBhdXRoU3RhdGUodGhpcy4jYXV0aCk7XG4gIGF1dGggPSB0b1NpZ25hbCh0aGlzLmF1dGgkKTtcblxuICBzaWduSW5XaXRoVHdpdHRlcigpOiBQcm9taXNlPFJlc3VsdD4ge1xuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFR3aXR0ZXJBdXRoUHJvdmlkZXIoKTtcbiAgICByZXR1cm4gc2lnbkluV2l0aFBvcHVwKHRoaXMuI2F1dGgsIHByb3ZpZGVyKSBhcyBQcm9taXNlPFJlc3VsdD5cbiAgfVxuXG4gIHNpZ25JbldpdGhHb29nbGUoKSB7XG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgR29vZ2xlQXV0aFByb3ZpZGVyKCk7XG4gICAgcmV0dXJuIHNpZ25JbldpdGhQb3B1cCh0aGlzLiNhdXRoLCBwcm92aWRlcik7XG4gIH1cblxuICBzaWduSW5XaXRoRW1haWxBbmRQYXNzd29yZChlbWFpbDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHNpZ25JbldpdGhFbWFpbEFuZFBhc3N3b3JkKHRoaXMuI2F1dGgsIGVtYWlsLCBwYXNzd29yZCk7XG4gIH1cblxuICBjcmVhdGVVc2VyV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAgIHJldHVybiBjcmVhdGVVc2VyV2l0aEVtYWlsQW5kUGFzc3dvcmQodGhpcy4jYXV0aCwgZW1haWwsIHBhc3N3b3JkKTtcbiAgfVxuXG4gIHNpZ25JbldpdGhDdXN0b21Ub2tlbihjdXN0b21Ub2tlbjogc3RyaW5nKTogUHJvbWlzZTxSZXN1bHQ+IHtcbiAgICByZXR1cm4gc2lnbkluV2l0aEN1c3RvbVRva2VuKHRoaXMuI2F1dGgsIGN1c3RvbVRva2VuKSBhcyBQcm9taXNlPFJlc3VsdD47XG4gIH1cblxuICBzaWduT3V0KCkge1xuICAgIHJldHVybiBzaWduT3V0KHRoaXMuI2F1dGgpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBdXRoU3RhdGUkKCkge1xuICByZXR1cm4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5hdXRoJDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEF1dGhTdGF0ZSgpIHtcbiAgcmV0dXJuIHRvU2lnbmFsKGluamVjdEF1dGhTdGF0ZSQoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RVc2VySWQkKCk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xuICByZXR1cm4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5hdXRoJC5waXBlKFxuICAgIG1hcChhdXRoID0+IGF1dGg/LnVpZCA/PyBudWxsKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0VXNlcklkKCk6IFNpZ25hbDxzdHJpbmcgfCBudWxsPiB7XG4gIHJldHVybiB0b1NpZ25hbChpbmplY3RVc2VySWQkKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0VHdpdHRlcklkJCgpIHtcbiAgcmV0dXJuIGluamVjdChBdXRoU2VydmljZSkuYXV0aCQucGlwZShcbiAgICBtYXAoYXV0aCA9PiBhdXRoPy5wcm92aWRlckRhdGE/LlswXT8udWlkID8/IG51bGwpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RDbGFpbSQ8VCA9IHN0cmluZz4oY2xhaW06IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xuICByZXR1cm4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5hdXRoJC5waXBlKFxuICAgIHN3aXRjaE1hcChhdXRoID0+IGF1dGggPyBhdXRoPy5nZXRJZFRva2VuUmVzdWx0KCkgOiBvZihudWxsKSksXG4gICAgbWFwKHRva2VuID0+IHRva2VuPy5jbGFpbXM/LltjbGFpbV0gPz8gZmFsc2UpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICkgYXMgYW55O1xufSJdfQ==
62
+ export function injectClaim(claim) {
63
+ return toSignal(injectClaim$(claim));
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBa0IsMEJBQTBCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzTixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBYyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBMkJ6RixNQUFNLE9BQU8sV0FBVztJQUh4QjtRQUtFLFVBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsVUFBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsU0FBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFNUIsa0JBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDN0IsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzVELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFB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Q0FDZCxDQUFDO0FBQ1gsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQWEsS0FBYTtJQUNuRCxPQUFPLFFBQVEsQ0FBQyxZQUFZLENBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2lnbmFsLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsLCB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBdXRoLCBhdXRoU3RhdGUsIHNpZ25JbldpdGhDdXN0b21Ub2tlbiwgR29vZ2xlQXV0aFByb3ZpZGVyLCBUd2l0dGVyQXV0aFByb3ZpZGVyLCBzaWduSW5XaXRoUG9wdXAsIHNpZ25PdXQsIFVzZXJDcmVkZW50aWFsLCBzaWduSW5XaXRoRW1haWxBbmRQYXNzd29yZCwgY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hdXRoJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBvZiwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR3aXR0ZXJDcmVkZW50aWFsIHtcbiAgY29udGV4dDogc3RyaW5nO1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBlbWFpbFZlcmlmaWVkOiBib29sZWFuO1xuICBleHBpcmVzSW46IHN0cmluZztcbiAgZmVkZXJhdGVkSWQ6IHN0cmluZztcbiAgZnVsbE5hbWU6IHN0cmluZztcbiAgaWRUb2tlbjogc3RyaW5nO1xuICBraW5kOiAnaWRlbnRpdHl0b29sa2l0I1ZlcmlmeUFzc2VydGlvblJlc3BvbnNlJztcbiAgbG9jYWxJZDogc3RyaW5nO1xuICBvYXV0aEFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIG9hdXRoVG9rZW5TZWNyZXQ6IHN0cmluZztcbiAgcGhvdG9Vcmw6IHN0cmluZztcbiAgcHJvdmlkZXJJZDogJ3R3aXR0ZXIuY29tJztcbiAgcmF3VXNlckluZm86IHN0cmluZztcbiAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gIHNjcmVlbk5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUmVzdWx0ID0gVXNlckNyZWRlbnRpYWwgJiB7X3Rva2VuUmVzcG9uc2U6IFR3aXR0ZXJDcmVkZW50aWFsfTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuXG4gICNhdXRoID0gaW5qZWN0KEF1dGgpO1xuICBhdXRoJCA9IGF1dGhTdGF0ZSh0aGlzLiNhdXRoKTtcbiAgYXV0aCA9IHRvU2lnbmFsKHRoaXMuYXV0aCQpO1xuXG4gIGN1c3RvbUNsYWltcyQgPSB0aGlzLmF1dGgkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGF1dGggPT4gYXV0aCA/IGF1dGguZ2V0SWRUb2tlblJlc3VsdCgpIDogb2YobnVsbCkpLFxuICAgIG1hcCh0b2tlbiA9PiB0b2tlbj8uY2xhaW1zID8/IHt9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xuXG4gIHNpZ25JbldpdGhUd2l0dGVyKCk6IFByb21pc2U8UmVzdWx0PiB7XG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgVHdpdHRlckF1dGhQcm92aWRlcigpO1xuICAgIHJldHVybiBzaWduSW5XaXRoUG9wdXAodGhpcy4jYXV0aCwgcHJvdmlkZXIpIGFzIFByb21pc2U8UmVzdWx0PlxuICB9XG5cbiAgc2lnbkluV2l0aEdvb2dsZSgpIHtcbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBHb29nbGVBdXRoUHJvdmlkZXIoKTtcbiAgICByZXR1cm4gc2lnbkluV2l0aFBvcHVwKHRoaXMuI2F1dGgsIHByb3ZpZGVyKTtcbiAgfVxuXG4gIHNpZ25JbldpdGhFbWFpbEFuZFBhc3N3b3JkKGVtYWlsOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc2lnbkluV2l0aEVtYWlsQW5kUGFzc3dvcmQodGhpcy4jYXV0aCwgZW1haWwsIHBhc3N3b3JkKTtcbiAgfVxuXG4gIGNyZWF0ZVVzZXJXaXRoRW1haWxBbmRQYXNzd29yZChlbWFpbDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVVzZXJXaXRoRW1haWxBbmRQYXNzd29yZCh0aGlzLiNhdXRoLCBlbWFpbCwgcGFzc3dvcmQpO1xuICB9XG5cbiAgc2lnbkluV2l0aEN1c3RvbVRva2VuKGN1c3RvbVRva2VuOiBzdHJpbmcpOiBQcm9taXNlPFJlc3VsdD4ge1xuICAgIHJldHVybiBzaWduSW5XaXRoQ3VzdG9tVG9rZW4odGhpcy4jYXV0aCwgY3VzdG9tVG9rZW4pIGFzIFByb21pc2U8UmVzdWx0PjtcbiAgfVxuXG4gIHNpZ25PdXQoKSB7XG4gICAgcmV0dXJuIHNpZ25PdXQodGhpcy4jYXV0aCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEF1dGhTdGF0ZSQoKSB7XG4gIHJldHVybiBpbmplY3QoQXV0aFNlcnZpY2UpLmF1dGgkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QXV0aFN0YXRlKCkge1xuICByZXR1cm4gdG9TaWduYWwoaW5qZWN0QXV0aFN0YXRlJCgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFVzZXJJZCQoKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gIHJldHVybiBpbmplY3QoQXV0aFNlcnZpY2UpLmF1dGgkLnBpcGUoXG4gICAgbWFwKGF1dGggPT4gYXV0aD8udWlkID8/IG51bGwpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RVc2VySWQoKTogU2lnbmFsPHN0cmluZyB8IG51bGw+IHtcbiAgcmV0dXJuIHRvU2lnbmFsKGluamVjdFVzZXJJZCQoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RUd2l0dGVySWQkKCkge1xuICByZXR1cm4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5hdXRoJC5waXBlKFxuICAgIG1hcChhdXRoID0+IGF1dGg/LnByb3ZpZGVyRGF0YT8uWzBdPy51aWQgPz8gbnVsbCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdENsYWltJDxUID0gc3RyaW5nPihjbGFpbTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBpbmplY3QoQXV0aFNlcnZpY2UpLmN1c3RvbUNsYWltcyQucGlwZShcbiAgICBtYXAodG9rZW4gPT4gY2xhaW0gPyBnZXQodG9rZW4sIGNsYWltKSA6IHRva2VuKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApIGFzIGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdENsYWltPFQgPSBzdHJpbmc+KGNsYWltOiBzdHJpbmcpOiBTaWduYWw8VD4ge1xuICByZXR1cm4gdG9TaWduYWwoaW5qZWN0Q2xhaW0kPFQ+KGNsYWltKSk7XG59XG4iXX0=
@@ -1,9 +1,23 @@
1
- import { Injectable, signal } from '@angular/core';
1
+ import { inject, Injectable, signal } from '@angular/core';
2
+ import { toSignal } from '@angular/core/rxjs-interop';
3
+ import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
4
+ import { filter, map, switchMap, tap } from 'rxjs';
2
5
  import * as i0 from "@angular/core";
3
6
  export class FabService {
4
7
  constructor() {
5
8
  this.hidden = signal(false);
6
- this.actions = signal([]);
9
+ this.router = inject(Router);
10
+ this.route = inject(ActivatedRoute);
11
+ this.route$ = this.router.events.pipe(filter(event => event instanceof NavigationEnd), map(() => this.findLastChild(this.route)));
12
+ this.actions$ = this.route$.pipe(switchMap((route) => route.data), map(data => data.fabActions || []), tap(actions => console.debug('actions:', actions)));
13
+ this.actions = toSignal(this.actions$);
14
+ }
15
+ findLastChild(route) {
16
+ let child = route;
17
+ while (child.firstChild) {
18
+ child = child.firstChild;
19
+ }
20
+ return child;
7
21
  }
8
22
  show() {
9
23
  this.hidden.set(false);
@@ -23,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
23
37
  providedIn: 'root'
24
38
  }]
25
39
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2ZhYi9mYWIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNbkQsTUFBTSxPQUFPLFVBQVU7SUFIdkI7UUFJVyxXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxNQUFNLENBQVcsRUFBRSxDQUFDLENBQUM7S0FhekM7SUFYQyxJQUFJO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDOzhHQWRVLFVBQVU7a0hBQVYsVUFBVSxjQUZULE1BQU07OzJGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmctYXRvbWljL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGYWJTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgaGlkZGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgYWN0aW9ucyA9IHNpZ25hbDxBY3Rpb25bXT4oW10pO1xuXG4gIHNob3coKSB7XG4gICAgdGhpcy5oaWRkZW4uc2V0KGZhbHNlKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5oaWRkZW4uc2V0KHRydWUpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMuaGlkZGVuLnVwZGF0ZShoaWRkZW4gPT4gIWhpZGRlbik7XG4gIH1cbn1cbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2ZhYi9mYWIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSy9ELE1BQU0sT0FBTyxVQUFVO0lBSHZCO1FBSVcsV0FBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNiLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6QyxXQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN2QyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLEVBQy9DLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUMxQyxDQUFDO1FBRU8sYUFBUSxHQUF5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDeEQsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQ2hDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLEVBQ2xDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQ25ELENBQUM7UUFDTyxZQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQXFCNUM7SUFuQlMsYUFBYSxDQUFDLEtBQXFCO1FBQ3pDLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixPQUFPLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDdkIsS0FBSyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7U0FDMUI7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDOzhHQWxDVSxVQUFVO2tIQUFWLFVBQVUsY0FGVCxNQUFNOzsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQG5nLWF0b21pYy9jb3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGYWJTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgaGlkZGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICByZWFkb25seSByb3V0ZSQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICBtYXAoKCkgPT4gdGhpcy5maW5kTGFzdENoaWxkKHRoaXMucm91dGUpKSxcbiAgKTtcblxuICByZWFkb25seSBhY3Rpb25zJDogT2JzZXJ2YWJsZTxBY3Rpb25bXT4gPSB0aGlzLnJvdXRlJC5waXBlKFxuICAgIHN3aXRjaE1hcCgocm91dGUpID0+IHJvdXRlLmRhdGEpLFxuICAgIG1hcChkYXRhID0+IGRhdGEuZmFiQWN0aW9ucyB8fCBbXSksXG4gICAgdGFwKGFjdGlvbnMgPT4gY29uc29sZS5kZWJ1ZygnYWN0aW9uczonLCBhY3Rpb25zKSksXG4gICk7XG4gIHJlYWRvbmx5IGFjdGlvbnMgPSB0b1NpZ25hbCh0aGlzLmFjdGlvbnMkKTtcblxuICBwcml2YXRlIGZpbmRMYXN0Q2hpbGQocm91dGU6IEFjdGl2YXRlZFJvdXRlKTogQWN0aXZhdGVkUm91dGUge1xuICAgIGxldCBjaGlsZCA9IHJvdXRlO1xuICAgIHdoaWxlIChjaGlsZC5maXJzdENoaWxkKSB7XG4gICAgICBjaGlsZCA9IGNoaWxkLmZpcnN0Q2hpbGQ7XG4gICAgfVxuICAgIHJldHVybiBjaGlsZDtcbiAgfVxuXG4gIHNob3coKSB7XG4gICAgdGhpcy5oaWRkZW4uc2V0KGZhbHNlKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5oaWRkZW4uc2V0KHRydWUpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMuaGlkZGVuLnVwZGF0ZShoaWRkZW4gPT4gIWhpZGRlbik7XG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-pipes-smart-field.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/pipes/smart-field/smart-field.pipe.ts","../../../../../packages/@ng-atomic/common/src/lib/pipes/smart-field/ng-atomic-common-pipes-smart-field.ts"],"sourcesContent":["import { InjectionToken, Pipe, PipeTransform, Signal, inject } from '@angular/core';\nimport { Action } from '@ng-atomic/core';\nimport { SignalOrValue } from '@ng-atomic/common/pipes/signal';\nimport get from 'lodash.get';\n\n\nexport interface Option<T> {\n name: string;\n value: T;\n}\n\ninterface BaseField {\n placeholder?: string;\n hint?: SignalOrValue<string>;\n actions?: Action[] | Signal<Action[]>;\n}\n\ninterface TextField extends BaseField {\n type: 'text';\n autoComplete?: SignalOrValue<string[]>;\n}\n\ninterface PasswordField extends BaseField {\n type: 'password';\n}\n\ninterface NumberField extends BaseField {\n type: 'number';\n}\n\ninterface TextareaField extends BaseField {\n type: 'textarea';\n rows?: number;\n}\n\ninterface DateInputField extends BaseField {\n type: 'date';\n}\n\ninterface DateRangeInputField extends BaseField {\n type: 'date-range';\n}\n\ninterface SelectField<T> extends BaseField {\n type: 'select';\n options: Option<T>[] | Signal<Option<T>[]>;\n multiple?: boolean;\n}\n\ninterface TimeRangeField extends BaseField {\n type: 'time-range';\n}\n\n//* @deprecated use multiple option */\ninterface MultiSelectField<T> extends BaseField {\n type: 'multi-select';\n options: Option<T>[] | Signal<Option<T>[]>;\n}\n\ninterface FileField extends BaseField {\n type: 'file';\n progress?: Signal<number | null>;\n}\n\ninterface ActionField extends BaseField {\n type: 'action';\n actions: Action[] | Signal<Action[]>;\n disabled?: boolean;\n}\n\ninterface AgreementField {\n type: 'agreement';\n labelTemp: null | any;\n}\n\ninterface SliderField extends BaseField {\n type: 'slider';\n slider: {\n min?: number;\n max?: number;\n step?: number;\n }\n}\n\ninterface HiddenField {\n type: 'hidden';\n}\n\ninterface PreviewField extends BaseField {\n type: 'preview';\n}\n\ninterface PreviewImageField extends BaseField {\n type: 'preview:image';\n}\n\nexport type FormField<V = any> = \n | TextField\n | PasswordField\n | TextareaField\n | DateInputField\n | DateRangeInputField\n | SelectField<V>\n | TimeRangeField\n | MultiSelectField<V>\n | FileField\n | ActionField\n | HiddenField\n | NumberField\n | PreviewField\n | AgreementField\n | SliderField\n | PreviewImageField;\n\nexport interface FormFieldMap {\n [key: string]: FormField<any> | FormFieldMap;\n}\n\n/** @deprecated */\nexport const FORM_FIELD_MAP = new InjectionToken<FormFieldMap>('[@ng-atomic] Smart Form Field');\n\n/** @deprecated */\nexport function provideFormFieldMap(useFactory: () => FormFieldMap) {\n return { provide: FORM_FIELD_MAP, useFactory };\n}\n\ntype Enum<T> = Record<string, T>;\n\n/** @deprecated */\nexport function buildOptions<T>(_enum: Enum<T>): Option<T>[] {\n return Object.values(_enum).map(value => ({value, name: value}) as Option<T>);\n}\n\n/** @deprecated */\n@Pipe({name: 'smartField', standalone: true, pure: true})\nexport class SmartFieldPipe implements PipeTransform {\n protected map = inject(FORM_FIELD_MAP, {optional: true}) ?? {\n createdAt: { type: 'date' },\n updatedAt: { type: 'date' },\n deletedAt: { type: 'date' },\n };\n\n transform(key: string, map: FormFieldMap = this.map): FormField<any> {\n return get(map, key) ?? {type: 'input'};\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAsHA;MACa,cAAc,GAAG,IAAI,cAAc,CAAe,+BAA+B,EAAE;AAEhG;AACM,SAAU,mBAAmB,CAAC,UAA8B,EAAA;AAChE,IAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACjD,CAAC;AAID;AACM,SAAU,YAAY,CAAI,KAAc,EAAA;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAC,CAAc,CAAC,CAAC;AAChF,CAAC;AAED;MAEa,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;QAEY,IAAG,CAAA,GAAA,GAAG,MAAM,CAAC,cAAc,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI;AAC1D,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AAC3B,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AAC3B,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC5B,CAAC;AAKH,KAAA;AAHC,IAAA,SAAS,CAAC,GAAW,EAAE,GAAoB,GAAA,IAAI,CAAC,GAAG,EAAA;AACjD,QAAA,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;KACzC;8GATU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,IAAI;mBAAC,EAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAA;;;ACtIxD;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-atomic-common-pipes-smart-field.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/pipes/smart-field/smart-field.pipe.ts","../../../../../packages/@ng-atomic/common/src/lib/pipes/smart-field/ng-atomic-common-pipes-smart-field.ts"],"sourcesContent":["import { InjectionToken, Pipe, PipeTransform, Signal, inject } from '@angular/core';\nimport { Action } from '@ng-atomic/core';\nimport { SignalOrValue } from '@ng-atomic/common/pipes/signal';\nimport get from 'lodash.get';\n\n\nexport interface Option<T> {\n name: string;\n value: T;\n}\n\ninterface BaseField {\n placeholder?: string;\n hint?: SignalOrValue<string>;\n actions?: Action[] | Signal<Action[]>;\n}\n\ninterface TextField extends BaseField {\n type: 'text';\n autoComplete?: SignalOrValue<string[]>;\n}\n\ninterface PasswordField extends BaseField {\n type: 'password';\n}\n\ninterface NumberField extends BaseField {\n type: 'number';\n}\n\ninterface TextareaField extends BaseField {\n type: 'textarea';\n rows?: number;\n}\n\ninterface DateInputField extends BaseField {\n type: 'date';\n}\n\ninterface DateRangeInputField extends BaseField {\n type: 'date-range';\n}\n\ninterface SelectField<T> extends BaseField {\n type: 'select';\n options: Option<T>[] | Signal<Option<T>[]>;\n multiple?: boolean;\n}\n\ninterface TimeRangeField extends BaseField {\n type: 'time-range';\n}\n\n//* @deprecated use multiple option */\ninterface MultiSelectField<T> extends BaseField {\n type: 'multi-select';\n options: Option<T>[] | Signal<Option<T>[]>;\n}\n\ninterface FileField extends BaseField {\n type: 'file';\n progress?: Signal<number | null>;\n}\n\ninterface ActionField extends BaseField {\n type: 'action';\n actions: Action[] | Signal<Action[]>;\n buttonType?: 'flat' | 'raised' | 'stroked' | 'icon';\n disabled?: boolean;\n}\n\ninterface AgreementField {\n type: 'agreement';\n labelTemp: null | any;\n}\n\ninterface SliderField extends BaseField {\n type: 'slider';\n slider: {\n min?: number;\n max?: number;\n step?: number;\n }\n}\n\ninterface HiddenField {\n type: 'hidden';\n}\n\ninterface PreviewField extends BaseField {\n type: 'preview';\n}\n\ninterface PreviewImageField extends BaseField {\n type: 'preview:image';\n}\n\nexport type FormField<V = any> = \n | TextField\n | PasswordField\n | TextareaField\n | DateInputField\n | DateRangeInputField\n | SelectField<V>\n | TimeRangeField\n | MultiSelectField<V>\n | FileField\n | ActionField\n | HiddenField\n | NumberField\n | PreviewField\n | AgreementField\n | SliderField\n | PreviewImageField;\n\nexport interface FormFieldMap {\n [key: string]: FormField<any> | FormFieldMap;\n}\n\n/** @deprecated */\nexport const FORM_FIELD_MAP = new InjectionToken<FormFieldMap>('[@ng-atomic] Smart Form Field');\n\n/** @deprecated */\nexport function provideFormFieldMap(useFactory: () => FormFieldMap) {\n return { provide: FORM_FIELD_MAP, useFactory };\n}\n\ntype Enum<T> = Record<string, T>;\n\n/** @deprecated */\nexport function buildOptions<T>(_enum: Enum<T>): Option<T>[] {\n return Object.values(_enum).map(value => ({value, name: value}) as Option<T>);\n}\n\n/** @deprecated */\n@Pipe({name: 'smartField', standalone: true, pure: true})\nexport class SmartFieldPipe implements PipeTransform {\n protected map = inject(FORM_FIELD_MAP, {optional: true}) ?? {\n createdAt: { type: 'date' },\n updatedAt: { type: 'date' },\n deletedAt: { type: 'date' },\n };\n\n transform(key: string, map: FormFieldMap = this.map): FormField<any> {\n return get(map, key) ?? {type: 'input'};\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAuHA;MACa,cAAc,GAAG,IAAI,cAAc,CAAe,+BAA+B,EAAE;AAEhG;AACM,SAAU,mBAAmB,CAAC,UAA8B,EAAA;AAChE,IAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACjD,CAAC;AAID;AACM,SAAU,YAAY,CAAI,KAAc,EAAA;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAC,CAAc,CAAC,CAAC;AAChF,CAAC;AAED;MAEa,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;QAEY,IAAG,CAAA,GAAA,GAAG,MAAM,CAAC,cAAc,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI;AAC1D,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AAC3B,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AAC3B,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC5B,CAAC;AAKH,KAAA;AAHC,IAAA,SAAS,CAAC,GAAW,EAAE,GAAoB,GAAA,IAAI,CAAC,GAAG,EAAA;AACjD,QAAA,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;KACzC;8GATU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,IAAI;mBAAC,EAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAA;;;ACvIxD;;AAEG;;;;"}
@@ -0,0 +1,37 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { Router } from '@angular/router';
4
+ import { LoadingService } from '@ng-atomic/common/services/loading';
5
+ import { SideAppService } from '@ng-atomic/common/services/side-app';
6
+ import { SideNavModeService } from '@ng-atomic/common/services/side-nav-mode';
7
+ import { FabService } from '@ng-atomic/common/services/fab';
8
+ import { SnackBarService } from '@ng-atomic/common/services/snack-bar';
9
+ import { Clipboard } from '@angular/cdk/clipboard';
10
+
11
+ class AppService {
12
+ constructor() {
13
+ this.loading = inject(LoadingService);
14
+ this.sideApp = inject(SideAppService);
15
+ this.sideNavMode = inject(SideNavModeService);
16
+ this.sideNav = inject(SideNavModeService);
17
+ this.router = inject(Router);
18
+ this.fab = inject(FabService);
19
+ this.snackBar = inject(SnackBarService);
20
+ this.clipboard = inject(Clipboard);
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AppService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AppService, providedIn: 'root' }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AppService, decorators: [{
26
+ type: Injectable,
27
+ args: [{
28
+ providedIn: 'root'
29
+ }]
30
+ }] });
31
+
32
+ /**
33
+ * Generated bundle index. Do not edit.
34
+ */
35
+
36
+ export { AppService };
37
+ //# sourceMappingURL=ng-atomic-common-services-app.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-atomic-common-services-app.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/app/app.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/app/ng-atomic-common-services-app.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LoadingService } from '@ng-atomic/common/services/loading';\nimport { SideAppService } from '@ng-atomic/common/services/side-app';\nimport { SideNavModeService } from '@ng-atomic/common/services/side-nav-mode';\nimport { FabService } from '@ng-atomic/common/services/fab';\nimport { SnackBarService } from '@ng-atomic/common/services/snack-bar';\nimport { Clipboard } from '@angular/cdk/clipboard';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppService {\n readonly loading = inject(LoadingService);\n readonly sideApp = inject(SideAppService);\n readonly sideNavMode = inject(SideNavModeService);\n readonly sideNav = inject(SideNavModeService);\n readonly router = inject(Router);\n readonly fab = inject(FabService);\n readonly snackBar = inject(SnackBarService);\n readonly clipboard = inject(Clipboard);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;MAYa,UAAU,CAAA;AAHvB,IAAA,WAAA,GAAA;AAIW,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AACxC,KAAA;8GATY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
@@ -2,13 +2,15 @@ import * as i0 from '@angular/core';
2
2
  import { inject, Injectable } from '@angular/core';
3
3
  import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { Auth, authState, TwitterAuthProvider, signInWithPopup, GoogleAuthProvider, signInWithEmailAndPassword, createUserWithEmailAndPassword, signInWithCustomToken, signOut } from '@angular/fire/auth';
5
- import { map, distinctUntilChanged, shareReplay, switchMap, of } from 'rxjs';
5
+ import { get } from 'lodash-es';
6
+ import { switchMap, of, map, distinctUntilChanged, shareReplay } from 'rxjs';
6
7
 
7
8
  class AuthService {
8
9
  constructor() {
9
10
  this.#auth = inject(Auth);
10
11
  this.auth$ = authState(this.#auth);
11
12
  this.auth = toSignal(this.auth$);
13
+ this.customClaims$ = this.auth$.pipe(switchMap(auth => auth ? auth.getIdTokenResult() : of(null)), map(token => token?.claims ?? {}), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
12
14
  }
13
15
  #auth;
14
16
  signInWithTwitter() {
@@ -56,12 +58,15 @@ function injectTwitterId$() {
56
58
  return inject(AuthService).auth$.pipe(map(auth => auth?.providerData?.[0]?.uid ?? null), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
57
59
  }
58
60
  function injectClaim$(claim) {
59
- return inject(AuthService).auth$.pipe(switchMap(auth => auth ? auth?.getIdTokenResult() : of(null)), map(token => token?.claims?.[claim] ?? false), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
61
+ return inject(AuthService).customClaims$.pipe(map(token => claim ? get(token, claim) : token), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());
62
+ }
63
+ function injectClaim(claim) {
64
+ return toSignal(injectClaim$(claim));
60
65
  }
61
66
 
62
67
  /**
63
68
  * Generated bundle index. Do not edit.
64
69
  */
65
70
 
66
- export { AuthService, injectAuthState, injectAuthState$, injectClaim$, injectTwitterId$, injectUserId, injectUserId$ };
71
+ export { AuthService, injectAuthState, injectAuthState$, injectClaim, injectClaim$, injectTwitterId$, injectUserId, injectUserId$ };
67
72
  //# sourceMappingURL=ng-atomic-common-services-auth.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-services-auth.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/auth/auth.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/auth/ng-atomic-common-services-auth.ts"],"sourcesContent":["import { Injectable, Signal, inject } from '@angular/core';\nimport { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Auth, authState, signInWithCustomToken, GoogleAuthProvider, TwitterAuthProvider, signInWithPopup, signOut, UserCredential, signInWithEmailAndPassword, createUserWithEmailAndPassword } from '@angular/fire/auth';\nimport { Observable, distinctUntilChanged, map, of, shareReplay, switchMap } from 'rxjs';\n\nexport interface TwitterCredential {\n context: string;\n displayName: string;\n email: string;\n emailVerified: boolean;\n expiresIn: string;\n federatedId: string;\n fullName: string;\n idToken: string;\n kind: 'identitytoolkit#VerifyAssertionResponse';\n localId: string;\n oauthAccessToken: string;\n oauthTokenSecret: string;\n photoUrl: string;\n providerId: 'twitter.com';\n rawUserInfo: string;\n refreshToken: string;\n screenName: string;\n}\n\nexport type Result = UserCredential & {_tokenResponse: TwitterCredential};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n #auth = inject(Auth);\n auth$ = authState(this.#auth);\n auth = toSignal(this.auth$);\n\n signInWithTwitter(): Promise<Result> {\n const provider = new TwitterAuthProvider();\n return signInWithPopup(this.#auth, provider) as Promise<Result>\n }\n\n signInWithGoogle() {\n const provider = new GoogleAuthProvider();\n return signInWithPopup(this.#auth, provider);\n }\n\n signInWithEmailAndPassword(email: string, password: string) {\n return signInWithEmailAndPassword(this.#auth, email, password);\n }\n\n createUserWithEmailAndPassword(email: string, password: string) {\n return createUserWithEmailAndPassword(this.#auth, email, password);\n }\n\n signInWithCustomToken(customToken: string): Promise<Result> {\n return signInWithCustomToken(this.#auth, customToken) as Promise<Result>;\n }\n\n signOut() {\n return signOut(this.#auth);\n }\n}\n\nexport function injectAuthState$() {\n return inject(AuthService).auth$;\n}\n\nexport function injectAuthState() {\n return toSignal(injectAuthState$());\n}\n\nexport function injectUserId$(): Observable<string | null> {\n return inject(AuthService).auth$.pipe(\n map(auth => auth?.uid ?? null),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectUserId(): Signal<string | null> {\n return toSignal(injectUserId$());\n}\n\nexport function injectTwitterId$() {\n return inject(AuthService).auth$.pipe(\n map(auth => auth?.providerData?.[0]?.uid ?? null),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectClaim$<T = string>(claim: string): Observable<T> {\n return inject(AuthService).auth$.pipe(\n switchMap(auth => auth ? auth?.getIdTokenResult() : of(null)),\n map(token => token?.claims?.[claim] ?? false),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n ) as any;\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MA8Ba,WAAW,CAAA;AAHxB,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,QAAA,IAAA,CAAA,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AA2B7B,KAAA;AA7BC,IAAA,KAAK,CAAgB;IAIrB,iBAAiB,GAAA;AACf,QAAA,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAoB,CAAA;KAChE;IAED,gBAAgB,GAAA;AACd,QAAA,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC1C,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KAC9C;IAED,0BAA0B,CAAC,KAAa,EAAE,QAAgB,EAAA;QACxD,OAAO,0BAA0B,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;KAChE;IAED,8BAA8B,CAAC,KAAa,EAAE,QAAgB,EAAA;QAC5D,OAAO,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;KACpE;AAED,IAAA,qBAAqB,CAAC,WAAmB,EAAA;QACvC,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAoB,CAAC;KAC1E;IAED,OAAO,GAAA;AACL,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;8GA9BU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;SAkCe,gBAAgB,GAAA;AAC9B,IAAA,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;AACnC,CAAC;SAEe,eAAe,GAAA;AAC7B,IAAA,OAAO,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACtC,CAAC;SAEe,aAAa,GAAA;AAC3B,IAAA,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,CACnC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,EAC9B,oBAAoB,EAAE,EACtB,WAAW,CAAC,CAAC,CAAC,EACd,kBAAkB,EAAE,CACrB,CAAC;AACJ,CAAC;SAEe,YAAY,GAAA;AAC1B,IAAA,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;AACnC,CAAC;SAEe,gBAAgB,GAAA;AAC9B,IAAA,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,CACnC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,EACjD,oBAAoB,EAAE,EACtB,WAAW,CAAC,CAAC,CAAC,EACd,kBAAkB,EAAE,CACrB,CAAC;AACJ,CAAC;AAEK,SAAU,YAAY,CAAa,KAAa,EAAA;AACpD,IAAA,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,CACnC,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,EAC7D,GAAG,CAAC,KAAK,IAAI,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,EAC7C,oBAAoB,EAAE,EACtB,WAAW,CAAC,CAAC,CAAC,EACd,kBAAkB,EAAE,CACd,CAAC;AACX;;ACrGA;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-atomic-common-services-auth.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/auth/auth.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/auth/ng-atomic-common-services-auth.ts"],"sourcesContent":["import { Injectable, Signal, inject } from '@angular/core';\nimport { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Auth, authState, signInWithCustomToken, GoogleAuthProvider, TwitterAuthProvider, signInWithPopup, signOut, UserCredential, signInWithEmailAndPassword, createUserWithEmailAndPassword } from '@angular/fire/auth';\nimport { get } from 'lodash-es';\nimport { Observable, distinctUntilChanged, map, of, shareReplay, switchMap } from 'rxjs';\n\nexport interface TwitterCredential {\n context: string;\n displayName: string;\n email: string;\n emailVerified: boolean;\n expiresIn: string;\n federatedId: string;\n fullName: string;\n idToken: string;\n kind: 'identitytoolkit#VerifyAssertionResponse';\n localId: string;\n oauthAccessToken: string;\n oauthTokenSecret: string;\n photoUrl: string;\n providerId: 'twitter.com';\n rawUserInfo: string;\n refreshToken: string;\n screenName: string;\n}\n\nexport type Result = UserCredential & {_tokenResponse: TwitterCredential};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n #auth = inject(Auth);\n auth$ = authState(this.#auth);\n auth = toSignal(this.auth$);\n\n customClaims$ = this.auth$.pipe(\n switchMap(auth => auth ? auth.getIdTokenResult() : of(null)),\n map(token => token?.claims ?? {}),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n\n signInWithTwitter(): Promise<Result> {\n const provider = new TwitterAuthProvider();\n return signInWithPopup(this.#auth, provider) as Promise<Result>\n }\n\n signInWithGoogle() {\n const provider = new GoogleAuthProvider();\n return signInWithPopup(this.#auth, provider);\n }\n\n signInWithEmailAndPassword(email: string, password: string) {\n return signInWithEmailAndPassword(this.#auth, email, password);\n }\n\n createUserWithEmailAndPassword(email: string, password: string) {\n return createUserWithEmailAndPassword(this.#auth, email, password);\n }\n\n signInWithCustomToken(customToken: string): Promise<Result> {\n return signInWithCustomToken(this.#auth, customToken) as Promise<Result>;\n }\n\n signOut() {\n return signOut(this.#auth);\n }\n}\n\nexport function injectAuthState$() {\n return inject(AuthService).auth$;\n}\n\nexport function injectAuthState() {\n return toSignal(injectAuthState$());\n}\n\nexport function injectUserId$(): Observable<string | null> {\n return inject(AuthService).auth$.pipe(\n map(auth => auth?.uid ?? null),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectUserId(): Signal<string | null> {\n return toSignal(injectUserId$());\n}\n\nexport function injectTwitterId$() {\n return inject(AuthService).auth$.pipe(\n map(auth => auth?.providerData?.[0]?.uid ?? null),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectClaim$<T = string>(claim: string): Observable<T> {\n return inject(AuthService).customClaims$.pipe(\n map(token => claim ? get(token, claim) : token),\n distinctUntilChanged(),\n shareReplay(1),\n takeUntilDestroyed(),\n ) as any;\n}\n\nexport function injectClaim<T = string>(claim: string): Signal<T> {\n return toSignal(injectClaim$<T>(claim));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,24 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, Injectable } from '@angular/core';
2
+ import { signal, inject, Injectable } from '@angular/core';
3
+ import { toSignal } from '@angular/core/rxjs-interop';
4
+ import { Router, ActivatedRoute, NavigationEnd } from '@angular/router';
5
+ import { filter, map, switchMap, tap } from 'rxjs';
3
6
 
4
7
  class FabService {
5
8
  constructor() {
6
9
  this.hidden = signal(false);
7
- this.actions = signal([]);
10
+ this.router = inject(Router);
11
+ this.route = inject(ActivatedRoute);
12
+ this.route$ = this.router.events.pipe(filter(event => event instanceof NavigationEnd), map(() => this.findLastChild(this.route)));
13
+ this.actions$ = this.route$.pipe(switchMap((route) => route.data), map(data => data.fabActions || []), tap(actions => console.debug('actions:', actions)));
14
+ this.actions = toSignal(this.actions$);
15
+ }
16
+ findLastChild(route) {
17
+ let child = route;
18
+ while (child.firstChild) {
19
+ child = child.firstChild;
20
+ }
21
+ return child;
8
22
  }
9
23
  show() {
10
24
  this.hidden.set(false);
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-services-fab.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/fab/fab.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/fab/ng-atomic-common-services-fab.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { Action } from '@ng-atomic/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FabService {\n readonly hidden = signal(false);\n readonly actions = signal<Action[]>([]);\n\n show() {\n this.hidden.set(false);\n }\n\n hide() {\n this.hidden.set(true);\n }\n\n toggle() {\n this.hidden.update(hidden => !hidden);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,UAAU,CAAA;AAHvB,IAAA,WAAA,GAAA;AAIW,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAW,EAAE,CAAC,CAAC;AAazC,KAAA;IAXC,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxB;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACvB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;KACvC;8GAdU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACLD;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-atomic-common-services-fab.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/fab/fab.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/fab/ng-atomic-common-services-fab.ts"],"sourcesContent":["import { inject, Injectable, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Action } from '@ng-atomic/core';\nimport { filter, map, Observable, switchMap, tap } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FabService {\n readonly hidden = signal(false);\n protected readonly router = inject(Router);\n protected readonly route = inject(ActivatedRoute);\n readonly route$ = this.router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n map(() => this.findLastChild(this.route)),\n );\n\n readonly actions$: Observable<Action[]> = this.route$.pipe(\n switchMap((route) => route.data),\n map(data => data.fabActions || []),\n tap(actions => console.debug('actions:', actions)),\n );\n readonly actions = toSignal(this.actions$);\n\n private findLastChild(route: ActivatedRoute): ActivatedRoute {\n let child = route;\n while (child.firstChild) {\n child = child.firstChild;\n }\n return child;\n }\n\n show() {\n this.hidden.set(false);\n }\n\n hide() {\n this.hidden.set(true);\n }\n\n toggle() {\n this.hidden.update(hidden => !hidden);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MASa,UAAU,CAAA;AAHvB,IAAA,WAAA,GAAA;AAIW,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACb,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACvC,MAAM,CAAC,KAAK,IAAI,KAAK,YAAY,aAAa,CAAC,EAC/C,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC1C,CAAC;QAEO,IAAQ,CAAA,QAAA,GAAyB,IAAI,CAAC,MAAM,CAAC,IAAI,CACxD,SAAS,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,EAChC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAClC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CACnD,CAAC;AACO,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAqB5C,KAAA;AAnBS,IAAA,aAAa,CAAC,KAAqB,EAAA;QACzC,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,OAAO,KAAK,CAAC,UAAU,EAAE;AACvB,YAAA,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;AAC1B,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxB;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACvB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;KACvC;8GAlCU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-atomic/common",
3
- "version": "17.8.0",
3
+ "version": "17.10.0",
4
4
  "license": "MIT",
5
5
  "peerDependencies": {
6
6
  "@angular/cdk": "^17.0.0",
@@ -12,7 +12,7 @@
12
12
  "@angular/router": "^17.0.0",
13
13
  "@ngrx/component-store": "^17.0.0",
14
14
  "@ngrx/entity": "^17.0.0",
15
- "@nx-ddd/core": "17.8.0",
15
+ "@nx-ddd/core": "17.10.0",
16
16
  "dayjs": "1.11.10",
17
17
  "flat": "^6.0.0",
18
18
  "lodash-es": "^4.17.15",
@@ -221,6 +221,12 @@
221
221
  "esm": "./esm2022/pipes/yen/ng-atomic-common-pipes-yen.mjs",
222
222
  "default": "./fesm2022/ng-atomic-common-pipes-yen.mjs"
223
223
  },
224
+ "./services/app": {
225
+ "types": "./services/app/index.d.ts",
226
+ "esm2022": "./esm2022/services/app/ng-atomic-common-services-app.mjs",
227
+ "esm": "./esm2022/services/app/ng-atomic-common-services-app.mjs",
228
+ "default": "./fesm2022/ng-atomic-common-services-app.mjs"
229
+ },
224
230
  "./services/auth": {
225
231
  "types": "./services/auth/index.d.ts",
226
232
  "esm2022": "./esm2022/services/auth/ng-atomic-common-services-auth.mjs",
@@ -50,6 +50,7 @@ interface FileField extends BaseField {
50
50
  interface ActionField extends BaseField {
51
51
  type: 'action';
52
52
  actions: Action[] | Signal<Action[]>;
53
+ buttonType?: 'flat' | 'raised' | 'stroked' | 'icon';
53
54
  disabled?: boolean;
54
55
  }
55
56
  interface AgreementField {
@@ -0,0 +1,20 @@
1
+ import { Router } from '@angular/router';
2
+ import { LoadingService } from '@ng-atomic/common/services/loading';
3
+ import { SideAppService } from '@ng-atomic/common/services/side-app';
4
+ import { SideNavModeService } from '@ng-atomic/common/services/side-nav-mode';
5
+ import { FabService } from '@ng-atomic/common/services/fab';
6
+ import { SnackBarService } from '@ng-atomic/common/services/snack-bar';
7
+ import { Clipboard } from '@angular/cdk/clipboard';
8
+ import * as i0 from "@angular/core";
9
+ export declare class AppService {
10
+ readonly loading: LoadingService;
11
+ readonly sideApp: SideAppService;
12
+ readonly sideNavMode: SideNavModeService;
13
+ readonly sideNav: SideNavModeService;
14
+ readonly router: Router;
15
+ readonly fab: FabService;
16
+ readonly snackBar: SnackBarService;
17
+ readonly clipboard: Clipboard;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppService, never>;
19
+ static ɵprov: i0.ɵɵInjectableDeclaration<AppService>;
20
+ }
@@ -0,0 +1 @@
1
+ export * from './app.service';
@@ -28,6 +28,7 @@ export declare class AuthService {
28
28
  #private;
29
29
  auth$: Observable<import("@firebase/auth").User>;
30
30
  auth: Signal<import("@firebase/auth").User>;
31
+ customClaims$: Observable<import("@firebase/auth").ParsedToken>;
31
32
  signInWithTwitter(): Promise<Result>;
32
33
  signInWithGoogle(): Promise<UserCredential>;
33
34
  signInWithEmailAndPassword(email: string, password: string): Promise<UserCredential>;
@@ -43,3 +44,4 @@ export declare function injectUserId$(): Observable<string | null>;
43
44
  export declare function injectUserId(): Signal<string | null>;
44
45
  export declare function injectTwitterId$(): Observable<string>;
45
46
  export declare function injectClaim$<T = string>(claim: string): Observable<T>;
47
+ export declare function injectClaim<T = string>(claim: string): Signal<T>;
@@ -1,8 +1,15 @@
1
+ import { ActivatedRoute, Router } from '@angular/router';
1
2
  import { Action } from '@ng-atomic/core';
3
+ import { Observable } from 'rxjs';
2
4
  import * as i0 from "@angular/core";
3
5
  export declare class FabService {
4
6
  readonly hidden: import("@angular/core").WritableSignal<boolean>;
5
- readonly actions: import("@angular/core").WritableSignal<Action<any>[]>;
7
+ protected readonly router: Router;
8
+ protected readonly route: ActivatedRoute;
9
+ readonly route$: Observable<ActivatedRoute>;
10
+ readonly actions$: Observable<Action[]>;
11
+ readonly actions: import("@angular/core").Signal<Action<any>[]>;
12
+ private findLastChild;
6
13
  show(): void;
7
14
  hide(): void;
8
15
  toggle(): void;