@fundamental-ngx/core 0.52.2-rc.40 → 0.52.2-rc.41

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.
@@ -77,6 +77,7 @@ export class MessageStripAlertService {
77
77
  config.messageStrip.onDismiss &&
78
78
  config.messageStrip.onDismiss();
79
79
  onDismiss$.next();
80
+ onDismiss$.complete();
80
81
  }
81
82
  }
82
83
  }
@@ -198,4 +199,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
198
199
  providedIn: 'root'
199
200
  }]
200
201
  }], ctorParameters: () => [] });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1zdHJpcC1hbGVydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL21lc3NhZ2Utc3RyaXAvYWxlcnQvbWVzc2FnZS1zdHJpcC1hbGVydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFnQixVQUFVLEVBQUUsUUFBUSxFQUFRLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFFOUgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFHakcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGtDQUFrQyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUU5Rjs7Ozs7O0dBTUc7QUFJSCxNQUFNLE9BQU8sd0JBQXdCO0lBd0NqQyxjQUFjO0lBQ2Q7UUFyQ0EsY0FBYztRQUNOLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEMsY0FBYztRQUNHLGFBQVEsR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFD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QUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsY0FBYztJQUNOLGFBQWEsQ0FBQyxnQkFBd0IsRUFBRSxrQkFBMEI7UUFDdEUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUN4QixVQUFVLEVBQUU7Z0JBQ1IsZ0NBQWdDO2dCQUNoQyxtQ0FBbUMsZ0JBQWdCLEVBQUU7Z0JBQ3JELG1DQUFtQyxrQkFBa0IsRUFBRTthQUMxRDtZQUNELFdBQVcsRUFBRSxLQUFLO1NBQ3JCLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBclBRLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRnJCLE1BQU07OzJGQUVULHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBUeXBlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc3BvbnNpdmVCcmVha3BvaW50cywgVmlld3BvcnRTaXplT2JzZXJ2YWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IHBhdGNoTGFuZ3VhZ2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYXBwbHlEZWZhdWx0Q29uZmlnIH0gZnJvbSAnLi9kZWZhdWx0LWNvbmZpZyc7XG5pbXBvcnQgeyBNZXNzYWdlU3RyaXBBbGVydENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vbWVzc2FnZS1zdHJpcC1hbGVydC1jb250YWluZXIvbWVzc2FnZS1zdHJpcC1hbGVydC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1lc3NhZ2VTdHJpcEFsZXJ0UG9zaXRpb24gfSBmcm9tICcuL21lc3NhZ2Utc3RyaXAtYWxlcnQucG9zaXRpb24nO1xuaW1wb3J0IHsgTWVzc2FnZVN0cmlwQWxlcnRSZWYgfSBmcm9tICcuL21lc3NhZ2Utc3RyaXAtYWxlcnQucmVmJztcbmltcG9ydCB7IE1lc3NhZ2VTdHJpcEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdlLXN0cmlwLWFsZXJ0L21lc3NhZ2Utc3RyaXAtYWxlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IE1lc3NhZ2VTdHJpcEFsZXJ0IH0gZnJvbSAnLi9tZXNzYWdlLXN0cmlwLWFsZXJ0L21lc3NhZ2Utc3RyaXAtYWxlcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9wZW5NZXNzYWdlU3RyaXBBbGVydENvbmZpZyB9IGZyb20gJy4vb3Blbi1tZXNzYWdlLXN0cmlwLWFsZXJ0LmNvbmZpZyc7XG5pbXBvcnQgeyBNZXNzYWdlU3RyaXBBbGVydENvbXBvbmVudERhdGEsIE1lc3NhZ2VTdHJpcEFsZXJ0Q29udGFpbmVyUG9zaXRpb24gfSBmcm9tICcuL3Rva2Vucyc7XG5cbi8qKlxuICogU2VydmljZSB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciBvcGVuaW5nIGFuZCBjbG9zaW5nIG1lc3NhZ2Ugc3RyaXAgYWxlcnRzLlxuICogVGhpcyBzaG91bGQgYmUgb25seSBjcmVhdGVkIG9uY2UgaW4gZW50aXJlIGFwcGxpY2F0aW9uLlxuICogU2VydmljZSBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgYW5kIG1hbmFnaW5nIHRoZSBvdmVybGF5cyBmb3IgdGhlXG4gKiBtZXNzYWdlIHN0cmlwIGFsZXJ0cy4gVGhpcyBhbHNvIG1hbmFnZXMgdGhlIGZvb3RlciBjb21wb25lbnRzIGZvciBhbnlcbiAqIGdpdmVuIHBvc2l0aW9uLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VTdHJpcEFsZXJ0U2VydmljZSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmb290ZXJDb21wb25lbnRzJDogT2JzZXJ2YWJsZTxQYXJ0aWFsPFJlY29yZDxNZXNzYWdlU3RyaXBBbGVydFBvc2l0aW9uLCBUeXBlPGFueT4+Pj47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vdmVybGF5OiBPdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHZpZXdwb3J0U2l6ZSQgPSBpbmplY3QoVmlld3BvcnRTaXplT2JzZXJ2YWJsZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX21lc3NhZ2VTdHJpcEFsZXJ0U2VydmljZSA9IGluamVjdChNZXNzYWdlU3RyaXBBbGVydFNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tZXNzYWdlQWxlcnRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgICAgIEFycmF5PFxuICAgICAgICAgICAgUmVxdWlyZWQ8T3Blbk1lc3NhZ2VTdHJpcEFsZXJ0Q29uZmlnPiAmIHtcbiAgICAgICAgICAgICAgICBwb3J0YWw6IENvbXBvbmVudFBvcnRhbDxNZXNzYWdlU3RyaXBBbGVydD47XG4gICAgICAgICAgICB9XG4gICAgICAgID5cbiAgICA+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb3ZlcmxheVJlZnM6IFBhcnRpYWw8XG4gICAgICAgIFJlY29yZDxcbiAgICAgICAgICAgIE1lc3NhZ2VTdHJpcEFsZXJ0UG9zaXRpb24sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmVmOiBPdmVybGF5UmVmO1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPE1lc3NhZ2VTdHJpcEFsZXJ0Q29udGFpbmVyQ29tcG9uZW50PjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgID4gPSB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbWVzc2FnZVN0cmlwQWxlcnRDb250YWluZXJGb290ZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgICAgIFBhcnRpYWw8UmVjb3JkPE1lc3NhZ2VTdHJpcEFsZXJ0UG9zaXRpb24sIFR5cGU8YW55Pj4+XG4gICAgPih7fSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaWYgKHRoaXMuX21lc3NhZ2VTdHJpcEFsZXJ0U2VydmljZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNZXNzYWdlU3RyaXBBbGVydFNlcnZpY2UgaXMgYWxyZWFkeSBwcm92aWRlZCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9vdGVyQ29tcG9uZW50cyQgPSB0aGlzLl9tZXNzYWdlU3RyaXBBbGVydENvbnRhaW5lckZvb3RlcnMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLmxpc3RlblRvSXRlbXNDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBmb290ZXIgY29tcG9uZW50IGZvciBhIGdpdmVuIHBvc2l0aW9uLlxuICAgICAqL1xuICAgIHNldEZvb3RlckNvbXBvbmVudChwb3NpdGlvbjogTWVzc2FnZVN0cmlwQWxlcnRQb3NpdGlvbiwgY29tcG9uZW50OiBUeXBlPGFueT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbWVzc2FnZVN0cmlwQWxlcnRDb250YWluZXJGb290ZXJzJC5uZXh0KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX21lc3NhZ2VTdHJpcEFsZXJ0Q29udGFpbmVyRm9vdGVycyQudmFsdWUsXG4gICAgICAgICAgICBbcG9zaXRpb25dOiBjb21wb25lbnRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3BlbiBhIG1lc3NhZ2Ugc3RyaXAgYWxlcnQgd2l0aCBnaXZlbiBjb25maWd1cmF0aW9uXG4gICAgICovXG4gICAgb3BlbjxDb21wb25lbnRUeXBlID0gdW5rbm93bj4oYzogT3Blbk1lc3NhZ2VTdHJpcEFsZXJ0Q29uZmlnPENvbXBvbmVudFR5cGU+KTogTWVzc2FnZVN0cmlwQWxlcnRSZWYge1xuICAgICAgICBjb25zdCBjb25maWcgPSBhcHBseURlZmF1bHRDb25maWc8Q29tcG9uZW50VHlwZT4oYyk7XG4gICAgICAgIGNvbnN0IGFsZXJ0UmVmID0gdGhpcy5nZXRNZXNzYWdlU3RyaXBBbGVydFJlZihjb25maWcpO1xuICAgICAgICB0aGlzLl9tZXNzYWdlQWxlcnRzJC5uZXh0KFt7IC4uLmNvbmZpZywgcG9ydGFsOiBhbGVydFJlZi5wb3J0YWwgfSwgLi4udGhpcy5fbWVzc2FnZUFsZXJ0cyQudmFsdWVdKTtcbiAgICAgICAgcmV0dXJuIGFsZXJ0UmVmO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXRNZXNzYWdlU3RyaXBBbGVydFJlZjxDb21wb25lbnRUeXBlID0gdW5rbm93bj4oXG4gICAgICAgIGNvbmZpZzogUmVxdWlyZWQ8T3Blbk1lc3NhZ2VTdHJpcEFsZXJ0Q29uZmlnPENvbXBvbmVudFR5cGU+PlxuICAgICk6IE1lc3NhZ2VTdHJpcEFsZXJ0UmVmIHtcbiAgICAgICAgY29uc3Qgb25EaXNtaXNzJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgICAgIGNvbnN0IGFsZXJ0UmVmID0ge1xuICAgICAgICAgICAgcG9ydGFsOiBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgICAgICAgICAgIE1lc3NhZ2VTdHJpcEFsZXJ0Q29tcG9uZW50PENvbXBvbmVudFR5cGU+LFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTWVzc2FnZVN0cmlwQWxlcnRDb21wb25lbnREYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGNvbmZpZy5jb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZU9uTmF2aWdhdGlvbjogY29uZmlnLmNsb3NlT25OYXZpZ2F0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlU3RyaXBDb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmNvbmZpZy5tZXNzYWdlU3RyaXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkRpc21pc3M6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlQWxlcnRzJC5uZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlQWxlcnRzJC52YWx1ZS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ucG9ydGFsICE9PSBhbGVydFJlZi5wb3J0YWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcubWVzc2FnZVN0cmlwICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5tZXNzYWdlU3RyaXAub25EaXNtaXNzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5tZXNzYWdlU3RyaXAub25EaXNtaXNzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25EaXNtaXNzJC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE1lc3NhZ2VTdHJpcEFsZXJ0UmVmLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IGFsZXJ0UmVmXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2hMYW5ndWFnZSgobGFuZykgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlTWVzc2FnZVN0cmlwOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc21pc3NMYWJlbDogY29uZmlnLm1lc3NhZ2VTdHJpcC5kaXNtaXNzTGFiZWwgfHwgbGFuZy5jb3JlTWVzc2FnZVN0cmlwLmRpc21pc3NMYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3JcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGRpc21pc3M6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlQWxlcnRzJC5uZXh0KHRoaXMuX21lc3NhZ2VBbGVydHMkLnZhbHVlLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5wb3J0YWwgIT09IGFsZXJ0UmVmLnBvcnRhbCkpO1xuICAgICAgICAgICAgICAgIGNvbmZpZy5tZXNzYWdlU3RyaXAgJiYgY29uZmlnLm1lc3NhZ2VTdHJpcC5vbkRpc21pc3MgJiYgY29uZmlnLm1lc3NhZ2VTdHJpcC5vbkRpc21pc3MoKTtcbiAgICAgICAgICAgICAgICBvbkRpc21pc3MkLm5leHQoKTtcbiAgICAgICAgICAgICAgICBvbkRpc21pc3MkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25EaXNtaXNzJDogb25EaXNtaXNzJC5hc09ic2VydmFibGUoKVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gYWxlcnRSZWY7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGxpc3RlblRvSXRlbXNDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnZpZXdwb3J0U2l6ZSQsIHRoaXMuX21lc3NhZ2VBbGVydHMkLmFzT2JzZXJ2YWJsZSgpXSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgKFt2aWV3cG9ydFNpemUsIG1lc3NhZ2VBbGVydHNdKTogUmVjb3JkPFxuICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVN0cmlwQWxlcnRQb3NpdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5PENvbXBvbmVudFBvcnRhbDxNZXNzYWdlU3RyaXBBbGVydD4+XG4gICAgICAgICAgICAgICAgICAgID4gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXdwb3J0U2l6ZSA8IFJlc3BvbnNpdmVCcmVha3BvaW50cy5NKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2VBbGVydHMucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWNjLCBuZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IG5leHQucG9zaXRpb24/LnN0YXJ0c1dpdGgoJ3RvcCcpID8gJ3RvcC1taWRkbGUnIDogJ2JvdHRvbS1taWRkbGUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjW3Bvc2l0aW9uXSA9IFsuLi4oYWNjW3Bvc2l0aW9uXSB8fCBbXSksIG5leHQucG9ydGFsXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9IGFzIFJlY29yZDxNZXNzYWdlU3RyaXBBbGVydFBvc2l0aW9uLCBBcnJheTxDb21wb25lbnRQb3J0YWw8TWVzc2FnZVN0cmlwQWxlcnQ+Pj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2VBbGVydHMucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY2MsIG5leHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjW25leHQucG9zaXRpb25dID0gWy4uLihhY2NbbmV4dC5wb3NpdGlvbl0gfHwgW10pLCBuZXh0LnBvcnRhbF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fSBhcyBSZWNvcmQ8TWVzc2FnZVN0cmlwQWxlcnRQb3NpdGlvbiwgQXJyYXk8Q29tcG9uZW50UG9ydGFsPE1lc3NhZ2VTdHJpcEFsZXJ0Pj4+XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YXAoXG4gICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VBbGVydHNCeVBvc2l0aW9uOiBQYXJ0aWFsPFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY29yZDxNZXNzYWdlU3RyaXBBbGVydFBvc2l0aW9uLCBBcnJheTxDb21wb25lbnRQb3J0YWw8TWVzc2FnZVN0cmlwQWxlcnQ+Pj5cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9wU2VjdGlvbklzT3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYm90dG9tU2VjdGlvbklzT3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMobWVzc2FnZUFsZXJ0c0J5UG9zaXRpb24pIGFzIEFycmF5PFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTWVzc2FnZVN0cmlwQWxlcnRQb3NpdGlvbiwgQ29tcG9uZW50UG9ydGFsPE1lc3NhZ2VTdHJpcEFsZXJ0PltdXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICkuZm9yRWFjaCgoW3Bvc2l0aW9uLCBwb3J0YWxzXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcFNlY3Rpb25Jc09wZW5lZCA9IHRvcFNlY3Rpb25Jc09wZW5lZCB8fCBwb3NpdGlvbi5zdGFydHNXaXRoKCd0b3AnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b21TZWN0aW9uSXNPcGVuZWQgPSBib3R0b21TZWN0aW9uSXNPcGVuZWQgfHwgcG9zaXRpb24uc3RhcnRzV2l0aCgnYm90dG9tJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBjb250YWluZXJSZWYgfSA9IHRoaXMuZ2V0T3ZlcmxheVJlZihwb3NpdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyUmVmLmluc3RhbmNlLmF0dGFjaGVkRWxlbWVudHMgPSBwb3J0YWxzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3luY0V4aXN0aW5nT3ZlcmxheXMobWVzc2FnZUFsZXJ0c0J5UG9zaXRpb24sIGJvdHRvbVNlY3Rpb25Jc09wZW5lZCwgdG9wU2VjdGlvbklzT3BlbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgc3luY0V4aXN0aW5nT3ZlcmxheXMoXG4gICAgICAgIG1lc3NhZ2VBbGVydHNCeVBvc2l0aW9uOiBQYXJ0aWFsPFJlY29yZDxNZXNzYWdlU3RyaXBBbGVydFBvc2l0aW9uLCBDb21wb25lbnRQb3J0YWw8TWVzc2FnZVN0cmlwQWxlcnQ+W10+PixcbiAgICAgICAgYm90dG9tU2VjdGlvbklzT3BlbmVkOiBib29sZWFuLFxuICAgICAgICB0b3BTZWN0aW9uSXNPcGVuZWQ6IGJvb2xlYW5cbiAgICApOiB2b2lkIHtcbiAgICAgICAgKE9iamVjdC5rZXlzKHRoaXMuX292ZXJsYXlSZWZzKSBhcyBNZXNzYWdlU3RyaXBBbGVydFBvc2l0aW9uW10pLmZvckVhY2goKHBvc2l0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAoIW1lc3NhZ2VBbGVydHNCeVBvc2l0aW9uW3Bvc2l0aW9uXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWZzW3Bvc2l0aW9uXSEucmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fb3ZlcmxheVJlZnNbcG9zaXRpb25dO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWYgPSB0aGlzLl9vdmVybGF5UmVmc1twb3NpdGlvbl0hLnJlZjtcbiAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24uc3RhcnRzV2l0aCgndG9wJykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJvdHRvbVNlY3Rpb25Jc09wZW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmLm92ZXJsYXlFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2ZkLW1lc3NhZ2Utc3RyaXAtYWxlcnQtb3ZlcmxheS0tYm90dG9tLW9wZW5lZCcpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmLm92ZXJsYXlFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2ZkLW1lc3NhZ2Utc3RyaXAtYWxlcnQtb3ZlcmxheS0tYm90dG9tLW9wZW5lZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvbi5zdGFydHNXaXRoKCdib3R0b20nKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodG9wU2VjdGlvbklzT3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWYub3ZlcmxheUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZmQtbWVzc2FnZS1zdHJpcC1hbGVydC1vdmVybGF5LS10b3Atb3BlbmVkJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWYub3ZlcmxheUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZmQtbWVzc2FnZS1zdHJpcC1hbGVydC1vdmVybGF5LS10b3Atb3BlbmVkJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXRPdmVybGF5UmVmKHBvc2l0aW9uOiBNZXNzYWdlU3RyaXBBbGVydFBvc2l0aW9uKToge1xuICAgICAgICByZWY6IE92ZXJsYXlSZWY7XG4gICAgICAgIGNvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPE1lc3NhZ2VTdHJpcEFsZXJ0Q29udGFpbmVyQ29tcG9uZW50PjtcbiAgICB9IHtcbiAgICAgICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmc1twb3NpdGlvbl0pIHtcbiAgICAgICAgICAgIGNvbnN0IFt2ZXJ0aWNhbFBvc2l0aW9uLCBob3Jpem9udGFsUG9zaXRpb25dID0gcG9zaXRpb24uc3BsaXQoJy0nKTtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXkodmVydGljYWxQb3NpdGlvbiwgaG9yaXpvbnRhbFBvc2l0aW9uKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IG92ZXJsYXlSZWYuYXR0YWNoKFxuICAgICAgICAgICAgICAgIG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VTdHJpcEFsZXJ0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBNZXNzYWdlU3RyaXBBbGVydENvbnRhaW5lclBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWZzW3Bvc2l0aW9uXSA9IHsgcmVmOiBvdmVybGF5UmVmLCBjb250YWluZXJSZWYgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZnNbcG9zaXRpb25dITtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgY3JlYXRlT3ZlcmxheSh2ZXJ0aWNhbFBvc2l0aW9uOiBzdHJpbmcsIGhvcml6b250YWxQb3NpdGlvbjogc3RyaW5nKTogT3ZlcmxheVJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgICAgICBwYW5lbENsYXNzOiBbXG4gICAgICAgICAgICAgICAgJ2ZkLW1lc3NhZ2Utc3RyaXAtYWxlcnQtb3ZlcmxheScsXG4gICAgICAgICAgICAgICAgYGZkLW1lc3NhZ2Utc3RyaXAtYWxlcnQtb3ZlcmxheS0tJHt2ZXJ0aWNhbFBvc2l0aW9ufWAsXG4gICAgICAgICAgICAgICAgYGZkLW1lc3NhZ2Utc3RyaXAtYWxlcnQtb3ZlcmxheS0tJHtob3Jpem9udGFsUG9zaXRpb259YFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1zdHJpcC1hbGVydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL21lc3NhZ2Utc3RyaXAvYWxlcnQvbWVzc2FnZS1zdHJpcC1hbGVydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFnQixVQUFVLEVBQUUsUUFBUSxFQUFRLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFFOUgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFHakcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGtDQUFrQyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUU5Rjs7Ozs7O0dBTUc7QUFJSCxNQUFNLE9BQU8sd0JBQXdCO0lBd0NqQyxjQUFjO0lBQ2Q7UUFyQ0EsY0FBYztRQUNOLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEMsY0FBYztRQUNHLGFBQVEsR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFD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T0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxjQUFjO0lBQ04sYUFBYSxDQUFDLGdCQUF3QixFQUFFLGtCQUEwQjtRQUN0RSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3hCLFVBQVUsRUFBRTtnQkFDUixnQ0FBZ0M7Z0JBQ2hDLG1DQUFtQyxnQkFBZ0IsRUFBRTtnQkFDckQsbUNBQW1DLGtCQUFrQixFQUFFO2FBQzFEO1lBQ0QsV0FBVyxFQUFFLEtBQUs7U0FDckIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F0UFEsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FGckIsTUFBTTs7MkZBRVQsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbXBvbmVudFJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFR5cGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzcG9uc2l2ZUJyZWFrcG9pbnRzLCBWaWV3cG9ydFNpemVPYnNlcnZhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgcGF0Y2hMYW5ndWFnZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhcHBseURlZmF1bHRDb25maWcgfSBmcm9tICcuL2RlZmF1bHQtY29uZmlnJztcbmltcG9ydCB7IE1lc3NhZ2VTdHJpcEFsZXJ0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdlLXN0cmlwLWFsZXJ0LWNvbnRhaW5lci9tZXNzYWdlLXN0cmlwLWFsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVzc2FnZVN0cmlwQWxlcnRQb3NpdGlvbiB9IGZyb20gJy4vbWVzc2FnZS1zdHJpcC1hbGVydC5wb3NpdGlvbic7XG5pbXBvcnQgeyBNZXNzYWdlU3RyaXBBbGVydFJlZiB9IGZyb20gJy4vbWVzc2FnZS1zdHJpcC1hbGVydC5yZWYnO1xuaW1wb3J0IHsgTWVzc2FnZVN0cmlwQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2Utc3RyaXAtYWxlcnQvbWVzc2FnZS1zdHJpcC1hbGVydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVzc2FnZVN0cmlwQWxlcnQgfSBmcm9tICcuL21lc3NhZ2Utc3RyaXAtYWxlcnQvbWVzc2FnZS1zdHJpcC1hbGVydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3Blbk1lc3NhZ2VTdHJpcEFsZXJ0Q29uZmlnIH0gZnJvbSAnLi9vcGVuLW1lc3NhZ2Utc3RyaXAtYWxlcnQuY29uZmlnJztcbmltcG9ydCB7IE1lc3NhZ2VTdHJpcEFsZXJ0Q29tcG9uZW50RGF0YSwgTWVzc2FnZVN0cmlwQWxlcnRDb250YWluZXJQb3NpdGlvbiB9IGZyb20gJy4vdG9rZW5zJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIG9wZW5pbmcgYW5kIGNsb3NpbmcgbWVzc2FnZSBzdHJpcCBhbGVydHMuXG4gKiBUaGlzIHNob3VsZCBiZSBvbmx5IGNyZWF0ZWQgb25jZSBpbiBlbnRpcmUgYXBwbGljYXRpb24uXG4gKiBTZXJ2aWNlIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgbWFuYWdpbmcgdGhlIG92ZXJsYXlzIGZvciB0aGVcbiAqIG1lc3NhZ2Ugc3RyaXAgYWxlcnRzLiBUaGlzIGFsc28gbWFuYWdlcyB0aGUgZm9vdGVyIGNvbXBvbmVudHMgZm9yIGFueVxuICogZ2l2ZW4gcG9zaXRpb24uXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVN0cmlwQWxlcnRTZXJ2aWNlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGZvb3RlckNvbXBvbmVudHMkOiBPYnNlcnZhYmxlPFBhcnRpYWw8UmVjb3JkPE1lc3NhZ2VTdHJpcEFsZXJ0UG9zaXRpb24sIFR5cGU8YW55Pj4+PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXk6IE92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgdmlld3BvcnRTaXplJCA9IGluamVjdChWaWV3cG9ydFNpemVPYnNlcnZhYmxlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWVzc2FnZVN0cmlwQWxlcnRTZXJ2aWNlID0gaW5qZWN0KE1lc3NhZ2VTdHJpcEFsZXJ0U2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWUgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX21lc3NhZ2VBbGVydHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICAgICAgQXJyYXk8XG4gICAgICAgICAgICBSZXF1aXJlZDxPcGVuTWVzc2FnZVN0cmlwQWxlcnRDb25maWc+ICYge1xuICAgICAgICAgICAgICAgIHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPE1lc3NhZ2VTdHJpcEFsZXJ0PjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgID4oW10pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vdmVybGF5UmVmczogUGFydGlhbDxcbiAgICAgICAgUmVjb3JkPFxuICAgICAgICAgICAgTWVzc2FnZVN0cmlwQWxlcnRQb3NpdGlvbixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZWY6IE92ZXJsYXlSZWY7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyUmVmOiBDb21wb25lbnRSZWY8TWVzc2FnZVN0cmlwQWxlcnRDb250YWluZXJDb21wb25lbnQ+O1xuICAgICAgICAgICAgfVxuICAgICAgICA+XG4gICAgPiA9IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tZXNzYWdlU3RyaXBBbGVydENvbnRhaW5lckZvb3RlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICAgICAgUGFydGlhbDxSZWNvcmQ8TWVzc2FnZVN0cmlwQWxlcnRQb3NpdGlvbiwgVHlwZTxhbnk+Pj5cbiAgICA+KHt9KTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAodGhpcy5fbWVzc2FnZVN0cmlwQWxlcnRTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01lc3NhZ2VTdHJpcEFsZXJ0U2VydmljZSBpcyBhbHJlYWR5IHByb3ZpZGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb290ZXJDb21wb25lbnRzJCA9IHRoaXMuX21lc3NhZ2VTdHJpcEFsZXJ0Q29udGFpbmVyRm9vdGVycyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMubGlzdGVuVG9JdGVtc0NoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGZvb3RlciBjb21wb25lbnQgZm9yIGEgZ2l2ZW4gcG9zaXRpb24uXG4gICAgICovXG4gICAgc2V0Rm9vdGVyQ29tcG9uZW50KHBvc2l0aW9uOiBNZXNzYWdlU3RyaXBBbGVydFBvc2l0aW9uLCBjb21wb25lbnQ6IFR5cGU8YW55Pik6IHZvaWQge1xuICAgICAgICB0aGlzLl9tZXNzYWdlU3RyaXBBbGVydENvbnRhaW5lckZvb3RlcnMkLm5leHQoe1xuICAgICAgICAgICAgLi4udGhpcy5fbWVzc2FnZVN0cmlwQWxlcnRDb250YWluZXJGb290ZXJzJC52YWx1ZSxcbiAgICAgICAgICAgIFtwb3NpdGlvbl06IGNvbXBvbmVudFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVuIGEgbWVzc2FnZSBzdHJpcCBhbGVydCB3aXRoIGdpdmVuIGNvbmZpZ3VyYXRpb25cbiAgICAgKi9cbiAgICBvcGVuPENvbXBvbmVudFR5cGUgPSB1bmtub3duPihjOiBPcGVuTWVzc2FnZVN0cmlwQWxlcnRDb25maWc8Q29tcG9uZW50VHlwZT4pOiBNZXNzYWdlU3RyaXBBbGVydFJlZiB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGFwcGx5RGVmYXVsdENvbmZpZzxDb21wb25lbnRUeXBlPihjKTtcbiAgICAgICAgY29uc3QgYWxlcnRSZWYgPSB0aGlzLmdldE1lc3NhZ2VTdHJpcEFsZXJ0UmVmKGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VBbGVydHMkLm5leHQoW3sgLi4uY29uZmlnLCBwb3J0YWw6IGFsZXJ0UmVmLnBvcnRhbCB9LCAuLi50aGlzLl9tZXNzYWdlQWxlcnRzJC52YWx1ZV0pO1xuICAgICAgICByZXR1cm4gYWxlcnRSZWY7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGdldE1lc3NhZ2VTdHJpcEFsZXJ0UmVmPENvbXBvbmVudFR5cGUgPSB1bmtub3duPihcbiAgICAgICAgY29uZmlnOiBSZXF1aXJlZDxPcGVuTWVzc2FnZVN0cmlwQWxlcnRDb25maWc8Q29tcG9uZW50VHlwZT4+XG4gICAgKTogTWVzc2FnZVN0cmlwQWxlcnRSZWYge1xuICAgICAgICBjb25zdCBvbkRpc21pc3MkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAgICAgY29uc3QgYWxlcnRSZWYgPSB7XG4gICAgICAgICAgICBwb3J0YWw6IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICAgICAgICAgICAgTWVzc2FnZVN0cmlwQWxlcnRDb21wb25lbnQ8Q29tcG9uZW50VHlwZT4sXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBNZXNzYWdlU3RyaXBBbGVydENvbXBvbmVudERhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogY29uZmlnLmNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiBjb25maWcuY2xvc2VPbk5hdmlnYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VTdHJpcENvbmZpZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uY29uZmlnLm1lc3NhZ2VTdHJpcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRGlzbWlzczogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VBbGVydHMkLm5leHQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VBbGVydHMkLnZhbHVlLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5wb3J0YWwgIT09IGFsZXJ0UmVmLnBvcnRhbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5tZXNzYWdlU3RyaXAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLm1lc3NhZ2VTdHJpcC5vbkRpc21pc3MgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLm1lc3NhZ2VTdHJpcC5vbkRpc21pc3MoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkRpc21pc3MkLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkRpc21pc3MkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE1lc3NhZ2VTdHJpcEFsZXJ0UmVmLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IGFsZXJ0UmVmXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2hMYW5ndWFnZSgobGFuZykgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlTWVzc2FnZVN0cmlwOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc21pc3NMYWJlbDogY29uZmlnLm1lc3NhZ2VTdHJpcC5kaXNtaXNzTGFiZWwgfHwgbGFuZy5jb3JlTWVzc2FnZVN0cmlwLmRpc21pc3NMYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3JcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGRpc21pc3M6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlQWxlcnRzJC5uZXh0KHRoaXMuX21lc3NhZ2VBbGVydHMkLnZhbHVlLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5wb3J0YWwgIT09IGFsZXJ0UmVmLnBvcnRhbCkpO1xuICAgICAgICAgICAgICAgIGNvbmZpZy5tZXNzYWdlU3RyaXAgJiYgY29uZmlnLm1lc3NhZ2VTdHJpcC5vbkRpc21pc3MgJiYgY29uZmlnLm1lc3NhZ2VTdHJpcC5vbkRpc21pc3MoKTtcbiAgICAgICAgICAgICAgICBvbkRpc21pc3MkLm5leHQoKTtcbiAgICAgICAgICAgICAgICBvbkRpc21pc3MkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25EaXNtaXNzJDogb25EaXNtaXNzJC5hc09ic2VydmFibGUoKVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gYWxlcnRSZWY7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGxpc3RlblRvSXRlbXNDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnZpZXdwb3J0U2l6ZSQsIHRoaXMuX21lc3NhZ2VBbGVydHMkLmFzT2JzZXJ2YWJsZSgpXSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgKFt2aWV3cG9ydFNpemUsIG1lc3NhZ2VBbGVydHNdKTogUmVjb3JkPFxuICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVN0cmlwQWxlcnRQb3NpdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5PENvbXBvbmVudFBvcnRhbDxNZXNzYWdlU3RyaXBBbGVydD4+XG4gICAgICAgICAgICAgICAgICAgID4gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXdwb3J0U2l6ZSA8IFJlc3BvbnNpdmVCcmVha3BvaW50cy5NKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2VBbGVydHMucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWNjLCBuZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IG5leHQucG9zaXRpb24/LnN0YXJ0c1dpdGgoJ3RvcCcpID8gJ3RvcC1taWRkbGUnIDogJ2JvdHRvbS1taWRkbGUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjW3Bvc2l0aW9uXSA9IFsuLi4oYWNjW3Bvc2l0aW9uXSB8fCBbXSksIG5leHQucG9ydGFsXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9IGFzIFJlY29yZDxNZXNzYWdlU3RyaXBBbGVydFBvc2l0aW9uLCBBcnJheTxDb21wb25lbnRQb3J0YWw8TWVzc2FnZVN0cmlwQWxlcnQ+Pj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2VBbGVydHMucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY2MsIG5leHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjW25leHQucG9zaXRpb25dID0gWy4uLihhY2NbbmV4dC5wb3NpdGlvbl0gfHwgW10pLCBuZXh0LnBvcnRhbF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fSBhcyBSZWNvcmQ8TWVzc2FnZVN0cmlwQWxlcnRQb3NpdGlvbiwgQXJyYXk8Q29tcG9uZW50UG9ydGFsPE1lc3NhZ2VTdHJpcEFsZXJ0Pj4+XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YXAoXG4gICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VBbGVydHNCeVBvc2l0aW9uOiBQYXJ0aWFsPFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY29yZDxNZXNzYWdlU3RyaXBBbGVydFBvc2l0aW9uLCBBcnJheTxDb21wb25lbnRQb3J0YWw8TWVzc2FnZVN0cmlwQWxlcnQ+Pj5cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9wU2VjdGlvbklzT3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYm90dG9tU2VjdGlvbklzT3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMobWVzc2FnZUFsZXJ0c0J5UG9zaXRpb24pIGFzIEFycmF5PFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTWVzc2FnZVN0cmlwQWxlcnRQb3NpdGlvbiwgQ29tcG9uZW50UG9ydGFsPE1lc3NhZ2VTdHJpcEFsZXJ0PltdXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICkuZm9yRWFjaCgoW3Bvc2l0aW9uLCBwb3J0YWxzXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcFNlY3Rpb25Jc09wZW5lZCA9IHRvcFNlY3Rpb25Jc09wZW5lZCB8fCBwb3NpdGlvbi5zdGFydHNXaXRoKCd0b3AnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b21TZWN0aW9uSXNPcGVuZWQgPSBib3R0b21TZWN0aW9uSXNPcGVuZWQgfHwgcG9zaXRpb24uc3RhcnRzV2l0aCgnYm90dG9tJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBjb250YWluZXJSZWYgfSA9IHRoaXMuZ2V0T3ZlcmxheVJlZihwb3NpdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyUmVmLmluc3RhbmNlLmF0dGFjaGVkRWxlbWVudHMgPSBwb3J0YWxzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3luY0V4aXN0aW5nT3ZlcmxheXMobWVzc2FnZUFsZXJ0c0J5UG9zaXRpb24sIGJvdHRvbVNlY3Rpb25Jc09wZW5lZCwgdG9wU2VjdGlvbklzT3BlbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgc3luY0V4aXN0aW5nT3ZlcmxheXMoXG4gICAgICAgIG1lc3NhZ2VBbGVydHNCeVBvc2l0aW9uOiBQYXJ0aWFsPFJlY29yZDxNZXNzYWdlU3RyaXBBbGVydFBvc2l0aW9uLCBDb21wb25lbnRQb3J0YWw8TWVzc2FnZVN0cmlwQWxlcnQ+W10+PixcbiAgICAgICAgYm90dG9tU2VjdGlvbklzT3BlbmVkOiBib29sZWFuLFxuICAgICAgICB0b3BTZWN0aW9uSXNPcGVuZWQ6IGJvb2xlYW5cbiAgICApOiB2b2lkIHtcbiAgICAgICAgKE9iamVjdC5rZXlzKHRoaXMuX292ZXJsYXlSZWZzKSBhcyBNZXNzYWdlU3RyaXBBbGVydFBvc2l0aW9uW10pLmZvckVhY2goKHBvc2l0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAoIW1lc3NhZ2VBbGVydHNCeVBvc2l0aW9uW3Bvc2l0aW9uXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWZzW3Bvc2l0aW9uXSEucmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fb3ZlcmxheVJlZnNbcG9zaXRpb25dO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWYgPSB0aGlzLl9vdmVybGF5UmVmc1twb3NpdGlvbl0hLnJlZjtcbiAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24uc3RhcnRzV2l0aCgndG9wJykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJvdHRvbVNlY3Rpb25Jc09wZW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmLm92ZXJsYXlFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2ZkLW1lc3NhZ2Utc3RyaXAtYWxlcnQtb3ZlcmxheS0tYm90dG9tLW9wZW5lZCcpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmLm92ZXJsYXlFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2ZkLW1lc3NhZ2Utc3RyaXAtYWxlcnQtb3ZlcmxheS0tYm90dG9tLW9wZW5lZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvbi5zdGFydHNXaXRoKCdib3R0b20nKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodG9wU2VjdGlvbklzT3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWYub3ZlcmxheUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZmQtbWVzc2FnZS1zdHJpcC1hbGVydC1vdmVybGF5LS10b3Atb3BlbmVkJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWYub3ZlcmxheUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZmQtbWVzc2FnZS1zdHJpcC1hbGVydC1vdmVybGF5LS10b3Atb3BlbmVkJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXRPdmVybGF5UmVmKHBvc2l0aW9uOiBNZXNzYWdlU3RyaXBBbGVydFBvc2l0aW9uKToge1xuICAgICAgICByZWY6IE92ZXJsYXlSZWY7XG4gICAgICAgIGNvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPE1lc3NhZ2VTdHJpcEFsZXJ0Q29udGFpbmVyQ29tcG9uZW50PjtcbiAgICB9IHtcbiAgICAgICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmc1twb3NpdGlvbl0pIHtcbiAgICAgICAgICAgIGNvbnN0IFt2ZXJ0aWNhbFBvc2l0aW9uLCBob3Jpem9udGFsUG9zaXRpb25dID0gcG9zaXRpb24uc3BsaXQoJy0nKTtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXkodmVydGljYWxQb3NpdGlvbiwgaG9yaXpvbnRhbFBvc2l0aW9uKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IG92ZXJsYXlSZWYuYXR0YWNoKFxuICAgICAgICAgICAgICAgIG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VTdHJpcEFsZXJ0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBNZXNzYWdlU3RyaXBBbGVydENvbnRhaW5lclBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWZzW3Bvc2l0aW9uXSA9IHsgcmVmOiBvdmVybGF5UmVmLCBjb250YWluZXJSZWYgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZnNbcG9zaXRpb25dITtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgY3JlYXRlT3ZlcmxheSh2ZXJ0aWNhbFBvc2l0aW9uOiBzdHJpbmcsIGhvcml6b250YWxQb3NpdGlvbjogc3RyaW5nKTogT3ZlcmxheVJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgICAgICBwYW5lbENsYXNzOiBbXG4gICAgICAgICAgICAgICAgJ2ZkLW1lc3NhZ2Utc3RyaXAtYWxlcnQtb3ZlcmxheScsXG4gICAgICAgICAgICAgICAgYGZkLW1lc3NhZ2Utc3RyaXAtYWxlcnQtb3ZlcmxheS0tJHt2ZXJ0aWNhbFBvc2l0aW9ufWAsXG4gICAgICAgICAgICAgICAgYGZkLW1lc3NhZ2Utc3RyaXAtYWxlcnQtb3ZlcmxheS0tJHtob3Jpem9udGFsUG9zaXRpb259YFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -525,6 +525,7 @@ class MessageStripAlertService {
525
525
  config.messageStrip.onDismiss &&
526
526
  config.messageStrip.onDismiss();
527
527
  onDismiss$.next();
528
+ onDismiss$.complete();
528
529
  }
529
530
  }
530
531
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-message-strip.mjs","sources":["../../../../libs/core/message-strip/alert/message-strip-alert.ref.ts","../../../../libs/core/message-strip/alert/default-config.ts","../../../../libs/core/message-strip/alert/tokens.ts","../../../../libs/core/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.ts","../../../../libs/core/message-strip/message-strip-icon.directive.ts","../../../../libs/core/message-strip/message-strip.component.ts","../../../../libs/core/message-strip/message-strip.component.html","../../../../libs/core/message-strip/auto-dismiss-message-strip.directive.ts","../../../../libs/core/message-strip/alert/message-strip-alert/message-strip-alert.component.ts","../../../../libs/core/message-strip/alert/message-strip-alert/message-strip-alert.component.html","../../../../libs/core/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.ts","../../../../libs/core/message-strip/alert/message-strip-alert.service.ts","../../../../libs/core/message-strip/message-strip-indication-color.ts","../../../../libs/core/message-strip/message-strip.module.ts","../../../../libs/core/message-strip/fundamental-ngx-core-message-strip.ts"],"sourcesContent":["import { ComponentPortal } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlert } from './message-strip-alert/message-strip-alert.interface';\n\nexport abstract class MessageStripAlertRef {\n /** Message strip alert component portal which is rendered in the container */\n abstract portal: ComponentPortal<MessageStripAlert>;\n /**\n * Function, which dismisses the alert, it calls the user-provided function\n * after dismissing the actual alert\n */\n abstract dismiss: () => void;\n /** Observable that emits when the alert is dismissed */\n abstract onDismiss$: Observable<void>;\n}\n","import { OpenMessageStripAlertConfig } from './open-message-strip-alert.config';\n\nconst defaultConfig: Required<Omit<OpenMessageStripAlertConfig, 'content'>> = {\n position: 'top-middle',\n messageStrip: {},\n closeOnNavigation: false\n};\n\n/**\n * Applies default config to the given config\n */\nexport function applyDefaultConfig<ComponentType = unknown>(\n config: OpenMessageStripAlertConfig<ComponentType>\n): Required<OpenMessageStripAlertConfig<ComponentType>> {\n return { ...defaultConfig, ...config };\n}\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlertPosition } from './message-strip-alert.position';\nimport { MessageStripAlertRef } from './message-strip-alert.ref';\nimport { MessageStripConfiguration } from './message-strip-configuration-type';\n\n/**\n * Injection token for getting the position of the message strip alert container.\n * Is available in any of the message strip alert components and in footer component.\n */\nexport const MessageStripAlertContainerPosition = new InjectionToken<MessageStripAlertPosition>(\n 'MessageStripAlertContainerPosition'\n);\n/**\n * Injection token for getting the list of the message strip alert refs\n * in the given container. Is available in the footer component injection\n * context.\n */\nexport const MessageStripAlertContainerAlertRefs = new InjectionToken<Observable<Nullable<MessageStripAlertRef[]>>>(\n 'MessageStripAlertContainerAlertRefs'\n);\n\nexport const MessageStripAlertComponentData = new InjectionToken<{\n content: string | TemplateRef<any> | Type<any>;\n closeOnNavigation: boolean;\n messageStripConfig: MessageStripConfiguration;\n}>('MessageStripAlertComponentData');\n","import { ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { AfterViewInit, Component, DestroyRef, Injector, Input, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, map, tap } from 'rxjs';\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripAlertService } from '../message-strip-alert.service';\nimport { MessageStripAlertContainerAlertRefs, MessageStripAlertContainerPosition } from '../tokens';\n\n/**\n * The component that represents the footer of the message strip alert container.\n * if user has provided the footer component through service, then this component\n * will render it inside itself.\n * Bear in mind that this component is always created, just sometimes if there is nothing to render\n * it will be empty.\n */\n@Component({\n selector: 'fd-message-strip-alert-container-footer',\n template: ` <ng-template [cdkPortalOutlet]=\"footerComponentPortal\"></ng-template> `,\n styles: [\n `\n :host {\n display: block;\n }\n `\n ],\n standalone: true,\n imports: [PortalModule]\n})\nexport class MessageStripAlertContainerFooterComponent implements AfterViewInit {\n /** @hidden */\n @Input()\n set alertRefs(alertRefs: Nullable<MessageStripAlertRef[]>) {\n this.alertRefs$.next(alertRefs);\n }\n\n /**\n * Reference to the user provided component's portal.\n */\n footerComponentPortal?: ComponentPortal<any>;\n\n /**\n * Position of the overlay in which this component is rendered.\n */\n private position = inject(MessageStripAlertContainerPosition);\n\n /** @hidden */\n private _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private messageStripAlertService = inject(MessageStripAlertService);\n\n /**\n * Observable that emits the alert references that are currently rendered in the container.\n */\n private alertRefs$ = new BehaviorSubject<Nullable<MessageStripAlertRef[]>>([]);\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.messageStripAlertService.footerComponents$\n .pipe(\n map((components) => components[this.position]),\n tap((footerComponent) => {\n if (footerComponent) {\n this.footerComponentPortal = new ComponentPortal(\n footerComponent,\n null,\n Injector.create({\n providers: [\n {\n provide: MessageStripAlertContainerAlertRefs,\n useValue: this.alertRefs$.pipe(takeUntilDestroyed(this._destroyRef))\n }\n ]\n })\n );\n } else {\n this.footerComponentPortal = undefined;\n }\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe();\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[fdMessageStripIcon]',\n standalone: true\n})\nexport class MessageStripIconDirective {\n /** @hidden */\n constructor(readonly templateRef: TemplateRef<void>) {}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { applyCssClass, CssClassBuilder, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { MessageStripIconDirective } from './message-strip-icon.directive';\nimport { MessageStripIndicationColor } from './message-strip-indication-color';\nimport { MessageStripType } from './message-strip-type';\n\nlet messageStripUniqueId = 0;\n\n/**\n * The component that represents a message-strip. It can only be used inline.\n */\n@Component({\n selector: 'fd-message-strip',\n templateUrl: './message-strip.component.html',\n styleUrl: './message-strip.component.scss',\n host: {\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.aria-label]': 'ariaLabel',\n '[style.width]': 'width',\n '[style.min-width]': 'minWidth',\n '[style.margin-bottom]': 'marginBottom',\n role: 'alert',\n '[attr.id]': 'id'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ButtonComponent, ContentDensityDirective, I18nModule, NgTemplateOutlet, IconComponent]\n})\nexport class MessageStripComponent implements OnInit, OnChanges, CssClassBuilder {\n /** User's custom classes */\n @Input() class = '';\n\n /** Whether the message strip is dismissible. */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.fd-message-strip--dismissible')\n dismissible: BooleanInput = true;\n\n /** The default message strip does not have an icon.\n * The other types (warning, success, information and error) have icons by default.\n * To remove the icon set the property to true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.fd-message-strip--no-icon')\n noIcon: BooleanInput = false;\n\n /** The type of the message strip.\n * Can be one of *warning*, *success*, *information*, *error* or null.\n */\n @Input() type: MessageStripType;\n\n /** Id for the message-strip component. If omitted, a unique one is generated. */\n @Input() id: string = 'fd-message-strip-' + messageStripUniqueId++;\n\n /** Id of the element that labels the message-strip. */\n @Input() ariaLabelledBy: Nullable<string>;\n\n /** Aria label for the message-strip component element. */\n @Input() ariaLabel: Nullable<string>;\n\n /** Width of the message-strip. */\n @Input() width: string;\n\n /** Minimum width of the message-strip. */\n @Input() minWidth: string;\n\n /** Margin bottom of the message-strip. */\n @Input() marginBottom: string;\n\n /** indication color of the message-strip. */\n @Input() indicationColor: MessageStripIndicationColor;\n\n /** Event fired when the message-strip is dismissed. */\n @Output() // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onDismiss: EventEmitter<void> = new EventEmitter<void>();\n\n /** Custom icon component */\n @ContentChild(MessageStripIconDirective)\n icon: MessageStripIconDirective;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-message-strip',\n this.type ? `fd-message-strip--${this.type}` : '',\n this.dismissible ? 'fd-message-strip--dismissible' : '',\n this.noIcon ? 'fd-message-strip--no-icon' : '',\n this.indicationColor ? `fd-message-strip--indication-color-${this.indicationColor}` : '',\n this.class\n ];\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** Whether icon container should be shown */\n get shouldShowIcon(): boolean {\n if (this.noIcon) {\n return false;\n }\n return !!this.icon || !!this.type;\n }\n\n /** @hidden */\n get typeSpecificIconName(): string {\n switch (this.type) {\n case 'warning':\n return 'alert';\n case 'success':\n return 'sys-enter-2';\n case 'error':\n return 'error';\n case 'information':\n return 'information';\n default:\n return '';\n }\n }\n\n /**\n * Dismisses the message-strip.\n */\n dismiss(): void {\n this.elementRef.nativeElement.classList.add('fd-has-display-none');\n this.elementRef.nativeElement.classList.remove('fd-has-display-block');\n this.onDismiss.emit();\n }\n}\n","@if (shouldShowIcon) {\n <div class=\"fd-message-strip__icon-container\" aria-hidden=\"true\">\n @if (icon) {\n <ng-template [ngTemplateOutlet]=\"icon.templateRef\"></ng-template>\n } @else {\n <fd-icon [glyph]=\"typeSpecificIconName\"></fd-icon>\n }\n </div>\n}\n<p class=\"fd-message-strip__text\">\n <ng-content></ng-content>\n</p>\n@if (dismissible) {\n <button\n class=\"fd-message-strip__close\"\n fd-button\n glyph=\"decline\"\n fdType=\"transparent\"\n fdCompact\n (click)=\"dismiss()\"\n [attr.aria-controls]=\"id\"\n [attr.aria-label]=\"'coreMessageStrip.dismissLabel' | fdTranslate\"\n [attr.title]=\"'coreMessageStrip.dismissLabel' | fdTranslate\"\n ></button>\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, DestroyRef, Directive, ElementRef, inject, Input, isDevMode } from '@angular/core';\nimport { destroyObservable } from '@fundamental-ngx/cdk/utils';\nimport { fromEvent, map, merge, Observable, of, startWith, takeUntil } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { MessageStripComponent } from './message-strip.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-message-strip[mousePersist], fd-message-strip[duration], fd-message-strip[autoDismiss]',\n exportAs: 'fdAutoDismissMessageStrip',\n standalone: true,\n host: {\n '[style.display]': '!opened ? \"none\" : null'\n }\n})\nexport class AutoDismissMessageStripDirective {\n /** Whether the message strip is dismissible */\n @Input({ transform: booleanAttribute })\n dismissible: BooleanInput = true;\n\n /** Whether the alert should be automatically dismissed. */\n @Input({ transform: booleanAttribute })\n autoDismiss: BooleanInput = true;\n\n /** Duration of time *in milliseconds* that the alert will be visible. Set to -1 for indefinite. */\n @Input() duration = 10000;\n\n /** Whether the alert should stay open if the mouse is hovering over it. */\n @Input({ transform: booleanAttribute })\n mousePersist: BooleanInput = false;\n\n /** Whether the message strip is currently opened. */\n opened = false;\n\n /** @hidden */\n private messageStripComponent = inject(MessageStripComponent, { optional: false, host: true });\n\n /** @hidden */\n private autoDismissTimeout?: ReturnType<typeof setTimeout>;\n /** @hidden */\n private elementRef = inject(ElementRef);\n\n /** @hidden */\n private _destroyRef = inject(DestroyRef);\n\n /**\n * Mouse is hovering over the message strip.\n * */\n private mouseIn$ = merge(\n fromEvent(this.elementRef.nativeElement, 'mouseenter').pipe(map(() => true)),\n fromEvent(this.elementRef.nativeElement, 'mouseleave').pipe(map(() => false))\n ).pipe(startWith(false));\n\n /** @hidden */\n open(): void {\n this.opened = true;\n this.elementRef.nativeElement.classList.remove('fd-has-display-block');\n this.elementRef.nativeElement.classList.remove('fd-has-display-none');\n this.stopAutoDismiss();\n if (this.autoDismiss && !this.dismissible && isDevMode()) {\n console.warn(\n 'Auto dismiss is enabled but the message strip is not dismissible. Please set the dismissible input to true.'\n );\n }\n if (this.autoDismiss && this.dismissible) {\n this.startAutoDismiss();\n }\n }\n\n /** @hidden */\n private stopAutoDismiss = (): void => {\n if (this.autoDismissTimeout) {\n clearTimeout(this.autoDismissTimeout);\n this.autoDismissTimeout = undefined;\n }\n };\n\n /** @hidden */\n private startAutoDismiss(): void {\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n const startAutoDismissTimer$ = new Observable((res) => {\n this.autoDismissTimeout = setTimeout(() => {\n this.dismiss();\n res.next();\n }, this.duration);\n return this.stopAutoDismiss;\n });\n if (this.duration > -1) {\n const source$ = this.mousePersist\n ? this.mouseIn$.pipe(\n switchMap((mouseIn) => {\n if (mouseIn) {\n return of(null);\n }\n return startAutoDismissTimer$;\n })\n )\n : startAutoDismissTimer$;\n source$\n .pipe(takeUntil(merge(destroyObservable(this._destroyRef), this.messageStripComponent.onDismiss)))\n .subscribe();\n }\n }\n\n /** @hidden */\n private dismiss = (): void => this.messageStripComponent.dismiss();\n}\n","import { ComponentPortal, DomPortal, Portal, PortalModule, TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n Renderer2,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { AutoDismissMessageStripDirective } from '../../auto-dismiss-message-strip.directive';\nimport { MessageStripComponent } from '../../message-strip.component';\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripConfiguration } from '../message-strip-configuration-type';\nimport { MessageStripAlertComponentData } from '../tokens';\nimport { MessageStripAlert } from './message-strip-alert.interface';\n\nexport type MessageStripAlertPortalType<ComponentType> =\n | DomPortal\n | TemplatePortal<{\n $implicit: MessageStripAlertRef;\n }>\n | ComponentPortal<ComponentType>;\n\n/**\n * The wrapper component, which is wrapping the Message Strip and passes\n * configuration to it, also generates the content which will appear in it.\n */\n@Component({\n templateUrl: `./message-strip-alert.component.html`,\n standalone: true,\n imports: [MessageStripComponent, PortalModule, AutoDismissMessageStripDirective]\n})\nexport class MessageStripAlertComponent<ComponentType = unknown>\n implements MessageStripAlert, OnDestroy, AfterViewInit\n{\n /** @hidden */\n @ViewChild(AutoDismissMessageStripDirective)\n autoDismissMessageStripDirective: AutoDismissMessageStripDirective;\n\n /** User provided data. Full of it */\n data = inject(MessageStripAlertComponentData);\n /** Configuration for the message strip appearance */\n messageStripConfig: MessageStripConfiguration;\n /** Portal, which is responsible for correctly rendering user provided content. It can be any type of the portal */\n contentPortal: Portal<unknown>;\n\n /**\n * Reference to the message strip alert, which is used to close it from the outside, or access the data and/or the component instance\n * */\n readonly alertRef = inject(MessageStripAlertRef);\n /** @hidden */\n private viewContainerRef = inject(ViewContainerRef);\n\n /** @hidden */\n private renderer2 = inject(Renderer2);\n\n /**\n * Timeout, which is responsible for auto-dismissing the message strip.\n * It should be properly cleared on component destroy.\n */\n private autoDismissTimeout: ReturnType<typeof setTimeout>;\n\n /** @hidden */\n constructor() {\n this.messageStripConfig = this.data.messageStripConfig;\n this.contentPortal = this.getPortal(this.data.content);\n if (this.data.closeOnNavigation) {\n inject(Router, { optional: true })\n ?.events.pipe(\n filter((event) => event instanceof NavigationStart),\n takeUntilDestroyed()\n )\n .subscribe(() => this.onDismissHandler());\n }\n }\n\n /**\n * Handler for the dismiss button click.\n * */\n onDismissHandler(): void {\n this.messageStripConfig.onDismiss();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n clearTimeout(this.autoDismissTimeout);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.autoDismissMessageStripDirective.open();\n }\n\n /**\n * Method, which is responsible for generating the portal, which will be rendered inside the message strip.\n * It can be any type of the portal, depending on the user provided content.\n * */\n private getPortal(\n content:\n | string\n | TemplateRef<{\n $implicit: MessageStripAlertRef;\n }>\n | Type<ComponentType>\n ): MessageStripAlertPortalType<ComponentType> {\n if (typeof content === 'string') {\n const textEl = this.renderer2.createText(content);\n this.renderer2.appendChild(this.viewContainerRef.element.nativeElement, textEl);\n return new DomPortal(textEl);\n }\n if (content instanceof TemplateRef) {\n return new TemplatePortal(content, this.viewContainerRef, { $implicit: this.alertRef });\n }\n return new ComponentPortal(content);\n }\n}\n","<fd-message-strip\n [class]=\"messageStripConfig.class\"\n [dismissible]=\"messageStripConfig.dismissible\"\n [autoDismiss]=\"messageStripConfig.duration > 0\"\n [mousePersist]=\"messageStripConfig.mousePersist\"\n [duration]=\"messageStripConfig.duration\"\n [noIcon]=\"messageStripConfig.noIcon\"\n [type]=\"messageStripConfig.type\"\n [id]=\"messageStripConfig.id\"\n [ariaLabelledBy]=\"messageStripConfig.ariaLabelledBy\"\n [ariaLabel]=\"messageStripConfig.ariaLabel\"\n (onDismiss)=\"onDismissHandler()\"\n>\n <ng-template [cdkPortalOutlet]=\"contentPortal\"></ng-template>\n</fd-message-strip>\n","import { CdkPortalOutlet, ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { AsyncPipe } from '@angular/common';\nimport { AfterViewInit, Component, ComponentRef, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { Observable, map, startWith } from 'rxjs';\nimport { MessageStripAlertContainerFooterComponent } from '../message-strip-alert-container-footer/message-strip-alert-container-footer.component';\nimport { MessageStripAlertComponent } from '../message-strip-alert/message-strip-alert.component';\n\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripAlert } from '../message-strip-alert/message-strip-alert.interface';\n\n/**\n * This will be rendered in the overlay. It is responsible for rendering the alerts and the footer.\n */\n@Component({\n selector: 'fd-message-strip-alert-container',\n template: `\n <div fdScrollbar>\n @for (portal of attachedElements; track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n }\n </div>\n <fd-message-strip-alert-container-footer\n [alertRefs]=\"alertRefs$ | async\"\n ></fd-message-strip-alert-container-footer>\n `,\n styleUrl: './message-strip-alert-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [PortalModule, ScrollbarDirective, MessageStripAlertContainerFooterComponent, AsyncPipe]\n})\nexport class MessageStripAlertContainerComponent implements AfterViewInit {\n /** @hidden */\n @ViewChildren(CdkPortalOutlet)\n portalOutlets: QueryList<CdkPortalOutlet>;\n\n /** @hidden */\n @ViewChildren(MessageStripAlertComponent)\n alerts: QueryList<MessageStripAlert>;\n\n /**\n * The list of the elements that are attached to the container.\n */\n attachedElements: ComponentPortal<MessageStripAlert>[] = [];\n\n /**\n * List of the rendered message strip alerts. It is used in the footer and is injected into the\n * user-provided footer component portal. This way, user has full control over the container alerts.\n */\n alertRefs$!: Observable<MessageStripAlertRef[]>;\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.alertRefs$ = this.portalOutlets.changes.pipe(\n startWith(this.portalOutlets),\n map(() =>\n this.portalOutlets\n .toArray()\n .map((p) => (p.attachedRef as ComponentRef<MessageStripAlertComponent>)?.instance.alertRef)\n )\n );\n }\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, Injector, Type, inject } from '@angular/core';\nimport { ResponsiveBreakpoints, ViewportSizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { patchLanguage } from '@fundamental-ngx/i18n';\nimport { BehaviorSubject, Observable, Subject, combineLatest, map, tap } from 'rxjs';\nimport { applyDefaultConfig } from './default-config';\nimport { MessageStripAlertContainerComponent } from './message-strip-alert-container/message-strip-alert-container.component';\nimport { MessageStripAlertPosition } from './message-strip-alert.position';\nimport { MessageStripAlertRef } from './message-strip-alert.ref';\nimport { MessageStripAlertComponent } from './message-strip-alert/message-strip-alert.component';\nimport { MessageStripAlert } from './message-strip-alert/message-strip-alert.interface';\nimport { OpenMessageStripAlertConfig } from './open-message-strip-alert.config';\nimport { MessageStripAlertComponentData, MessageStripAlertContainerPosition } from './tokens';\n\n/**\n * Service that is responsible for opening and closing message strip alerts.\n * This should be only created once in entire application.\n * Service is responsible for creating and managing the overlays for the\n * message strip alerts. This also manages the footer components for any\n * given position.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageStripAlertService {\n /** @hidden */\n footerComponents$: Observable<Partial<Record<MessageStripAlertPosition, Type<any>>>>;\n\n /** @hidden */\n private injector = inject(Injector);\n\n /** @hidden */\n private readonly _overlay: Overlay = inject(Overlay);\n\n /** @hidden */\n private viewportSize$ = inject(ViewportSizeObservable);\n\n /** @hidden */\n private readonly _messageStripAlertService = inject(MessageStripAlertService, { optional: true, skipSelf: true });\n\n /** @hidden */\n private _messageAlerts$ = new BehaviorSubject<\n Array<\n Required<OpenMessageStripAlertConfig> & {\n portal: ComponentPortal<MessageStripAlert>;\n }\n >\n >([]);\n\n /** @hidden */\n private _overlayRefs: Partial<\n Record<\n MessageStripAlertPosition,\n {\n ref: OverlayRef;\n containerRef: ComponentRef<MessageStripAlertContainerComponent>;\n }\n >\n > = {};\n\n /** @hidden */\n private _messageStripAlertContainerFooters$ = new BehaviorSubject<\n Partial<Record<MessageStripAlertPosition, Type<any>>>\n >({});\n /** @hidden */\n constructor() {\n if (this._messageStripAlertService) {\n throw new Error('MessageStripAlertService is already provided');\n }\n this.footerComponents$ = this._messageStripAlertContainerFooters$.asObservable();\n this.listenToItemsChanges();\n }\n\n /**\n * Set the footer component for a given position.\n */\n setFooterComponent(position: MessageStripAlertPosition, component: Type<any>): void {\n this._messageStripAlertContainerFooters$.next({\n ...this._messageStripAlertContainerFooters$.value,\n [position]: component\n });\n }\n\n /**\n * Open a message strip alert with given configuration\n */\n open<ComponentType = unknown>(c: OpenMessageStripAlertConfig<ComponentType>): MessageStripAlertRef {\n const config = applyDefaultConfig<ComponentType>(c);\n const alertRef = this.getMessageStripAlertRef(config);\n this._messageAlerts$.next([{ ...config, portal: alertRef.portal }, ...this._messageAlerts$.value]);\n return alertRef;\n }\n\n /** @hidden */\n private getMessageStripAlertRef<ComponentType = unknown>(\n config: Required<OpenMessageStripAlertConfig<ComponentType>>\n ): MessageStripAlertRef {\n const onDismiss$ = new Subject<void>();\n const alertRef = {\n portal: new ComponentPortal(\n MessageStripAlertComponent<ComponentType>,\n null,\n Injector.create({\n providers: [\n {\n provide: MessageStripAlertComponentData,\n useValue: {\n content: config.content,\n closeOnNavigation: config.closeOnNavigation,\n messageStripConfig: {\n ...config.messageStrip,\n onDismiss: () => {\n this._messageAlerts$.next(\n this._messageAlerts$.value.filter((item) => item.portal !== alertRef.portal)\n );\n config.messageStrip &&\n config.messageStrip.onDismiss &&\n config.messageStrip.onDismiss();\n onDismiss$.next();\n }\n }\n }\n },\n {\n provide: MessageStripAlertRef,\n useFactory: () => alertRef\n },\n patchLanguage((lang) => ({\n coreMessageStrip: {\n dismissLabel: config.messageStrip.dismissLabel || lang.coreMessageStrip.dismissLabel\n }\n }))\n ],\n parent: this.injector\n })\n ),\n dismiss: () => {\n this._messageAlerts$.next(this._messageAlerts$.value.filter((item) => item.portal !== alertRef.portal));\n config.messageStrip && config.messageStrip.onDismiss && config.messageStrip.onDismiss();\n onDismiss$.next();\n onDismiss$.complete();\n },\n onDismiss$: onDismiss$.asObservable()\n };\n return alertRef;\n }\n\n /** @hidden */\n private listenToItemsChanges(): void {\n combineLatest([this.viewportSize$, this._messageAlerts$.asObservable()])\n .pipe(\n map(\n ([viewportSize, messageAlerts]): Record<\n MessageStripAlertPosition,\n Array<ComponentPortal<MessageStripAlert>>\n > => {\n if (viewportSize < ResponsiveBreakpoints.M) {\n return messageAlerts.reduce(\n (acc, next) => {\n const position = next.position?.startsWith('top') ? 'top-middle' : 'bottom-middle';\n acc[position] = [...(acc[position] || []), next.portal];\n return acc;\n },\n {} as Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n );\n }\n return messageAlerts.reduce(\n (acc, next) => {\n acc[next.position] = [...(acc[next.position] || []), next.portal];\n return acc;\n },\n {} as Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n );\n }\n ),\n tap(\n (\n messageAlertsByPosition: Partial<\n Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n >\n ) => {\n let topSectionIsOpened = false;\n let bottomSectionIsOpened = false;\n (\n Object.entries(messageAlertsByPosition) as Array<\n [MessageStripAlertPosition, ComponentPortal<MessageStripAlert>[]]\n >\n ).forEach(([position, portals]) => {\n topSectionIsOpened = topSectionIsOpened || position.startsWith('top');\n bottomSectionIsOpened = bottomSectionIsOpened || position.startsWith('bottom');\n const { containerRef } = this.getOverlayRef(position);\n containerRef.instance.attachedElements = portals;\n containerRef.changeDetectorRef.detectChanges();\n });\n this.syncExistingOverlays(messageAlertsByPosition, bottomSectionIsOpened, topSectionIsOpened);\n }\n )\n )\n .subscribe();\n }\n\n /** @hidden */\n private syncExistingOverlays(\n messageAlertsByPosition: Partial<Record<MessageStripAlertPosition, ComponentPortal<MessageStripAlert>[]>>,\n bottomSectionIsOpened: boolean,\n topSectionIsOpened: boolean\n ): void {\n (Object.keys(this._overlayRefs) as MessageStripAlertPosition[]).forEach((position) => {\n if (!messageAlertsByPosition[position]) {\n this._overlayRefs[position]!.ref.dispose();\n delete this._overlayRefs[position];\n } else {\n const ref = this._overlayRefs[position]!.ref;\n if (position.startsWith('top')) {\n if (bottomSectionIsOpened) {\n ref.overlayElement.classList.add('fd-message-strip-alert-overlay--bottom-opened');\n } else {\n ref.overlayElement.classList.remove('fd-message-strip-alert-overlay--bottom-opened');\n }\n }\n if (position.startsWith('bottom')) {\n if (topSectionIsOpened) {\n ref.overlayElement.classList.add('fd-message-strip-alert-overlay--top-opened');\n } else {\n ref.overlayElement.classList.remove('fd-message-strip-alert-overlay--top-opened');\n }\n }\n }\n });\n }\n\n /** @hidden */\n private getOverlayRef(position: MessageStripAlertPosition): {\n ref: OverlayRef;\n containerRef: ComponentRef<MessageStripAlertContainerComponent>;\n } {\n if (!this._overlayRefs[position]) {\n const [verticalPosition, horizontalPosition] = position.split('-');\n const overlayRef = this.createOverlay(verticalPosition, horizontalPosition);\n const containerRef = overlayRef.attach(\n new ComponentPortal(\n MessageStripAlertContainerComponent,\n null,\n Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: MessageStripAlertContainerPosition,\n useValue: position\n }\n ]\n })\n )\n );\n this._overlayRefs[position] = { ref: overlayRef, containerRef };\n }\n return this._overlayRefs[position]!;\n }\n\n /** @hidden */\n private createOverlay(verticalPosition: string, horizontalPosition: string): OverlayRef {\n return this._overlay.create({\n panelClass: [\n 'fd-message-strip-alert-overlay',\n `fd-message-strip-alert-overlay--${verticalPosition}`,\n `fd-message-strip-alert-overlay--${horizontalPosition}`\n ],\n hasBackdrop: false\n });\n }\n}\n","const messageStripIndicationColors = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] as const;\n\nexport type MessageStripIndicationColor =\n | `${(typeof messageStripIndicationColors)[number]}`\n | `${(typeof messageStripIndicationColors)[number]}b`;\n\nexport const _messageStripIndicationColors = messageStripIndicationColors.reduce(\n (acc: MessageStripIndicationColor[], item) => {\n acc.push(item);\n acc.push(`${item}b`);\n return acc;\n },\n []\n) as MessageStripIndicationColor[];\n","import { NgModule } from '@angular/core';\n\nimport { AutoDismissMessageStripDirective } from './auto-dismiss-message-strip.directive';\nimport { MessageStripIconDirective } from './message-strip-icon.directive';\nimport { MessageStripComponent } from './message-strip.component';\n\n@NgModule({\n imports: [MessageStripComponent, AutoDismissMessageStripDirective, MessageStripIconDirective],\n exports: [MessageStripComponent, AutoDismissMessageStripDirective, MessageStripIconDirective]\n})\nexport class MessageStripModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-message-strip.mjs","sources":["../../../../libs/core/message-strip/alert/message-strip-alert.ref.ts","../../../../libs/core/message-strip/alert/default-config.ts","../../../../libs/core/message-strip/alert/tokens.ts","../../../../libs/core/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.ts","../../../../libs/core/message-strip/message-strip-icon.directive.ts","../../../../libs/core/message-strip/message-strip.component.ts","../../../../libs/core/message-strip/message-strip.component.html","../../../../libs/core/message-strip/auto-dismiss-message-strip.directive.ts","../../../../libs/core/message-strip/alert/message-strip-alert/message-strip-alert.component.ts","../../../../libs/core/message-strip/alert/message-strip-alert/message-strip-alert.component.html","../../../../libs/core/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.ts","../../../../libs/core/message-strip/alert/message-strip-alert.service.ts","../../../../libs/core/message-strip/message-strip-indication-color.ts","../../../../libs/core/message-strip/message-strip.module.ts","../../../../libs/core/message-strip/fundamental-ngx-core-message-strip.ts"],"sourcesContent":["import { ComponentPortal } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlert } from './message-strip-alert/message-strip-alert.interface';\n\nexport abstract class MessageStripAlertRef {\n /** Message strip alert component portal which is rendered in the container */\n abstract portal: ComponentPortal<MessageStripAlert>;\n /**\n * Function, which dismisses the alert, it calls the user-provided function\n * after dismissing the actual alert\n */\n abstract dismiss: () => void;\n /** Observable that emits when the alert is dismissed */\n abstract onDismiss$: Observable<void>;\n}\n","import { OpenMessageStripAlertConfig } from './open-message-strip-alert.config';\n\nconst defaultConfig: Required<Omit<OpenMessageStripAlertConfig, 'content'>> = {\n position: 'top-middle',\n messageStrip: {},\n closeOnNavigation: false\n};\n\n/**\n * Applies default config to the given config\n */\nexport function applyDefaultConfig<ComponentType = unknown>(\n config: OpenMessageStripAlertConfig<ComponentType>\n): Required<OpenMessageStripAlertConfig<ComponentType>> {\n return { ...defaultConfig, ...config };\n}\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlertPosition } from './message-strip-alert.position';\nimport { MessageStripAlertRef } from './message-strip-alert.ref';\nimport { MessageStripConfiguration } from './message-strip-configuration-type';\n\n/**\n * Injection token for getting the position of the message strip alert container.\n * Is available in any of the message strip alert components and in footer component.\n */\nexport const MessageStripAlertContainerPosition = new InjectionToken<MessageStripAlertPosition>(\n 'MessageStripAlertContainerPosition'\n);\n/**\n * Injection token for getting the list of the message strip alert refs\n * in the given container. Is available in the footer component injection\n * context.\n */\nexport const MessageStripAlertContainerAlertRefs = new InjectionToken<Observable<Nullable<MessageStripAlertRef[]>>>(\n 'MessageStripAlertContainerAlertRefs'\n);\n\nexport const MessageStripAlertComponentData = new InjectionToken<{\n content: string | TemplateRef<any> | Type<any>;\n closeOnNavigation: boolean;\n messageStripConfig: MessageStripConfiguration;\n}>('MessageStripAlertComponentData');\n","import { ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { AfterViewInit, Component, DestroyRef, Injector, Input, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, map, tap } from 'rxjs';\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripAlertService } from '../message-strip-alert.service';\nimport { MessageStripAlertContainerAlertRefs, MessageStripAlertContainerPosition } from '../tokens';\n\n/**\n * The component that represents the footer of the message strip alert container.\n * if user has provided the footer component through service, then this component\n * will render it inside itself.\n * Bear in mind that this component is always created, just sometimes if there is nothing to render\n * it will be empty.\n */\n@Component({\n selector: 'fd-message-strip-alert-container-footer',\n template: ` <ng-template [cdkPortalOutlet]=\"footerComponentPortal\"></ng-template> `,\n styles: [\n `\n :host {\n display: block;\n }\n `\n ],\n standalone: true,\n imports: [PortalModule]\n})\nexport class MessageStripAlertContainerFooterComponent implements AfterViewInit {\n /** @hidden */\n @Input()\n set alertRefs(alertRefs: Nullable<MessageStripAlertRef[]>) {\n this.alertRefs$.next(alertRefs);\n }\n\n /**\n * Reference to the user provided component's portal.\n */\n footerComponentPortal?: ComponentPortal<any>;\n\n /**\n * Position of the overlay in which this component is rendered.\n */\n private position = inject(MessageStripAlertContainerPosition);\n\n /** @hidden */\n private _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private messageStripAlertService = inject(MessageStripAlertService);\n\n /**\n * Observable that emits the alert references that are currently rendered in the container.\n */\n private alertRefs$ = new BehaviorSubject<Nullable<MessageStripAlertRef[]>>([]);\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.messageStripAlertService.footerComponents$\n .pipe(\n map((components) => components[this.position]),\n tap((footerComponent) => {\n if (footerComponent) {\n this.footerComponentPortal = new ComponentPortal(\n footerComponent,\n null,\n Injector.create({\n providers: [\n {\n provide: MessageStripAlertContainerAlertRefs,\n useValue: this.alertRefs$.pipe(takeUntilDestroyed(this._destroyRef))\n }\n ]\n })\n );\n } else {\n this.footerComponentPortal = undefined;\n }\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe();\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[fdMessageStripIcon]',\n standalone: true\n})\nexport class MessageStripIconDirective {\n /** @hidden */\n constructor(readonly templateRef: TemplateRef<void>) {}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { applyCssClass, CssClassBuilder, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { MessageStripIconDirective } from './message-strip-icon.directive';\nimport { MessageStripIndicationColor } from './message-strip-indication-color';\nimport { MessageStripType } from './message-strip-type';\n\nlet messageStripUniqueId = 0;\n\n/**\n * The component that represents a message-strip. It can only be used inline.\n */\n@Component({\n selector: 'fd-message-strip',\n templateUrl: './message-strip.component.html',\n styleUrl: './message-strip.component.scss',\n host: {\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.aria-label]': 'ariaLabel',\n '[style.width]': 'width',\n '[style.min-width]': 'minWidth',\n '[style.margin-bottom]': 'marginBottom',\n role: 'alert',\n '[attr.id]': 'id'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ButtonComponent, ContentDensityDirective, I18nModule, NgTemplateOutlet, IconComponent]\n})\nexport class MessageStripComponent implements OnInit, OnChanges, CssClassBuilder {\n /** User's custom classes */\n @Input() class = '';\n\n /** Whether the message strip is dismissible. */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.fd-message-strip--dismissible')\n dismissible: BooleanInput = true;\n\n /** The default message strip does not have an icon.\n * The other types (warning, success, information and error) have icons by default.\n * To remove the icon set the property to true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.fd-message-strip--no-icon')\n noIcon: BooleanInput = false;\n\n /** The type of the message strip.\n * Can be one of *warning*, *success*, *information*, *error* or null.\n */\n @Input() type: MessageStripType;\n\n /** Id for the message-strip component. If omitted, a unique one is generated. */\n @Input() id: string = 'fd-message-strip-' + messageStripUniqueId++;\n\n /** Id of the element that labels the message-strip. */\n @Input() ariaLabelledBy: Nullable<string>;\n\n /** Aria label for the message-strip component element. */\n @Input() ariaLabel: Nullable<string>;\n\n /** Width of the message-strip. */\n @Input() width: string;\n\n /** Minimum width of the message-strip. */\n @Input() minWidth: string;\n\n /** Margin bottom of the message-strip. */\n @Input() marginBottom: string;\n\n /** indication color of the message-strip. */\n @Input() indicationColor: MessageStripIndicationColor;\n\n /** Event fired when the message-strip is dismissed. */\n @Output() // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onDismiss: EventEmitter<void> = new EventEmitter<void>();\n\n /** Custom icon component */\n @ContentChild(MessageStripIconDirective)\n icon: MessageStripIconDirective;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-message-strip',\n this.type ? `fd-message-strip--${this.type}` : '',\n this.dismissible ? 'fd-message-strip--dismissible' : '',\n this.noIcon ? 'fd-message-strip--no-icon' : '',\n this.indicationColor ? `fd-message-strip--indication-color-${this.indicationColor}` : '',\n this.class\n ];\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** Whether icon container should be shown */\n get shouldShowIcon(): boolean {\n if (this.noIcon) {\n return false;\n }\n return !!this.icon || !!this.type;\n }\n\n /** @hidden */\n get typeSpecificIconName(): string {\n switch (this.type) {\n case 'warning':\n return 'alert';\n case 'success':\n return 'sys-enter-2';\n case 'error':\n return 'error';\n case 'information':\n return 'information';\n default:\n return '';\n }\n }\n\n /**\n * Dismisses the message-strip.\n */\n dismiss(): void {\n this.elementRef.nativeElement.classList.add('fd-has-display-none');\n this.elementRef.nativeElement.classList.remove('fd-has-display-block');\n this.onDismiss.emit();\n }\n}\n","@if (shouldShowIcon) {\n <div class=\"fd-message-strip__icon-container\" aria-hidden=\"true\">\n @if (icon) {\n <ng-template [ngTemplateOutlet]=\"icon.templateRef\"></ng-template>\n } @else {\n <fd-icon [glyph]=\"typeSpecificIconName\"></fd-icon>\n }\n </div>\n}\n<p class=\"fd-message-strip__text\">\n <ng-content></ng-content>\n</p>\n@if (dismissible) {\n <button\n class=\"fd-message-strip__close\"\n fd-button\n glyph=\"decline\"\n fdType=\"transparent\"\n fdCompact\n (click)=\"dismiss()\"\n [attr.aria-controls]=\"id\"\n [attr.aria-label]=\"'coreMessageStrip.dismissLabel' | fdTranslate\"\n [attr.title]=\"'coreMessageStrip.dismissLabel' | fdTranslate\"\n ></button>\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, DestroyRef, Directive, ElementRef, inject, Input, isDevMode } from '@angular/core';\nimport { destroyObservable } from '@fundamental-ngx/cdk/utils';\nimport { fromEvent, map, merge, Observable, of, startWith, takeUntil } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { MessageStripComponent } from './message-strip.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-message-strip[mousePersist], fd-message-strip[duration], fd-message-strip[autoDismiss]',\n exportAs: 'fdAutoDismissMessageStrip',\n standalone: true,\n host: {\n '[style.display]': '!opened ? \"none\" : null'\n }\n})\nexport class AutoDismissMessageStripDirective {\n /** Whether the message strip is dismissible */\n @Input({ transform: booleanAttribute })\n dismissible: BooleanInput = true;\n\n /** Whether the alert should be automatically dismissed. */\n @Input({ transform: booleanAttribute })\n autoDismiss: BooleanInput = true;\n\n /** Duration of time *in milliseconds* that the alert will be visible. Set to -1 for indefinite. */\n @Input() duration = 10000;\n\n /** Whether the alert should stay open if the mouse is hovering over it. */\n @Input({ transform: booleanAttribute })\n mousePersist: BooleanInput = false;\n\n /** Whether the message strip is currently opened. */\n opened = false;\n\n /** @hidden */\n private messageStripComponent = inject(MessageStripComponent, { optional: false, host: true });\n\n /** @hidden */\n private autoDismissTimeout?: ReturnType<typeof setTimeout>;\n /** @hidden */\n private elementRef = inject(ElementRef);\n\n /** @hidden */\n private _destroyRef = inject(DestroyRef);\n\n /**\n * Mouse is hovering over the message strip.\n * */\n private mouseIn$ = merge(\n fromEvent(this.elementRef.nativeElement, 'mouseenter').pipe(map(() => true)),\n fromEvent(this.elementRef.nativeElement, 'mouseleave').pipe(map(() => false))\n ).pipe(startWith(false));\n\n /** @hidden */\n open(): void {\n this.opened = true;\n this.elementRef.nativeElement.classList.remove('fd-has-display-block');\n this.elementRef.nativeElement.classList.remove('fd-has-display-none');\n this.stopAutoDismiss();\n if (this.autoDismiss && !this.dismissible && isDevMode()) {\n console.warn(\n 'Auto dismiss is enabled but the message strip is not dismissible. Please set the dismissible input to true.'\n );\n }\n if (this.autoDismiss && this.dismissible) {\n this.startAutoDismiss();\n }\n }\n\n /** @hidden */\n private stopAutoDismiss = (): void => {\n if (this.autoDismissTimeout) {\n clearTimeout(this.autoDismissTimeout);\n this.autoDismissTimeout = undefined;\n }\n };\n\n /** @hidden */\n private startAutoDismiss(): void {\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n const startAutoDismissTimer$ = new Observable((res) => {\n this.autoDismissTimeout = setTimeout(() => {\n this.dismiss();\n res.next();\n }, this.duration);\n return this.stopAutoDismiss;\n });\n if (this.duration > -1) {\n const source$ = this.mousePersist\n ? this.mouseIn$.pipe(\n switchMap((mouseIn) => {\n if (mouseIn) {\n return of(null);\n }\n return startAutoDismissTimer$;\n })\n )\n : startAutoDismissTimer$;\n source$\n .pipe(takeUntil(merge(destroyObservable(this._destroyRef), this.messageStripComponent.onDismiss)))\n .subscribe();\n }\n }\n\n /** @hidden */\n private dismiss = (): void => this.messageStripComponent.dismiss();\n}\n","import { ComponentPortal, DomPortal, Portal, PortalModule, TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n Renderer2,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { AutoDismissMessageStripDirective } from '../../auto-dismiss-message-strip.directive';\nimport { MessageStripComponent } from '../../message-strip.component';\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripConfiguration } from '../message-strip-configuration-type';\nimport { MessageStripAlertComponentData } from '../tokens';\nimport { MessageStripAlert } from './message-strip-alert.interface';\n\nexport type MessageStripAlertPortalType<ComponentType> =\n | DomPortal\n | TemplatePortal<{\n $implicit: MessageStripAlertRef;\n }>\n | ComponentPortal<ComponentType>;\n\n/**\n * The wrapper component, which is wrapping the Message Strip and passes\n * configuration to it, also generates the content which will appear in it.\n */\n@Component({\n templateUrl: `./message-strip-alert.component.html`,\n standalone: true,\n imports: [MessageStripComponent, PortalModule, AutoDismissMessageStripDirective]\n})\nexport class MessageStripAlertComponent<ComponentType = unknown>\n implements MessageStripAlert, OnDestroy, AfterViewInit\n{\n /** @hidden */\n @ViewChild(AutoDismissMessageStripDirective)\n autoDismissMessageStripDirective: AutoDismissMessageStripDirective;\n\n /** User provided data. Full of it */\n data = inject(MessageStripAlertComponentData);\n /** Configuration for the message strip appearance */\n messageStripConfig: MessageStripConfiguration;\n /** Portal, which is responsible for correctly rendering user provided content. It can be any type of the portal */\n contentPortal: Portal<unknown>;\n\n /**\n * Reference to the message strip alert, which is used to close it from the outside, or access the data and/or the component instance\n * */\n readonly alertRef = inject(MessageStripAlertRef);\n /** @hidden */\n private viewContainerRef = inject(ViewContainerRef);\n\n /** @hidden */\n private renderer2 = inject(Renderer2);\n\n /**\n * Timeout, which is responsible for auto-dismissing the message strip.\n * It should be properly cleared on component destroy.\n */\n private autoDismissTimeout: ReturnType<typeof setTimeout>;\n\n /** @hidden */\n constructor() {\n this.messageStripConfig = this.data.messageStripConfig;\n this.contentPortal = this.getPortal(this.data.content);\n if (this.data.closeOnNavigation) {\n inject(Router, { optional: true })\n ?.events.pipe(\n filter((event) => event instanceof NavigationStart),\n takeUntilDestroyed()\n )\n .subscribe(() => this.onDismissHandler());\n }\n }\n\n /**\n * Handler for the dismiss button click.\n * */\n onDismissHandler(): void {\n this.messageStripConfig.onDismiss();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n clearTimeout(this.autoDismissTimeout);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.autoDismissMessageStripDirective.open();\n }\n\n /**\n * Method, which is responsible for generating the portal, which will be rendered inside the message strip.\n * It can be any type of the portal, depending on the user provided content.\n * */\n private getPortal(\n content:\n | string\n | TemplateRef<{\n $implicit: MessageStripAlertRef;\n }>\n | Type<ComponentType>\n ): MessageStripAlertPortalType<ComponentType> {\n if (typeof content === 'string') {\n const textEl = this.renderer2.createText(content);\n this.renderer2.appendChild(this.viewContainerRef.element.nativeElement, textEl);\n return new DomPortal(textEl);\n }\n if (content instanceof TemplateRef) {\n return new TemplatePortal(content, this.viewContainerRef, { $implicit: this.alertRef });\n }\n return new ComponentPortal(content);\n }\n}\n","<fd-message-strip\n [class]=\"messageStripConfig.class\"\n [dismissible]=\"messageStripConfig.dismissible\"\n [autoDismiss]=\"messageStripConfig.duration > 0\"\n [mousePersist]=\"messageStripConfig.mousePersist\"\n [duration]=\"messageStripConfig.duration\"\n [noIcon]=\"messageStripConfig.noIcon\"\n [type]=\"messageStripConfig.type\"\n [id]=\"messageStripConfig.id\"\n [ariaLabelledBy]=\"messageStripConfig.ariaLabelledBy\"\n [ariaLabel]=\"messageStripConfig.ariaLabel\"\n (onDismiss)=\"onDismissHandler()\"\n>\n <ng-template [cdkPortalOutlet]=\"contentPortal\"></ng-template>\n</fd-message-strip>\n","import { CdkPortalOutlet, ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { AsyncPipe } from '@angular/common';\nimport { AfterViewInit, Component, ComponentRef, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { Observable, map, startWith } from 'rxjs';\nimport { MessageStripAlertContainerFooterComponent } from '../message-strip-alert-container-footer/message-strip-alert-container-footer.component';\nimport { MessageStripAlertComponent } from '../message-strip-alert/message-strip-alert.component';\n\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripAlert } from '../message-strip-alert/message-strip-alert.interface';\n\n/**\n * This will be rendered in the overlay. It is responsible for rendering the alerts and the footer.\n */\n@Component({\n selector: 'fd-message-strip-alert-container',\n template: `\n <div fdScrollbar>\n @for (portal of attachedElements; track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n }\n </div>\n <fd-message-strip-alert-container-footer\n [alertRefs]=\"alertRefs$ | async\"\n ></fd-message-strip-alert-container-footer>\n `,\n styleUrl: './message-strip-alert-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [PortalModule, ScrollbarDirective, MessageStripAlertContainerFooterComponent, AsyncPipe]\n})\nexport class MessageStripAlertContainerComponent implements AfterViewInit {\n /** @hidden */\n @ViewChildren(CdkPortalOutlet)\n portalOutlets: QueryList<CdkPortalOutlet>;\n\n /** @hidden */\n @ViewChildren(MessageStripAlertComponent)\n alerts: QueryList<MessageStripAlert>;\n\n /**\n * The list of the elements that are attached to the container.\n */\n attachedElements: ComponentPortal<MessageStripAlert>[] = [];\n\n /**\n * List of the rendered message strip alerts. It is used in the footer and is injected into the\n * user-provided footer component portal. This way, user has full control over the container alerts.\n */\n alertRefs$!: Observable<MessageStripAlertRef[]>;\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.alertRefs$ = this.portalOutlets.changes.pipe(\n startWith(this.portalOutlets),\n map(() =>\n this.portalOutlets\n .toArray()\n .map((p) => (p.attachedRef as ComponentRef<MessageStripAlertComponent>)?.instance.alertRef)\n )\n );\n }\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, Injector, Type, inject } from '@angular/core';\nimport { ResponsiveBreakpoints, ViewportSizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { patchLanguage } from '@fundamental-ngx/i18n';\nimport { BehaviorSubject, Observable, Subject, combineLatest, map, tap } from 'rxjs';\nimport { applyDefaultConfig } from './default-config';\nimport { MessageStripAlertContainerComponent } from './message-strip-alert-container/message-strip-alert-container.component';\nimport { MessageStripAlertPosition } from './message-strip-alert.position';\nimport { MessageStripAlertRef } from './message-strip-alert.ref';\nimport { MessageStripAlertComponent } from './message-strip-alert/message-strip-alert.component';\nimport { MessageStripAlert } from './message-strip-alert/message-strip-alert.interface';\nimport { OpenMessageStripAlertConfig } from './open-message-strip-alert.config';\nimport { MessageStripAlertComponentData, MessageStripAlertContainerPosition } from './tokens';\n\n/**\n * Service that is responsible for opening and closing message strip alerts.\n * This should be only created once in entire application.\n * Service is responsible for creating and managing the overlays for the\n * message strip alerts. This also manages the footer components for any\n * given position.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageStripAlertService {\n /** @hidden */\n footerComponents$: Observable<Partial<Record<MessageStripAlertPosition, Type<any>>>>;\n\n /** @hidden */\n private injector = inject(Injector);\n\n /** @hidden */\n private readonly _overlay: Overlay = inject(Overlay);\n\n /** @hidden */\n private viewportSize$ = inject(ViewportSizeObservable);\n\n /** @hidden */\n private readonly _messageStripAlertService = inject(MessageStripAlertService, { optional: true, skipSelf: true });\n\n /** @hidden */\n private _messageAlerts$ = new BehaviorSubject<\n Array<\n Required<OpenMessageStripAlertConfig> & {\n portal: ComponentPortal<MessageStripAlert>;\n }\n >\n >([]);\n\n /** @hidden */\n private _overlayRefs: Partial<\n Record<\n MessageStripAlertPosition,\n {\n ref: OverlayRef;\n containerRef: ComponentRef<MessageStripAlertContainerComponent>;\n }\n >\n > = {};\n\n /** @hidden */\n private _messageStripAlertContainerFooters$ = new BehaviorSubject<\n Partial<Record<MessageStripAlertPosition, Type<any>>>\n >({});\n /** @hidden */\n constructor() {\n if (this._messageStripAlertService) {\n throw new Error('MessageStripAlertService is already provided');\n }\n this.footerComponents$ = this._messageStripAlertContainerFooters$.asObservable();\n this.listenToItemsChanges();\n }\n\n /**\n * Set the footer component for a given position.\n */\n setFooterComponent(position: MessageStripAlertPosition, component: Type<any>): void {\n this._messageStripAlertContainerFooters$.next({\n ...this._messageStripAlertContainerFooters$.value,\n [position]: component\n });\n }\n\n /**\n * Open a message strip alert with given configuration\n */\n open<ComponentType = unknown>(c: OpenMessageStripAlertConfig<ComponentType>): MessageStripAlertRef {\n const config = applyDefaultConfig<ComponentType>(c);\n const alertRef = this.getMessageStripAlertRef(config);\n this._messageAlerts$.next([{ ...config, portal: alertRef.portal }, ...this._messageAlerts$.value]);\n return alertRef;\n }\n\n /** @hidden */\n private getMessageStripAlertRef<ComponentType = unknown>(\n config: Required<OpenMessageStripAlertConfig<ComponentType>>\n ): MessageStripAlertRef {\n const onDismiss$ = new Subject<void>();\n const alertRef = {\n portal: new ComponentPortal(\n MessageStripAlertComponent<ComponentType>,\n null,\n Injector.create({\n providers: [\n {\n provide: MessageStripAlertComponentData,\n useValue: {\n content: config.content,\n closeOnNavigation: config.closeOnNavigation,\n messageStripConfig: {\n ...config.messageStrip,\n onDismiss: () => {\n this._messageAlerts$.next(\n this._messageAlerts$.value.filter((item) => item.portal !== alertRef.portal)\n );\n config.messageStrip &&\n config.messageStrip.onDismiss &&\n config.messageStrip.onDismiss();\n onDismiss$.next();\n onDismiss$.complete();\n }\n }\n }\n },\n {\n provide: MessageStripAlertRef,\n useFactory: () => alertRef\n },\n patchLanguage((lang) => ({\n coreMessageStrip: {\n dismissLabel: config.messageStrip.dismissLabel || lang.coreMessageStrip.dismissLabel\n }\n }))\n ],\n parent: this.injector\n })\n ),\n dismiss: () => {\n this._messageAlerts$.next(this._messageAlerts$.value.filter((item) => item.portal !== alertRef.portal));\n config.messageStrip && config.messageStrip.onDismiss && config.messageStrip.onDismiss();\n onDismiss$.next();\n onDismiss$.complete();\n },\n onDismiss$: onDismiss$.asObservable()\n };\n return alertRef;\n }\n\n /** @hidden */\n private listenToItemsChanges(): void {\n combineLatest([this.viewportSize$, this._messageAlerts$.asObservable()])\n .pipe(\n map(\n ([viewportSize, messageAlerts]): Record<\n MessageStripAlertPosition,\n Array<ComponentPortal<MessageStripAlert>>\n > => {\n if (viewportSize < ResponsiveBreakpoints.M) {\n return messageAlerts.reduce(\n (acc, next) => {\n const position = next.position?.startsWith('top') ? 'top-middle' : 'bottom-middle';\n acc[position] = [...(acc[position] || []), next.portal];\n return acc;\n },\n {} as Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n );\n }\n return messageAlerts.reduce(\n (acc, next) => {\n acc[next.position] = [...(acc[next.position] || []), next.portal];\n return acc;\n },\n {} as Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n );\n }\n ),\n tap(\n (\n messageAlertsByPosition: Partial<\n Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n >\n ) => {\n let topSectionIsOpened = false;\n let bottomSectionIsOpened = false;\n (\n Object.entries(messageAlertsByPosition) as Array<\n [MessageStripAlertPosition, ComponentPortal<MessageStripAlert>[]]\n >\n ).forEach(([position, portals]) => {\n topSectionIsOpened = topSectionIsOpened || position.startsWith('top');\n bottomSectionIsOpened = bottomSectionIsOpened || position.startsWith('bottom');\n const { containerRef } = this.getOverlayRef(position);\n containerRef.instance.attachedElements = portals;\n containerRef.changeDetectorRef.detectChanges();\n });\n this.syncExistingOverlays(messageAlertsByPosition, bottomSectionIsOpened, topSectionIsOpened);\n }\n )\n )\n .subscribe();\n }\n\n /** @hidden */\n private syncExistingOverlays(\n messageAlertsByPosition: Partial<Record<MessageStripAlertPosition, ComponentPortal<MessageStripAlert>[]>>,\n bottomSectionIsOpened: boolean,\n topSectionIsOpened: boolean\n ): void {\n (Object.keys(this._overlayRefs) as MessageStripAlertPosition[]).forEach((position) => {\n if (!messageAlertsByPosition[position]) {\n this._overlayRefs[position]!.ref.dispose();\n delete this._overlayRefs[position];\n } else {\n const ref = this._overlayRefs[position]!.ref;\n if (position.startsWith('top')) {\n if (bottomSectionIsOpened) {\n ref.overlayElement.classList.add('fd-message-strip-alert-overlay--bottom-opened');\n } else {\n ref.overlayElement.classList.remove('fd-message-strip-alert-overlay--bottom-opened');\n }\n }\n if (position.startsWith('bottom')) {\n if (topSectionIsOpened) {\n ref.overlayElement.classList.add('fd-message-strip-alert-overlay--top-opened');\n } else {\n ref.overlayElement.classList.remove('fd-message-strip-alert-overlay--top-opened');\n }\n }\n }\n });\n }\n\n /** @hidden */\n private getOverlayRef(position: MessageStripAlertPosition): {\n ref: OverlayRef;\n containerRef: ComponentRef<MessageStripAlertContainerComponent>;\n } {\n if (!this._overlayRefs[position]) {\n const [verticalPosition, horizontalPosition] = position.split('-');\n const overlayRef = this.createOverlay(verticalPosition, horizontalPosition);\n const containerRef = overlayRef.attach(\n new ComponentPortal(\n MessageStripAlertContainerComponent,\n null,\n Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: MessageStripAlertContainerPosition,\n useValue: position\n }\n ]\n })\n )\n );\n this._overlayRefs[position] = { ref: overlayRef, containerRef };\n }\n return this._overlayRefs[position]!;\n }\n\n /** @hidden */\n private createOverlay(verticalPosition: string, horizontalPosition: string): OverlayRef {\n return this._overlay.create({\n panelClass: [\n 'fd-message-strip-alert-overlay',\n `fd-message-strip-alert-overlay--${verticalPosition}`,\n `fd-message-strip-alert-overlay--${horizontalPosition}`\n ],\n hasBackdrop: false\n });\n }\n}\n","const messageStripIndicationColors = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] as const;\n\nexport type MessageStripIndicationColor =\n | `${(typeof messageStripIndicationColors)[number]}`\n | `${(typeof messageStripIndicationColors)[number]}b`;\n\nexport const _messageStripIndicationColors = messageStripIndicationColors.reduce(\n (acc: MessageStripIndicationColor[], item) => {\n acc.push(item);\n acc.push(`${item}b`);\n return acc;\n },\n []\n) as MessageStripIndicationColor[];\n","import { NgModule } from '@angular/core';\n\nimport { AutoDismissMessageStripDirective } from './auto-dismiss-message-strip.directive';\nimport { MessageStripIconDirective } from './message-strip-icon.directive';\nimport { MessageStripComponent } from './message-strip.component';\n\n@NgModule({\n imports: [MessageStripComponent, AutoDismissMessageStripDirective, MessageStripIconDirective],\n exports: [MessageStripComponent, AutoDismissMessageStripDirective, MessageStripIconDirective]\n})\nexport class MessageStripModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core",
3
- "version": "0.52.2-rc.40",
3
+ "version": "0.52.2-rc.41",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "ng-update": {
6
6
  "migrations": "./schematics/migrations.json"
@@ -23,8 +23,8 @@
23
23
  "@angular/forms": "^18.0.0",
24
24
  "@angular/platform-browser": "^18.0.0",
25
25
  "@angular/router": "^18.0.0",
26
- "@fundamental-ngx/cdk": "0.52.2-rc.40",
27
- "@fundamental-ngx/i18n": "0.52.2-rc.40",
26
+ "@fundamental-ngx/cdk": "0.52.2-rc.41",
27
+ "@fundamental-ngx/i18n": "0.52.2-rc.41",
28
28
  "@sap-theming/theming-base-content": "^11.18.0",
29
29
  "fundamental-styles": "0.37.8",
30
30
  "rxjs": "^7.8.0"