@techextensor/tab-core-utility 2.2.199 → 2.2.200

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.
package/esm2022/index.mjs CHANGED
@@ -43,6 +43,7 @@ export * from './lib/tab-core-utility/app/interfaces/orgInfo.interface';
43
43
  export * from './lib/tab-core-utility/app/interfaces/schema.interface';
44
44
  export * from './lib/tab-core-utility/app/interfaces/grid.interface';
45
45
  export * from './lib/tab-core-utility/app/interfaces/signalr.interface';
46
+ export * from './lib/tab-core-utility/app/interfaces/notification.interface';
46
47
  export * from './lib/tab-core-utility/app/interfaces/release.interface';
47
48
  // App / models
48
49
  export * from './lib/tab-core-utility/app/models/api-query.class';
@@ -82,9 +83,11 @@ export * from './lib/tab-core-utility/core/service/encryption.service';
82
83
  export * from './lib/tab-core-utility/core/service/signalr/signalr.service';
83
84
  export * from './lib/tab-core-utility/core/service/signalr/signalr-infrastructure.service';
84
85
  export * from './lib/tab-core-utility/core/service/signalr/operation-tracker.service';
86
+ export * from './lib/tab-core-utility/core/service/notification/notification-inbox.service';
87
+ export * from './lib/tab-core-utility/core/service/notification/notification-websocket.service';
85
88
  // Pipe
86
89
  export * from './lib/tab-core-utility/core/pipe/translate.pipe';
87
90
  // Provider
88
91
  export * from './lib/tab-core-utility/core/provider/translation.provider';
89
92
  export * from './lib/tab-core-utility/core/provider/notification.provider';
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQkFBa0I7QUFDbEIsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyx3REFBd0QsQ0FBQztBQUV2RSxhQUFhO0FBQ2IsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMscURBQXFELENBQUM7QUFFcEUsYUFBYTtBQUNiLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw2Q0FBNkMsQ0FBQztBQUU1RCxnQkFBZ0I7QUFDaEIsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLHVFQUF1RSxDQUFDO0FBQ3RGLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw2REFBNkQsQ0FBQztBQUU1RSxjQUFjLDJEQUEyRCxDQUFDO0FBRTFFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLHNGQUFzRjtBQUV0RixtQkFBbUI7QUFDbkIsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHlEQUF5RCxDQUFDO0FBRXhFLGVBQWU7QUFDZixjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDhDQUE4QyxDQUFDO0FBRTdELGNBQWM7QUFDZCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLCtDQUErQyxDQUFDO0FBRTlELE9BQU87QUFDUCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLGlEQUFpRCxDQUFDO0FBRWhFLE9BQU87QUFDUCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMscURBQXFELENBQUM7QUFFcEUsVUFBVTtBQUNWLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLDRFQUE0RSxDQUFDO0FBQzNGLGNBQWMsdUVBQXVFLENBQUM7QUFFdEYsT0FBTztBQUNQLGNBQWMsaURBQWlELENBQUM7QUFFaEUsV0FBVztBQUNYLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyw0REFBNEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFwcCAvIGNvbnN0YW50c1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jb25zdGFudHMvYXBpLWNvbnN0YW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NvbnN0YW50cy9jb21tb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jb25zdGFudHMvZXJyb3ItbWVzc2FnZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jb25zdGFudHMvc3RvcmFnZS1jb25zdGFudHMnO1xyXG5cclxuLy8gQXBwIC8gY3J1ZFxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1jcnVkLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1nZXQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLWZvcm1pby5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY3J1ZC90YWItaW5zZXJ0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1kZWxldGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLXVwZGF0ZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY3J1ZC90YWItd29ya2Zsb3cuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLWJsdWVwcmludC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY3J1ZC90YWItcmVsZWFzZS5zZXJ2aWNlJztcclxuXHJcbi8vIEFwcCAvIGVudW1cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvZW51bXMvY29tbW9uLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9lbnVtcy9jb250cm9sbGVycy5lbnVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvZW51bXMvZHNxLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9lbnVtcy9wZXJtaXNzaW9uLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9lbnVtcy9xdWVyeS5lbnVtJztcclxuXHJcbi8vIEFwcCAvIGhlbHBlcnNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vYXBwLmhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL2NvbW1vbi91c2VyLXBlcnNvbmFsaXphdGlvbi5oZWxwZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL2NvbW1vbi9kc3EuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL3JlcS1yZXMuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL3doZXJlLWNsYXVzZS5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vdGVtcGxhdGUuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL21ldGEtZGF0YS5oZWxwZXJzJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvbG9naW4tcmVzcG9uc2UuYWRhcHRlcic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL3NjcmVlbi9mb3Jtcy5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9zY3JlZW4vZ3JpZC1jb2x1bW4tZGF0YS5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9zY3JlZW4vZ3JpZC5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9zY3JlZW4vbWVkaWEtdXBsb2FkLmhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL3NjcmVlbi9wbHVnaW4uaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvc2NyZWVuL3NjcmVlbi5oZWxwZXJzJztcclxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9zY3JlZW4vZnRwLW1lZGlhLXVwbG9hZC5oZWxwZXJzJztcclxuXHJcbi8vIEFwcCAvIGludGVyZmFjZXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9hdXRoLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2ludGVyZmFjZXMvY29tbW9uLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2ludGVyZmFjZXMvdXNlci5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL29yZ0luZm8uaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9zY2hlbWEuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9ncmlkLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2ludGVyZmFjZXMvc2lnbmFsci5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL3JlbGVhc2UuaW50ZXJmYWNlJztcclxuXHJcbi8vIEFwcCAvIG1vZGVsc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvYXBpLXF1ZXJ5LmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvbW9kZWxzL2FwcC1maWVsZC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9hcHAtbWVudS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9hcHAtb2JqZWN0LmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvbW9kZWxzL2FwcC1vYmplY3QubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvYXBwLXNjcmVlbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9jb21tb24uY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvZGF0YS1zb3VyY2UtcXVlcmllcy5jbGFzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9kYXRhLXNvdXJjZS1xdWVyeS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9maWx0ZXIubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvb3JnSW5mby5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9wYXJhbWV0ZXIubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvc29ydC5tb2RlbCc7XHJcblxyXG4vLyBBcHAgLyB1dGlsc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC91dGlscy9maWx0ZXIudXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL2Zvcm0tYnVpbGRlci51dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvdXRpbHMvanNvbi51dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvdXRpbHMvb3BlcmF0b3JzLnV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC91dGlscy9yZXEtcmVzLnV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC91dGlscy9zZWxlY3QtcXVlcnkudXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL3RhYi1hcHAudXRpbCc7XHJcblxyXG4vLyBBdXRoXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXV0aC9hdXRoLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2F1dGgvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hdXRoL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hdXRoL2lkYi1zdG9yYWdlLnNlcnZpY2UnO1xyXG5cclxuLy8gQ29yZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvaHR0cC1jbGllbnQvYXBpLXVybC50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9odHRwLWNsaWVudC9hcGkuc2VydmljZSc7XHJcblxyXG4vLyBTZXJ2aWNlXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9zZXJ2aWNlL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvc2VydmljZS9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9zZXJ2aWNlL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9jb3JlL3NlcnZpY2UvZW5jcnlwdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9jb3JlL3NlcnZpY2Uvc2lnbmFsci9zaWduYWxyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvc2VydmljZS9zaWduYWxyL3NpZ25hbHItaW5mcmFzdHJ1Y3R1cmUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9zZXJ2aWNlL3NpZ25hbHIvb3BlcmF0aW9uLXRyYWNrZXIuc2VydmljZSc7XHJcblxyXG4vLyBQaXBlXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9waXBlL3RyYW5zbGF0ZS5waXBlJztcclxuXHJcbi8vIFByb3ZpZGVyXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9wcm92aWRlci90cmFuc2xhdGlvbi5wcm92aWRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9wcm92aWRlci9ub3RpZmljYXRpb24ucHJvdmlkZXInO1xyXG5cclxuIl19
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQkFBa0I7QUFDbEIsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyx3REFBd0QsQ0FBQztBQUV2RSxhQUFhO0FBQ2IsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMscURBQXFELENBQUM7QUFFcEUsYUFBYTtBQUNiLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw2Q0FBNkMsQ0FBQztBQUU1RCxnQkFBZ0I7QUFDaEIsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLHVFQUF1RSxDQUFDO0FBQ3RGLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw2REFBNkQsQ0FBQztBQUU1RSxjQUFjLDJEQUEyRCxDQUFDO0FBRTFFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLHNGQUFzRjtBQUV0RixtQkFBbUI7QUFDbkIsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMseURBQXlELENBQUM7QUFFeEUsZUFBZTtBQUNmLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsOENBQThDLENBQUM7QUFFN0QsY0FBYztBQUNkLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsK0NBQStDLENBQUM7QUFFOUQsT0FBTztBQUNQLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsaURBQWlELENBQUM7QUFFaEUsT0FBTztBQUNQLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxxREFBcUQsQ0FBQztBQUVwRSxVQUFVO0FBQ1YsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsNEVBQTRFLENBQUM7QUFDM0YsY0FBYyx1RUFBdUUsQ0FBQztBQUN0RixjQUFjLDZFQUE2RSxDQUFDO0FBQzVGLGNBQWMsaUZBQWlGLENBQUM7QUFFaEcsT0FBTztBQUNQLGNBQWMsaURBQWlELENBQUM7QUFFaEUsV0FBVztBQUNYLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyw0REFBNEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFwcCAvIGNvbnN0YW50c1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jb25zdGFudHMvYXBpLWNvbnN0YW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NvbnN0YW50cy9jb21tb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jb25zdGFudHMvZXJyb3ItbWVzc2FnZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jb25zdGFudHMvc3RvcmFnZS1jb25zdGFudHMnO1xyXG5cclxuLy8gQXBwIC8gY3J1ZFxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1jcnVkLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1nZXQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLWZvcm1pby5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY3J1ZC90YWItaW5zZXJ0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1kZWxldGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLXVwZGF0ZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY3J1ZC90YWItd29ya2Zsb3cuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLWJsdWVwcmludC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY3J1ZC90YWItcmVsZWFzZS5zZXJ2aWNlJztcclxuXHJcbi8vIEFwcCAvIGVudW1cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvZW51bXMvY29tbW9uLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9lbnVtcy9jb250cm9sbGVycy5lbnVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvZW51bXMvZHNxLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9lbnVtcy9wZXJtaXNzaW9uLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9lbnVtcy9xdWVyeS5lbnVtJztcclxuXHJcbi8vIEFwcCAvIGhlbHBlcnNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vYXBwLmhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL2NvbW1vbi91c2VyLXBlcnNvbmFsaXphdGlvbi5oZWxwZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL2NvbW1vbi9kc3EuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL3JlcS1yZXMuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL3doZXJlLWNsYXVzZS5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vdGVtcGxhdGUuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL21ldGEtZGF0YS5oZWxwZXJzJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvbG9naW4tcmVzcG9uc2UuYWRhcHRlcic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL3NjcmVlbi9mb3Jtcy5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9zY3JlZW4vZ3JpZC1jb2x1bW4tZGF0YS5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9zY3JlZW4vZ3JpZC5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9zY3JlZW4vbWVkaWEtdXBsb2FkLmhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL3NjcmVlbi9wbHVnaW4uaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvc2NyZWVuL3NjcmVlbi5oZWxwZXJzJztcclxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9zY3JlZW4vZnRwLW1lZGlhLXVwbG9hZC5oZWxwZXJzJztcclxuXHJcbi8vIEFwcCAvIGludGVyZmFjZXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9hdXRoLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2ludGVyZmFjZXMvY29tbW9uLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2ludGVyZmFjZXMvdXNlci5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL29yZ0luZm8uaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9zY2hlbWEuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9ncmlkLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2ludGVyZmFjZXMvc2lnbmFsci5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL25vdGlmaWNhdGlvbi5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL3JlbGVhc2UuaW50ZXJmYWNlJztcclxuXHJcbi8vIEFwcCAvIG1vZGVsc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvYXBpLXF1ZXJ5LmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvbW9kZWxzL2FwcC1maWVsZC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9hcHAtbWVudS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9hcHAtb2JqZWN0LmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvbW9kZWxzL2FwcC1vYmplY3QubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvYXBwLXNjcmVlbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9jb21tb24uY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvZGF0YS1zb3VyY2UtcXVlcmllcy5jbGFzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9kYXRhLXNvdXJjZS1xdWVyeS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9maWx0ZXIubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvb3JnSW5mby5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9wYXJhbWV0ZXIubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvc29ydC5tb2RlbCc7XHJcblxyXG4vLyBBcHAgLyB1dGlsc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC91dGlscy9maWx0ZXIudXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL2Zvcm0tYnVpbGRlci51dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvdXRpbHMvanNvbi51dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvdXRpbHMvb3BlcmF0b3JzLnV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC91dGlscy9yZXEtcmVzLnV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC91dGlscy9zZWxlY3QtcXVlcnkudXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL3RhYi1hcHAudXRpbCc7XHJcblxyXG4vLyBBdXRoXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXV0aC9hdXRoLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2F1dGgvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hdXRoL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hdXRoL2lkYi1zdG9yYWdlLnNlcnZpY2UnO1xyXG5cclxuLy8gQ29yZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvaHR0cC1jbGllbnQvYXBpLXVybC50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9odHRwLWNsaWVudC9hcGkuc2VydmljZSc7XHJcblxyXG4vLyBTZXJ2aWNlXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9zZXJ2aWNlL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvc2VydmljZS9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9zZXJ2aWNlL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9jb3JlL3NlcnZpY2UvZW5jcnlwdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9jb3JlL3NlcnZpY2Uvc2lnbmFsci9zaWduYWxyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvc2VydmljZS9zaWduYWxyL3NpZ25hbHItaW5mcmFzdHJ1Y3R1cmUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9zZXJ2aWNlL3NpZ25hbHIvb3BlcmF0aW9uLXRyYWNrZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9zZXJ2aWNlL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24taW5ib3guc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9zZXJ2aWNlL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24td2Vic29ja2V0LnNlcnZpY2UnO1xyXG5cclxuLy8gUGlwZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvcGlwZS90cmFuc2xhdGUucGlwZSc7XHJcblxyXG4vLyBQcm92aWRlclxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvcHJvdmlkZXIvdHJhbnNsYXRpb24ucHJvdmlkZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvcHJvdmlkZXIvbm90aWZpY2F0aW9uLnByb3ZpZGVyJztcclxuXHJcbiJdfQ==
@@ -30,6 +30,7 @@ export class Common {
30
30
  Common.staticToken = environment?.commonConfig?.staticToken;
31
31
  Common.apiServiceUrls = environment?.apiServiceUrls || {};
32
32
  Common.signalRHubUrl = environment?.signalRHubUrl || '';
33
+ Common.notificationWebSocketUrl = environment?.websocketUrl || '';
33
34
  }
34
35
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBSXZELE1BQU0sT0FBTyxNQUFNO2FBT0QsU0FBSSxHQUFRLEVBQUUsQ0FBQzthQWVkLG9CQUFlLEdBQXdCLElBQUksQ0FBQztJQUVwRCxNQUFNLEtBQUssT0FBTztRQUN2QixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNNLE1BQU0sS0FBSyxPQUFPLENBQUMsS0FBVTtRQUNsQyxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztRQUMzQixNQUFNLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFvQjtRQUMvQyxNQUFNLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFnQjtRQUNqQyxNQUFNLENBQUMsZUFBZSxHQUFHLFdBQVcsRUFBRSxJQUFJLENBQUM7UUFDM0MsTUFBTSxDQUFDLGVBQWUsR0FBRyxXQUFXLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQztRQUNwRSxNQUFNLENBQUMsT0FBTyxHQUFHLFdBQVcsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDO1FBQ3BELE1BQU0sQ0FBQyx1QkFBdUIsR0FBRyxXQUFXLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixDQUFDO1FBQ3BGLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixDQUFDO1FBQzFFLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixDQUFDO1FBQzFFLE1BQU0sQ0FBQyxXQUFXLEdBQUcsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLENBQUM7UUFDNUQsTUFBTSxDQUFDLGNBQWMsR0FBRyxXQUFXLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQztRQUMxRCxNQUFNLENBQUMsYUFBYSxHQUFHLFdBQVcsRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDO0lBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcblxyXG5pbXBvcnQgeyBBUElTZXJ2aWNlVXJscyB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29tbW9uLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgQ29tbW9uIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgZW52aXJvbm1lbnROYW1lOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc3RhdGljIGFwcGxpY2F0aW9uQ29kZTogc3RyaW5nO1xyXG4gICAgcHVibGljIHN0YXRpYyB0YWJVc2VyUGVyc29uYWxpemVkRGF0YTogYW55O1xyXG4gICAgcHVibGljIHN0YXRpYyB0YWJVc2VyUGVybWlzc2lvbnM6IGFueTtcclxuICAgIHB1YmxpYyBzdGF0aWMgdGFiQXBwT2JqZWN0QWNjZXNzOiBhbnk7XHJcbiAgICBwdWJsaWMgc3RhdGljIHN0YXRpY1Rva2VuOiBhbnk7XHJcbiAgICBwdWJsaWMgc3RhdGljIGkxOG46IGFueSA9IHt9O1xyXG5cclxuICAgIC8qKiBNaWNyb3NlcnZpY2UgVVJMcyBjb25maWd1cmF0aW9uIC0gTkVXIGZvciBtaWNyb3NlcnZpY2VzIGFyY2hpdGVjdHVyZSAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBhcGlTZXJ2aWNlVXJsczogQVBJU2VydmljZVVybHM7XHJcblxyXG4gICAgLyoqIFNpZ25hbFIgaHViIFVSTCBmb3IgcmVhbC10aW1lIG5vdGlmaWNhdGlvbnMgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgc2lnbmFsUkh1YlVybDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2NoZW1hIHNvdXJjZSBvZiB0cnV0aC5cclxuICAgICAqIFJlYWRpbmcgaXMgY2hlYXAgKHJldHVybnMgdGhlIGJhY2tpbmcgZmllbGQpLlxyXG4gICAgICogV3JpdGluZyBmaXJlcyB0aGUgcmVnaXN0ZXJlZCBvblNjaGVtYUNoYW5nZSBjYWxsYmFjayBCRUZPUkUgYXNzaWduaW5nLFxyXG4gICAgICogc28gZG93bnN0cmVhbSBjYWNoZXMgKGUuZy4gTWV0YWRhdGFIZWxwZXIpIGludmFsaWRhdGUgYXV0b21hdGljYWxseS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgX3RhYkpzb246IGFueTtcclxuICAgIHByaXZhdGUgc3RhdGljIF9vblNjaGVtYUNoYW5nZTogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXQgdGFiSnNvbigpOiBhbnkge1xyXG4gICAgICByZXR1cm4gQ29tbW9uLl90YWJKc29uO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHN0YXRpYyBzZXQgdGFiSnNvbih2YWx1ZTogYW55KSB7XHJcbiAgICAgIENvbW1vbi5fb25TY2hlbWFDaGFuZ2U/LigpO1xyXG4gICAgICBDb21tb24uX3RhYkpzb24gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ2lzdGVyIGEgbGlzdGVuZXIgdGhhdCBmaXJlcyB3aGVuZXZlciBgQ29tbW9uLnRhYkpzb25gIGlzIHJlYXNzaWduZWQuXHJcbiAgICAgKiBNZXRhZGF0YUhlbHBlciBjYWxscyB0aGlzIGZyb20gaXRzIGNvbnN0cnVjdG9yIHRvIGF1dG8tY2xlYXIgaXRzIGNhY2hlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIG9uU2NoZW1hQ2hhbmdlKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgIENvbW1vbi5fb25TY2hlbWFDaGFuZ2UgPSBjYWxsYmFjaztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgdGhlIHN0YXRpYyB2YXJpYWJsZXNcclxuICAgICAqIENhbGxlZCBvbmNlIGF0IGFwcGxpY2F0aW9uIHN0YXJ0dXAgZnJvbSB0aGUgbWFpbiBhcHBcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBpbml0KGVudmlyb25tZW50OiBhbnkpIHtcclxuICAgICAgQ29tbW9uLmVudmlyb25tZW50TmFtZSA9IGVudmlyb25tZW50Py5uYW1lO1xyXG4gICAgICBDb21tb24uYXBwbGljYXRpb25Db2RlID0gZW52aXJvbm1lbnQ/LmNvbW1vbkNvbmZpZz8uYXBwbGljYXRpb25Db2RlO1xyXG4gICAgICBDb21tb24udGFiSnNvbiA9IGVudmlyb25tZW50Py5jb21tb25Db25maWc/LnRhYkpzb247XHJcbiAgICAgIENvbW1vbi50YWJVc2VyUGVyc29uYWxpemVkRGF0YSA9IGVudmlyb25tZW50Py5jb21tb25Db25maWc/LnRhYlVzZXJQZXJzb25hbGl6ZWREYXRhO1xyXG4gICAgICBDb21tb24udGFiVXNlclBlcm1pc3Npb25zID0gZW52aXJvbm1lbnQ/LmNvbW1vbkNvbmZpZz8udGFiVXNlclBlcm1pc3Npb25zO1xyXG4gICAgICBDb21tb24udGFiQXBwT2JqZWN0QWNjZXNzID0gZW52aXJvbm1lbnQ/LmNvbW1vbkNvbmZpZz8udGFiQXBwT2JqZWN0QWNjZXNzO1xyXG4gICAgICBDb21tb24uc3RhdGljVG9rZW4gPSBlbnZpcm9ubWVudD8uY29tbW9uQ29uZmlnPy5zdGF0aWNUb2tlbjtcclxuICAgICAgQ29tbW9uLmFwaVNlcnZpY2VVcmxzID0gZW52aXJvbm1lbnQ/LmFwaVNlcnZpY2VVcmxzIHx8IHt9O1xyXG4gICAgICBDb21tb24uc2lnbmFsUkh1YlVybCA9IGVudmlyb25tZW50Py5zaWduYWxSSHViVXJsIHx8ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBSXZELE1BQU0sT0FBTyxNQUFNO2FBT0QsU0FBSSxHQUFRLEVBQUUsQ0FBQzthQWtCZCxvQkFBZSxHQUF3QixJQUFJLENBQUM7SUFFcEQsTUFBTSxLQUFLLE9BQU87UUFDdkIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFDTSxNQUFNLEtBQUssT0FBTyxDQUFDLEtBQVU7UUFDbEMsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7UUFDM0IsTUFBTSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBb0I7UUFDL0MsTUFBTSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBZ0I7UUFDakMsTUFBTSxDQUFDLGVBQWUsR0FBRyxXQUFXLEVBQUUsSUFBSSxDQUFDO1FBQzNDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsV0FBVyxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUM7UUFDcEUsTUFBTSxDQUFDLE9BQU8sR0FBRyxXQUFXLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQztRQUNwRCxNQUFNLENBQUMsdUJBQXVCLEdBQUcsV0FBVyxFQUFFLFlBQVksRUFBRSx1QkFBdUIsQ0FBQztRQUNwRixNQUFNLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsQ0FBQztRQUMxRSxNQUFNLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsQ0FBQztRQUMxRSxNQUFNLENBQUMsV0FBVyxHQUFHLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxjQUFjLEdBQUcsV0FBVyxFQUFFLGNBQWMsSUFBSSxFQUFFLENBQUM7UUFDMUQsTUFBTSxDQUFDLGFBQWEsR0FBRyxXQUFXLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUN4RCxNQUFNLENBQUMsd0JBQXdCLEdBQUcsV0FBVyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7SUFDcEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbmltcG9ydCB7IEFQSVNlcnZpY2VVcmxzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb21tb24uaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBDb21tb24ge1xyXG4gICAgcHVibGljIHN0YXRpYyBlbnZpcm9ubWVudE5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBzdGF0aWMgYXBwbGljYXRpb25Db2RlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc3RhdGljIHRhYlVzZXJQZXJzb25hbGl6ZWREYXRhOiBhbnk7XHJcbiAgICBwdWJsaWMgc3RhdGljIHRhYlVzZXJQZXJtaXNzaW9uczogYW55O1xyXG4gICAgcHVibGljIHN0YXRpYyB0YWJBcHBPYmplY3RBY2Nlc3M6IGFueTtcclxuICAgIHB1YmxpYyBzdGF0aWMgc3RhdGljVG9rZW46IGFueTtcclxuICAgIHB1YmxpYyBzdGF0aWMgaTE4bjogYW55ID0ge307XHJcblxyXG4gICAgLyoqIE1pY3Jvc2VydmljZSBVUkxzIGNvbmZpZ3VyYXRpb24gLSBORVcgZm9yIG1pY3Jvc2VydmljZXMgYXJjaGl0ZWN0dXJlICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGFwaVNlcnZpY2VVcmxzOiBBUElTZXJ2aWNlVXJscztcclxuXHJcbiAgICAvKiogU2lnbmFsUiBodWIgVVJMIGZvciByZWFsLXRpbWUgbm90aWZpY2F0aW9ucyAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBzaWduYWxSSHViVXJsOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIE5vdGlmaWNhdGlvbiBXZWJTb2NrZXQgVVJMIGZvciBpbi1hcHAgaW5ib3ggKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbm90aWZpY2F0aW9uV2ViU29ja2V0VXJsOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTY2hlbWEgc291cmNlIG9mIHRydXRoLlxyXG4gICAgICogUmVhZGluZyBpcyBjaGVhcCAocmV0dXJucyB0aGUgYmFja2luZyBmaWVsZCkuXHJcbiAgICAgKiBXcml0aW5nIGZpcmVzIHRoZSByZWdpc3RlcmVkIG9uU2NoZW1hQ2hhbmdlIGNhbGxiYWNrIEJFRk9SRSBhc3NpZ25pbmcsXHJcbiAgICAgKiBzbyBkb3duc3RyZWFtIGNhY2hlcyAoZS5nLiBNZXRhZGF0YUhlbHBlcikgaW52YWxpZGF0ZSBhdXRvbWF0aWNhbGx5LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBfdGFiSnNvbjogYW55O1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgX29uU2NoZW1hQ2hhbmdlOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldCB0YWJKc29uKCk6IGFueSB7XHJcbiAgICAgIHJldHVybiBDb21tb24uX3RhYkpzb247XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc3RhdGljIHNldCB0YWJKc29uKHZhbHVlOiBhbnkpIHtcclxuICAgICAgQ29tbW9uLl9vblNjaGVtYUNoYW5nZT8uKCk7XHJcbiAgICAgIENvbW1vbi5fdGFiSnNvbiA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVnaXN0ZXIgYSBsaXN0ZW5lciB0aGF0IGZpcmVzIHdoZW5ldmVyIGBDb21tb24udGFiSnNvbmAgaXMgcmVhc3NpZ25lZC5cclxuICAgICAqIE1ldGFkYXRhSGVscGVyIGNhbGxzIHRoaXMgZnJvbSBpdHMgY29uc3RydWN0b3IgdG8gYXV0by1jbGVhciBpdHMgY2FjaGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgb25TY2hlbWFDaGFuZ2UoY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgQ29tbW9uLl9vblNjaGVtYUNoYW5nZSA9IGNhbGxiYWNrO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZSB0aGUgc3RhdGljIHZhcmlhYmxlc1xyXG4gICAgICogQ2FsbGVkIG9uY2UgYXQgYXBwbGljYXRpb24gc3RhcnR1cCBmcm9tIHRoZSBtYWluIGFwcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGluaXQoZW52aXJvbm1lbnQ6IGFueSkge1xyXG4gICAgICBDb21tb24uZW52aXJvbm1lbnROYW1lID0gZW52aXJvbm1lbnQ/Lm5hbWU7XHJcbiAgICAgIENvbW1vbi5hcHBsaWNhdGlvbkNvZGUgPSBlbnZpcm9ubWVudD8uY29tbW9uQ29uZmlnPy5hcHBsaWNhdGlvbkNvZGU7XHJcbiAgICAgIENvbW1vbi50YWJKc29uID0gZW52aXJvbm1lbnQ/LmNvbW1vbkNvbmZpZz8udGFiSnNvbjtcclxuICAgICAgQ29tbW9uLnRhYlVzZXJQZXJzb25hbGl6ZWREYXRhID0gZW52aXJvbm1lbnQ/LmNvbW1vbkNvbmZpZz8udGFiVXNlclBlcnNvbmFsaXplZERhdGE7XHJcbiAgICAgIENvbW1vbi50YWJVc2VyUGVybWlzc2lvbnMgPSBlbnZpcm9ubWVudD8uY29tbW9uQ29uZmlnPy50YWJVc2VyUGVybWlzc2lvbnM7XHJcbiAgICAgIENvbW1vbi50YWJBcHBPYmplY3RBY2Nlc3MgPSBlbnZpcm9ubWVudD8uY29tbW9uQ29uZmlnPy50YWJBcHBPYmplY3RBY2Nlc3M7XHJcbiAgICAgIENvbW1vbi5zdGF0aWNUb2tlbiA9IGVudmlyb25tZW50Py5jb21tb25Db25maWc/LnN0YXRpY1Rva2VuO1xyXG4gICAgICBDb21tb24uYXBpU2VydmljZVVybHMgPSBlbnZpcm9ubWVudD8uYXBpU2VydmljZVVybHMgfHwge307XHJcbiAgICAgIENvbW1vbi5zaWduYWxSSHViVXJsID0gZW52aXJvbm1lbnQ/LnNpZ25hbFJIdWJVcmwgfHwgJyc7XHJcbiAgICAgIENvbW1vbi5ub3RpZmljYXRpb25XZWJTb2NrZXRVcmwgPSBlbnZpcm9ubWVudD8ud2Vic29ja2V0VXJsIHx8ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4iXX0=
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Notification types & WebSocket protocol constants.
3
+ * Driven by the TAF Notification Service API doc.
4
+ */
5
+ export const WS_CONNECTION_STATE = {
6
+ DISCONNECTED: 'Disconnected',
7
+ CONNECTING: 'Connecting',
8
+ CONNECTED: 'Connected',
9
+ RECONNECTING: 'Reconnecting',
10
+ FAILED: 'Failed',
11
+ CLOSED: 'Closed',
12
+ };
13
+ // ============= PROTOCOL CONSTANTS =============
14
+ /**
15
+ * WebSocket message types (per BE doc).
16
+ * Outbound: client → server.
17
+ * Inbound: server → client (responses + push events).
18
+ */
19
+ export const WS_MESSAGE_TYPE = {
20
+ // Outbound (client → server)
21
+ PING: 'ping',
22
+ HEARTBEAT: 'heartbeat',
23
+ GET_NOTIFICATIONS: 'get_notifications',
24
+ GET_UNREAD_COUNT: 'get_unread_count',
25
+ MARK_NOTIFICATION_READ: 'mark_notification_read',
26
+ MARK_ALL_NOTIFICATION_READ: 'mark_all_notification_read',
27
+ CLEAR_NOTIFICATION: 'clear_notification',
28
+ CLEAR_ALL_NOTIFICATIONS: 'clear_all_notifications',
29
+ // Inbound (server → client)
30
+ CONNECTION_ESTABLISHED: 'connection_established',
31
+ PONG: 'pong',
32
+ HEARTBEAT_ACK: 'heartbeat_ack',
33
+ GET_NOTIFICATIONS_RESPONSE: 'get_notifications_response',
34
+ GET_UNREAD_COUNT_RESPONSE: 'get_unread_count_response',
35
+ MARK_NOTIFICATION_READ_RESPONSE: 'mark_notification_read_response',
36
+ MARK_ALL_NOTIFICATION_READ_RESPONSE: 'mark_all_notification_read_response',
37
+ CLEAR_NOTIFICATION_RESPONSE: 'clear_notification_response',
38
+ CLEAR_ALL_NOTIFICATIONS_RESPONSE: 'clear_all_notifications_response',
39
+ NOTIFICATION_MARKED_READ: 'notification_marked_read',
40
+ NOTIFICATION_CLEARED: 'notification_cleared',
41
+ ALL_NOTIFICATIONS_CLEARED: 'all_notifications_cleared',
42
+ NOTIFICATION: 'notification',
43
+ ERROR: 'error',
44
+ };
45
+ export const NOTIFICATION_WS_CONFIG = {
46
+ DEFAULT_PAGE_SIZE: 20,
47
+ RECONNECT_DELAYS_MS: [2000, 5000, 10000],
48
+ RECONNECT_MAX_DELAY_MS: 10000,
49
+ };
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL25vdGlmaWNhdGlvbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBaUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDLFlBQVksRUFBRSxjQUFjO0lBQzVCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLFlBQVksRUFBRSxjQUFjO0lBQzVCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE1BQU0sRUFBRSxRQUFRO0NBQ1IsQ0FBQztBQUlYLGlEQUFpRDtBQUVqRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLDZCQUE2QjtJQUM3QixJQUFJLEVBQUUsTUFBTTtJQUNaLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLGlCQUFpQixFQUFFLG1CQUFtQjtJQUN0QyxnQkFBZ0IsRUFBRSxrQkFBa0I7SUFDcEMsc0JBQXNCLEVBQUUsd0JBQXdCO0lBQ2hELDBCQUEwQixFQUFFLDRCQUE0QjtJQUN4RCxrQkFBa0IsRUFBRSxvQkFBb0I7SUFDeEMsdUJBQXVCLEVBQUUseUJBQXlCO0lBRWxELDRCQUE0QjtJQUM1QixzQkFBc0IsRUFBRSx3QkFBd0I7SUFDaEQsSUFBSSxFQUFFLE1BQU07SUFDWixhQUFhLEVBQUUsZUFBZTtJQUM5QiwwQkFBMEIsRUFBRSw0QkFBNEI7SUFDeEQseUJBQXlCLEVBQUUsMkJBQTJCO0lBQ3RELCtCQUErQixFQUFFLGlDQUFpQztJQUNsRSxtQ0FBbUMsRUFBRSxxQ0FBcUM7SUFDMUUsMkJBQTJCLEVBQUUsNkJBQTZCO0lBQzFELGdDQUFnQyxFQUFFLGtDQUFrQztJQUNwRSx3QkFBd0IsRUFBRSwwQkFBMEI7SUFDcEQsb0JBQW9CLEVBQUUsc0JBQXNCO0lBQzVDLHlCQUF5QixFQUFFLDJCQUEyQjtJQUN0RCxZQUFZLEVBQUUsY0FBYztJQUM1QixLQUFLLEVBQUUsT0FBTztDQUNOLENBQUM7QUFJWCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRztJQUNwQyxpQkFBaUIsRUFBRSxFQUFFO0lBQ3JCLG1CQUFtQixFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7SUFDeEMsc0JBQXNCLEVBQUUsS0FBSztDQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIE5vdGlmaWNhdGlvbiB0eXBlcyAmIFdlYlNvY2tldCBwcm90b2NvbCBjb25zdGFudHMuXHJcbiAqIERyaXZlbiBieSB0aGUgVEFGIE5vdGlmaWNhdGlvbiBTZXJ2aWNlIEFQSSBkb2MuXHJcbiAqL1xyXG5cclxuLy8gPT09PT09PT09PT09PSBFTlVNUyAvIFVOSU9OUyA9PT09PT09PT09PT09XHJcblxyXG4vKipcclxuICogTm90aWZpY2F0aW9uIHN0YXR1cyBsaWZlY3ljbGUgKHBlciBCRSBjb25maXJtYXRpb24pOlxyXG4gKlxyXG4gKiAgIFBlbmRpbmcgICAg4oCUIHJlY29yZCBqdXN0IGNyZWF0ZWQgKG5vdCB5ZXQgdmlzaWJsZSBpbiBpbmJveClcclxuICogICBEZWxpdmVyZWQgIOKAlCBzdWNjZXNzZnVsbHkgc2VudCBvdmVyIFdlYlNvY2tldCAodmlzaWJsZSwgc2hvd24gYXMgdW5yZWFkKVxyXG4gKiAgIFJlYWQgICAgICAg4oCUIGFmdGVyIG1hcmtfbm90aWZpY2F0aW9uX3JlYWQgLyBtYXJrX2FsbF9ub3RpZmljYXRpb25fcmVhZFxyXG4gKiAgIERvbmUgICAgICAg4oCUIGFmdGVyIGNsZWFyX25vdGlmaWNhdGlvbiAvIGNsZWFyX2FsbF9ub3RpZmljYXRpb25zIChzb2Z0IGRlbGV0ZSwgZmlsdGVyZWQgb3V0KVxyXG4gKiAgIEZhaWxlZCAgICAg4oCUIFdlYlNvY2tldCBzZW5kIGZhaWxlZCAoZmlsdGVyZWQgb3V0KVxyXG4gKlxyXG4gKiBJbmJveCBgZ2V0X25vdGlmaWNhdGlvbnNfcmVzcG9uc2VgIG9ubHkgcmV0dXJucyBgRGVsaXZlcmVkYCArIGBSZWFkYC5cclxuICogYGlzUmVhZGAgaXMgZGVyaXZlZCBhcyBgc3RhdHVzID09PSAnUmVhZCdgLlxyXG4gKi9cclxuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uU3RhdHVzID1cclxuICB8ICdQZW5kaW5nJ1xyXG4gIHwgJ0RlbGl2ZXJlZCdcclxuICB8ICdSZWFkJ1xyXG4gIHwgJ0RvbmUnXHJcbiAgfCAnRmFpbGVkJztcclxuXHJcbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvblByaW9yaXR5ID0gJ0xvdycgfCAnTm9ybWFsJyB8ICdIaWdoJyB8ICdVcmdlbnQnO1xyXG5cclxuZXhwb3J0IHR5cGUgV3NDb25uZWN0aW9uU3RhdGUgPVxyXG4gIHwgJ0Rpc2Nvbm5lY3RlZCdcclxuICB8ICdDb25uZWN0aW5nJ1xyXG4gIHwgJ0Nvbm5lY3RlZCdcclxuICB8ICdSZWNvbm5lY3RpbmcnXHJcbiAgfCAnRmFpbGVkJ1xyXG4gIHwgJ0Nsb3NlZCc7XHJcblxyXG5leHBvcnQgY29uc3QgV1NfQ09OTkVDVElPTl9TVEFURSA9IHtcclxuICBESVNDT05ORUNURUQ6ICdEaXNjb25uZWN0ZWQnLFxyXG4gIENPTk5FQ1RJTkc6ICdDb25uZWN0aW5nJyxcclxuICBDT05ORUNURUQ6ICdDb25uZWN0ZWQnLFxyXG4gIFJFQ09OTkVDVElORzogJ1JlY29ubmVjdGluZycsXHJcbiAgRkFJTEVEOiAnRmFpbGVkJyxcclxuICBDTE9TRUQ6ICdDbG9zZWQnLFxyXG59IGFzIGNvbnN0O1xyXG5cclxuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uQWN0aW9uVHlwZSA9ICdOYXZpZ2F0ZScgfCAnRGlzbWlzcyc7XHJcblxyXG4vLyA9PT09PT09PT09PT09IFBST1RPQ09MIENPTlNUQU5UUyA9PT09PT09PT09PT09XHJcblxyXG4vKipcclxuICogV2ViU29ja2V0IG1lc3NhZ2UgdHlwZXMgKHBlciBCRSBkb2MpLlxyXG4gKiBPdXRib3VuZDogY2xpZW50IOKGkiBzZXJ2ZXIuXHJcbiAqIEluYm91bmQ6IHNlcnZlciDihpIgY2xpZW50IChyZXNwb25zZXMgKyBwdXNoIGV2ZW50cykuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgV1NfTUVTU0FHRV9UWVBFID0ge1xyXG4gIC8vIE91dGJvdW5kIChjbGllbnQg4oaSIHNlcnZlcilcclxuICBQSU5HOiAncGluZycsXHJcbiAgSEVBUlRCRUFUOiAnaGVhcnRiZWF0JyxcclxuICBHRVRfTk9USUZJQ0FUSU9OUzogJ2dldF9ub3RpZmljYXRpb25zJyxcclxuICBHRVRfVU5SRUFEX0NPVU5UOiAnZ2V0X3VucmVhZF9jb3VudCcsXHJcbiAgTUFSS19OT1RJRklDQVRJT05fUkVBRDogJ21hcmtfbm90aWZpY2F0aW9uX3JlYWQnLFxyXG4gIE1BUktfQUxMX05PVElGSUNBVElPTl9SRUFEOiAnbWFya19hbGxfbm90aWZpY2F0aW9uX3JlYWQnLFxyXG4gIENMRUFSX05PVElGSUNBVElPTjogJ2NsZWFyX25vdGlmaWNhdGlvbicsXHJcbiAgQ0xFQVJfQUxMX05PVElGSUNBVElPTlM6ICdjbGVhcl9hbGxfbm90aWZpY2F0aW9ucycsXHJcblxyXG4gIC8vIEluYm91bmQgKHNlcnZlciDihpIgY2xpZW50KVxyXG4gIENPTk5FQ1RJT05fRVNUQUJMSVNIRUQ6ICdjb25uZWN0aW9uX2VzdGFibGlzaGVkJyxcclxuICBQT05HOiAncG9uZycsXHJcbiAgSEVBUlRCRUFUX0FDSzogJ2hlYXJ0YmVhdF9hY2snLFxyXG4gIEdFVF9OT1RJRklDQVRJT05TX1JFU1BPTlNFOiAnZ2V0X25vdGlmaWNhdGlvbnNfcmVzcG9uc2UnLFxyXG4gIEdFVF9VTlJFQURfQ09VTlRfUkVTUE9OU0U6ICdnZXRfdW5yZWFkX2NvdW50X3Jlc3BvbnNlJyxcclxuICBNQVJLX05PVElGSUNBVElPTl9SRUFEX1JFU1BPTlNFOiAnbWFya19ub3RpZmljYXRpb25fcmVhZF9yZXNwb25zZScsXHJcbiAgTUFSS19BTExfTk9USUZJQ0FUSU9OX1JFQURfUkVTUE9OU0U6ICdtYXJrX2FsbF9ub3RpZmljYXRpb25fcmVhZF9yZXNwb25zZScsXHJcbiAgQ0xFQVJfTk9USUZJQ0FUSU9OX1JFU1BPTlNFOiAnY2xlYXJfbm90aWZpY2F0aW9uX3Jlc3BvbnNlJyxcclxuICBDTEVBUl9BTExfTk9USUZJQ0FUSU9OU19SRVNQT05TRTogJ2NsZWFyX2FsbF9ub3RpZmljYXRpb25zX3Jlc3BvbnNlJyxcclxuICBOT1RJRklDQVRJT05fTUFSS0VEX1JFQUQ6ICdub3RpZmljYXRpb25fbWFya2VkX3JlYWQnLFxyXG4gIE5PVElGSUNBVElPTl9DTEVBUkVEOiAnbm90aWZpY2F0aW9uX2NsZWFyZWQnLFxyXG4gIEFMTF9OT1RJRklDQVRJT05TX0NMRUFSRUQ6ICdhbGxfbm90aWZpY2F0aW9uc19jbGVhcmVkJyxcclxuICBOT1RJRklDQVRJT046ICdub3RpZmljYXRpb24nLFxyXG4gIEVSUk9SOiAnZXJyb3InLFxyXG59IGFzIGNvbnN0O1xyXG5cclxuZXhwb3J0IHR5cGUgV3NNZXNzYWdlVHlwZSA9IHR5cGVvZiBXU19NRVNTQUdFX1RZUEVba2V5b2YgdHlwZW9mIFdTX01FU1NBR0VfVFlQRV07XHJcblxyXG5leHBvcnQgY29uc3QgTk9USUZJQ0FUSU9OX1dTX0NPTkZJRyA9IHtcclxuICBERUZBVUxUX1BBR0VfU0laRTogMjAsXHJcbiAgUkVDT05ORUNUX0RFTEFZU19NUzogWzIwMDAsIDUwMDAsIDEwMDAwXSxcclxuICBSRUNPTk5FQ1RfTUFYX0RFTEFZX01TOiAxMDAwMCxcclxufSBhcyBjb25zdDtcclxuXHJcbi8vID09PT09PT09PT09PT0gQkUgUkVTUE9OU0UgU0hBUEVTID09PT09PT09PT09PT1cclxuXHJcbi8qKlxyXG4gKiBPbmUgaXRlbSBpbiBgZ2V0X25vdGlmaWNhdGlvbnNfcmVzcG9uc2Uubm90aWZpY2F0aW9uc1tdYCBwZXIgQkUgZG9jLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25JdGVtIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHN0YXR1czogTm90aWZpY2F0aW9uU3RhdHVzO1xyXG4gIGRhdGE6IHN0cmluZzsgLy8gSlNPTiBzdHJpbmcg4oCUIHBhcnNlZCBpbiBzZXJ2aWNlXHJcbiAgcHJpb3JpdHk6IE5vdGlmaWNhdGlvblByaW9yaXR5O1xyXG4gIHdvcmtzcGFjZUtleTogc3RyaW5nO1xyXG4gIHByb3ZpZGVyOiBzdHJpbmc7XHJcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XHJcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XHJcbiAgZXhwaXJlc0F0OiBzdHJpbmcgfCBudWxsO1xyXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIExpdmUtcHVzaCBwYXlsb2FkIOKAlCBmaWVsZHMgZmxhdCBhdCB0b3AgbGV2ZWwgKE5PVCBpbnNpZGUgYGRhdGFgKS5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uUHVzaFBheWxvYWQge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBib2R5OiBzdHJpbmc7XHJcbiAgY2F0ZWdvcnk6IHN0cmluZztcclxuICBwcmlvcml0eTogTm90aWZpY2F0aW9uUHJpb3JpdHk7XHJcbiAgd29ya3NwYWNlS2V5OiBzdHJpbmc7XHJcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBY3Rpb24gb2JqZWN0IGluc2lkZSB0aGUgYGRhdGFgIEpTT04gb2YgYW4gaW5ib3ggbm90aWZpY2F0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25BY3Rpb24ge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdXJsOiBzdHJpbmc7XHJcbiAgdHlwZTogTm90aWZpY2F0aW9uQWN0aW9uVHlwZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFBhcnNlZCBjb250ZW50cyBvZiBhbiBpbmJveCBub3RpZmljYXRpb24ncyBgZGF0YWAgSlNPTiBzdHJpbmcuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZE5vdGlmaWNhdGlvblBheWxvYWQge1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGJvZHk/OiBzdHJpbmc7XHJcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XHJcbiAgcHJpb3JpdHk/OiBOb3RpZmljYXRpb25Qcmlvcml0eTtcclxuICBhY3Rpb25zPzogTm90aWZpY2F0aW9uQWN0aW9uW107XHJcbiAgLy8gVG9sZXJhbnQg4oCUIHNlcnZlciBtYXkgYWRkIGZpZWxkcyBvdmVyIHRpbWVcclxuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xyXG59XHJcblxyXG4vLyA9PT09PT09PT09PT09IFVJLUZBQ0lORyBTSEFQRSA9PT09PT09PT09PT09XHJcblxyXG4vKipcclxuICogQ2Fub25pY2FsIFVJIHNoYXBlIGFmdGVyIG5vcm1hbGl6YXRpb24uXHJcbiAqIEJvdGggaW5ib3ggaXRlbXMgYW5kIGxpdmUgcHVzaGVzIGFyZSBub3JtYWxpemVkIGludG8gdGhpcy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVWlOb3RpZmljYXRpb24ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XHJcbiAgc3RhdHVzOiBOb3RpZmljYXRpb25TdGF0dXM7XHJcbiAgcHJpb3JpdHk6IE5vdGlmaWNhdGlvblByaW9yaXR5O1xyXG4gIHBhcnNlZFBheWxvYWQ6IFBhcnNlZE5vdGlmaWNhdGlvblBheWxvYWQ7XHJcbiAgaXNSZWFkOiBib29sZWFuO1xyXG59XHJcblxyXG4vLyA9PT09PT09PT09PT09IENPTk5FQ1QgUEFSQU1TID09PT09PT09PT09PT1cclxuXHJcbi8qKlxyXG4gKiBBdXRoIGlkZW50aWZpZXJzIHJlcXVpcmVkIHRvIG9wZW4gdGhlIFdlYlNvY2tldCBhbmQgYWRkcmVzcyBtZXNzYWdlcy5cclxuICogVGhlIGFwcCBzdXBwbGllcyB0aGVzZSBhdCBjb25uZWN0IHRpbWUg4oCUIHRoZSBjb3JlIHNlcnZpY2UgZG9lcyBub3QgcmVhZCBzdG9yYWdlLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25Db25uZWN0UGFyYW1zIHtcclxuICAvKiogRW5kIHVzZXIg4oCUIHJlcXVpcmVkIGZvciB0aGUgVVJMLiAqL1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIC8qKiBBcHBsaWNhdGlvbiDigJQgdXNlZCBpbiBVUkwgKyB3b3Jrc3BhY2VLZXkuICovXHJcbiAgYXBwSWQ6IHN0cmluZztcclxuICAvKiogVGVuYW50IOKAlCB1c2VkIGluIFVSTCArIHdvcmtzcGFjZUtleS4gKi9cclxuICB0ZW5hbnRJZDogc3RyaW5nO1xyXG4gIC8qKiBFbnZpcm9ubWVudCDigJQgdXNlZCBpbiB3b3Jrc3BhY2VLZXkgb25seS4gKi9cclxuICBlbnZpcm9ubWVudElkOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb21wb3NlZCBvbmNlIGF0IHRoZSBhcHAgYm91bmRhcnksIHBhc3NlZCBkb3duIHRvIHRoZSBpbmJveCBzZXJ2aWNlLlxyXG4gKiBVc2VkIGFzIHRoZSBVUkwgcXVlcnkgZm9yIHRoZSBXZWJTb2NrZXQgYW5kIGluIGV2ZXJ5IG91dGJvdW5kIG1lc3NhZ2UgYm9keS5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uSW5ib3hDb25uZWN0UGFyYW1zIHtcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBhcHBJZDogc3RyaW5nO1xyXG4gIHRlbmFudElkOiBzdHJpbmc7XHJcbiAgLyoqIGB0ZW5hbnRJZC5hcHBJZC5lbnZpcm9ubWVudElkYCDigJQgcHJlLWNvbXBvc2VkIGJ5IHRoZSBTREsgZmFjYWRlLiAqL1xyXG4gIHdvcmtzcGFjZUtleTogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogVVJMLW9ubHkgcGFyYW1zIGZvciB0aGUgbG93LWxldmVsIHRyYW5zcG9ydC5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uV2ViU29ja2V0Q29ubmVjdFBhcmFtcyB7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgYXBwSWQ6IHN0cmluZztcclxuICB0ZW5hbnRJZDogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,269 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { BehaviorSubject, Subject } from 'rxjs';
3
+ import { NOTIFICATION_WS_CONFIG, WS_MESSAGE_TYPE, } from '../../../app/interfaces/notification.interface';
4
+ import { NotificationWebSocketService } from './notification-websocket.service';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Public notification inbox service.
8
+ *
9
+ * Pure — no storage / auth coupling. The caller (SDK facade) supplies all auth
10
+ * identifiers via `connect(params)`, and they're held for the lifetime of the
11
+ * connection (cleared on disconnect).
12
+ *
13
+ * Subscribes to the WebSocket transport, routes incoming messages by type into
14
+ * dedicated streams, and exposes high-level actions for the UI.
15
+ *
16
+ * Components/extensions consume this via the SDK facade (`TabSdk.notification.*`),
17
+ * not directly.
18
+ *
19
+ * Named `NotificationInboxService` to avoid collision with the existing toastr
20
+ * `NotificationService` in `core/service/notification.service.ts`.
21
+ */
22
+ export class NotificationInboxService {
23
+ constructor() {
24
+ this.ws = inject(NotificationWebSocketService);
25
+ // Held between connect() and disconnect() — every outbound message includes it.
26
+ this.workspaceKey = null;
27
+ // ----------- streams -----------
28
+ this.latestNotifications$ = new Subject();
29
+ this.unreadCount$ = new BehaviorSubject(0);
30
+ this.markAsReadEvent$ = new Subject();
31
+ this.clearEvent$ = new Subject();
32
+ this.loading$ = new BehaviorSubject(false);
33
+ this.totalPages$ = new BehaviorSubject(1);
34
+ // Route inbound messages → streams
35
+ this.ws.messages$.subscribe((message) => this.handleMessage(message));
36
+ }
37
+ // ----------- lifecycle -----------
38
+ /**
39
+ * Connect to the notification WebSocket. Awaitable, idempotent.
40
+ *
41
+ * If a connection is already active for a *different* workspace (tenant/app/env
42
+ * switch without signOut), we tear it down first so the new connection uses
43
+ * the correct URL and workspaceKey. The underlying `ws.connect` is idempotent
44
+ * by connection state, so it would otherwise keep the stale URL.
45
+ *
46
+ * Once connected, an unread-count fetch is fired automatically so the badge populates.
47
+ */
48
+ async connect(params) {
49
+ if (this.workspaceKey && this.workspaceKey !== params.workspaceKey) {
50
+ await this.disconnect();
51
+ }
52
+ this.workspaceKey = params.workspaceKey;
53
+ await this.ws.connect({
54
+ userId: params.userId,
55
+ appId: params.appId,
56
+ tenantId: params.tenantId,
57
+ });
58
+ if (this.ws.isConnected()) {
59
+ this.requestUnreadCount();
60
+ }
61
+ }
62
+ /**
63
+ * Tear down the connection. Resets all stream state so the UI clears.
64
+ */
65
+ async disconnect() {
66
+ await this.ws.disconnect();
67
+ this.workspaceKey = null;
68
+ this.unreadCount$.next(0);
69
+ this.totalPages$.next(1);
70
+ this.loading$.next(false);
71
+ }
72
+ // ----------- actions -----------
73
+ /**
74
+ * Fetch a page of notifications. Server replies via GET_NOTIFICATIONS_RESPONSE.
75
+ */
76
+ loadMore(pageNumber, pageSize = NOTIFICATION_WS_CONFIG.DEFAULT_PAGE_SIZE) {
77
+ if (!this.workspaceKey)
78
+ return;
79
+ this.loading$.next(true);
80
+ this.ws.send({
81
+ type: WS_MESSAGE_TYPE.GET_NOTIFICATIONS,
82
+ workspaceKey: this.workspaceKey,
83
+ pageNumber,
84
+ pageSize,
85
+ });
86
+ }
87
+ /**
88
+ * Request unread count. Result arrives on `unreadCount$`.
89
+ */
90
+ requestUnreadCount() {
91
+ if (!this.workspaceKey)
92
+ return;
93
+ this.ws.send({
94
+ type: WS_MESSAGE_TYPE.GET_UNREAD_COUNT,
95
+ workspaceKey: this.workspaceKey,
96
+ });
97
+ }
98
+ markAsRead(notificationId) {
99
+ if (!this.workspaceKey)
100
+ return;
101
+ this.ws.send({
102
+ type: WS_MESSAGE_TYPE.MARK_NOTIFICATION_READ,
103
+ workspaceKey: this.workspaceKey,
104
+ notificationId,
105
+ });
106
+ }
107
+ markAllAsRead() {
108
+ if (!this.workspaceKey)
109
+ return;
110
+ this.ws.send({
111
+ type: WS_MESSAGE_TYPE.MARK_ALL_NOTIFICATION_READ,
112
+ workspaceKey: this.workspaceKey,
113
+ });
114
+ }
115
+ clearOne(notificationId) {
116
+ if (!this.workspaceKey)
117
+ return;
118
+ this.ws.send({
119
+ type: WS_MESSAGE_TYPE.CLEAR_NOTIFICATION,
120
+ workspaceKey: this.workspaceKey,
121
+ notificationId,
122
+ });
123
+ }
124
+ clearAll() {
125
+ if (!this.workspaceKey)
126
+ return;
127
+ this.ws.send({
128
+ type: WS_MESSAGE_TYPE.CLEAR_ALL_NOTIFICATIONS,
129
+ workspaceKey: this.workspaceKey,
130
+ });
131
+ }
132
+ // ----------- streams (read-only views) -----------
133
+ getLatestNotifications() {
134
+ return this.latestNotifications$.asObservable();
135
+ }
136
+ getUnreadCount() {
137
+ return this.unreadCount$.asObservable();
138
+ }
139
+ getMarkAsReadEvents() {
140
+ return this.markAsReadEvent$.asObservable();
141
+ }
142
+ getClearEvents() {
143
+ return this.clearEvent$.asObservable();
144
+ }
145
+ getLoadingState() {
146
+ return this.loading$.asObservable();
147
+ }
148
+ getTotalPages() {
149
+ return this.totalPages$.asObservable();
150
+ }
151
+ // ----------- internal -----------
152
+ handleMessage(message) {
153
+ if (!message?.type)
154
+ return;
155
+ switch (message.type) {
156
+ case WS_MESSAGE_TYPE.GET_NOTIFICATIONS_RESPONSE:
157
+ if (message.success) {
158
+ const items = message.notifications ?? [];
159
+ const ui = items.map((n) => this.parseInboxNotification(n));
160
+ this.latestNotifications$.next(ui);
161
+ this.totalPages$.next(message.totalPages ?? 1);
162
+ }
163
+ this.loading$.next(false);
164
+ break;
165
+ case WS_MESSAGE_TYPE.GET_UNREAD_COUNT_RESPONSE:
166
+ if (message.success) {
167
+ this.unreadCount$.next(message.count ?? 0);
168
+ }
169
+ break;
170
+ case WS_MESSAGE_TYPE.NOTIFICATION: {
171
+ const ui = this.transformPushNotification(message);
172
+ this.latestNotifications$.next(ui);
173
+ this.requestUnreadCount();
174
+ break;
175
+ }
176
+ case WS_MESSAGE_TYPE.MARK_NOTIFICATION_READ_RESPONSE:
177
+ if (message.success) {
178
+ this.markAsReadEvent$.next(message.notificationId ?? null);
179
+ this.requestUnreadCount();
180
+ }
181
+ break;
182
+ case WS_MESSAGE_TYPE.NOTIFICATION_MARKED_READ:
183
+ // Broadcast from another session of same user. notificationId optional
184
+ // (absent ⇒ "all read").
185
+ this.markAsReadEvent$.next(message.notificationId ?? null);
186
+ this.requestUnreadCount();
187
+ break;
188
+ case WS_MESSAGE_TYPE.MARK_ALL_NOTIFICATION_READ_RESPONSE:
189
+ if (message.success) {
190
+ this.markAsReadEvent$.next(null);
191
+ this.requestUnreadCount();
192
+ }
193
+ break;
194
+ case WS_MESSAGE_TYPE.CLEAR_NOTIFICATION_RESPONSE:
195
+ case WS_MESSAGE_TYPE.NOTIFICATION_CLEARED:
196
+ if (Array.isArray(message.notificationIds) && message.notificationIds.length) {
197
+ this.clearEvent$.next(message.notificationIds);
198
+ this.requestUnreadCount();
199
+ }
200
+ break;
201
+ case WS_MESSAGE_TYPE.CLEAR_ALL_NOTIFICATIONS_RESPONSE:
202
+ if (message.success) {
203
+ this.clearEvent$.next(null);
204
+ this.requestUnreadCount();
205
+ }
206
+ break;
207
+ case WS_MESSAGE_TYPE.ALL_NOTIFICATIONS_CLEARED:
208
+ if (message.success) {
209
+ this.clearEvent$.next(null);
210
+ this.requestUnreadCount();
211
+ }
212
+ break;
213
+ // CONNECTION_ESTABLISHED, PONG, HEARTBEAT_ACK, ERROR are handled at the
214
+ // transport layer (or are no-ops). HEARTBEAT is intercepted by transport
215
+ // and never forwarded.
216
+ }
217
+ }
218
+ /**
219
+ * Parse an inbox notification's `data` JSON into a UI-shaped object.
220
+ *
221
+ * Read state is surfaced via `status === 'Read'` (confirmed by BE).
222
+ * Inbox response only contains `Delivered` (unread) + `Read` items;
223
+ * `Pending` / `Done` / `Failed` are filtered out server-side.
224
+ */
225
+ parseInboxNotification(item) {
226
+ let parsedPayload = {};
227
+ try {
228
+ parsedPayload = JSON.parse(item.data);
229
+ }
230
+ catch {
231
+ parsedPayload = {};
232
+ }
233
+ return {
234
+ id: item.id,
235
+ createdAt: item.createdAt,
236
+ status: item.status,
237
+ priority: item.priority,
238
+ parsedPayload,
239
+ isRead: item.status === 'Read',
240
+ };
241
+ }
242
+ /**
243
+ * Wrap a server-pushed live notification into the same UI shape as inbox items.
244
+ * The push event has fields flat at the top level (NOT inside `data`) — synthesize
245
+ * `parsedPayload` from those fields so the component sees a uniform shape.
246
+ */
247
+ transformPushNotification(push) {
248
+ return {
249
+ id: push.id,
250
+ createdAt: push.createdAt,
251
+ status: 'Delivered',
252
+ priority: push.priority,
253
+ parsedPayload: {
254
+ title: push.title,
255
+ body: push.body,
256
+ category: push.category,
257
+ priority: push.priority,
258
+ },
259
+ isRead: false,
260
+ };
261
+ }
262
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: NotificationInboxService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
263
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: NotificationInboxService, providedIn: 'root' }); }
264
+ }
265
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: NotificationInboxService, decorators: [{
266
+ type: Injectable,
267
+ args: [{ providedIn: 'root' }]
268
+ }], ctorParameters: () => [] });
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWluYm94LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9jb3JlL3NlcnZpY2Uvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi1pbmJveC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFDTCxzQkFBc0IsRUFNdEIsZUFBZSxHQUNoQixNQUFNLGdEQUFnRCxDQUFDO0FBQ3hELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUVoRjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxNQUFNLE9BQU8sd0JBQXdCO0lBZW5DO1FBZGlCLE9BQUUsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUUzRCxnRkFBZ0Y7UUFDeEUsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBRTNDLGtDQUFrQztRQUVqQix5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBcUMsQ0FBQztRQUN4RSxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzlDLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBQ2hELGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFDN0MsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQy9DLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFHNUQsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxD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bUhBQXhCLHdCQUF3QixjQURYLE1BQU07OzRGQUNuQix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIE5PVElGSUNBVElPTl9XU19DT05GSUcsXHJcbiAgTm90aWZpY2F0aW9uSW5ib3hDb25uZWN0UGFyYW1zLFxyXG4gIE5vdGlmaWNhdGlvbkl0ZW0sXHJcbiAgTm90aWZpY2F0aW9uUHVzaFBheWxvYWQsXHJcbiAgUGFyc2VkTm90aWZpY2F0aW9uUGF5bG9hZCxcclxuICBVaU5vdGlmaWNhdGlvbixcclxuICBXU19NRVNTQUdFX1RZUEUsXHJcbn0gZnJvbSAnLi4vLi4vLi4vYXBwL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbldlYlNvY2tldFNlcnZpY2UgfSBmcm9tICcuL25vdGlmaWNhdGlvbi13ZWJzb2NrZXQuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogUHVibGljIG5vdGlmaWNhdGlvbiBpbmJveCBzZXJ2aWNlLlxyXG4gKlxyXG4gKiBQdXJlIOKAlCBubyBzdG9yYWdlIC8gYXV0aCBjb3VwbGluZy4gVGhlIGNhbGxlciAoU0RLIGZhY2FkZSkgc3VwcGxpZXMgYWxsIGF1dGhcclxuICogaWRlbnRpZmllcnMgdmlhIGBjb25uZWN0KHBhcmFtcylgLCBhbmQgdGhleSdyZSBoZWxkIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlXHJcbiAqIGNvbm5lY3Rpb24gKGNsZWFyZWQgb24gZGlzY29ubmVjdCkuXHJcbiAqXHJcbiAqIFN1YnNjcmliZXMgdG8gdGhlIFdlYlNvY2tldCB0cmFuc3BvcnQsIHJvdXRlcyBpbmNvbWluZyBtZXNzYWdlcyBieSB0eXBlIGludG9cclxuICogZGVkaWNhdGVkIHN0cmVhbXMsIGFuZCBleHBvc2VzIGhpZ2gtbGV2ZWwgYWN0aW9ucyBmb3IgdGhlIFVJLlxyXG4gKlxyXG4gKiBDb21wb25lbnRzL2V4dGVuc2lvbnMgY29uc3VtZSB0aGlzIHZpYSB0aGUgU0RLIGZhY2FkZSAoYFRhYlNkay5ub3RpZmljYXRpb24uKmApLFxyXG4gKiBub3QgZGlyZWN0bHkuXHJcbiAqXHJcbiAqIE5hbWVkIGBOb3RpZmljYXRpb25JbmJveFNlcnZpY2VgIHRvIGF2b2lkIGNvbGxpc2lvbiB3aXRoIHRoZSBleGlzdGluZyB0b2FzdHJcclxuICogYE5vdGlmaWNhdGlvblNlcnZpY2VgIGluIGBjb3JlL3NlcnZpY2Uvbm90aWZpY2F0aW9uLnNlcnZpY2UudHNgLlxyXG4gKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkluYm94U2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB3cyA9IGluamVjdChOb3RpZmljYXRpb25XZWJTb2NrZXRTZXJ2aWNlKTtcclxuXHJcbiAgLy8gSGVsZCBiZXR3ZWVuIGNvbm5lY3QoKSBhbmQgZGlzY29ubmVjdCgpIOKAlCBldmVyeSBvdXRib3VuZCBtZXNzYWdlIGluY2x1ZGVzIGl0LlxyXG4gIHByaXZhdGUgd29ya3NwYWNlS2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0gc3RyZWFtcyAtLS0tLS0tLS0tLVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGxhdGVzdE5vdGlmaWNhdGlvbnMkID0gbmV3IFN1YmplY3Q8VWlOb3RpZmljYXRpb24gfCBVaU5vdGlmaWNhdGlvbltdPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgdW5yZWFkQ291bnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbWFya0FzUmVhZEV2ZW50JCA9IG5ldyBTdWJqZWN0PHN0cmluZyB8IG51bGw+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBjbGVhckV2ZW50JCA9IG5ldyBTdWJqZWN0PHN0cmluZ1tdIHwgbnVsbD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB0b3RhbFBhZ2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAvLyBSb3V0ZSBpbmJvdW5kIG1lc3NhZ2VzIOKGkiBzdHJlYW1zXHJcbiAgICB0aGlzLndzLm1lc3NhZ2VzJC5zdWJzY3JpYmUoKG1lc3NhZ2UpID0+IHRoaXMuaGFuZGxlTWVzc2FnZShtZXNzYWdlKSk7XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLSBsaWZlY3ljbGUgLS0tLS0tLS0tLS1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29ubmVjdCB0byB0aGUgbm90aWZpY2F0aW9uIFdlYlNvY2tldC4gQXdhaXRhYmxlLCBpZGVtcG90ZW50LlxyXG4gICAqXHJcbiAgICogSWYgYSBjb25uZWN0aW9uIGlzIGFscmVhZHkgYWN0aXZlIGZvciBhICpkaWZmZXJlbnQqIHdvcmtzcGFjZSAodGVuYW50L2FwcC9lbnZcclxuICAgKiBzd2l0Y2ggd2l0aG91dCBzaWduT3V0KSwgd2UgdGVhciBpdCBkb3duIGZpcnN0IHNvIHRoZSBuZXcgY29ubmVjdGlvbiB1c2VzXHJcbiAgICogdGhlIGNvcnJlY3QgVVJMIGFuZCB3b3Jrc3BhY2VLZXkuIFRoZSB1bmRlcmx5aW5nIGB3cy5jb25uZWN0YCBpcyBpZGVtcG90ZW50XHJcbiAgICogYnkgY29ubmVjdGlvbiBzdGF0ZSwgc28gaXQgd291bGQgb3RoZXJ3aXNlIGtlZXAgdGhlIHN0YWxlIFVSTC5cclxuICAgKlxyXG4gICAqIE9uY2UgY29ubmVjdGVkLCBhbiB1bnJlYWQtY291bnQgZmV0Y2ggaXMgZmlyZWQgYXV0b21hdGljYWxseSBzbyB0aGUgYmFkZ2UgcG9wdWxhdGVzLlxyXG4gICAqL1xyXG4gIGFzeW5jIGNvbm5lY3QocGFyYW1zOiBOb3RpZmljYXRpb25JbmJveENvbm5lY3RQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLndvcmtzcGFjZUtleSAmJiB0aGlzLndvcmtzcGFjZUtleSAhPT0gcGFyYW1zLndvcmtzcGFjZUtleSkge1xyXG4gICAgICBhd2FpdCB0aGlzLmRpc2Nvbm5lY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLndvcmtzcGFjZUtleSA9IHBhcmFtcy53b3Jrc3BhY2VLZXk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy53cy5jb25uZWN0KHtcclxuICAgICAgdXNlcklkOiBwYXJhbXMudXNlcklkLFxyXG4gICAgICBhcHBJZDogcGFyYW1zLmFwcElkLFxyXG4gICAgICB0ZW5hbnRJZDogcGFyYW1zLnRlbmFudElkLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMud3MuaXNDb25uZWN0ZWQoKSkge1xyXG4gICAgICB0aGlzLnJlcXVlc3RVbnJlYWRDb3VudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGVhciBkb3duIHRoZSBjb25uZWN0aW9uLiBSZXNldHMgYWxsIHN0cmVhbSBzdGF0ZSBzbyB0aGUgVUkgY2xlYXJzLlxyXG4gICAqL1xyXG4gIGFzeW5jIGRpc2Nvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLndzLmRpc2Nvbm5lY3QoKTtcclxuICAgIHRoaXMud29ya3NwYWNlS2V5ID0gbnVsbDtcclxuICAgIHRoaXMudW5yZWFkQ291bnQkLm5leHQoMCk7XHJcbiAgICB0aGlzLnRvdGFsUGFnZXMkLm5leHQoMSk7XHJcbiAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0gYWN0aW9ucyAtLS0tLS0tLS0tLVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaCBhIHBhZ2Ugb2Ygbm90aWZpY2F0aW9ucy4gU2VydmVyIHJlcGxpZXMgdmlhIEdFVF9OT1RJRklDQVRJT05TX1JFU1BPTlNFLlxyXG4gICAqL1xyXG4gIGxvYWRNb3JlKHBhZ2VOdW1iZXI6IG51bWJlciwgcGFnZVNpemU6IG51bWJlciA9IE5PVElGSUNBVElPTl9XU19DT05GSUcuREVGQVVMVF9QQUdFX1NJWkUpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy53b3Jrc3BhY2VLZXkpIHJldHVybjtcclxuICAgIHRoaXMubG9hZGluZyQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMud3Muc2VuZCh7XHJcbiAgICAgIHR5cGU6IFdTX01FU1NBR0VfVFlQRS5HRVRfTk9USUZJQ0FUSU9OUyxcclxuICAgICAgd29ya3NwYWNlS2V5OiB0aGlzLndvcmtzcGFjZUtleSxcclxuICAgICAgcGFnZU51bWJlcixcclxuICAgICAgcGFnZVNpemUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlcXVlc3QgdW5yZWFkIGNvdW50LiBSZXN1bHQgYXJyaXZlcyBvbiBgdW5yZWFkQ291bnQkYC5cclxuICAgKi9cclxuICByZXF1ZXN0VW5yZWFkQ291bnQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMud29ya3NwYWNlS2V5KSByZXR1cm47XHJcbiAgICB0aGlzLndzLnNlbmQoe1xyXG4gICAgICB0eXBlOiBXU19NRVNTQUdFX1RZUEUuR0VUX1VOUkVBRF9DT1VOVCxcclxuICAgICAgd29ya3NwYWNlS2V5OiB0aGlzLndvcmtzcGFjZUtleSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbWFya0FzUmVhZChub3RpZmljYXRpb25JZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMud29ya3NwYWNlS2V5KSByZXR1cm47XHJcbiAgICB0aGlzLndzLnNlbmQoe1xyXG4gICAgICB0eXBlOiBXU19NRVNTQUdFX1RZUEUuTUFSS19OT1RJRklDQVRJT05fUkVBRCxcclxuICAgICAgd29ya3NwYWNlS2V5OiB0aGlzLndvcmtzcGFjZUtleSxcclxuICAgICAgbm90aWZpY2F0aW9uSWQsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG1hcmtBbGxBc1JlYWQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMud29ya3NwYWNlS2V5KSByZXR1cm47XHJcbiAgICB0aGlzLndzLnNlbmQoe1xyXG4gICAgICB0eXBlOiBXU19NRVNTQUdFX1RZUEUuTUFSS19BTExfTk9USUZJQ0FUSU9OX1JFQUQsXHJcbiAgICAgIHdvcmtzcGFjZUtleTogdGhpcy53b3Jrc3BhY2VLZXksXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyT25lKG5vdGlmaWNhdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy53b3Jrc3BhY2VLZXkpIHJldHVybjtcclxuICAgIHRoaXMud3Muc2VuZCh7XHJcbiAgICAgIHR5cGU6IFdTX01FU1NBR0VfVFlQRS5DTEVBUl9OT1RJRklDQVRJT04sXHJcbiAgICAgIHdvcmtzcGFjZUtleTogdGhpcy53b3Jrc3BhY2VLZXksXHJcbiAgICAgIG5vdGlmaWNhdGlvbklkLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckFsbCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy53b3Jrc3BhY2VLZXkpIHJldHVybjtcclxuICAgIHRoaXMud3Muc2VuZCh7XHJcbiAgICAgIHR5cGU6IFdTX01FU1NBR0VfVFlQRS5DTEVBUl9BTExfTk9USUZJQ0FUSU9OUyxcclxuICAgICAgd29ya3NwYWNlS2V5OiB0aGlzLndvcmtzcGFjZUtleSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0gc3RyZWFtcyAocmVhZC1vbmx5IHZpZXdzKSAtLS0tLS0tLS0tLVxyXG5cclxuICBnZXRMYXRlc3ROb3RpZmljYXRpb25zKCk6IE9ic2VydmFibGU8VWlOb3RpZmljYXRpb24gfCBVaU5vdGlmaWNhdGlvbltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5sYXRlc3ROb3RpZmljYXRpb25zJC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGdldFVucmVhZENvdW50KCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy51bnJlYWRDb3VudCQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRNYXJrQXNSZWFkRXZlbnRzKCk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWFya0FzUmVhZEV2ZW50JC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGdldENsZWFyRXZlbnRzKCk6IE9ic2VydmFibGU8c3RyaW5nW10gfCBudWxsPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jbGVhckV2ZW50JC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGdldExvYWRpbmdTdGF0ZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmxvYWRpbmckLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG90YWxQYWdlcygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMudG90YWxQYWdlcyQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLSBpbnRlcm5hbCAtLS0tLS0tLS0tLVxyXG5cclxuICBwcml2YXRlIGhhbmRsZU1lc3NhZ2UobWVzc2FnZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIW1lc3NhZ2U/LnR5cGUpIHJldHVybjtcclxuXHJcbiAgICBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xyXG4gICAgICBjYXNlIFdTX01FU1NBR0VfVFlQRS5HRVRfTk9USUZJQ0FUSU9OU19SRVNQT05TRTpcclxuICAgICAgICBpZiAobWVzc2FnZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBjb25zdCBpdGVtczogTm90aWZpY2F0aW9uSXRlbVtdID0gbWVzc2FnZS5ub3RpZmljYXRpb25zID8/IFtdO1xyXG4gICAgICAgICAgY29uc3QgdWkgPSBpdGVtcy5tYXAoKG4pID0+IHRoaXMucGFyc2VJbmJveE5vdGlmaWNhdGlvbihuKSk7XHJcbiAgICAgICAgICB0aGlzLmxhdGVzdE5vdGlmaWNhdGlvbnMkLm5leHQodWkpO1xyXG4gICAgICAgICAgdGhpcy50b3RhbFBhZ2VzJC5uZXh0KG1lc3NhZ2UudG90YWxQYWdlcyA/PyAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgV1NfTUVTU0FHRV9UWVBFLkdFVF9VTlJFQURfQ09VTlRfUkVTUE9OU0U6XHJcbiAgICAgICAgaWYgKG1lc3NhZ2Uuc3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy51bnJlYWRDb3VudCQubmV4dChtZXNzYWdlLmNvdW50ID8/IDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgV1NfTUVTU0FHRV9UWVBFLk5PVElGSUNBVElPTjoge1xyXG4gICAgICAgIGNvbnN0IHVpID0gdGhpcy50cmFuc2Zvcm1QdXNoTm90aWZpY2F0aW9uKG1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMubGF0ZXN0Tm90aWZpY2F0aW9ucyQubmV4dCh1aSk7XHJcbiAgICAgICAgdGhpcy5yZXF1ZXN0VW5yZWFkQ291bnQoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgY2FzZSBXU19NRVNTQUdFX1RZUEUuTUFSS19OT1RJRklDQVRJT05fUkVBRF9SRVNQT05TRTpcclxuICAgICAgICBpZiAobWVzc2FnZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLm1hcmtBc1JlYWRFdmVudCQubmV4dChtZXNzYWdlLm5vdGlmaWNhdGlvbklkID8/IG51bGwpO1xyXG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VW5yZWFkQ291bnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFdTX01FU1NBR0VfVFlQRS5OT1RJRklDQVRJT05fTUFSS0VEX1JFQUQ6XHJcbiAgICAgICAgLy8gQnJvYWRjYXN0IGZyb20gYW5vdGhlciBzZXNzaW9uIG9mIHNhbWUgdXNlci4gbm90aWZpY2F0aW9uSWQgb3B0aW9uYWxcclxuICAgICAgICAvLyAoYWJzZW50IOKHkiBcImFsbCByZWFkXCIpLlxyXG4gICAgICAgIHRoaXMubWFya0FzUmVhZEV2ZW50JC5uZXh0KG1lc3NhZ2Uubm90aWZpY2F0aW9uSWQgPz8gbnVsbCk7XHJcbiAgICAgICAgdGhpcy5yZXF1ZXN0VW5yZWFkQ291bnQoKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgV1NfTUVTU0FHRV9UWVBFLk1BUktfQUxMX05PVElGSUNBVElPTl9SRUFEX1JFU1BPTlNFOlxyXG4gICAgICAgIGlmIChtZXNzYWdlLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMubWFya0FzUmVhZEV2ZW50JC5uZXh0KG51bGwpO1xyXG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VW5yZWFkQ291bnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFdTX01FU1NBR0VfVFlQRS5DTEVBUl9OT1RJRklDQVRJT05fUkVTUE9OU0U6XHJcbiAgICAgIGNhc2UgV1NfTUVTU0FHRV9UWVBFLk5PVElGSUNBVElPTl9DTEVBUkVEOlxyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG1lc3NhZ2Uubm90aWZpY2F0aW9uSWRzKSAmJiBtZXNzYWdlLm5vdGlmaWNhdGlvbklkcy5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuY2xlYXJFdmVudCQubmV4dChtZXNzYWdlLm5vdGlmaWNhdGlvbklkcyk7XHJcbiAgICAgICAgICB0aGlzLnJlcXVlc3RVbnJlYWRDb3VudCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgV1NfTUVTU0FHRV9UWVBFLkNMRUFSX0FMTF9OT1RJRklDQVRJT05TX1JFU1BPTlNFOlxyXG4gICAgICAgIGlmIChtZXNzYWdlLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMuY2xlYXJFdmVudCQubmV4dChudWxsKTtcclxuICAgICAgICAgIHRoaXMucmVxdWVzdFVucmVhZENvdW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBXU19NRVNTQUdFX1RZUEUuQUxMX05PVElGSUNBVElPTlNfQ0xFQVJFRDpcclxuICAgICAgICBpZiAobWVzc2FnZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyRXZlbnQkLm5leHQobnVsbCk7XHJcbiAgICAgICAgICB0aGlzLnJlcXVlc3RVbnJlYWRDb3VudCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIC8vIENPTk5FQ1RJT05fRVNUQUJMSVNIRUQsIFBPTkcsIEhFQVJUQkVBVF9BQ0ssIEVSUk9SIGFyZSBoYW5kbGVkIGF0IHRoZVxyXG4gICAgICAvLyB0cmFuc3BvcnQgbGF5ZXIgKG9yIGFyZSBuby1vcHMpLiBIRUFSVEJFQVQgaXMgaW50ZXJjZXB0ZWQgYnkgdHJhbnNwb3J0XHJcbiAgICAgIC8vIGFuZCBuZXZlciBmb3J3YXJkZWQuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQYXJzZSBhbiBpbmJveCBub3RpZmljYXRpb24ncyBgZGF0YWAgSlNPTiBpbnRvIGEgVUktc2hhcGVkIG9iamVjdC5cclxuICAgKlxyXG4gICAqIFJlYWQgc3RhdGUgaXMgc3VyZmFjZWQgdmlhIGBzdGF0dXMgPT09ICdSZWFkJ2AgKGNvbmZpcm1lZCBieSBCRSkuXHJcbiAgICogSW5ib3ggcmVzcG9uc2Ugb25seSBjb250YWlucyBgRGVsaXZlcmVkYCAodW5yZWFkKSArIGBSZWFkYCBpdGVtcztcclxuICAgKiBgUGVuZGluZ2AgLyBgRG9uZWAgLyBgRmFpbGVkYCBhcmUgZmlsdGVyZWQgb3V0IHNlcnZlci1zaWRlLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcGFyc2VJbmJveE5vdGlmaWNhdGlvbihpdGVtOiBOb3RpZmljYXRpb25JdGVtKTogVWlOb3RpZmljYXRpb24ge1xyXG4gICAgbGV0IHBhcnNlZFBheWxvYWQ6IFBhcnNlZE5vdGlmaWNhdGlvblBheWxvYWQgPSB7fTtcclxuICAgIHRyeSB7XHJcbiAgICAgIHBhcnNlZFBheWxvYWQgPSBKU09OLnBhcnNlKGl0ZW0uZGF0YSkgYXMgUGFyc2VkTm90aWZpY2F0aW9uUGF5bG9hZDtcclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICBwYXJzZWRQYXlsb2FkID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgIGNyZWF0ZWRBdDogaXRlbS5jcmVhdGVkQXQsXHJcbiAgICAgIHN0YXR1czogaXRlbS5zdGF0dXMsXHJcbiAgICAgIHByaW9yaXR5OiBpdGVtLnByaW9yaXR5LFxyXG4gICAgICBwYXJzZWRQYXlsb2FkLFxyXG4gICAgICBpc1JlYWQ6IGl0ZW0uc3RhdHVzID09PSAnUmVhZCcsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV3JhcCBhIHNlcnZlci1wdXNoZWQgbGl2ZSBub3RpZmljYXRpb24gaW50byB0aGUgc2FtZSBVSSBzaGFwZSBhcyBpbmJveCBpdGVtcy5cclxuICAgKiBUaGUgcHVzaCBldmVudCBoYXMgZmllbGRzIGZsYXQgYXQgdGhlIHRvcCBsZXZlbCAoTk9UIGluc2lkZSBgZGF0YWApIOKAlCBzeW50aGVzaXplXHJcbiAgICogYHBhcnNlZFBheWxvYWRgIGZyb20gdGhvc2UgZmllbGRzIHNvIHRoZSBjb21wb25lbnQgc2VlcyBhIHVuaWZvcm0gc2hhcGUuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1QdXNoTm90aWZpY2F0aW9uKHB1c2g6IE5vdGlmaWNhdGlvblB1c2hQYXlsb2FkKTogVWlOb3RpZmljYXRpb24ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaWQ6IHB1c2guaWQsXHJcbiAgICAgIGNyZWF0ZWRBdDogcHVzaC5jcmVhdGVkQXQsXHJcbiAgICAgIHN0YXR1czogJ0RlbGl2ZXJlZCcsXHJcbiAgICAgIHByaW9yaXR5OiBwdXNoLnByaW9yaXR5LFxyXG4gICAgICBwYXJzZWRQYXlsb2FkOiB7XHJcbiAgICAgICAgdGl0bGU6IHB1c2gudGl0bGUsXHJcbiAgICAgICAgYm9keTogcHVzaC5ib2R5LFxyXG4gICAgICAgIGNhdGVnb3J5OiBwdXNoLmNhdGVnb3J5LFxyXG4gICAgICAgIHByaW9yaXR5OiBwdXNoLnByaW9yaXR5LFxyXG4gICAgICB9LFxyXG4gICAgICBpc1JlYWQ6IGZhbHNlLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19