valtech-components 4.0.202 → 4.0.203

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.
@@ -63,10 +63,15 @@ import * as i1 from "./auth.service";
63
63
  * ```
64
64
  */
65
65
  export class OrgSwitchService {
66
+ /** Notify subscribers that the active org's data was updated. */
67
+ notifyOrgDataUpdated(org) {
68
+ this._orgDataUpdated.next(org);
69
+ }
66
70
  constructor(auth) {
67
71
  this.auth = auth;
68
72
  this._switching = signal(false);
69
73
  this._orgChanged = new Subject();
74
+ this._orgDataUpdated = new Subject();
70
75
  /**
71
76
  * `true` while a switch is in flight. UI should disable interactions
72
77
  * with org-scoped data and show a loading indicator.
@@ -80,6 +85,11 @@ export class OrgSwitchService {
80
85
  * see the updated Firebase user / activeOrg claim.
81
86
  */
82
87
  this.orgChanged$ = this._orgChanged.asObservable();
88
+ /**
89
+ * Fires when org data (name, logoUrl, etc.) changes without a full org switch.
90
+ * Subscribe in the app shell to keep the header org avatar up to date.
91
+ */
92
+ this.orgDataUpdated$ = this._orgDataUpdated.asObservable();
83
93
  }
84
94
  /**
85
95
  * Switch the user's active organization.
@@ -134,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
134
144
  type: Injectable,
135
145
  args: [{ providedIn: 'root' }]
136
146
  }], ctorParameters: () => [{ type: i1.AuthService }] });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLXN3aXRjaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL29yZy1zd2l0Y2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBOEIzRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyREc7QUFFSCxNQUFNLE9BQU8sZ0JBQWdCO0lBbUIzQixZQUFvQixJQUFpQjtRQUFqQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBbEJwQixlQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFFOUQ7OztXQUdHO1FBQ00sY0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEQ7Ozs7OztXQU1HO1FBQ00sZ0JBQVcsR0FBZ0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUU1QyxDQUFDO0lBRXpDOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBYSxFQUFFLFVBQTRCLEVBQUU7UUFDMUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVDLElBQUksV0FBVyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzFCLCtCQUErQjtZQUMvQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQztZQUNILE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFFdEQsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUNwRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQjtRQUN0QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLHFFQUFxRTtRQUNyRSxtQ0FBbUM7UUFDbkMsT0FBTyxDQUNKLElBQTRELEVBQUUsV0FBVztZQUN6RSxJQUE0RCxFQUFFLFNBQVM7WUFDeEUsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDOytHQXZFVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQURILE1BQU07OzRGQUNuQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcblxuLyoqXG4gKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGFjdGl2ZSBvcmdhbml6YXRpb24gY2hhbmdlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcmdDaGFuZ2VkRXZlbnQge1xuICAvKiogT3JnIHRoZSB1c2VyIHdhcyBvbiBiZWZvcmUgdGhlIHN3aXRjaC4gTWF5IGJlIGVtcHR5IG9uIGZpcnN0IHNpZ24taW4uICovXG4gIHByZXZpb3VzT3JnOiBzdHJpbmc7XG4gIC8qKiBPcmcgdGhlIHVzZXIganVzdCBzd2l0Y2hlZCB0by4gKi9cbiAgbmV3T3JnOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYE9yZ1N3aXRjaFNlcnZpY2Uuc3dpdGNoVG9gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN3aXRjaE9yZ09wdGlvbnMge1xuICAvKipcbiAgICogSWYgYHRydWVgLCBhZnRlciB0aGUgc3dpdGNoIHN1Y2NlZWRzIHRoZSBwYWdlIGlzIGZ1bGx5IHJlbG9hZGVkIHZpYVxuICAgKiBgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpYC4gVXNlZnVsIGZvciBhcHBzIHdpdGggc2lnbmlmaWNhbnQgaW4tbWVtb3J5XG4gICAqIHN0YXRlIHRpZWQgdG8gdGhlIHByZXZpb3VzIG9yZyB0aGF0J3MgaGFyZCB0byBpbnZhbGlkYXRlIHBpZWNlIGJ5IHBpZWNlLlxuICAgKlxuICAgKiBUcmFkZS1vZmY6IHJlbG9hZCBsb3NlcyBhbGwgaW4tbWVtb3J5IHN0YXRlIChmb3Jtcywgc2Nyb2xsIHBvc2l0aW9uKS5cbiAgICogRGVmYXVsdDogYGZhbHNlYCDigJQgcmVsaWVzIG9uIGBvcmdDaGFuZ2VkJGAgYW5kIGBhdXRoLnVzZXIoKWAgc2lnbmFsXG4gICAqIHByb3BhZ2F0aW9uIGZvciBjb21wb25lbnRzIHRvIHJlYWN0LlxuICAgKi9cbiAgcmVsb2FkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcmdTd2l0Y2hTZXJ2aWNlIOKAlCBvcmNoZXN0cmF0ZXMgYWN0aXZlIG9yZ2FuaXphdGlvbiBjaGFuZ2VzIGFjcm9zcyB0aGUgYXBwLlxuICpcbiAqIEJ1aWx0IG9uIHRvcCBvZiBgQXV0aFNlcnZpY2Uuc3dpdGNoT3JnYCwgd2hpY2ggYWxyZWFkeTpcbiAqIC0gSGl0cyBgUE9TVCAvdjIvYXV0aC9zd2l0Y2gtb3JnYCBhbmQgcmVjZWl2ZXMgYSBuZXcgRmlyZWJhc2UgY3VzdG9tIHRva2VuLlxuICogLSBSZS1hdXRoZW50aWNhdGVzIEZpcmViYXNlIEF1dGggd2l0aCB0aGUgbmV3IHRva2VuIChSQkFDIGNsYWltcyB1cGRhdGUpLlxuICogLSBCcm9hZGNhc3RzIGBPUkdfU1dJVENIYCB0byBvdGhlciB0YWJzIHZpYSBgQXV0aFN5bmNTZXJ2aWNlYCAobXVsdGktdGFiIHN5bmMpLlxuICpcbiAqIFdoYXQgdGhpcyBzZXJ2aWNlIGFkZHMgb24gdG9wOlxuICogLSBBIGBzd2l0Y2hpbmdgIHNpZ25hbCBzbyB0aGUgVUkgY2FuIHNob3cgYSBsb2FkaW5nIGluZGljYXRvciAoMS0ycyBzd2l0Y2gpLlxuICogLSBBbiBgb3JnQ2hhbmdlZCRgIE9ic2VydmFibGUgdGhhdCBjb21wb25lbnRzIHN1YnNjcmliZSB0byBpbiBvcmRlciB0b1xuICogICBpbnZhbGlkYXRlIHRoZWlyIG9yZy1zY29wZWQgY2FjaGVzIChlLmcuIGRyb3Agb2xkIHF1ZXJ5IHJlc3VsdHMsIHJlc2V0XG4gKiAgIHBhZ2Ugc3RhdGUpIHdpdGhvdXQgYSBmdWxsIHBhZ2UgcmVsb2FkLlxuICogLSBPcHRpb25hbCBgcmVsb2FkOiB0cnVlYCBmb3IgYXBwcyB3aGVyZSBpbnZhbGlkYXRpbmcgaW4tbWVtb3J5IHN0YXRlIHBpZWNlXG4gKiAgIGJ5IHBpZWNlIGlzIGltcHJhY3RpY2FsLlxuICpcbiAqICoqV2hhdCB0aGlzIHNlcnZpY2UgZG9lcyBOT1QgZG8gYXV0b21hdGljYWxseToqKlxuICpcbiAqIDEuICoqVGVhcmRvd24gRmlyZXN0b3JlIGxpc3RlbmVycy4qKiBMaXN0ZW5lcnMgYXJlIG93bmVkIGJ5IHRoZWlyIHN1YnNjcmliaW5nXG4gKiAgICBjb21wb25lbnRzICh0eXBpY2FsbHkgdmlhIGB0YWtlVW50aWxEZXN0cm95ZWRgIG9yIGFzeW5jIHBpcGUpLiBXaGVuIHRoZVxuICogICAgY29tcG9uZW50IHJlLXJlbmRlcnMgb3IgdW5zdWJzY3JpYmVzLCB0aGUgbGlzdGVuZXIgZGlzcG9zZXMuIElmIGFcbiAqICAgIGNvbXBvbmVudCBkb2VzIE5PVCB1bnN1YnNjcmliZSBvbiBvcmcgY2hhbmdlLCBpdHMgbGlzdGVuZXIgd2lsbCBrZWVwXG4gKiAgICBwb2ludGluZyBhdCB0aGUgcHJldmlvdXMgb3JnJ3MgcGF0aCBhbmQgbWF5IHN0YXJ0IGZhaWxpbmcgcnVsZXMuIFRoZSBmaXhcbiAqICAgIGlzIGNvbXBvbmVudC1sZXZlbDogc3Vic2NyaWJlIHRvIGBvcmdDaGFuZ2VkJGAgYW5kIHJlc2V0IHN0YXRlLCBvciB1c2VcbiAqICAgIHRoZSBgcmVsb2FkOiB0cnVlYCBvcHRpb24uXG4gKlxuICogMi4gKipSZS1pbnN0YW50aWF0ZSByb3V0ZWQgY29tcG9uZW50cy4qKiBBbmd1bGFyIGtlZXBzIG1vdW50ZWQgY29tcG9uZW50c1xuICogICAgYWxpdmUgYWNyb3NzIG5hdmlnYXRpb25zLiBJZiB5b3UgbmVlZCBmcmVzaCBzdGF0ZSwgZWl0aGVyIHN1YnNjcmliZSB0b1xuICogICAgYG9yZ0NoYW5nZWQkYCBpbiB0aGUgY29tcG9uZW50LCBvciB1c2UgYHJlbG9hZDogdHJ1ZWAuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgc3dpdGNoIHdpdGggbG9hZGluZyBzdGF0ZVxuICogYGBgdHlwZXNjcmlwdFxuICogcHJpdmF0ZSBvcmdTd2l0Y2ggPSBpbmplY3QoT3JnU3dpdGNoU2VydmljZSk7XG4gKlxuICogYXN5bmMgb25Td2l0Y2hPcmcob3JnSWQ6IHN0cmluZykge1xuICogICBhd2FpdCB0aGlzLm9yZ1N3aXRjaC5zd2l0Y2hUbyhvcmdJZCk7XG4gKiAgIC8vIENvbXBvbmVudHMgc3Vic2NyaWJlZCB0byBvcmdDaGFuZ2VkJCBoYXZlIGFscmVhZHkgcmVzZXQgdGhlaXIgc3RhdGUuXG4gKiB9XG4gKlxuICogLy8gSW4gdGVtcGxhdGU6XG4gKiBAaWYgKG9yZ1N3aXRjaC5zd2l0Y2hpbmcoKSkgeyA8dmFsLWxvYWRpbmcgLz4gfVxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgQ29tcG9uZW50IHJlYWN0aW5nIHRvIG9yZyBjaGFuZ2VcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHByaXZhdGUgb3JnU3dpdGNoID0gaW5qZWN0KE9yZ1N3aXRjaFNlcnZpY2UpO1xuICpcbiAqIGNvbnN0cnVjdG9yKCkge1xuICogICB0aGlzLm9yZ1N3aXRjaC5vcmdDaGFuZ2VkJFxuICogICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICogICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXNldFN0YXRlKCkpO1xuICogfVxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgQnJ1dGFsIHJlbG9hZCBtb2RlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCB0aGlzLm9yZ1N3aXRjaC5zd2l0Y2hUbyhvcmdJZCwgeyByZWxvYWQ6IHRydWUgfSk7XG4gKiAvLyB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkg4oCUIGNsZWFuIHNsYXRlLCBsb3NlcyBzY3JvbGwgcG9zaXRpb25cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE9yZ1N3aXRjaFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zd2l0Y2hpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vcmdDaGFuZ2VkID0gbmV3IFN1YmplY3Q8T3JnQ2hhbmdlZEV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgd2hpbGUgYSBzd2l0Y2ggaXMgaW4gZmxpZ2h0LiBVSSBzaG91bGQgZGlzYWJsZSBpbnRlcmFjdGlvbnNcbiAgICogd2l0aCBvcmctc2NvcGVkIGRhdGEgYW5kIHNob3cgYSBsb2FkaW5nIGluZGljYXRvci5cbiAgICovXG4gIHJlYWRvbmx5IHN3aXRjaGluZyA9IHRoaXMuX3N3aXRjaGluZy5hc1JlYWRvbmx5KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIGFmdGVyIGEgc3VjY2Vzc2Z1bCBzd2l0Y2gsIHdpdGggdGhlIHByZXZpb3VzIGFuZCBuZXcgb3JnIGlkcy5cbiAgICogQ29tcG9uZW50cyBzdWJzY3JpYmUgdG8gaW52YWxpZGF0ZSBjYWNoZXMgLyByZXNldCBzdGF0ZS5cbiAgICpcbiAgICogRmlyZXMgQUZURVIgdGhlIEZpcmViYXNlIHJlLWF1dGggY29tcGxldGVzIOKAlCBsaXN0ZW5lcnMgYXR0YWNoZWQgaGVyZVxuICAgKiBzZWUgdGhlIHVwZGF0ZWQgRmlyZWJhc2UgdXNlciAvIGFjdGl2ZU9yZyBjbGFpbS5cbiAgICovXG4gIHJlYWRvbmx5IG9yZ0NoYW5nZWQkOiBPYnNlcnZhYmxlPE9yZ0NoYW5nZWRFdmVudD4gPSB0aGlzLl9vcmdDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aDogQXV0aFNlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIFN3aXRjaCB0aGUgdXNlcidzIGFjdGl2ZSBvcmdhbml6YXRpb24uXG4gICAqXG4gICAqIFJlLWVudHJhbnQgc2FmZTogd2hpbGUgYSBzd2l0Y2ggaXMgaW4gZmxpZ2h0LCBhZGRpdGlvbmFsIGNhbGxzIGFyZVxuICAgKiByZWplY3RlZCBzaWxlbnRseSAocmV0dXJucyBpbW1lZGlhdGVseSkuIEluc3BlY3QgYHN3aXRjaGluZygpYCB0byBnYXRlIFVJLlxuICAgKlxuICAgKiBAcGFyYW0gb3JnSWQgVGFyZ2V0IG9yZ2FuaXphdGlvbiBpZC4gTXVzdCBiZSBvbmUgdGhlIHVzZXIgaGFzIGEgcm9sZSBpblxuICAgKiAgICAgICAgICAgICAg4oCUIGJhY2tlbmQgcmVqZWN0cyBvdGhlcndpc2Ugd2l0aCBgUEVSTUlTU0lPTl9ERU5JRURgLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBTZWUgYFN3aXRjaE9yZ09wdGlvbnNgLlxuICAgKlxuICAgKiBAdGhyb3dzIFRoZSBlcnJvciBmcm9tIGBhdXRoLnN3aXRjaE9yZ2AgaWYgdGhlIGJhY2tlbmQgY2FsbCBmYWlscy5cbiAgICogICAgICAgICBgc3dpdGNoaW5nYCByZXR1cm5zIHRvIGBmYWxzZWAgYmVmb3JlIHRoZSBlcnJvciBwcm9wYWdhdGVzLlxuICAgKi9cbiAgYXN5bmMgc3dpdGNoVG8ob3JnSWQ6IHN0cmluZywgb3B0aW9uczogU3dpdGNoT3JnT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuX3N3aXRjaGluZygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcHJldmlvdXNPcmcgPSB0aGlzLmN1cnJlbnRBY3RpdmVPcmcoKTtcbiAgICBpZiAocHJldmlvdXNPcmcgPT09IG9yZ0lkKSB7XG4gICAgICAvLyBOby1vcCDigJQgYWxyZWFkeSBvbiB0aGlzIG9yZy5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zd2l0Y2hpbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmF1dGguc3dpdGNoT3JnKG9yZ0lkKSk7XG4gICAgICB0aGlzLl9vcmdDaGFuZ2VkLm5leHQoeyBwcmV2aW91c09yZywgbmV3T3JnOiBvcmdJZCB9KTtcblxuICAgICAgaWYgKG9wdGlvbnMucmVsb2FkICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fc3dpdGNoaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlYWQgdGhlIGN1cnJlbnQgYGFjdGl2ZU9yZ2AgZnJvbSB0aGUgYXV0aCB1c2VyIHNpZ25hbC5cbiAgICogRmFsbHMgYmFjayB0byBlbXB0eSBzdHJpbmcgaWYgdGhlIHVzZXIgaXNuJ3QgbG9hZGVkIHlldC5cbiAgICovXG4gIHByaXZhdGUgY3VycmVudEFjdGl2ZU9yZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmF1dGgudXNlcigpO1xuICAgIC8vIEF1dGhVc2VyIG1heSBleHBvc2UgYWN0aXZlT3JnSWQgdW5kZXIgZGlmZmVyZW50IG5hbWVzIGRlcGVuZGluZyBvblxuICAgIC8vIGJhY2tlbmQgdmVyc2lvbiDigJQga2VlcCB0b2xlcmFudC5cbiAgICByZXR1cm4gKFxuICAgICAgKHVzZXIgYXMgeyBhY3RpdmVPcmdJZD86IHN0cmluZzsgYWN0aXZlT3JnPzogc3RyaW5nIH0gfCBudWxsKT8uYWN0aXZlT3JnSWQgPz9cbiAgICAgICh1c2VyIGFzIHsgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7IGFjdGl2ZU9yZz86IHN0cmluZyB9IHwgbnVsbCk/LmFjdGl2ZU9yZyA/P1xuICAgICAgJydcbiAgICApO1xuICB9XG59XG4iXX0=
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLXN3aXRjaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL29yZy1zd2l0Y2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBK0IzRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyREc7QUFFSCxNQUFNLE9BQU8sZ0JBQWdCO0lBMEIzQixpRUFBaUU7SUFDakUsb0JBQW9CLENBQUMsR0FBaUI7UUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQW9CLElBQWlCO1FBQWpCLFNBQUksR0FBSixJQUFJLENBQWE7UUE5QnBCLGVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUM3QyxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBRS9EOzs7V0FHRztRQUNNLGNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxEOzs7Ozs7V0FNRztRQUNNLGdCQUFXLEdBQWdDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEY7OztXQUdHO1FBQ00sb0JBQWUsR0FBNkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQU9qRCxDQUFDO0lBRXpDOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBYSxFQUFFLFVBQTRCLEVBQUU7UUFDMUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVDLElBQUksV0FBVyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzFCLCtCQUErQjtZQUMvQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQztZQUNILE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFFdEQsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUNwRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQjtRQUN0QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLHFFQUFxRTtRQUNyRSxtQ0FBbUM7UUFDbkMsT0FBTyxDQUNKLElBQTRELEVBQUUsV0FBVztZQUN6RSxJQUE0RCxFQUFFLFNBQVM7WUFDeEUsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDOytHQW5GVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQURILE1BQU07OzRGQUNuQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvbiB9IGZyb20gJy4uL29yZy90eXBlcyc7XG5cbi8qKlxuICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBhY3RpdmUgb3JnYW5pemF0aW9uIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JnQ2hhbmdlZEV2ZW50IHtcbiAgLyoqIE9yZyB0aGUgdXNlciB3YXMgb24gYmVmb3JlIHRoZSBzd2l0Y2guIE1heSBiZSBlbXB0eSBvbiBmaXJzdCBzaWduLWluLiAqL1xuICBwcmV2aW91c09yZzogc3RyaW5nO1xuICAvKiogT3JnIHRoZSB1c2VyIGp1c3Qgc3dpdGNoZWQgdG8uICovXG4gIG5ld09yZzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBPcmdTd2l0Y2hTZXJ2aWNlLnN3aXRjaFRvYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2l0Y2hPcmdPcHRpb25zIHtcbiAgLyoqXG4gICAqIElmIGB0cnVlYCwgYWZ0ZXIgdGhlIHN3aXRjaCBzdWNjZWVkcyB0aGUgcGFnZSBpcyBmdWxseSByZWxvYWRlZCB2aWFcbiAgICogYHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKWAuIFVzZWZ1bCBmb3IgYXBwcyB3aXRoIHNpZ25pZmljYW50IGluLW1lbW9yeVxuICAgKiBzdGF0ZSB0aWVkIHRvIHRoZSBwcmV2aW91cyBvcmcgdGhhdCdzIGhhcmQgdG8gaW52YWxpZGF0ZSBwaWVjZSBieSBwaWVjZS5cbiAgICpcbiAgICogVHJhZGUtb2ZmOiByZWxvYWQgbG9zZXMgYWxsIGluLW1lbW9yeSBzdGF0ZSAoZm9ybXMsIHNjcm9sbCBwb3NpdGlvbikuXG4gICAqIERlZmF1bHQ6IGBmYWxzZWAg4oCUIHJlbGllcyBvbiBgb3JnQ2hhbmdlZCRgIGFuZCBgYXV0aC51c2VyKClgIHNpZ25hbFxuICAgKiBwcm9wYWdhdGlvbiBmb3IgY29tcG9uZW50cyB0byByZWFjdC5cbiAgICovXG4gIHJlbG9hZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3JnU3dpdGNoU2VydmljZSDigJQgb3JjaGVzdHJhdGVzIGFjdGl2ZSBvcmdhbml6YXRpb24gY2hhbmdlcyBhY3Jvc3MgdGhlIGFwcC5cbiAqXG4gKiBCdWlsdCBvbiB0b3Agb2YgYEF1dGhTZXJ2aWNlLnN3aXRjaE9yZ2AsIHdoaWNoIGFscmVhZHk6XG4gKiAtIEhpdHMgYFBPU1QgL3YyL2F1dGgvc3dpdGNoLW9yZ2AgYW5kIHJlY2VpdmVzIGEgbmV3IEZpcmViYXNlIGN1c3RvbSB0b2tlbi5cbiAqIC0gUmUtYXV0aGVudGljYXRlcyBGaXJlYmFzZSBBdXRoIHdpdGggdGhlIG5ldyB0b2tlbiAoUkJBQyBjbGFpbXMgdXBkYXRlKS5cbiAqIC0gQnJvYWRjYXN0cyBgT1JHX1NXSVRDSGAgdG8gb3RoZXIgdGFicyB2aWEgYEF1dGhTeW5jU2VydmljZWAgKG11bHRpLXRhYiBzeW5jKS5cbiAqXG4gKiBXaGF0IHRoaXMgc2VydmljZSBhZGRzIG9uIHRvcDpcbiAqIC0gQSBgc3dpdGNoaW5nYCBzaWduYWwgc28gdGhlIFVJIGNhbiBzaG93IGEgbG9hZGluZyBpbmRpY2F0b3IgKDEtMnMgc3dpdGNoKS5cbiAqIC0gQW4gYG9yZ0NoYW5nZWQkYCBPYnNlcnZhYmxlIHRoYXQgY29tcG9uZW50cyBzdWJzY3JpYmUgdG8gaW4gb3JkZXIgdG9cbiAqICAgaW52YWxpZGF0ZSB0aGVpciBvcmctc2NvcGVkIGNhY2hlcyAoZS5nLiBkcm9wIG9sZCBxdWVyeSByZXN1bHRzLCByZXNldFxuICogICBwYWdlIHN0YXRlKSB3aXRob3V0IGEgZnVsbCBwYWdlIHJlbG9hZC5cbiAqIC0gT3B0aW9uYWwgYHJlbG9hZDogdHJ1ZWAgZm9yIGFwcHMgd2hlcmUgaW52YWxpZGF0aW5nIGluLW1lbW9yeSBzdGF0ZSBwaWVjZVxuICogICBieSBwaWVjZSBpcyBpbXByYWN0aWNhbC5cbiAqXG4gKiAqKldoYXQgdGhpcyBzZXJ2aWNlIGRvZXMgTk9UIGRvIGF1dG9tYXRpY2FsbHk6KipcbiAqXG4gKiAxLiAqKlRlYXJkb3duIEZpcmVzdG9yZSBsaXN0ZW5lcnMuKiogTGlzdGVuZXJzIGFyZSBvd25lZCBieSB0aGVpciBzdWJzY3JpYmluZ1xuICogICAgY29tcG9uZW50cyAodHlwaWNhbGx5IHZpYSBgdGFrZVVudGlsRGVzdHJveWVkYCBvciBhc3luYyBwaXBlKS4gV2hlbiB0aGVcbiAqICAgIGNvbXBvbmVudCByZS1yZW5kZXJzIG9yIHVuc3Vic2NyaWJlcywgdGhlIGxpc3RlbmVyIGRpc3Bvc2VzLiBJZiBhXG4gKiAgICBjb21wb25lbnQgZG9lcyBOT1QgdW5zdWJzY3JpYmUgb24gb3JnIGNoYW5nZSwgaXRzIGxpc3RlbmVyIHdpbGwga2VlcFxuICogICAgcG9pbnRpbmcgYXQgdGhlIHByZXZpb3VzIG9yZydzIHBhdGggYW5kIG1heSBzdGFydCBmYWlsaW5nIHJ1bGVzLiBUaGUgZml4XG4gKiAgICBpcyBjb21wb25lbnQtbGV2ZWw6IHN1YnNjcmliZSB0byBgb3JnQ2hhbmdlZCRgIGFuZCByZXNldCBzdGF0ZSwgb3IgdXNlXG4gKiAgICB0aGUgYHJlbG9hZDogdHJ1ZWAgb3B0aW9uLlxuICpcbiAqIDIuICoqUmUtaW5zdGFudGlhdGUgcm91dGVkIGNvbXBvbmVudHMuKiogQW5ndWxhciBrZWVwcyBtb3VudGVkIGNvbXBvbmVudHNcbiAqICAgIGFsaXZlIGFjcm9zcyBuYXZpZ2F0aW9ucy4gSWYgeW91IG5lZWQgZnJlc2ggc3RhdGUsIGVpdGhlciBzdWJzY3JpYmUgdG9cbiAqICAgIGBvcmdDaGFuZ2VkJGAgaW4gdGhlIGNvbXBvbmVudCwgb3IgdXNlIGByZWxvYWQ6IHRydWVgLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHN3aXRjaCB3aXRoIGxvYWRpbmcgc3RhdGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHByaXZhdGUgb3JnU3dpdGNoID0gaW5qZWN0KE9yZ1N3aXRjaFNlcnZpY2UpO1xuICpcbiAqIGFzeW5jIG9uU3dpdGNoT3JnKG9yZ0lkOiBzdHJpbmcpIHtcbiAqICAgYXdhaXQgdGhpcy5vcmdTd2l0Y2guc3dpdGNoVG8ob3JnSWQpO1xuICogICAvLyBDb21wb25lbnRzIHN1YnNjcmliZWQgdG8gb3JnQ2hhbmdlZCQgaGF2ZSBhbHJlYWR5IHJlc2V0IHRoZWlyIHN0YXRlLlxuICogfVxuICpcbiAqIC8vIEluIHRlbXBsYXRlOlxuICogQGlmIChvcmdTd2l0Y2guc3dpdGNoaW5nKCkpIHsgPHZhbC1sb2FkaW5nIC8+IH1cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIENvbXBvbmVudCByZWFjdGluZyB0byBvcmcgY2hhbmdlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBwcml2YXRlIG9yZ1N3aXRjaCA9IGluamVjdChPcmdTd2l0Y2hTZXJ2aWNlKTtcbiAqXG4gKiBjb25zdHJ1Y3RvcigpIHtcbiAqICAgdGhpcy5vcmdTd2l0Y2gub3JnQ2hhbmdlZCRcbiAqICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAqICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzZXRTdGF0ZSgpKTtcbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIEJydXRhbCByZWxvYWQgbW9kZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXdhaXQgdGhpcy5vcmdTd2l0Y2guc3dpdGNoVG8ob3JnSWQsIHsgcmVsb2FkOiB0cnVlIH0pO1xuICogLy8gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpIOKAlCBjbGVhbiBzbGF0ZSwgbG9zZXMgc2Nyb2xsIHBvc2l0aW9uXG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBPcmdTd2l0Y2hTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3dpdGNoaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3JnQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PE9yZ0NoYW5nZWRFdmVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3JnRGF0YVVwZGF0ZWQgPSBuZXcgU3ViamVjdDxPcmdhbml6YXRpb24+KCk7XG5cbiAgLyoqXG4gICAqIGB0cnVlYCB3aGlsZSBhIHN3aXRjaCBpcyBpbiBmbGlnaHQuIFVJIHNob3VsZCBkaXNhYmxlIGludGVyYWN0aW9uc1xuICAgKiB3aXRoIG9yZy1zY29wZWQgZGF0YSBhbmQgc2hvdyBhIGxvYWRpbmcgaW5kaWNhdG9yLlxuICAgKi9cbiAgcmVhZG9ubHkgc3dpdGNoaW5nID0gdGhpcy5fc3dpdGNoaW5nLmFzUmVhZG9ubHkoKTtcblxuICAvKipcbiAgICogRmlyZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHN3aXRjaCwgd2l0aCB0aGUgcHJldmlvdXMgYW5kIG5ldyBvcmcgaWRzLlxuICAgKiBDb21wb25lbnRzIHN1YnNjcmliZSB0byBpbnZhbGlkYXRlIGNhY2hlcyAvIHJlc2V0IHN0YXRlLlxuICAgKlxuICAgKiBGaXJlcyBBRlRFUiB0aGUgRmlyZWJhc2UgcmUtYXV0aCBjb21wbGV0ZXMg4oCUIGxpc3RlbmVycyBhdHRhY2hlZCBoZXJlXG4gICAqIHNlZSB0aGUgdXBkYXRlZCBGaXJlYmFzZSB1c2VyIC8gYWN0aXZlT3JnIGNsYWltLlxuICAgKi9cbiAgcmVhZG9ubHkgb3JnQ2hhbmdlZCQ6IE9ic2VydmFibGU8T3JnQ2hhbmdlZEV2ZW50PiA9IHRoaXMuX29yZ0NoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gb3JnIGRhdGEgKG5hbWUsIGxvZ29VcmwsIGV0Yy4pIGNoYW5nZXMgd2l0aG91dCBhIGZ1bGwgb3JnIHN3aXRjaC5cbiAgICogU3Vic2NyaWJlIGluIHRoZSBhcHAgc2hlbGwgdG8ga2VlcCB0aGUgaGVhZGVyIG9yZyBhdmF0YXIgdXAgdG8gZGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IG9yZ0RhdGFVcGRhdGVkJDogT2JzZXJ2YWJsZTxPcmdhbml6YXRpb24+ID0gdGhpcy5fb3JnRGF0YVVwZGF0ZWQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLyoqIE5vdGlmeSBzdWJzY3JpYmVycyB0aGF0IHRoZSBhY3RpdmUgb3JnJ3MgZGF0YSB3YXMgdXBkYXRlZC4gKi9cbiAgbm90aWZ5T3JnRGF0YVVwZGF0ZWQob3JnOiBPcmdhbml6YXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9vcmdEYXRhVXBkYXRlZC5uZXh0KG9yZyk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBTd2l0Y2ggdGhlIHVzZXIncyBhY3RpdmUgb3JnYW5pemF0aW9uLlxuICAgKlxuICAgKiBSZS1lbnRyYW50IHNhZmU6IHdoaWxlIGEgc3dpdGNoIGlzIGluIGZsaWdodCwgYWRkaXRpb25hbCBjYWxscyBhcmVcbiAgICogcmVqZWN0ZWQgc2lsZW50bHkgKHJldHVybnMgaW1tZWRpYXRlbHkpLiBJbnNwZWN0IGBzd2l0Y2hpbmcoKWAgdG8gZ2F0ZSBVSS5cbiAgICpcbiAgICogQHBhcmFtIG9yZ0lkIFRhcmdldCBvcmdhbml6YXRpb24gaWQuIE11c3QgYmUgb25lIHRoZSB1c2VyIGhhcyBhIHJvbGUgaW5cbiAgICogICAgICAgICAgICAgIOKAlCBiYWNrZW5kIHJlamVjdHMgb3RoZXJ3aXNlIHdpdGggYFBFUk1JU1NJT05fREVOSUVEYC5cbiAgICogQHBhcmFtIG9wdGlvbnMgU2VlIGBTd2l0Y2hPcmdPcHRpb25zYC5cbiAgICpcbiAgICogQHRocm93cyBUaGUgZXJyb3IgZnJvbSBgYXV0aC5zd2l0Y2hPcmdgIGlmIHRoZSBiYWNrZW5kIGNhbGwgZmFpbHMuXG4gICAqICAgICAgICAgYHN3aXRjaGluZ2AgcmV0dXJucyB0byBgZmFsc2VgIGJlZm9yZSB0aGUgZXJyb3IgcHJvcGFnYXRlcy5cbiAgICovXG4gIGFzeW5jIHN3aXRjaFRvKG9yZ0lkOiBzdHJpbmcsIG9wdGlvbnM6IFN3aXRjaE9yZ09wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLl9zd2l0Y2hpbmcoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHByZXZpb3VzT3JnID0gdGhpcy5jdXJyZW50QWN0aXZlT3JnKCk7XG4gICAgaWYgKHByZXZpb3VzT3JnID09PSBvcmdJZCkge1xuICAgICAgLy8gTm8tb3Ag4oCUIGFscmVhZHkgb24gdGhpcyBvcmcuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3dpdGNoaW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hdXRoLnN3aXRjaE9yZyhvcmdJZCkpO1xuICAgICAgdGhpcy5fb3JnQ2hhbmdlZC5uZXh0KHsgcHJldmlvdXNPcmcsIG5ld09yZzogb3JnSWQgfSk7XG5cbiAgICAgIGlmIChvcHRpb25zLnJlbG9hZCAmJiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX3N3aXRjaGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIHRoZSBjdXJyZW50IGBhY3RpdmVPcmdgIGZyb20gdGhlIGF1dGggdXNlciBzaWduYWwuXG4gICAqIEZhbGxzIGJhY2sgdG8gZW1wdHkgc3RyaW5nIGlmIHRoZSB1c2VyIGlzbid0IGxvYWRlZCB5ZXQuXG4gICAqL1xuICBwcml2YXRlIGN1cnJlbnRBY3RpdmVPcmcoKTogc3RyaW5nIHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5hdXRoLnVzZXIoKTtcbiAgICAvLyBBdXRoVXNlciBtYXkgZXhwb3NlIGFjdGl2ZU9yZ0lkIHVuZGVyIGRpZmZlcmVudCBuYW1lcyBkZXBlbmRpbmcgb25cbiAgICAvLyBiYWNrZW5kIHZlcnNpb24g4oCUIGtlZXAgdG9sZXJhbnQuXG4gICAgcmV0dXJuIChcbiAgICAgICh1c2VyIGFzIHsgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7IGFjdGl2ZU9yZz86IHN0cmluZyB9IHwgbnVsbCk/LmFjdGl2ZU9yZ0lkID8/XG4gICAgICAodXNlciBhcyB7IGFjdGl2ZU9yZ0lkPzogc3RyaW5nOyBhY3RpdmVPcmc/OiBzdHJpbmcgfSB8IG51bGwpPy5hY3RpdmVPcmcgPz9cbiAgICAgICcnXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.202';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4yMDInO1xuIl19
5
+ export const VERSION = '4.0.203';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4yMDMnO1xuIl19
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
56
56
  * Current version of valtech-components.
57
57
  * This is automatically updated during the publish process.
58
58
  */
59
- const VERSION = '4.0.202';
59
+ const VERSION = '4.0.203';
60
60
 
61
61
  // Control de estado de refresco (singleton a nivel de módulo)
62
62
  let isRefreshing = false;
@@ -21166,16 +21166,18 @@ class LoadMoreComponent {
21166
21166
  [shape]="shape()"
21167
21167
  [size]="size()"
21168
21168
  [disabled]="loading()"
21169
+ class="lm-btn"
21169
21170
  (click)="onButtonClick()"
21170
21171
  >
21171
21172
  @if (loading()) {
21172
- <ion-spinner name="crescent" slot="start" />
21173
+ <ion-spinner name="crescent" />
21174
+ } @else {
21175
+ {{ label() }}
21173
21176
  }
21174
- {{ label() }}
21175
21177
  </ion-button>
21176
21178
  </div>
21177
21179
  }
21178
- `, isInline: true, styles: [":host{display:block}.lm-wrap{display:flex;justify-content:center;padding:16px 0 8px}ion-button ion-spinner{--color: currentColor;width:1rem;height:1rem}\n"], dependencies: [{ kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }] }); }
21180
+ `, isInline: true, styles: [":host{display:block}.lm-wrap{display:flex;justify-content:center;padding:16px 0 8px}.lm-btn{min-width:120px}ion-button ion-spinner{--color: currentColor;width:1rem;height:1rem}\n"], dependencies: [{ kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }] }); }
21179
21181
  }
21180
21182
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadMoreComponent, decorators: [{
21181
21183
  type: Component,
@@ -21192,16 +21194,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
21192
21194
  [shape]="shape()"
21193
21195
  [size]="size()"
21194
21196
  [disabled]="loading()"
21197
+ class="lm-btn"
21195
21198
  (click)="onButtonClick()"
21196
21199
  >
21197
21200
  @if (loading()) {
21198
- <ion-spinner name="crescent" slot="start" />
21201
+ <ion-spinner name="crescent" />
21202
+ } @else {
21203
+ {{ label() }}
21199
21204
  }
21200
- {{ label() }}
21201
21205
  </ion-button>
21202
21206
  </div>
21203
21207
  }
21204
- `, styles: [":host{display:block}.lm-wrap{display:flex;justify-content:center;padding:16px 0 8px}ion-button ion-spinner{--color: currentColor;width:1rem;height:1rem}\n"] }]
21208
+ `, styles: [":host{display:block}.lm-wrap{display:flex;justify-content:center;padding:16px 0 8px}.lm-btn{min-width:120px}ion-button ion-spinner{--color: currentColor;width:1rem;height:1rem}\n"] }]
21205
21209
  }], ctorParameters: () => [], propDecorators: { loadMore: [{
21206
21210
  type: Output
21207
21211
  }] } });
@@ -34632,10 +34636,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
34632
34636
  * ```
34633
34637
  */
34634
34638
  class OrgSwitchService {
34639
+ /** Notify subscribers that the active org's data was updated. */
34640
+ notifyOrgDataUpdated(org) {
34641
+ this._orgDataUpdated.next(org);
34642
+ }
34635
34643
  constructor(auth) {
34636
34644
  this.auth = auth;
34637
34645
  this._switching = signal(false);
34638
34646
  this._orgChanged = new Subject();
34647
+ this._orgDataUpdated = new Subject();
34639
34648
  /**
34640
34649
  * `true` while a switch is in flight. UI should disable interactions
34641
34650
  * with org-scoped data and show a loading indicator.
@@ -34649,6 +34658,11 @@ class OrgSwitchService {
34649
34658
  * see the updated Firebase user / activeOrg claim.
34650
34659
  */
34651
34660
  this.orgChanged$ = this._orgChanged.asObservable();
34661
+ /**
34662
+ * Fires when org data (name, logoUrl, etc.) changes without a full org switch.
34663
+ * Subscribe in the app shell to keep the header org avatar up to date.
34664
+ */
34665
+ this.orgDataUpdated$ = this._orgDataUpdated.asObservable();
34652
34666
  }
34653
34667
  /**
34654
34668
  * Switch the user's active organization.
@@ -54562,6 +54576,7 @@ class OrganizationViewComponent {
54562
54576
  this.nav = inject(NavigationService);
54563
54577
  this.i18n = inject(I18nService);
54564
54578
  this.auth = inject(AuthService);
54579
+ this.orgSwitch = inject(OrgSwitchService);
54565
54580
  this.orgService = inject(OrgService);
54566
54581
  this.toast = inject(ToastService);
54567
54582
  this.errors = inject(ValtechErrorService);
@@ -54815,6 +54830,7 @@ class OrganizationViewComponent {
54815
54830
  org: this.org(),
54816
54831
  onSuccess: (updated) => {
54817
54832
  this.org.set(updated);
54833
+ this.orgSwitch.notifyOrgDataUpdated(updated);
54818
54834
  this.resolvedConfig().onOrgEdited?.();
54819
54835
  },
54820
54836
  },