@ng-atomic/common 17.8.0 → 17.9.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,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;;;;"}
@@ -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.9.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.9.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';
@@ -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;