@universis/ngx-tables 0.8.5 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/universis-ngx-tables.umd.js +5816 -3756
- package/bundles/universis-ngx-tables.umd.js.map +1 -1
- package/bundles/universis-ngx-tables.umd.min.js +1 -1
- package/bundles/universis-ngx-tables.umd.min.js.map +1 -1
- package/esm2015/lib/actions/table.actions.js +48 -7
- package/esm2015/lib/advanced-aggregator.js +5 -1
- package/esm2015/lib/components/add-items/add-items.component.js +93 -26
- package/esm2015/lib/components/advanced-aggregator/advanced-aggregator.component.js +75 -5
- package/esm2015/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +39 -12
- package/esm2015/lib/components/advanced-list/advanced-list.component.js +105 -33
- package/esm2015/lib/components/advanced-row-action/advanced-row-action.component.js +97 -16
- package/esm2015/lib/components/advanced-search-form/advanced-search-form.component.js +87 -16
- package/esm2015/lib/components/advanced-select/advanced-select.component.js +33 -1
- package/esm2015/lib/components/advanced-select/advanced-select.service.js +20 -3
- package/esm2015/lib/components/advanced-table/advanced-filter-value-provider.service.js +23 -2
- package/esm2015/lib/components/advanced-table/advanced-table-resolvers.js +37 -9
- package/esm2015/lib/components/advanced-table/advanced-table-search-base.js +22 -1
- package/esm2015/lib/components/advanced-table/advanced-table-search.component.js +223 -31
- package/esm2015/lib/components/advanced-table/advanced-table-settings.component.js +90 -8
- package/esm2015/lib/components/advanced-table/advanced-table.component.js +576 -126
- package/esm2015/lib/components/advanced-table/advanced-table.formatters.interface.js +36 -1
- package/esm2015/lib/components/advanced-table/advanced-table.formatters.js +257 -44
- package/esm2015/lib/components/advanced-table/advanced-table.interfaces.js +4 -0
- package/esm2015/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +211 -55
- package/esm2015/lib/components/column-selector/column-selector.component.js +167 -73
- package/esm2015/lib/components/column-selector/column-selector.service.js +19 -2
- package/esm2015/lib/components/table-simple-header/table-simple-header.component.js +31 -7
- package/esm2015/lib/directives/advance-search-state.directive.js +49 -10
- package/esm2015/lib/directives/advance-table-state.directive.js +26 -3
- package/esm2015/lib/directives/advanced-search-router-state.directive.js +35 -8
- package/esm2015/lib/directives/advanced-table-editor.directive.js +43 -13
- package/esm2015/lib/directives/btnexp.directive.js +85 -42
- package/esm2015/lib/i18n/tables.el.js +6 -3
- package/esm2015/lib/i18n/tables.en.js +6 -3
- package/esm2015/lib/pipes/advanced-aggregator.pipe.js +12 -8
- package/esm2015/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +19 -7
- package/esm2015/lib/reducers/index.js +32 -1
- package/esm2015/lib/services/advanced-aggregator/advanced-aggregator.service.js +37 -15
- package/esm2015/lib/tables.activated-table.service.js +41 -6
- package/esm2015/lib/tables.module.js +18 -4
- package/esm2015/public_api.js +33 -29
- package/esm2015/universis-ngx-tables.js +6 -2
- package/esm5/lib/actions/table.actions.js +37 -7
- package/esm5/lib/advanced-aggregator.js +5 -1
- package/esm5/lib/components/add-items/add-items.component.js +124 -34
- package/esm5/lib/components/advanced-aggregator/advanced-aggregator.component.js +111 -15
- package/esm5/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +54 -11
- package/esm5/lib/components/advanced-list/advanced-list.component.js +125 -37
- package/esm5/lib/components/advanced-row-action/advanced-row-action.component.js +124 -24
- package/esm5/lib/components/advanced-search-form/advanced-search-form.component.js +109 -22
- package/esm5/lib/components/advanced-select/advanced-select.component.js +36 -4
- package/esm5/lib/components/advanced-select/advanced-select.service.js +22 -4
- package/esm5/lib/components/advanced-table/advanced-filter-value-provider.service.js +37 -5
- package/esm5/lib/components/advanced-table/advanced-table-resolvers.js +43 -11
- package/esm5/lib/components/advanced-table/advanced-table-search-base.js +29 -4
- package/esm5/lib/components/advanced-table/advanced-table-search.component.js +323 -58
- package/esm5/lib/components/advanced-table/advanced-table-settings.component.js +112 -15
- package/esm5/lib/components/advanced-table/advanced-table.component.js +761 -164
- package/esm5/lib/components/advanced-table/advanced-table.formatters.interface.js +36 -1
- package/esm5/lib/components/advanced-table/advanced-table.formatters.js +392 -57
- package/esm5/lib/components/advanced-table/advanced-table.interfaces.js +4 -0
- package/esm5/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +311 -70
- package/esm5/lib/components/column-selector/column-selector.component.js +264 -145
- package/esm5/lib/components/column-selector/column-selector.service.js +21 -3
- package/esm5/lib/components/table-simple-header/table-simple-header.component.js +44 -10
- package/esm5/lib/directives/advance-search-state.directive.js +68 -15
- package/esm5/lib/directives/advance-table-state.directive.js +26 -4
- package/esm5/lib/directives/advanced-search-router-state.directive.js +39 -12
- package/esm5/lib/directives/advanced-table-editor.directive.js +66 -18
- package/esm5/lib/directives/btnexp.directive.js +171 -39
- package/esm5/lib/i18n/tables.el.js +6 -3
- package/esm5/lib/i18n/tables.en.js +6 -3
- package/esm5/lib/pipes/advanced-aggregator.pipe.js +32 -6
- package/esm5/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +34 -8
- package/esm5/lib/reducers/index.js +32 -1
- package/esm5/lib/services/advanced-aggregator/advanced-aggregator.service.js +75 -13
- package/esm5/lib/tables.activated-table.service.js +39 -8
- package/esm5/lib/tables.module.js +19 -5
- package/esm5/public_api.js +33 -29
- package/esm5/universis-ngx-tables.js +6 -2
- package/fesm2015/universis-ngx-tables.js +1870 -569
- package/fesm2015/universis-ngx-tables.js.map +1 -1
- package/fesm5/universis-ngx-tables.js +2902 -802
- package/fesm5/universis-ngx-tables.js.map +1 -1
- package/lib/components/add-items/add-items.component.d.ts +9 -16
- package/lib/components/advanced-aggregator/advanced-aggregator.component.d.ts +5 -5
- package/lib/components/advanced-list/advanced-list.component.d.ts +11 -11
- package/lib/components/advanced-row-action/advanced-row-action.component.d.ts +11 -16
- package/lib/components/advanced-search-form/advanced-search-form.component.d.ts +3 -3
- package/lib/components/advanced-table/advanced-table-search.component.d.ts +5 -5
- package/lib/components/advanced-table/advanced-table-settings.component.d.ts +5 -6
- package/lib/components/advanced-table/advanced-table.component.d.ts +14 -15
- package/lib/components/advanced-table/advanced-table.formatters.d.ts +11 -11
- package/lib/components/advanced-table-modal/advanced-table-modal-base.component.d.ts +11 -11
- package/lib/components/column-selector/column-selector.component.d.ts +4 -4
- package/lib/components/table-simple-header/table-simple-header.component.d.ts +3 -3
- package/lib/directives/advance-search-state.directive.d.ts +3 -3
- package/lib/directives/advance-table-state.directive.d.ts +1 -1
- package/lib/directives/advanced-search-router-state.directive.d.ts +6 -6
- package/lib/directives/btnexp.directive.d.ts +9 -9
- package/lib/pipes/advanced-aggregator.pipe.d.ts +3 -3
- package/lib/pipes/advansed-aggregator-list-title-parse.pipe.d.ts +5 -5
- package/lib/services/advanced-aggregator/advanced-aggregator.service.d.ts +8 -8
- package/lib/tables.activated-table.service.d.ts +6 -6
- package/package.json +10 -4
- package/universis-ngx-tables.metadata.json +1 -1
|
@@ -1,2 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
1
5
|
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtYWdncmVnYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbImxpYi9hZHZhbmNlZC1hZ2dyZWdhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBAaW50ZXJmYWNlIEFkdmFuY2VkQWdncmVnYXRvckZpbHRlcnMgQW4gb2JqZWN0IHRoYXQgY29udGFpbnMgZGF0YSB1c2VkIGZvciBmaWx0ZXJpbmdcbiAqXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IGZpbHRlcnMgQSBsaXN0IG9mIGV4cHJlc3Npb25zIHRvIHVzZSBmb3IgZmlsdGVyaW5nXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdGV4dCBUaGUgc2VhcmNoIHRleHQgdXNlZCBieSB0aGUgdXNlciB0byBydW4gYWdhaW5zdCB0aGUgZGVjbGFyZWQgc2VhcmNoIGV4cHJlc3Npb25cbiAqXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZHZhbmNlZEFnZ3JlZ2F0b3JGaWx0ZXJzIHtcbiAgZmlsdGVyczogc3RyaW5nW107XG4gIHRleHQ6IHN0cmluZztcbn1cblxuLyoqXG4gKlxuICogQGludGVyZmFjZSBBZHZhbmNlZEFnZ3JlZ2F0b3JDb2x1bW4gQSBjb2x1bW4gaW4gdGhlIGFkdmFuY2VkIGFnZ3JlZ2F0b3IgbGlzdFxuICpcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4uIEl0J3MgdXNlZCBhcyBpdCdzIGtleVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHRpdGxlIFRoZSB0aXRsZSB0aGF0IHdpbGwgYmUgc2hvd24gYXMgY29sdW1uIGxhYmVsXG4gKiBAcHJvcGVydHkge3N0cmluZz0ndGV4dCcsICdib29sZWFuJ30gdHlwZSBUaGUgZGF0YSB0eXBlIG9mIHRoZSBjb2x1bW4gdmFsdWVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB2YXJpYW50IFRoZSBhIHZpc3VhbGl6YXRpb24gdmFyaWFudCBvZiB0aGUgY29sdW1uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIGxpc3QgY2VsbFxuICogQHByb3BlcnR5IHtzdHJpbmd9IHRydWVWYWx1ZSBGb3IgYm9vbGVhbnMsIHRoZSB2YWx1ZSB0aGF0IHJlcHJlc2VudCB0aGUgdHJ1ZSBzdGF0ZVxuICogQHByb3BlcnR5IHtib29sZWFufSBoaWRkZW4gV2hldGhlciB0aGUgY29sdW1uIHNob3VsZCBiZSBzaG93biBvbiB0aGUgVUlcbiAqXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZHZhbmNlZEFnZ3JlZ2F0b3JDb2x1bW4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHByb3BlcnR5OiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHZhcmlhbnQ/OiBzdHJpbmc7XG4gIGxlbmd0aD86IHN0cmluZztcbiAgdHJ1ZVZhbHVlPzogc3RyaW5nO1xuICBoaWRkZW4/OiBib29sZWFuO1xufVxuXG4vKipcbiAqXG4gKiBAaW50ZXJmYWNlIEFkdmFuY2VkQWdncmVnYXRvckFjdGlvbiBBbiBhY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCBpbiBhIGNvbHVtblxuICpcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBhY3Rpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nPSdlZGl0J30gdHlwZSBUaGUgdHlwZSBvZiB0aGUgYWN0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdGl0bGUgVGhlIHRpdGxlIHRoYXQgaXMgc2hvd24gb24gbW91c2UgaG92ZXJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBpZGVudGlmaWVyIEFuIGlkZW50aWZpZXIgdGhhdCB3aWxsIGJlIGVtaXR0ZWQgYWxvbmcgd2l0aCB0aGUgcm93IGRhdGFcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBpY29uIFRoZSBpY29uIHRvIHNob3cgYXMgaWRlbnRpZmllclxuICpcbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkdmFuY2VkQWdncmVnYXRvckFjdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBpZGVudGlmaWVyOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbn1cblxuLyoqXG4gKlxuICogQGludGVyZmFjZSBBZHZhbmNlZEFnZ3JlZ2F0b3JGdW5jdGlvbiBBbiBhZ2dyZWdhdG9yIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIHJldHVybiBhIHZhbHVlIGZvciBlYWNoIHN1Ymdyb3VwXG4gKlxuICogQHByb3BlcnR5IHtzdHJpbmd9IG5hbWUgVGhlIG5hbWUgb2YgdGhlIGFnZ3JlZ2F0b3IgZnVuY3Rpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBsYWJlbCBUaGUgbGFiZWwgb2YgdGhlIGFnZ3JlZ2F0b3JcbiAqXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZHZhbmNlZEFnZ3JlZ2F0b3JGdW5jdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuLyoqXG4gKlxuICogQGludGVyZmFjZSBBZHZhbmNlZEFnZ3JlZ2F0b3JHcm91cCBUaGUgZGVjbGFyYXRpb24gb2YgYSBwcm9wZXJ0eSB0aGF0IGNhbiBiZSB1c2VkIHRvIGdyb3VwIHRoZSBkYXRhXG4gKlxuICogQHByb3BlcnR5IHtzdHJpbmd9IG5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyb3VwLiBTaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBwcm9wZXJ0eVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHByb3BlcnR5IFRoZSBwcm9wZXJ0eSBuYW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbGFiZWwgVGhlIGxhYmVsIHRvIGJlIHNob3duIGFzIHRoZSBzZWxlY3Qgb3B0aW9uIGF0IHRoZSBhZHZhbmNlZCBzZWFyY2ggY29tcG9uZW50XG4gKiBAcHJvcGVydHkge3N0cmluZ30gdGl0bGUgVGhlIHRpdGxlIHRvIHNob3cgb24gdG9wIG9mIHRoZSBncm91cGVkIGxpc3RcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBkZWZhdWx0IFdoZXRoZXIgdGhlIGNvbHVtbiBpcyB1c2VkIGJ5IGRlZmF1bHQuIElmIG5vbmUsIHRoZSBmaXJzdCBmb3VuZCBpcyB1c2VkXG4gKlxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWR2YW5jZWRBZ2dyZWdhdG9yR3JvdXAge1xuICBuYW1lOiBzdHJpbmc7XG4gIHByb3BlcnR5OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlZmF1bHQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqXG4gKiBAaW50ZXJmYWNlIEFkdmFuY2VkQWdncmVnYXRvclBvc3RQcm9jZXNzb3IgQSBkZWNsYXJhdGlvbiBmb3IgYSBwb3N0IHByb2Nlc3NvciBmdW5jdGlvblxuICpcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBwb3N0IHByb2Nlc3Nvci4gSXQgd2lsbCBiZSB1c2VkIGFzIGlkZW50aWZpZXJcbiAqXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZHZhbmNlZEFnZ3JlZ2F0b3JQb3N0UHJvY2Vzc29yIHtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqXG4gKiBAaW50ZXJmYWNlIEFkdmFuY2VkQWdncmVnYXRvckNvbmZpZyBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgYWR2YW5jZWQgYWdncmVnYXRvciBsaXN0IGNvbXBvbmVudFxuICpcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBtb2RlbCBUaGUgbW9kZWwgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZGlzcGxheWVkXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcXVlcnkgVGhlIHF1ZXJ5IHRvIHVzZSBpbiBvcmRlciB0byBmZXRjaCBkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdGl0bGUgVGhlIFRpdGxlIG9mIHRoZSBsaXN0XG4gKiBAcHJvcGVydHkge3N0cmluZ30gb3JkZXJCeSBUaGUgcHJvcGVydHkgYWNjb3JkaW5nIHdoaWNoIHRoZSBsaXN0IHNob3VsZCBiZSBvcmRlcmVkXG4gKiBAcHJvcGVydHkge0FycmF5PEFkdmFuY2VkQWdncmVnYXRvckdyb3VwPn0gZ3JvdXBQcm9wZXJ0aWVzIFRoZSBsaXN0IG9mIHRoZSBhdmFpbGFibGUgZ3JvdXBpbmcgcHJvcGVydGllc1xuICogQHByb3BlcnR5IHtBcnJheTxBZHZhbmNlZEFnZ3JlZ2F0b3JGdW5jdGlvbj59IGFnZ3JlZ2F0b3IgVGhlIGxpc3Qgb2YgZnVuY3Rpb25zIHRoYXQgY2FuIHN1bW1hcml6ZSB0aGUgZGF0YVxuICogQHByb3BlcnR5IHtBcnJheTxBZHZhbmNlZEFnZ3JlZ2F0b3JBY3Rpb24+fSBhY3Rpb25zIFRoZSBsaXN0IG9mIGFjdGlvbnMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciB0aGUgbGlzdCBpdGVtc1xuICogQHByb3BlcnR5IHtBcnJheTxBZHZhbmNlZEFnZ3JlZ2F0b3JDb2x1bW4+fSBjb2x1bW5zIFRoZSBsaXN0IG9mIGZpZWxkcyB0byBiZSB1c2VkIGZyb20gdGhlIHRhcmdldCBtb2RlbHNcbiAqXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZHZhbmNlZEFnZ3JlZ2F0b3JDb25maWcge1xuICBtb2RlbDogc3RyaW5nO1xuICBxdWVyeTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBvcmRlckJ5OiBzdHJpbmc7XG4gIGdyb3VwUHJvcGVydGllczogQXJyYXk8QWR2YW5jZWRBZ2dyZWdhdG9yR3JvdXA+O1xuICBhZ2dyZWdhdG9ycz86IEFycmF5PEFkdmFuY2VkQWdncmVnYXRvckZ1bmN0aW9uPjtcbiAgcG9zdFByb2Nlc3NvcnM/OiBBcnJheTxBZHZhbmNlZEFnZ3JlZ2F0b3JQb3N0UHJvY2Vzc29yPjtcbiAgYWN0aW9ucz86IEFycmF5PEFkdmFuY2VkQWdncmVnYXRvckFjdGlvbj47XG4gIGNvbHVtbnM6IEFycmF5PEFkdmFuY2VkQWdncmVnYXRvckNvbHVtbj47XG59XG4iXX0=
|
|
@@ -1,62 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
1
5
|
import * as tslib_1 from "tslib";
|
|
2
6
|
import { Component, Input, ViewChild } from '@angular/core';
|
|
3
7
|
import { RouterModalOkCancel } from '@universis/common/routing';
|
|
4
8
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
5
9
|
import { Observable } from 'rxjs';
|
|
6
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
7
|
-
import { AngularDataContext } from '@themost/angular';
|
|
8
10
|
import { AdvancedTableModalBaseComponent } from '../advanced-table-modal/advanced-table-modal-base.component';
|
|
9
11
|
import { AdvancedFormComponent } from '@universis/forms';
|
|
10
|
-
import {
|
|
12
|
+
import { LoadingService, ModalService } from '@universis/common';
|
|
11
13
|
var AddItemsComponent = /** @class */ (function (_super) {
|
|
12
14
|
tslib_1.__extends(AddItemsComponent, _super);
|
|
13
|
-
function AddItemsComponent(router, activatedRoute,
|
|
15
|
+
function AddItemsComponent(router, activatedRoute, _modalService, _loadingService) {
|
|
14
16
|
var _this = _super.call(this, router, activatedRoute) || this;
|
|
15
|
-
_this._errorService = _errorService;
|
|
16
17
|
_this._modalService = _modalService;
|
|
17
|
-
_this._appEvent = _appEvent;
|
|
18
|
-
_this._toastService = _toastService;
|
|
19
18
|
_this._loadingService = _loadingService;
|
|
20
|
-
_this._translateService = _translateService;
|
|
21
|
-
_this._context = _context;
|
|
22
19
|
_this.loading = false;
|
|
23
20
|
_this.items = [];
|
|
24
21
|
_this.messages = [];
|
|
25
22
|
// set modal size
|
|
23
|
+
// set modal size
|
|
26
24
|
_this.modalClass = 'modal-lg';
|
|
27
25
|
_this.okButtonDisabled = true;
|
|
28
26
|
return _this;
|
|
29
27
|
}
|
|
30
|
-
|
|
28
|
+
/**
|
|
29
|
+
* @return {?}
|
|
30
|
+
*/
|
|
31
|
+
AddItemsComponent.prototype.ngOnInit = /**
|
|
32
|
+
* @return {?}
|
|
33
|
+
*/
|
|
34
|
+
function () {
|
|
31
35
|
var _this = this;
|
|
32
|
-
this.
|
|
33
|
-
|
|
34
|
-
_this.
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
if (this.selectComponent && this.selectComponent.advancedTable) {
|
|
37
|
+
this.selectedSubscription = this.selectComponent.advancedTable.selectedItems.subscribe(function (items) {
|
|
38
|
+
if (_this.formName == null) {
|
|
39
|
+
_this.okButtonDisabled = items.length === 0;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
if (this.formName != null && this.formComponent) {
|
|
38
44
|
this.formChangeSubscription = this.formComponent.form.change.subscribe(function (event) {
|
|
39
45
|
if (Object.prototype.hasOwnProperty.call(event, 'isValid')) {
|
|
46
|
+
// enable or disable button based on form status
|
|
40
47
|
// enable or disable button based on form status
|
|
41
48
|
_this.okButtonDisabled = (!event.isValid);
|
|
42
49
|
}
|
|
43
50
|
});
|
|
44
51
|
}
|
|
45
52
|
if (this.target) {
|
|
53
|
+
/** @type {?} */
|
|
46
54
|
var target = this.target;
|
|
47
55
|
}
|
|
48
56
|
};
|
|
49
|
-
|
|
57
|
+
/**
|
|
58
|
+
* @return {?}
|
|
59
|
+
*/
|
|
60
|
+
AddItemsComponent.prototype.cancel = /**
|
|
61
|
+
* @return {?}
|
|
62
|
+
*/
|
|
63
|
+
function () {
|
|
50
64
|
this.clearMessages();
|
|
51
65
|
if (this.loading) {
|
|
52
|
-
return;
|
|
66
|
+
return Promise.resolve();
|
|
53
67
|
}
|
|
54
68
|
// close
|
|
55
69
|
if (this._modalService.modalRef) {
|
|
56
70
|
return this._modalService.modalRef.hide();
|
|
57
71
|
}
|
|
72
|
+
return Promise.resolve();
|
|
58
73
|
};
|
|
59
|
-
|
|
74
|
+
/**
|
|
75
|
+
* @return {?}
|
|
76
|
+
*/
|
|
77
|
+
AddItemsComponent.prototype.ngOnDestroy = /**
|
|
78
|
+
* @return {?}
|
|
79
|
+
*/
|
|
80
|
+
function () {
|
|
60
81
|
if (this.formLoadSubscription) {
|
|
61
82
|
this.formLoadSubscription.unsubscribe();
|
|
62
83
|
}
|
|
@@ -68,25 +89,39 @@ var AddItemsComponent = /** @class */ (function (_super) {
|
|
|
68
89
|
}
|
|
69
90
|
};
|
|
70
91
|
Object.defineProperty(AddItemsComponent.prototype, "formData", {
|
|
71
|
-
get:
|
|
92
|
+
get: /**
|
|
93
|
+
* @return {?}
|
|
94
|
+
*/
|
|
95
|
+
function () {
|
|
72
96
|
if (this.formComponent === null) {
|
|
73
97
|
return null;
|
|
74
98
|
}
|
|
75
|
-
return this.formComponent.form.formio.data;
|
|
99
|
+
return this.formComponent && this.formComponent.form.formio.data;
|
|
76
100
|
},
|
|
77
101
|
enumerable: true,
|
|
78
102
|
configurable: true
|
|
79
103
|
});
|
|
80
|
-
|
|
104
|
+
/**
|
|
105
|
+
* @return {?}
|
|
106
|
+
*/
|
|
107
|
+
AddItemsComponent.prototype.ok = /**
|
|
108
|
+
* @return {?}
|
|
109
|
+
*/
|
|
110
|
+
function () {
|
|
81
111
|
var _this = this;
|
|
82
112
|
try {
|
|
83
113
|
this.clearMessages();
|
|
84
|
-
return new Promise(function (resolve
|
|
114
|
+
return new Promise(function (resolve) {
|
|
115
|
+
if (_this.selectComponent == null || _this.selectComponent.advancedTable == null || _this.execute == null) {
|
|
116
|
+
return resolve(null);
|
|
117
|
+
}
|
|
85
118
|
_this.loading = false;
|
|
86
119
|
_this.lastError = null;
|
|
87
120
|
// set courses
|
|
121
|
+
// set courses
|
|
88
122
|
_this.items = _this.selectComponent.advancedTable.selected;
|
|
89
123
|
// execute add
|
|
124
|
+
// execute add
|
|
90
125
|
_this.executeSubscription = _this.execute.subscribe(function (result) {
|
|
91
126
|
_this.loading = false;
|
|
92
127
|
if (_this.executeSubscription) {
|
|
@@ -100,8 +135,10 @@ var AddItemsComponent = /** @class */ (function (_super) {
|
|
|
100
135
|
}, function (err) {
|
|
101
136
|
_this.loading = false;
|
|
102
137
|
// ensure that loading is hidden
|
|
138
|
+
// ensure that loading is hidden
|
|
103
139
|
_this._loadingService.hideLoading();
|
|
104
140
|
// set last error
|
|
141
|
+
// set last error
|
|
105
142
|
_this.lastError = err;
|
|
106
143
|
return resolve(null);
|
|
107
144
|
});
|
|
@@ -111,30 +148,49 @@ var AddItemsComponent = /** @class */ (function (_super) {
|
|
|
111
148
|
this.loading = false;
|
|
112
149
|
this._loadingService.hideLoading();
|
|
113
150
|
this.lastError = err;
|
|
151
|
+
return Promise.resolve();
|
|
114
152
|
}
|
|
115
153
|
};
|
|
116
|
-
|
|
117
|
-
|
|
154
|
+
/**
|
|
155
|
+
* @param {?} $event
|
|
156
|
+
* @return {?}
|
|
157
|
+
*/
|
|
158
|
+
AddItemsComponent.prototype.onChange = /**
|
|
159
|
+
* @param {?} $event
|
|
160
|
+
* @return {?}
|
|
161
|
+
*/
|
|
162
|
+
function ($event) { };
|
|
163
|
+
/**
|
|
164
|
+
* @return {?}
|
|
165
|
+
*/
|
|
166
|
+
AddItemsComponent.prototype.clearMessages = /**
|
|
167
|
+
* @return {?}
|
|
168
|
+
*/
|
|
169
|
+
function () {
|
|
118
170
|
this.messages = [];
|
|
119
171
|
};
|
|
120
|
-
|
|
172
|
+
/**
|
|
173
|
+
* @param {?} event
|
|
174
|
+
* @return {?}
|
|
175
|
+
*/
|
|
176
|
+
AddItemsComponent.prototype.onFilterChange = /**
|
|
177
|
+
* @param {?} event
|
|
178
|
+
* @return {?}
|
|
179
|
+
*/
|
|
180
|
+
function (event) { };
|
|
121
181
|
AddItemsComponent.decorators = [
|
|
122
182
|
{ type: Component, args: [{
|
|
183
|
+
// tslint:disable-next-line:component-selector
|
|
123
184
|
selector: 'app-add-items',
|
|
124
|
-
template: "<div>\n <div class=\"modal-header\" *ngIf=\"modalTitle\">\n <h5 class=\"modal-title\">{{modalTitle | translate}}</h5>\n <button (click)=\"cancel()\" [disabled]=\"loading\"\n type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Cancel\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body pt-0\">\n <div class=\"row\" *ngIf=\"lastError\">\n <div class=\"alert alert-danger col-12\" role=\"alert\">\n <span [translate]=\"'E' + (lastError.statusCode || 500) + '.title'\"></span><br>\n <small *ngIf=\"lastError.statusCode >= 0\" [translate]=\"'E' + (lastError.statusCode || 500) + '.message'\"></small>\n <small *ngIf=\"lastError.statusCode == null\">{{lastError.message}}</small>\n </div>\n </div>\n <div class=\"row d-none\" *ngIf=\"items\">\n <div class=\"col-12\">\n <p [translate]=\"'StudyPrograms.AddCoursesHelp'\" [translateParams]=\"items\" ></p>\n </div>\n </div>\n <div class=\"row mt-3\">\n <div class=\"col-12\">\n <ng-container>\n <ul style=\"margin-left: -24px\" class=\"nav nav-tabs mb-1\" id=\"myTab\" role=\"tablist\">\n <li class=\"nav-item\" *ngIf=\"tableConfiguration\">\n <a class=\"nav-link active\" id=\"courses-tab\" data-toggle=\"tab\" href=\"#courses\" role=\"tab\" aria-controls=\"home\" aria-selected=\"true\" [translate]=\"'AddItems.SelectItems'\" ></a>\n </li>\n <li class=\"nav-item\" *ngIf=\"formName\">\n <a class=\"nav-link\" [ngClass]=\"{ 'disabled': !(selectComponent.advancedTable.selected && selectComponent.advancedTable.selected.length) }\" id=\"attributes-tab\" data-toggle=\"tab\" href=\"#attributes\" role=\"tab\" aria-controls=\"profile\" aria-selected=\"false\" [translate]=\"'AddItems.EditAttributes'\"></a>\n </li>\n <li class=\"nav-item\" *ngIf=\"messages && messages.length > 0\">\n <a class=\"nav-link\" id=\"messages-tab\" data-toggle=\"tab\" href=\"#messages\" role=\"tab\" aria-controls=\"profile\" aria-selected=\"false\" [translate]=\"'AddItems.Messages'\"></a>\n </li>\n </ul>\n <div class=\"tab-content border-0\" id=\"myTabContent\">\n <div class=\"tab-pane fade show active\" id=\"courses\" role=\"tabpanel\" aria-labelledby=\"home-tab\">\n <app-advanced-table-modal #selectComponent (filter)=\"onFilterChange($event)\" [tableConfig]=\"tableConfiguration\"></app-advanced-table-modal>\n </div>\n <div class=\"tab-pane fade\" id=\"attributes\" role=\"tabpanel\" aria-labelledby=\"profile-tab\"\n [ngClass]=\"{'invisible':(formName == null)}\">\n<!-- <advanced-form-edit #formComponent [formName]=\"formName\" ></advanced-form-edit>-->\n </div>\n <div class=\"tab-pane fade\" id=\"messages\" role=\"tabpanel\" aria-labelledby=\"profile-tab\"\n [ngClass]=\"{'invisible':(messages == null)}\">\n <ul *ngIf=\"messages && messages.length>0\" class=\"sis--list-group sis--list-group-header\">\n <li class=\"sis--list-group-item\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <div class=\"sis--list-group-item_lg_column\" [translate]=\"'AddItems.Messages'\"></div>\n </div>\n </li>\n </ul>\n <ul class=\"sis--list-group sis--list-group-body\">\n <li *ngFor=\"let message of messages\" class=\"sis--list-group-item\">\n <div class=\"d-flex justify-content-center align-items-center list-color\">\n <div class=\"sis--list-group-item_lg_column\">{{ message?.message }}</div>\n </div>\n </li>\n </ul>\n <div *ngIf=\"messages && messages.length>0\">\n <button [disabled]=\"loading\" (click)=\"clearMessages()\" type=\"button\" class=\"btn btn-indigo mt-3\">\n {{'Clear' | translate}}\n </button>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"modal-footer justify-content-end\">\n <button [disabled]=\"okButtonDisabled || loading || !(selectComponent.advancedTable.selected && selectComponent.advancedTable.selected.length) \" (click)=\"ok()\"\n type=\"button\" [ngClass]=\"okButtonClass\">\n {{'OK' | translate}}\n </button>\n <button [disabled]=\"cancelButtonDisabled || loading\"\n (click)=\"cancel()\" type=\"button\" [ngClass]=\"cancelButtonClass\" data-dismiss=\"modal\">\n {{'Cancel' | translate}}\n </button>\n </div>\n</div>\n"
|
|
185
|
+
template: "<div>\n <div class=\"modal-header\" *ngIf=\"modalTitle\">\n <h5 class=\"modal-title\">{{modalTitle | translate}}</h5>\n <button (click)=\"cancel()\" [disabled]=\"loading\"\n type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Cancel\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body pt-0\">\n <div class=\"row\" *ngIf=\"lastError\">\n <div class=\"alert alert-danger col-12\" role=\"alert\">\n <span [translate]=\"'E' + (lastError.statusCode || 500) + '.title'\"></span><br>\n <small *ngIf=\"lastError.statusCode >= 0\" [translate]=\"'E' + (lastError.statusCode || 500) + '.message'\"></small>\n <small *ngIf=\"lastError.statusCode == null\">{{lastError.message}}</small>\n </div>\n </div>\n <div class=\"row d-none\" *ngIf=\"items\">\n <div class=\"col-12\">\n <p [translate]=\"'StudyPrograms.AddCoursesHelp'\" [translateParams]=\"items\" ></p>\n </div>\n </div>\n <div class=\"row mt-3\">\n <div class=\"col-12\">\n <ng-container>\n <ul style=\"margin-left: -24px\" class=\"nav nav-tabs mb-1\" id=\"myTab\" role=\"tablist\">\n <li class=\"nav-item\" *ngIf=\"tableConfiguration\">\n <a class=\"nav-link active\" id=\"courses-tab\" data-toggle=\"tab\" href=\"#courses\" role=\"tab\" aria-controls=\"home\" aria-selected=\"true\" [translate]=\"'AddItems.SelectItems'\" ></a>\n </li>\n <li class=\"nav-item\" *ngIf=\"formName\">\n <a class=\"nav-link\" [ngClass]=\"{ 'disabled': !(selectComponent && selectComponent.advancedTable && selectComponent.advancedTable.selected && selectComponent.advancedTable.selected.length) }\" id=\"attributes-tab\" data-toggle=\"tab\" href=\"#attributes\" role=\"tab\" aria-controls=\"profile\" aria-selected=\"false\" [translate]=\"'AddItems.EditAttributes'\"></a>\n </li>\n <li class=\"nav-item\" *ngIf=\"messages && messages.length > 0\">\n <a class=\"nav-link\" id=\"messages-tab\" data-toggle=\"tab\" href=\"#messages\" role=\"tab\" aria-controls=\"profile\" aria-selected=\"false\" [translate]=\"'AddItems.Messages'\"></a>\n </li>\n </ul>\n <div class=\"tab-content border-0\" id=\"myTabContent\">\n <div class=\"tab-pane fade show active\" id=\"courses\" role=\"tabpanel\" aria-labelledby=\"home-tab\">\n <app-advanced-table-modal #selectComponent (filter)=\"onFilterChange($event)\" [tableConfig]=\"tableConfiguration\"></app-advanced-table-modal>\n </div>\n <div class=\"tab-pane fade\" id=\"attributes\" role=\"tabpanel\" aria-labelledby=\"profile-tab\"\n [ngClass]=\"{'invisible':(formName == null)}\">\n<!-- <advanced-form-edit #formComponent [formName]=\"formName\" ></advanced-form-edit>-->\n </div>\n <div class=\"tab-pane fade\" id=\"messages\" role=\"tabpanel\" aria-labelledby=\"profile-tab\"\n [ngClass]=\"{'invisible':(messages == null)}\">\n <ul *ngIf=\"messages && messages.length>0\" class=\"sis--list-group sis--list-group-header\">\n <li class=\"sis--list-group-item\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <div class=\"sis--list-group-item_lg_column\" [translate]=\"'AddItems.Messages'\"></div>\n </div>\n </li>\n </ul>\n <ul class=\"sis--list-group sis--list-group-body\">\n <li *ngFor=\"let message of messages\" class=\"sis--list-group-item\">\n <div class=\"d-flex justify-content-center align-items-center list-color\">\n <div class=\"sis--list-group-item_lg_column\">{{ message?.message }}</div>\n </div>\n </li>\n </ul>\n <div *ngIf=\"messages && messages.length>0\">\n <button [disabled]=\"loading\" (click)=\"clearMessages()\" type=\"button\" class=\"btn btn-indigo mt-3\">\n {{'Clear' | translate}}\n </button>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"modal-footer justify-content-end\">\n <button [disabled]=\"okButtonDisabled || loading || !(selectComponent && selectComponent.advancedTable && selectComponent.advancedTable.selected && selectComponent.advancedTable.selected.length) \" (click)=\"ok()\"\n type=\"button\" [ngClass]=\"okButtonClass\">\n {{'OK' | translate}}\n </button>\n <button [disabled]=\"cancelButtonDisabled || loading\"\n (click)=\"cancel()\" type=\"button\" [ngClass]=\"cancelButtonClass\" data-dismiss=\"modal\">\n {{'Cancel' | translate}}\n </button>\n </div>\n</div>\n"
|
|
125
186
|
}] }
|
|
126
187
|
];
|
|
127
188
|
/** @nocollapse */
|
|
128
189
|
AddItemsComponent.ctorParameters = function () { return [
|
|
129
190
|
{ type: Router },
|
|
130
191
|
{ type: ActivatedRoute },
|
|
131
|
-
{ type: ErrorService },
|
|
132
192
|
{ type: ModalService },
|
|
133
|
-
{ type:
|
|
134
|
-
{ type: ToastService },
|
|
135
|
-
{ type: LoadingService },
|
|
136
|
-
{ type: TranslateService },
|
|
137
|
-
{ type: AngularDataContext }
|
|
193
|
+
{ type: LoadingService }
|
|
138
194
|
]; };
|
|
139
195
|
AddItemsComponent.propDecorators = {
|
|
140
196
|
execute: [{ type: Input }],
|
|
@@ -149,5 +205,39 @@ var AddItemsComponent = /** @class */ (function (_super) {
|
|
|
149
205
|
return AddItemsComponent;
|
|
150
206
|
}(RouterModalOkCancel));
|
|
151
207
|
export { AddItemsComponent };
|
|
208
|
+
if (false) {
|
|
209
|
+
/** @type {?} */
|
|
210
|
+
AddItemsComponent.prototype.loading;
|
|
211
|
+
/** @type {?} */
|
|
212
|
+
AddItemsComponent.prototype.lastError;
|
|
213
|
+
/** @type {?} */
|
|
214
|
+
AddItemsComponent.prototype.execute;
|
|
215
|
+
/** @type {?} */
|
|
216
|
+
AddItemsComponent.prototype.items;
|
|
217
|
+
/** @type {?} */
|
|
218
|
+
AddItemsComponent.prototype.target;
|
|
219
|
+
/** @type {?} */
|
|
220
|
+
AddItemsComponent.prototype.tableConfiguration;
|
|
221
|
+
/** @type {?} */
|
|
222
|
+
AddItemsComponent.prototype.formName;
|
|
223
|
+
/** @type {?} */
|
|
224
|
+
AddItemsComponent.prototype.messages;
|
|
225
|
+
/** @type {?} */
|
|
226
|
+
AddItemsComponent.prototype.formComponent;
|
|
227
|
+
/** @type {?} */
|
|
228
|
+
AddItemsComponent.prototype.selectComponent;
|
|
229
|
+
/** @type {?} */
|
|
230
|
+
AddItemsComponent.prototype.formLoadSubscription;
|
|
231
|
+
/** @type {?} */
|
|
232
|
+
AddItemsComponent.prototype.formChangeSubscription;
|
|
233
|
+
/** @type {?} */
|
|
234
|
+
AddItemsComponent.prototype.selectedSubscription;
|
|
235
|
+
/** @type {?} */
|
|
236
|
+
AddItemsComponent.prototype.executeSubscription;
|
|
237
|
+
/** @type {?} */
|
|
238
|
+
AddItemsComponent.prototype._modalService;
|
|
239
|
+
/** @type {?} */
|
|
240
|
+
AddItemsComponent.prototype._loadingService;
|
|
241
|
+
}
|
|
152
242
|
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FkZC1pdGVtcy9hZGQtaXRlbXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFVBQVUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUM1RyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRTVHO0lBSXVDLDZDQUFtQjtJQWlCeEQsMkJBQVksTUFBYyxFQUNkLGNBQThCLEVBQ3RCLGFBQTJCLEVBQzNCLGFBQTJCLEVBQzNCLFNBQTBCLEVBQzFCLGFBQTJCLEVBQzNCLGVBQStCLEVBQy9CLGlCQUFtQyxFQUNuQyxRQUE0QjtRQVJoRCxZQVNFLGtCQUFNLE1BQU0sRUFBRSxjQUFjLENBQUMsU0FJOUI7UUFYbUIsbUJBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsbUJBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsZUFBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIs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RUQsMENBQWMsR0FBZCxVQUFlLEtBQXVDLElBQUcsQ0FBQzs7Z0JBbEkzRCxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLCt0SkFBeUM7aUJBQzFDOzs7O2dCQVh1QixNQUFNO2dCQUF0QixjQUFjO2dCQU1HLFlBQVk7Z0JBQWtCLFlBQVk7Z0JBQTNELGVBQWU7Z0JBQThDLFlBQVk7Z0JBQTFDLGNBQWM7Z0JBSjdDLGdCQUFnQjtnQkFDaEIsa0JBQWtCOzs7MEJBYXZCLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLO3FDQUVMLEtBQUs7MkJBQ0wsS0FBSzsyQkFDTCxLQUFLO2dDQUNMLFNBQVMsU0FBQyxlQUFlO2tDQUN6QixTQUFTLFNBQUMsaUJBQWlCOztJQW1IOUIsd0JBQUM7Q0FBQSxBQW5JRCxDQUl1QyxtQkFBbUIsR0ErSHpEO1NBL0hZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck1vZGFsT2tDYW5jZWx9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uL3JvdXRpbmcnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QW5ndWxhckRhdGFDb250ZXh0fSBmcm9tICdAdGhlbW9zdC9hbmd1bGFyJztcbmltcG9ydCB7QWR2YW5jZWRUYWJsZU1vZGFsQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vYWR2YW5jZWQtdGFibGUtbW9kYWwvYWR2YW5jZWQtdGFibGUtbW9kYWwtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHtBZHZhbmNlZEZvcm1Db21wb25lbnR9IGZyb20gJ0B1bml2ZXJzaXMvZm9ybXMnO1xuaW1wb3J0IHtBcHBFdmVudFNlcnZpY2UsIEVycm9yU2VydmljZSwgTG9hZGluZ1NlcnZpY2UsIE1vZGFsU2VydmljZSwgVG9hc3RTZXJ2aWNlfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hZGQtaXRlbXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLWl0ZW1zLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZGRJdGVtc0NvbXBvbmVudCBleHRlbmRzIFJvdXRlck1vZGFsT2tDYW5jZWwgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIGxhc3RFcnJvcjtcbiAgQElucHV0KCkgZXhlY3V0ZTogT2JzZXJ2YWJsZTxhbnk+O1xuICBASW5wdXQoKSBpdGVtczogQXJyYXk8YW55PiA9IFtdO1xuICBASW5wdXQoKSB0YXJnZXQ6IGFueTtcbiAgLy8gQElucHV0KCkgc2VsZWN0ZWQ6IGFueTtcbiAgQElucHV0KCkgdGFibGVDb25maWd1cmF0aW9uOiBhbnk7XG4gIEBJbnB1dCgpIGZvcm1OYW1lOiBhbnk7XG4gIEBJbnB1dCgpIG1lc3NhZ2VzOiBBcnJheTxhbnk+ID0gW107XG4gIEBWaWV3Q2hpbGQoJ2Zvcm1Db21wb25lbnQnKSBmb3JtQ29tcG9uZW50OiBBZHZhbmNlZEZvcm1Db21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdENvbXBvbmVudCcpIHNlbGVjdENvbXBvbmVudDogQWR2YW5jZWRUYWJsZU1vZGFsQmFzZUNvbXBvbmVudDtcbiAgcHJpdmF0ZSBmb3JtTG9hZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGZvcm1DaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzZWxlY3RlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2Vycm9yU2VydmljZTogRXJyb3JTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9tb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfYXBwRXZlbnQ6IEFwcEV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2xvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfY29udGV4dDogQW5ndWxhckRhdGFDb250ZXh0KSB7XG4gICAgc3VwZXIocm91dGVyLCBhY3RpdmF0ZWRSb3V0ZSk7XG4gICAgLy8gc2V0IG1vZGFsIHNpemVcbiAgICB0aGlzLm1vZGFsQ2xhc3MgPSAnbW9kYWwtbGcnO1xuICAgIHRoaXMub2tCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uID0gdGhpcy5zZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZS5zZWxlY3RlZEl0ZW1zLnN1YnNjcmliZSgoaXRlbXMpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm1OYW1lID09IG51bGwpIHtcbiAgICAgICAgdGhpcy5va0J1dHRvbkRpc2FibGVkID0gaXRlbXMubGVuZ3RoID09PSAwO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZm9ybU5hbWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5mb3JtQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtQ29tcG9uZW50LmZvcm0uY2hhbmdlLnN1YnNjcmliZSgoZXZlbnQ6YW55KSA9PiB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXZlbnQsICdpc1ZhbGlkJykpIHtcbiAgICAgICAgICAvLyBlbmFibGUgb3IgZGlzYWJsZSBidXR0b24gYmFzZWQgb24gZm9ybSBzdGF0dXNcbiAgICAgICAgICB0aGlzLm9rQnV0dG9uRGlzYWJsZWQgPSAoIWV2ZW50LmlzVmFsaWQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50YXJnZXQpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMudGFyZ2V0O1xuICAgIH1cbiAgfVxuXG4gIGNhbmNlbCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHRoaXMuY2xlYXJNZXNzYWdlcygpO1xuICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gY2xvc2VcbiAgICBpZiAodGhpcy5fbW9kYWxTZXJ2aWNlLm1vZGFsUmVmKSB7XG4gICAgICByZXR1cm4gIHRoaXMuX21vZGFsU2VydmljZS5tb2RhbFJlZi5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybUxvYWRTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZm9ybUxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZm9ybUNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5mb3JtQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgICAvLyBnZXQgZm9ybSBkYXRhXG4gIHByaXZhdGUgZXhlY3V0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHB1YmxpYyBnZXQgZm9ybURhdGEoKTogYW55IHtcbiAgICAgIGlmICh0aGlzLmZvcm1Db21wb25lbnQgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5mb3JtQ29tcG9uZW50LmZvcm0uZm9ybWlvLmRhdGE7XG4gICAgfVxuXG4gICAgb2soKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuY2xlYXJNZXNzYWdlcygpO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sYXN0RXJyb3IgPSBudWxsO1xuICAgICAgICAvLyBzZXQgY291cnNlc1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5zZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZS5zZWxlY3RlZFxuICAgICAgICAvLyBleGVjdXRlIGFkZFxuICAgICAgICAgdGhpcy5leGVjdXRlU3Vic2NyaXB0aW9uID0gdGhpcy5leGVjdXRlLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICBpZih0aGlzLmV4ZWN1dGVTdWJzY3JpcHRpb24pe1xuICAgICAgICAgICB0aGlzLmV4ZWN1dGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgIH1cbiAgICAgICAgICAvLyBjbG9zZSBtb2RhbFxuICAgICAgICAgIGlmICh0aGlzLl9tb2RhbFNlcnZpY2UubW9kYWxSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGFsU2VydmljZS5tb2RhbFJlZi5oaWRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICAgICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgLy8gZW5zdXJlIHRoYXQgbG9hZGluZyBpcyBoaWRkZW5cbiAgICAgICAgICB0aGlzLl9sb2FkaW5nU2VydmljZS5oaWRlTG9hZGluZygpO1xuICAgICAgICAgIC8vIHNldCBsYXN0IGVycm9yXG4gICAgICAgICAgdGhpcy5sYXN0RXJyb3IgPSBlcnI7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUobnVsbCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2xvYWRpbmdTZXJ2aWNlLmhpZGVMb2FkaW5nKCk7XG4gICAgICB0aGlzLmxhc3RFcnJvciA9IGVycjtcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZSgkZXZlbnQ6IGFueSkge31cblxuICBjbGVhck1lc3NhZ2VzKCkge1xuICAgIHRoaXMubWVzc2FnZXMgPSBbXTtcbiAgfVxuXG4gIG9uRmlsdGVyQ2hhbmdlKGV2ZW50OiAgeyBuYW1lOiBzdHJpbmcsIGVtaXQ6IGJvb2xlYW4gfSkge31cbn1cbiJdfQ==
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FkZC1pdGVtcy9hZGQtaXRlbXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxVQUFVLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFDNUcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7SUFPeEIsNkNBQW1CO0lBaUJ4RCwyQkFBWSxNQUFjLEVBQ2QsY0FBOEIsRUFDdEIsZUFDQTtRQUhwQixZQUlFLGtCQUFNLE1BQU0sRUFBRSxjQUFjLENBQUMsU0FJOUI7UUFObUIsbUJBQWEsR0FBYixhQUFhO1FBQ2IscUJBQWUsR0FBZixlQUFlO3dCQWxCbEIsS0FBSztzQkFHTyxFQUFFO3lCQUtDLEVBQUU7O1FBYWhDLEFBREEsaUJBQWlCO1FBQ2pCLEtBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLEtBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7O0tBQzlCOzs7O0lBRUQsb0NBQVE7OztJQUFSO1FBQUEsaUJBb0JDO1FBbkJDLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRTtZQUM5RCxJQUFJ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QUFFLGVBQWU7b0JBQ3pCLHUwSkFBeUM7aUJBQzFDOzs7O2dCQVZ1QixNQUFNO2dCQUF0QixjQUFjO2dCQUlFLFlBQVk7Z0JBQTVCLGNBQWM7OzswQkFXbkIsS0FBSzt3QkFDTCxLQUFLO3lCQUNMLEtBQUs7cUNBRUwsS0FBSzsyQkFDTCxLQUFLOzJCQUNMLEtBQUs7Z0NBQ0wsU0FBUyxTQUFDLGVBQWU7a0NBQ3pCLFNBQVMsU0FBQyxpQkFBaUI7OzRCQXpCOUI7RUFhdUMsbUJBQW1CO1NBQTdDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck1vZGFsT2tDYW5jZWx9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uL3JvdXRpbmcnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBZHZhbmNlZFRhYmxlTW9kYWxCYXNlQ29tcG9uZW50fSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS1tb2RhbC9hZHZhbmNlZC10YWJsZS1tb2RhbC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQge0FkdmFuY2VkRm9ybUNvbXBvbmVudH0gZnJvbSAnQHVuaXZlcnNpcy9mb3Jtcyc7XG5pbXBvcnQge0xvYWRpbmdTZXJ2aWNlLCBNb2RhbFNlcnZpY2V9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLWl0ZW1zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1pdGVtcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWRkSXRlbXNDb21wb25lbnQgZXh0ZW5kcyBSb3V0ZXJNb2RhbE9rQ2FuY2VsIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG4gIHB1YmxpYyBsYXN0RXJyb3I7XG4gIEBJbnB1dCgpIGV4ZWN1dGU/OiBPYnNlcnZhYmxlPGFueT47XG4gIEBJbnB1dCgpIGl0ZW1zOiBBcnJheTxhbnk+ID0gW107XG4gIEBJbnB1dCgpIHRhcmdldDogYW55O1xuICAvLyBASW5wdXQoKSBzZWxlY3RlZDogYW55O1xuICBASW5wdXQoKSB0YWJsZUNvbmZpZ3VyYXRpb246IGFueTtcbiAgQElucHV0KCkgZm9ybU5hbWU6IGFueTtcbiAgQElucHV0KCkgbWVzc2FnZXM6IEFycmF5PGFueT4gPSBbXTtcbiAgQFZpZXdDaGlsZCgnZm9ybUNvbXBvbmVudCcpIGZvcm1Db21wb25lbnQ/OiBBZHZhbmNlZEZvcm1Db21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdENvbXBvbmVudCcpIHNlbGVjdENvbXBvbmVudD86IEFkdmFuY2VkVGFibGVNb2RhbEJhc2VDb21wb25lbnQ7XG4gIHByaXZhdGUgZm9ybUxvYWRTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZm9ybUNoYW5nZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzZWxlY3RlZFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihyb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9tb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlKSB7XG4gICAgc3VwZXIocm91dGVyLCBhY3RpdmF0ZWRSb3V0ZSk7XG4gICAgLy8gc2V0IG1vZGFsIHNpemVcbiAgICB0aGlzLm1vZGFsQ2xhc3MgPSAnbW9kYWwtbGcnO1xuICAgIHRoaXMub2tCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RDb21wb25lbnQgJiYgdGhpcy5zZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbiA9IHRoaXMuc2VsZWN0Q29tcG9uZW50LmFkdmFuY2VkVGFibGUuc2VsZWN0ZWRJdGVtcy5zdWJzY3JpYmUoKGl0ZW1zKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1OYW1lID09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLm9rQnV0dG9uRGlzYWJsZWQgPSBpdGVtcy5sZW5ndGggPT09IDA7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb3JtTmFtZSAhPSBudWxsICYmIHRoaXMuZm9ybUNvbXBvbmVudCkge1xuICAgICAgdGhpcy5mb3JtQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtQ29tcG9uZW50LmZvcm0uY2hhbmdlLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV2ZW50LCAnaXNWYWxpZCcpKSB7XG4gICAgICAgICAgLy8gZW5hYmxlIG9yIGRpc2FibGUgYnV0dG9uIGJhc2VkIG9uIGZvcm0gc3RhdHVzXG4gICAgICAgICAgdGhpcy5va0J1dHRvbkRpc2FibGVkID0gKCFldmVudC5pc1ZhbGlkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGFyZ2V0KSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldDtcbiAgICB9XG4gIH1cblxuICBjYW5jZWwoKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0aGlzLmNsZWFyTWVzc2FnZXMoKTtcbiAgICBpZiAodGhpcy5sb2FkaW5nKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIC8vIGNsb3NlXG4gICAgaWYgKHRoaXMuX21vZGFsU2VydmljZS5tb2RhbFJlZikge1xuICAgICAgcmV0dXJuIHRoaXMuX21vZGFsU2VydmljZS5tb2RhbFJlZi5oaWRlKCk7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1Mb2FkU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmZvcm1Mb2FkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcm1DaGFuZ2VTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZm9ybUNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gICAgLy8gZ2V0IGZvcm0gZGF0YVxuICBwcml2YXRlIGV4ZWN1dGVTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljIGdldCBmb3JtRGF0YSgpOiBhbnkge1xuICAgICAgaWYgKHRoaXMuZm9ybUNvbXBvbmVudCA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmZvcm1Db21wb25lbnQgJiYgdGhpcy5mb3JtQ29tcG9uZW50LmZvcm0uZm9ybWlvLmRhdGE7XG4gICAgfVxuXG4gICAgb2soKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuY2xlYXJNZXNzYWdlcygpO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5zZWxlY3RDb21wb25lbnQgPT0gbnVsbCB8fCB0aGlzLnNlbGVjdENvbXBvbmVudC5hZHZhbmNlZFRhYmxlID09IG51bGwgfHwgdGhpcy5leGVjdXRlID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxhc3RFcnJvciA9IG51bGw7XG4gICAgICAgICAgLy8gc2V0IGNvdXJzZXNcbiAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5zZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZS5zZWxlY3RlZDtcbiAgICAgICAgICAvLyBleGVjdXRlIGFkZFxuICAgICAgICAgIHRoaXMuZXhlY3V0ZVN1YnNjcmlwdGlvbiA9IHRoaXMuZXhlY3V0ZS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAodGhpcy5leGVjdXRlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuZXhlY3V0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gY2xvc2UgbW9kYWxcbiAgICAgICAgICAgIGlmICh0aGlzLl9tb2RhbFNlcnZpY2UubW9kYWxSZWYpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm1vZGFsUmVmLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH0sIChlcnIpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gZW5zdXJlIHRoYXQgbG9hZGluZyBpcyBoaWRkZW5cbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdTZXJ2aWNlLmhpZGVMb2FkaW5nKCk7XG4gICAgICAgICAgICAvLyBzZXQgbGFzdCBlcnJvclxuICAgICAgICAgICAgdGhpcy5sYXN0RXJyb3IgPSBlcnI7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5fbG9hZGluZ1NlcnZpY2UuaGlkZUxvYWRpbmcoKTtcbiAgICAgIHRoaXMubGFzdEVycm9yID0gZXJyO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlKCRldmVudDogYW55KSB7fVxuXG4gIGNsZWFyTWVzc2FnZXMoKSB7XG4gICAgdGhpcy5tZXNzYWdlcyA9IFtdO1xuICB9XG5cbiAgb25GaWx0ZXJDaGFuZ2UoZXZlbnQ6ICB7IG5hbWU6IHN0cmluZywgZW1pdDogYm9vbGVhbiB9KSB7fVxufVxuIl19
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
1
5
|
import * as tslib_1 from "tslib";
|
|
2
6
|
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
|
|
3
7
|
import { AdvancedAggregatorService } from '../../services/advanced-aggregator/advanced-aggregator.service';
|
|
4
8
|
import { LoadingService } from '@universis/common';
|
|
5
9
|
/**
|
|
6
10
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
11
|
+
*
|
|
12
|
+
* \@classdesc An advanced list with the capability of aggregate data based on configurable filters
|
|
9
13
|
*
|
|
10
14
|
*/
|
|
11
15
|
var AdvancedAggregatorComponent = /** @class */ (function () {
|
|
@@ -17,36 +21,63 @@ var AdvancedAggregatorComponent = /** @class */ (function () {
|
|
|
17
21
|
this.eventHandler = new EventEmitter();
|
|
18
22
|
}
|
|
19
23
|
Object.defineProperty(AdvancedAggregatorComponent.prototype, "config", {
|
|
20
|
-
get:
|
|
21
|
-
|
|
24
|
+
get: /**
|
|
25
|
+
* @return {?}
|
|
26
|
+
*/
|
|
27
|
+
function () {
|
|
28
|
+
return /** @type {?} */ (this._config);
|
|
22
29
|
},
|
|
23
|
-
set:
|
|
30
|
+
set: /**
|
|
31
|
+
* @param {?} value
|
|
32
|
+
* @return {?}
|
|
33
|
+
*/
|
|
34
|
+
function (value) {
|
|
24
35
|
this._config = value;
|
|
25
36
|
},
|
|
26
37
|
enumerable: true,
|
|
27
38
|
configurable: true
|
|
28
39
|
});
|
|
29
40
|
Object.defineProperty(AdvancedAggregatorComponent.prototype, "aggregators", {
|
|
30
|
-
get:
|
|
41
|
+
get: /**
|
|
42
|
+
* @return {?}
|
|
43
|
+
*/
|
|
44
|
+
function () {
|
|
31
45
|
return this._aggregators;
|
|
32
46
|
},
|
|
33
|
-
set:
|
|
47
|
+
set: /**
|
|
48
|
+
* @param {?} value
|
|
49
|
+
* @return {?}
|
|
50
|
+
*/
|
|
51
|
+
function (value) {
|
|
34
52
|
this._aggregators = value;
|
|
35
53
|
},
|
|
36
54
|
enumerable: true,
|
|
37
55
|
configurable: true
|
|
38
56
|
});
|
|
39
57
|
Object.defineProperty(AdvancedAggregatorComponent.prototype, "postProcessors", {
|
|
40
|
-
get:
|
|
58
|
+
get: /**
|
|
59
|
+
* @return {?}
|
|
60
|
+
*/
|
|
61
|
+
function () {
|
|
41
62
|
return this._postProcessors;
|
|
42
63
|
},
|
|
43
|
-
set:
|
|
64
|
+
set: /**
|
|
65
|
+
* @param {?} value
|
|
66
|
+
* @return {?}
|
|
67
|
+
*/
|
|
68
|
+
function (value) {
|
|
44
69
|
this._postProcessors = value;
|
|
45
70
|
},
|
|
46
71
|
enumerable: true,
|
|
47
72
|
configurable: true
|
|
48
73
|
});
|
|
49
|
-
|
|
74
|
+
/**
|
|
75
|
+
* @return {?}
|
|
76
|
+
*/
|
|
77
|
+
AdvancedAggregatorComponent.prototype.ngOnInit = /**
|
|
78
|
+
* @return {?}
|
|
79
|
+
*/
|
|
80
|
+
function () {
|
|
50
81
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
51
82
|
var _this = this;
|
|
52
83
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -76,7 +107,13 @@ var AdvancedAggregatorComponent = /** @class */ (function () {
|
|
|
76
107
|
});
|
|
77
108
|
});
|
|
78
109
|
};
|
|
79
|
-
|
|
110
|
+
/**
|
|
111
|
+
* @return {?}
|
|
112
|
+
*/
|
|
113
|
+
AdvancedAggregatorComponent.prototype.ngOnDestroy = /**
|
|
114
|
+
* @return {?}
|
|
115
|
+
*/
|
|
116
|
+
function () {
|
|
80
117
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
81
118
|
return tslib_1.__generator(this, function (_a) {
|
|
82
119
|
this.selectedGroups$.unsubscribe();
|
|
@@ -90,7 +127,21 @@ var AdvancedAggregatorComponent = /** @class */ (function () {
|
|
|
90
127
|
* Retrieves the data
|
|
91
128
|
*
|
|
92
129
|
*/
|
|
93
|
-
|
|
130
|
+
/**
|
|
131
|
+
*
|
|
132
|
+
* Retrieves the data
|
|
133
|
+
*
|
|
134
|
+
* @param {?} filters
|
|
135
|
+
* @return {?}
|
|
136
|
+
*/
|
|
137
|
+
AdvancedAggregatorComponent.prototype.fetch = /**
|
|
138
|
+
*
|
|
139
|
+
* Retrieves the data
|
|
140
|
+
*
|
|
141
|
+
* @param {?} filters
|
|
142
|
+
* @return {?}
|
|
143
|
+
*/
|
|
144
|
+
function (filters) {
|
|
94
145
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
95
146
|
var data, i, err_2;
|
|
96
147
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -133,14 +184,31 @@ var AdvancedAggregatorComponent = /** @class */ (function () {
|
|
|
133
184
|
*
|
|
134
185
|
* Triggers the event handler event
|
|
135
186
|
*
|
|
136
|
-
* @param
|
|
187
|
+
* @param event The event data
|
|
188
|
+
*
|
|
189
|
+
*/
|
|
190
|
+
/**
|
|
191
|
+
*
|
|
192
|
+
* Triggers the event handler event
|
|
193
|
+
*
|
|
194
|
+
* @param {?} event The event data
|
|
195
|
+
*
|
|
196
|
+
* @return {?}
|
|
197
|
+
*/
|
|
198
|
+
AdvancedAggregatorComponent.prototype.onActionEvent = /**
|
|
199
|
+
*
|
|
200
|
+
* Triggers the event handler event
|
|
201
|
+
*
|
|
202
|
+
* @param {?} event The event data
|
|
137
203
|
*
|
|
204
|
+
* @return {?}
|
|
138
205
|
*/
|
|
139
|
-
|
|
206
|
+
function (event) {
|
|
140
207
|
this.eventHandler.emit(event);
|
|
141
208
|
};
|
|
142
209
|
AdvancedAggregatorComponent.decorators = [
|
|
143
210
|
{ type: Component, args: [{
|
|
211
|
+
// tslint:disable-next-line:component-selector
|
|
144
212
|
selector: 'app-advanced-aggregator',
|
|
145
213
|
template: "<ng-container *ngIf=\"config && body\">\n <div class=\"w-100 text-center\" *ngIf=\"body && body.length === 0\">\n <div>\n <div class=\"mt-4\">\n <div class=\"icon-circle bg-gray-300 border-gray-100\"></div>\n </div>\n <div class=\"mt-4\">\n <h4 class=\"font-3xl text-dark\" [translate]=\"'Tables.EmptyTableTitle'\"></h4>\n <p class=\"font-lg text-dark\" [translate]=\"'Tables.EmptyTableMessage'\"></p>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"groups.length === 0\">\n <div class=\"row mt-4\">\n <app-advanced-aggregator-list [body]=\"body\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\" class=\"col-12\">\n </app-advanced-aggregator-list>\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ body | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"groups.length === 1\">\n <ng-container *ngFor=\"let group of body | groupBy: groups[0].name | keyvalue\">\n <div class=\"row mt-4\">\n <h4 class=\"col text-secondary\"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <app-advanced-aggregator-list [body]=\"group.value\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\"\n class=\"col-12\">\n </app-advanced-aggregator-list>\n </div>\n\n <!-- Footer for the group -->\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ group.value | callAggregator: aggregators: aggregator.name }} </span>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"groups.length > 1\">\n <ng-container *ngFor=\"let group of body | groupBy: groups[0].name | keyvalue\">\n <div class=\"row mt-4\">\n <h4 class=\"col text-secondary\"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <div *ngFor=\"let subgroup of group.value | groupBy: groups[1].name | keyvalue\" class=\"col-12 ml-4 pl-4\">\n <div class=\"row mt-4\">\n <h6 class=\"col-12 text-secondary\"> {{ groups[1].title | aggregatorListTitle: subgroup.key }} </h6>\n <app-advanced-aggregator-list [body]=\"subgroup.value\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\"\n class=\"col-12\">\n </app-advanced-aggregator-list>\n </div>\n\n <!-- Footer for each subgroup -->\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ subgroup.value | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>",
|
|
146
214
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
@@ -165,5 +233,33 @@ var AdvancedAggregatorComponent = /** @class */ (function () {
|
|
|
165
233
|
return AdvancedAggregatorComponent;
|
|
166
234
|
}());
|
|
167
235
|
export { AdvancedAggregatorComponent };
|
|
236
|
+
if (false) {
|
|
237
|
+
/** @type {?} */
|
|
238
|
+
AdvancedAggregatorComponent.prototype._config;
|
|
239
|
+
/** @type {?} */
|
|
240
|
+
AdvancedAggregatorComponent.prototype._aggregators;
|
|
241
|
+
/** @type {?} */
|
|
242
|
+
AdvancedAggregatorComponent.prototype._postProcessors;
|
|
243
|
+
/** @type {?} */
|
|
244
|
+
AdvancedAggregatorComponent.prototype.body;
|
|
245
|
+
/** @type {?} */
|
|
246
|
+
AdvancedAggregatorComponent.prototype.groups;
|
|
247
|
+
/** @type {?} */
|
|
248
|
+
AdvancedAggregatorComponent.prototype.params;
|
|
249
|
+
/** @type {?} */
|
|
250
|
+
AdvancedAggregatorComponent.prototype.selectedGroups$;
|
|
251
|
+
/** @type {?} */
|
|
252
|
+
AdvancedAggregatorComponent.prototype.filters$;
|
|
253
|
+
/** @type {?} */
|
|
254
|
+
AdvancedAggregatorComponent.prototype.searchExpression;
|
|
255
|
+
/** @type {?} */
|
|
256
|
+
AdvancedAggregatorComponent.prototype.eventHandler;
|
|
257
|
+
/** @type {?} */
|
|
258
|
+
AdvancedAggregatorComponent.prototype._changeDetector;
|
|
259
|
+
/** @type {?} */
|
|
260
|
+
AdvancedAggregatorComponent.prototype._advancedAggregatorService;
|
|
261
|
+
/** @type {?} */
|
|
262
|
+
AdvancedAggregatorComponent.prototype._loadingService;
|
|
263
|
+
}
|
|
168
264
|
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtYWdncmVnYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC1hZ2dyZWdhdG9yL2FkdmFuY2VkLWFnZ3JlZ2F0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBYSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUUzRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7O0lBZ0RqRCxxQ0FDVSxpQkFDQSw0QkFDQTtRQUZBLG9CQUFlLEdBQWYsZUFBZTtRQUNmLCtCQUEwQixHQUExQiwwQkFBMEI7UUFDMUIsb0JBQWUsR0FBZixlQUFlO3NCQTdCRixFQUFFOzRCQXdCQSxJQUFJLFlBQVksRUFBRTtLQU10QztJQTVCTCxzQkFDVywrQ0FBTTs7Ozs7WUE4QmYseUJBQU8sSUFBSSxDQUFDLE9BQW1DLEVBQUM7Ozs7OztRQS9CbEQsVUFDa0IsS0FBK0I7WUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7U0FDdEI7OztPQUFBO0lBRUQsc0JBQ1csb0RBQVc7Ozs7O1lBNkJwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7Ozs7OztRQTlCM0IsVUFDdUIsS0FBSztZQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjs7O09BQUE7SUFFRCxzQkFDVyx1REFBYzs7Ozs7WUE0QnZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQzs7Ozs7O1FBN0I5QixVQUMwQixLQUFLO1lBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1NBQzlCOzs7T0FBQTs7OztJQTZCSyw4Q0FBUTs7O0lBQWQ7Ozs7Z0JBQ0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsVUFBQyxJQUFJO29CQUNsQyxLQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDbkIsS0FBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztpQkFDckMsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQU8sT0FBa0M7Ozs7OztnQ0FFN0QscUJBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBQTs7Z0NBQXpCLFNBQXlCLENBQUM7Ozs7Z0NBRTFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBRyxDQUFDLENBQUM7Ozs7O3FCQUV0QixDQUFDLENBQUM7Ozs7S0FDSjs7OztJQUVLLGlEQUFXOzs7SUFBakI7OztnQkFDRSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDOzs7O0tBQzdCO0lBRUQ7Ozs7T0FJRzs7Ozs7Ozs7SUFDRywyQ0FBSzs7Ozs7OztJQUFYLFVBQVksT0FBa0M7Ozs7Ozs7d0JBRTFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ3hCLHFCQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQzFFLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ2pCLE9BQU8sQ0FBQyxPQUFPLEVBQ2YsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixPQUFPLENBQUMsSUFBSSxDQUNiLEVBQUE7O3dCQU5HLElBQUksR0FBRyxTQU1WOzZCQUdHLENBQUEsSUFBSSxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUEsRUFBekksd0JBQXlJO3dCQUNsSSxDQUFDLEdBQUcsQ0FBQzs7OzZCQUFFLENBQUEsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQTt3QkFDNUMscUJBQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQTs7d0JBQTFFLElBQUksR0FBRyxTQUFtRSxDQUFDOzs7d0JBRHRCLENBQUMsRUFBRSxDQUFBOzs7d0JBSzVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUMxRSxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDOzs7O3dCQUVwQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUcsQ0FBQyxDQUFDOzs7d0JBRW5CLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7Ozs7OztLQUV0QztJQUVEOzs7Ozs7T0FNRzs7Ozs7Ozs7O0lBQ0gsbURBQWE7Ozs7Ozs7O0lBQWIsVUFBYyxLQUFLO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQy9COztnQkF0SEYsU0FBUyxTQUFDOztvQkFFVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQywybEhBQW1EO29CQUNuRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7Ozs7Z0JBakI0RixpQkFBaUI7Z0JBQ3JHLHlCQUF5QjtnQkFFekIsY0FBYzs7O3lCQXdCcEIsS0FBSyxTQUFDLFFBQVE7OEJBS2QsS0FBSyxTQUFDLGFBQWE7aUNBS25CLEtBQUssU0FBQyxnQkFBZ0I7eUJBS3RCLEtBQUssU0FBQyxRQUFRO2tDQUVkLEtBQUssU0FBQyxnQkFBZ0I7MkJBRXRCLEtBQUssU0FBQyxTQUFTO21DQUNmLEtBQUssU0FBQyxrQkFBa0I7K0JBRXhCLE1BQU07O3NDQWpEVDs7U0FrQmEsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFkdmFuY2VkQWdncmVnYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hZHZhbmNlZC1hZ2dyZWdhdG9yL2FkdmFuY2VkLWFnZ3JlZ2F0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBBZHZhbmNlZEFnZ3JlZ2F0b3JDb25maWcsIEFkdmFuY2VkQWdncmVnYXRvckZpbHRlcnMgfSBmcm9tICcuLi8uLi9hZHZhbmNlZC1hZ2dyZWdhdG9yJztcbmltcG9ydCB7IExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuXG4vKipcbiAqXG4gKiBcbiAqICBAY2xhc3NkZXNjIEFuIGFkdmFuY2VkIGxpc3Qgd2l0aCB0aGUgY2FwYWJpbGl0eSBvZiBhZ2dyZWdhdGUgZGF0YSBiYXNlZCBvbiBjb25maWd1cmFibGUgZmlsdGVyc1xuICpcbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2FwcC1hZHZhbmNlZC1hZ2dyZWdhdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkdmFuY2VkLWFnZ3JlZ2F0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRBZ2dyZWdhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX2NvbmZpZz86IEFkdmFuY2VkQWdncmVnYXRvckNvbmZpZztcbiAgcHJpdmF0ZSBfYWdncmVnYXRvcnM7XG4gIHByaXZhdGUgX3Bvc3RQcm9jZXNzb3JzO1xuXG4gIHB1YmxpYyBib2R5O1xuICBwdWJsaWMgZ3JvdXBzOiBhbnlbXSA9IFtdO1xuXG4gIEBJbnB1dCgnY29uZmlnJylcbiAgcHVibGljIHNldCBjb25maWcodmFsdWU6IEFkdmFuY2VkQWdncmVnYXRvckNvbmZpZykge1xuICAgIHRoaXMuX2NvbmZpZyA9IHZhbHVlO1xuICB9XG5cbiAgQElucHV0KCdhZ2dyZWdhdG9ycycpXG4gIHB1YmxpYyBzZXQgYWdncmVnYXRvcnModmFsdWUpIHtcbiAgICB0aGlzLl9hZ2dyZWdhdG9ycyA9IHZhbHVlO1xuICB9XG5cbiAgQElucHV0KCdwb3N0UHJvY2Vzc29ycycpXG4gIHB1YmxpYyBzZXQgcG9zdFByb2Nlc3NvcnModmFsdWUpIHtcbiAgICB0aGlzLl9wb3N0UHJvY2Vzc29ycyA9IHZhbHVlO1xuICB9XG5cbiAgQElucHV0KCdwYXJhbXMnKSBwYXJhbXM7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdzZWxlY3RlZEdyb3VwcycpIHNlbGVjdGVkR3JvdXBzJDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2ZpbHRlcnMnKSBmaWx0ZXJzJDtcbiAgQElucHV0KCdzZWFyY2hFeHByZXNzaW9uJykgc2VhcmNoRXhwcmVzc2lvbj86IHN0cmluZztcblxuICBAT3V0cHV0KCkgZXZlbnRIYW5kbGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9hZHZhbmNlZEFnZ3JlZ2F0b3JTZXJ2aWNlOiBBZHZhbmNlZEFnZ3JlZ2F0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2xvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZVxuICApIHsgfVxuXG4gIHB1YmxpYyBnZXQgY29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25maWcgYXMgQWR2YW5jZWRBZ2dyZWdhdG9yQ29uZmlnO1xuICB9XG5cbiAgcHVibGljIGdldCBhZ2dyZWdhdG9ycygpIHtcbiAgICByZXR1cm4gdGhpcy5fYWdncmVnYXRvcnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBvc3RQcm9jZXNzb3JzKCkge1xuICAgIHJldHVybiB0aGlzLl9wb3N0UHJvY2Vzc29ycztcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5ncm91cHMgPSBkYXRhO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZpbHRlcnMkLnN1YnNjcmliZShhc3luYyAoZmlsdGVyczogQWR2YW5jZWRBZ2dyZWdhdG9yRmlsdGVycykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5mZXRjaChmaWx0ZXJzKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBzJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZmlsdGVycyQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGRhdGFcbiAgICpcbiAgICovXG4gIGFzeW5jIGZldGNoKGZpbHRlcnM6IEFkdmFuY2VkQWdncmVnYXRvckZpbHRlcnMpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5fbG9hZGluZ1NlcnZpY2Uuc2hvd0xvYWRpbmcoKTtcbiAgICAgIGxldCBkYXRhID0gYXdhaXQgdGhpcy5fYWR2YW5jZWRBZ2dyZWdhdG9yU2VydmljZS5mZXRjaERhdGEodGhpcy5jb25maWcubW9kZWwsXG4gICAgICAgIHRoaXMucGFyYW1zLFxuICAgICAgICB0aGlzLmNvbmZpZy5xdWVyeSxcbiAgICAgICAgZmlsdGVycy5maWx0ZXJzLFxuICAgICAgICB0aGlzLnNlYXJjaEV4cHJlc3Npb24sXG4gICAgICAgIGZpbHRlcnMudGV4dFxuICAgICAgKTtcblxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgaWYgKHRoaXMucG9zdFByb2Nlc3NvcnMgJiYgT2JqZWN0LmtleXModGhpcy5wb3N0UHJvY2Vzc29ycykubGVuZ3RoID4gMCAmJiB0aGlzLmNvbmZpZy5wb3N0UHJvY2Vzc29ycyAmJiB0aGlzLmNvbmZpZy5wb3N0UHJvY2Vzc29ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb25maWcucG9zdFByb2Nlc3NvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBkYXRhID0gYXdhaXQgdGhpcy5wb3N0UHJvY2Vzc29yc1t0aGlzLmNvbmZpZy5wb3N0UHJvY2Vzc29yc1tpXS5uYW1lXShkYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLmJvZHkgPSB0aGlzLl9hZHZhbmNlZEFnZ3JlZ2F0b3JTZXJ2aWNlLmZvcm1hdERhdGEodGhpcy5jb25maWcsIGRhdGEpO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX2xvYWRpbmdTZXJ2aWNlLmhpZGVMb2FkaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRyaWdnZXJzIHRoZSBldmVudCBoYW5kbGVyIGV2ZW50XG4gICAqXG4gICAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgZGF0YVxuICAgKlxuICAgKi9cbiAgb25BY3Rpb25FdmVudChldmVudCkge1xuICAgIHRoaXMuZXZlbnRIYW5kbGVyLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iXX0=
|