@progressio_resources/gravity-design-system 3.1.8 → 3.2.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.
@@ -91,10 +91,11 @@ export var ICONS;
91
91
  ICONS[ICONS["unsuccess"] = 54] = "unsuccess";
92
92
  ICONS[ICONS["update"] = 55] = "update";
93
93
  ICONS[ICONS["user"] = 56] = "user";
94
- ICONS[ICONS["warning-circle"] = 57] = "warning-circle";
95
- ICONS[ICONS["hero-avatar-admin"] = 58] = "hero-avatar-admin";
96
- ICONS[ICONS["hero-avatar-regular"] = 59] = "hero-avatar-regular";
97
- ICONS[ICONS["hero-avatar-support"] = 60] = "hero-avatar-support";
98
- ICONS[ICONS["hero-avatar-blocked"] = 61] = "hero-avatar-blocked";
94
+ ICONS[ICONS["wallet"] = 57] = "wallet";
95
+ ICONS[ICONS["warning-circle"] = 58] = "warning-circle";
96
+ ICONS[ICONS["hero-avatar-admin"] = 59] = "hero-avatar-admin";
97
+ ICONS[ICONS["hero-avatar-regular"] = 60] = "hero-avatar-regular";
98
+ ICONS[ICONS["hero-avatar-support"] = 61] = "hero-avatar-support";
99
+ ICONS[ICONS["hero-avatar-blocked"] = 62] = "hero-avatar-blocked";
99
100
  })(ICONS || (ICONS = {}));
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1pY29uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1pY29uL2dyYXZpdHktaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktaWNvbi9ncmF2aXR5LWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQU8vQyxNQUFNLE9BQU8sb0JBQW9CO0lBUXhCLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBZ0I7UUFDdEMsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUFDO0lBQzFDLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQWdCO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUN0QyxDQUFDOytHQWRVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHdOQ1BqQywrUEFFQTs7NEZES2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGNBQWM7OEJBS1IsdUJBQXVCO3NCQUF0QyxLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSzs7QUFXUixNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLCtDQUFTLENBQUE7SUFDVCxxREFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUhXLFNBQVMsS0FBVCxTQUFTLFFBR3BCO0FBRUQsTUFBTSxDQUFOLElBQVksS0ErRFg7QUEvREQsV0FBWSxLQUFLO0lBQ2YsNkNBQVksQ0FBQTtJQUNaLCtDQUFhLENBQUE7SUFDYiw2Q0FBWSxDQUFBO0lBQ1osNkNBQVksQ0FBQTtJQUNaLCtDQUFhLENBQUE7SUFDYix5Q0FBVSxDQUFBO0lBQ1YsaUNBQU0sQ0FBQTtJQUNOLHlDQUFVLENBQUE7SUFDVixtQ0FBTyxDQUFBO0lBQ1AsbURBQWUsQ0FBQTtJQUNmLG9DQUFPLENBQUE7SUFDUCxnRUFBcUIsQ0FBQTtJQUNyQiw0REFBbUIsQ0FBQTtJQUNuQixrQ0FBTSxDQUFBO0lBQ04sd0NBQVMsQ0FBQTtJQUNULDBDQUFVLENBQUE7SUFDViw4Q0FBWSxDQUFBO0lBQ1osMENBQVUsQ0FBQTtJQUNWLDREQUFtQixDQUFBO0lBQ25CLDBDQUFVLENBQUE7SUFDViw4Q0FBWSxDQUFBO0lBQ1osa0NBQU0sQ0FBQTtJQUNOLDhEQUFvQixDQUFBO0lBQ3BCLGdFQUFxQixDQUFBO0lBQ3JCLDBDQUFVLENBQUE7SUFDVixrQ0FBTSxDQUFBO0lBQ04sa0NBQU0sQ0FBQTtJQUNOLDBDQUFVLENBQUE7SUFDVix3Q0FBUyxDQUFBO0lBQ1Qsa0RBQWMsQ0FBQTtJQUNkLHdDQUFTLENBQUE7SUFDVCxrQ0FBTSxDQUFBO0lBQ04sZ0NBQUssQ0FBQTtJQUNMLDhCQUFJLENBQUE7SUFDSixzQ0FBUSxDQUFBO0lBQ1Isa0NBQU0sQ0FBQTtJQUNOLHdEQUFpQixDQUFBO0lBQ2pCLG9DQUFPLENBQUE7SUFDUCxvQ0FBTyxDQUFBO0lBQ1Asc0NBQVEsQ0FBQTtJQUNSLDREQUFtQixDQUFBO0lBQ25CLHNDQUFRLENBQUE7SUFDUiwwQ0FBVSxDQUFBO0lBQ1YsMENBQVUsQ0FBQTtJQUNWLDBDQUFVLENBQUE7SUFDVixrQ0FBTSxDQUFBO0lBQ04sc0RBQWdCLENBQUE7SUFDaEIsb0NBQU8sQ0FBQTtJQUNQLDBEQUFrQixDQUFBO0lBQ2xCLDREQUFtQixDQUFBO0lBQ25CLHNDQUFRLENBQUE7SUFDUixrQ0FBTSxDQUFBO0lBQ04sb0NBQU8sQ0FBQTtJQUNQLHNDQUFRLENBQUE7SUFDUiw0Q0FBVyxDQUFBO0lBQ1gsc0NBQVEsQ0FBQTtJQUNSLGtDQUFNLENBQUE7SUFDTixzREFBZ0IsQ0FBQTtJQUNoQiw0REFBbUIsQ0FBQTtJQUNuQixnRUFBcUIsQ0FBQTtJQUNyQixnRUFBcUIsQ0FBQTtJQUNyQixnRUFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBL0RXLEtBQUssS0FBTCxLQUFLLFFBK0RoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYXZpdHktaWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmF2aXR5LWljb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmF2aXR5LWljb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcmF2aXR5SWNvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21JY29uQ29sb3JWYXJpYWJsZTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgaWNvbk5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGljb25TaXplOiAnbGctMjQnIHwgJ21kLTE2JyB8ICdzbS0xMicgfCAneGwtMzInO1xuICBASW5wdXQoKSBwdWJsaWMgaG92ZXJJY29uOiBib29sZWFuO1xuICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnO1xuICBASW5wdXQoKSBwdWJsaWMgaXNDb2luOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzdGF0aWMgaXNPbGRJY29uKGljb25OYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gT0xEX0lDT05TW2ljb25OYW1lXSAhPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzTmV3SWNvbihpY29uTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIElDT05TW2ljb25OYW1lXSAhPSB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGVudW0gT0xEX0lDT05TIHtcbiAgJ3VuY2hlY2snLFxuICAnYXJyb3ctYmFjaydcbn1cblxuZXhwb3J0IGVudW0gSUNPTlMge1xuICAnYWRkLXVwZGF0ZScsXG4gICdhZGRyZXNzYm9vaycsXG4gICdhcnJvdy1kb3duJyxcbiAgJ2Fycm93LWxlZnQnLFxuICAnYXJyb3ctcmlnaHQnLFxuICAnYXJyb3ctdXAnLFxuICAnYmVsbCcsXG4gICdjYWxlbmRhcicsXG4gICdjaGVjaycsXG4gICdjaGVja2JveC1kYXNoJyxcbiAgJ2Nsb2NrJyxcbiAgJ2NoZXZyb24tZG91YmxlLWRvd24nLFxuICAnY2hldnJvbi1kb3VibGUtdXAnLFxuICAnY29weScsXG4gICdkZXBvc2l0JyxcbiAgJ2Rvd25sb2FkJyxcbiAgJ2V5ZS1jbG9zZWQnLFxuICAnZXllLW9wZW4nLFxuICAnZXhjaGFuZ2UtcHJvdmlkZXInLFxuICAnZ3JhcGhpY3MnLFxuICAnaGFwcHktZmFjZScsXG4gICdob21lJyxcbiAgJ2luZm9ybWF0aW9uLWNpcmNsZScsXG4gICdpbnRlcm5hbC1wcm9jZXNzaW5nJyxcbiAgJ2xhbmd1YWdlJyxcbiAgJ21haWwnLFxuICAnbWVudScsXG4gICdtb25leS1pbicsXG4gICdtb25pdG9yJyxcbiAgJ21vcmUtb3B0aW9ucycsXG4gICduZXctdGFiJyxcbiAgJ25ld3MnLFxuICAnb2ZmJyxcbiAgJ29uJyxcbiAgJ3BheW91dCcsXG4gICdwbHVzJyxcbiAgJ3F1ZXN0aW9uLWNpcmNsZScsXG4gICdxdWV1ZScsXG4gICdyYXRlcycsXG4gICdyZXBvcnQnLFxuICAncmlnaHQtYW5nbGUtYXJyb3cnLFxuICAnc2VhcmNoJyxcbiAgJ3NlY3VyaXR5JyxcbiAgJ3NldHRpbmdzJyxcbiAgJ3NpZ24tb3V0JyxcbiAgJ3N0b3AnLFxuICAnc3VjY2Vzcy1jaXJjbGUnLFxuICAnc3dhcHMnLFxuICAnc3dhcHMtYXJyb3ctbGVmdCcsXG4gICdzd2Fwcy1hcnJvdy1yaWdodCcsXG4gICdzd2l0Y2gnLFxuICAndG9vbCcsXG4gICd0cmFzaCcsXG4gICd1bmxvY2snLFxuICAndW5zdWNjZXNzJyxcbiAgJ3VwZGF0ZScsXG4gICd1c2VyJyxcbiAgJ3dhcm5pbmctY2lyY2xlJyxcbiAgJ2hlcm8tYXZhdGFyLWFkbWluJyxcbiAgJ2hlcm8tYXZhdGFyLXJlZ3VsYXInLFxuICAnaGVyby1hdmF0YXItc3VwcG9ydCcsXG4gICdoZXJvLWF2YXRhci1ibG9ja2VkJ1xufVxuIiwiPHN2Zy1pY29uIFtjbGFzcy53aXRoLWhvdmVyXT1cImhvdmVySWNvblwiIGNsYXNzPVwie3tzaXplfX0ge3tpY29uU2l6ZX19XCIgW3N0eWxlLi0taWNvbi1jb2xvcl09XCJjdXN0b21JY29uQ29sb3JWYXJpYWJsZVwiXG4gICAgICAgICAgW25hbWVdPVwiaXNDb2luID8gJ2d0LWljb24tJyArIGljb25OYW1lIDogaWNvblNpemUgPyAnZ3QtaWNvbi0nICsgaWNvbk5hbWUgKyAnLScgKyBpY29uU2l6ZSA6IGljb25OYW1lXCI+PC9zdmctaWNvbj5cbiJdfQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1pY29uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1pY29uL2dyYXZpdHktaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktaWNvbi9ncmF2aXR5LWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQU8vQyxNQUFNLE9BQU8sb0JBQW9CO0lBUXhCLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBZ0I7UUFDdEMsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUFDO0lBQzFDLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQWdCO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUN0QyxDQUFDOytHQWRVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHdOQ1BqQywrUEFFQTs7NEZES2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGNBQWM7OEJBS1IsdUJBQXVCO3NCQUF0QyxLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSzs7QUFXUixNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLCtDQUFTLENBQUE7SUFDVCxxREFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUhXLFNBQVMsS0FBVCxTQUFTLFFBR3BCO0FBRUQsTUFBTSxDQUFOLElBQVksS0FnRVg7QUFoRUQsV0FBWSxLQUFLO0lBQ2YsNkNBQVksQ0FBQTtJQUNaLCtDQUFhLENBQUE7SUFDYiw2Q0FBWSxDQUFBO0lBQ1osNkNBQVksQ0FBQTtJQUNaLCtDQUFhLENBQUE7SUFDYix5Q0FBVSxDQUFBO0lBQ1YsaUNBQU0sQ0FBQTtJQUNOLHlDQUFVLENBQUE7SUFDVixtQ0FBTyxDQUFBO0lBQ1AsbURBQWUsQ0FBQTtJQUNmLG9DQUFPLENBQUE7SUFDUCxnRUFBcUIsQ0FBQTtJQUNyQiw0REFBbUIsQ0FBQTtJQUNuQixrQ0FBTSxDQUFBO0lBQ04sd0NBQVMsQ0FBQTtJQUNULDBDQUFVLENBQUE7SUFDViw4Q0FBWSxDQUFBO0lBQ1osMENBQVUsQ0FBQTtJQUNWLDREQUFtQixDQUFBO0lBQ25CLDBDQUFVLENBQUE7SUFDViw4Q0FBWSxDQUFBO0lBQ1osa0NBQU0sQ0FBQTtJQUNOLDhEQUFvQixDQUFBO0lBQ3BCLGdFQUFxQixDQUFBO0lBQ3JCLDBDQUFVLENBQUE7SUFDVixrQ0FBTSxDQUFBO0lBQ04sa0NBQU0sQ0FBQTtJQUNOLDBDQUFVLENBQUE7SUFDVix3Q0FBUyxDQUFBO0lBQ1Qsa0RBQWMsQ0FBQTtJQUNkLHdDQUFTLENBQUE7SUFDVCxrQ0FBTSxDQUFBO0lBQ04sZ0NBQUssQ0FBQTtJQUNMLDhCQUFJLENBQUE7SUFDSixzQ0FBUSxDQUFBO0lBQ1Isa0NBQU0sQ0FBQTtJQUNOLHdEQUFpQixDQUFBO0lBQ2pCLG9DQUFPLENBQUE7SUFDUCxvQ0FBTyxDQUFBO0lBQ1Asc0NBQVEsQ0FBQTtJQUNSLDREQUFtQixDQUFBO0lBQ25CLHNDQUFRLENBQUE7SUFDUiwwQ0FBVSxDQUFBO0lBQ1YsMENBQVUsQ0FBQTtJQUNWLDBDQUFVLENBQUE7SUFDVixrQ0FBTSxDQUFBO0lBQ04sc0RBQWdCLENBQUE7SUFDaEIsb0NBQU8sQ0FBQTtJQUNQLDBEQUFrQixDQUFBO0lBQ2xCLDREQUFtQixDQUFBO0lBQ25CLHNDQUFRLENBQUE7SUFDUixrQ0FBTSxDQUFBO0lBQ04sb0NBQU8sQ0FBQTtJQUNQLHNDQUFRLENBQUE7SUFDUiw0Q0FBVyxDQUFBO0lBQ1gsc0NBQVEsQ0FBQTtJQUNSLGtDQUFNLENBQUE7SUFDTixzQ0FBUSxDQUFBO0lBQ1Isc0RBQWdCLENBQUE7SUFDaEIsNERBQW1CLENBQUE7SUFDbkIsZ0VBQXFCLENBQUE7SUFDckIsZ0VBQXFCLENBQUE7SUFDckIsZ0VBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQWhFVyxLQUFLLEtBQUwsS0FBSyxRQWdFaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdncmF2aXR5LWljb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3Jhdml0eS1pY29uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3Jhdml0eS1pY29uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR3Jhdml0eUljb25Db21wb25lbnQge1xuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tSWNvbkNvbG9yVmFyaWFibGU6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGljb25OYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uU2l6ZTogJ2xnLTI0JyB8ICdtZC0xNicgfCAnc20tMTInIHwgJ3hsLTMyJztcbiAgQElucHV0KCkgcHVibGljIGhvdmVySWNvbjogYm9vbGVhbjtcbiAgQElucHV0KCkgcHVibGljIHNpemU6ICdzbScgfCAnbWQnIHwgJ2xnJztcbiAgQElucHV0KCkgcHVibGljIGlzQ29pbjogYm9vbGVhbjtcblxuICBwdWJsaWMgc3RhdGljIGlzT2xkSWNvbihpY29uTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE9MRF9JQ09OU1tpY29uTmFtZV0gIT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc05ld0ljb24oaWNvbk5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBJQ09OU1tpY29uTmFtZV0gIT0gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBlbnVtIE9MRF9JQ09OUyB7XG4gICd1bmNoZWNrJyxcbiAgJ2Fycm93LWJhY2snXG59XG5cbmV4cG9ydCBlbnVtIElDT05TIHtcbiAgJ2FkZC11cGRhdGUnLFxuICAnYWRkcmVzc2Jvb2snLFxuICAnYXJyb3ctZG93bicsXG4gICdhcnJvdy1sZWZ0JyxcbiAgJ2Fycm93LXJpZ2h0JyxcbiAgJ2Fycm93LXVwJyxcbiAgJ2JlbGwnLFxuICAnY2FsZW5kYXInLFxuICAnY2hlY2snLFxuICAnY2hlY2tib3gtZGFzaCcsXG4gICdjbG9jaycsXG4gICdjaGV2cm9uLWRvdWJsZS1kb3duJyxcbiAgJ2NoZXZyb24tZG91YmxlLXVwJyxcbiAgJ2NvcHknLFxuICAnZGVwb3NpdCcsXG4gICdkb3dubG9hZCcsXG4gICdleWUtY2xvc2VkJyxcbiAgJ2V5ZS1vcGVuJyxcbiAgJ2V4Y2hhbmdlLXByb3ZpZGVyJyxcbiAgJ2dyYXBoaWNzJyxcbiAgJ2hhcHB5LWZhY2UnLFxuICAnaG9tZScsXG4gICdpbmZvcm1hdGlvbi1jaXJjbGUnLFxuICAnaW50ZXJuYWwtcHJvY2Vzc2luZycsXG4gICdsYW5ndWFnZScsXG4gICdtYWlsJyxcbiAgJ21lbnUnLFxuICAnbW9uZXktaW4nLFxuICAnbW9uaXRvcicsXG4gICdtb3JlLW9wdGlvbnMnLFxuICAnbmV3LXRhYicsXG4gICduZXdzJyxcbiAgJ29mZicsXG4gICdvbicsXG4gICdwYXlvdXQnLFxuICAncGx1cycsXG4gICdxdWVzdGlvbi1jaXJjbGUnLFxuICAncXVldWUnLFxuICAncmF0ZXMnLFxuICAncmVwb3J0JyxcbiAgJ3JpZ2h0LWFuZ2xlLWFycm93JyxcbiAgJ3NlYXJjaCcsXG4gICdzZWN1cml0eScsXG4gICdzZXR0aW5ncycsXG4gICdzaWduLW91dCcsXG4gICdzdG9wJyxcbiAgJ3N1Y2Nlc3MtY2lyY2xlJyxcbiAgJ3N3YXBzJyxcbiAgJ3N3YXBzLWFycm93LWxlZnQnLFxuICAnc3dhcHMtYXJyb3ctcmlnaHQnLFxuICAnc3dpdGNoJyxcbiAgJ3Rvb2wnLFxuICAndHJhc2gnLFxuICAndW5sb2NrJyxcbiAgJ3Vuc3VjY2VzcycsXG4gICd1cGRhdGUnLFxuICAndXNlcicsXG4gICd3YWxsZXQnLFxuICAnd2FybmluZy1jaXJjbGUnLFxuICAnaGVyby1hdmF0YXItYWRtaW4nLFxuICAnaGVyby1hdmF0YXItcmVndWxhcicsXG4gICdoZXJvLWF2YXRhci1zdXBwb3J0JyxcbiAgJ2hlcm8tYXZhdGFyLWJsb2NrZWQnXG59XG4iLCI8c3ZnLWljb24gW2NsYXNzLndpdGgtaG92ZXJdPVwiaG92ZXJJY29uXCIgY2xhc3M9XCJ7e3NpemV9fSB7e2ljb25TaXplfX1cIiBbc3R5bGUuLS1pY29uLWNvbG9yXT1cImN1c3RvbUljb25Db2xvclZhcmlhYmxlXCJcbiAgICAgICAgICBbbmFtZV09XCJpc0NvaW4gPyAnZ3QtaWNvbi0nICsgaWNvbk5hbWUgOiBpY29uU2l6ZSA/ICdndC1pY29uLScgKyBpY29uTmFtZSArICctJyArIGljb25TaXplIDogaWNvbk5hbWVcIj48L3N2Zy1pY29uPlxuIl19
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
66
66
  }], selectedItems: [{
67
67
  type: Output
68
68
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10cmVlLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LXRyZWUtdmlldy9ncmF2aXR5LXRyZWUtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdHJlZS12aWV3L2dyYXZpdHktdHJlZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBd0IsTUFBTSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFlLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBV3pDLE1BQU0sT0FBTyx3QkFBd0I7SUFRbkMsWUFBNEIsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFIM0Msb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBR2hELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDOUUsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDN0M7UUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDckIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8saUJBQWlCLENBQUMsTUFBaUIsRUFBRSxTQUEwQjtRQUNyRSxNQUFNLGFBQWEsR0FBZ0IsRUFBRSxDQUFDO1FBRXRDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUF1QixFQUFFLEVBQUU7WUFDNUMsTUFBTSxTQUFTLEdBQWMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFckUsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFO2dCQUNyQixTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxRSxTQUFTLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQzthQUNqRDtZQUVELGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRU0sWUFBWSxDQUFDLFFBQWdCO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7K0dBM0RVLHdCQUF3QjttR0FBeEIsd0JBQXdCLHlMQUZ4QixDQUFDLFdBQVcsQ0FBQywrQ0NYMUIseVBBR0E7OzRGRFVhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxtQkFBbUIsYUFHbEIsQ0FBQyxXQUFXLENBQUM7a0dBS2YsU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJlZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2UvdHJlZS1zZXJ2aWNlXCI7XG5pbXBvcnQge1N1YnNjcmlwdGlvbiwgdGltZXJ9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge05vZGVJdGVtfSBmcm9tIFwiLi9tb2RlbHMvbm9kZS1pdGVtXCI7XG5pbXBvcnQge1RyZWVDYWxsYmFja3N9IGZyb20gXCIuL21vZGVscy90cmVlLWNhbGxiYWNrc1wiO1xuaW1wb3J0IHtOb2RlU3RhdGV9IGZyb20gXCIuL21vZGVscy9ub2RlLXN0YXRlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYXZpdHktdHJlZS12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyYXZpdHktdHJlZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3Jhdml0eS10cmVlLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbVHJlZVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEdyYXZpdHlUcmVlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmVlU2VydmljZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIEBJbnB1dCgpIGNhbGxiYWNrczogVHJlZUNhbGxiYWNrcztcbiAgQElucHV0KCkgbm9kZUl0ZW1zOiBOb2RlSXRlbTxhbnk+W107XG4gIEBJbnB1dCgpIHNob3dGaWx0ZXJJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRJdGVtcyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB0cmVlU2VydmljZTogVHJlZVNlcnZpY2UpIHtcbiAgICB0aGlzLnRyZWVTZXJ2aWNlU3Vic2NyaXB0aW9uID0gdHJlZVNlcnZpY2UuY29ubmVjdCgpLnN1YnNjcmliZSgoaXRlbXM6IGFueVtdKSA9PiB7XG4gICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aW1lcigwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZW1pdChpdGVtcyk7XG4gICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnRyZWVTZXJ2aWNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMuY2FsbGJhY2tzKSB7XG4gICAgICB0aGlzLnRyZWVTZXJ2aWNlLmNhbGxiYWNrcyA9IHRoaXMuY2FsbGJhY2tzO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLm5vZGVJdGVtcykge1xuICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgdGhpcy50cmVlU2VydmljZS5jYWxsYmFja3MgPSB0aGlzLmNhbGxiYWNrcztcbiAgICB0aGlzLnRyZWVTZXJ2aWNlLm5vZGVJdGVtcyA9IHRoaXMubm9kZUl0ZW1zO1xuXG4gICAgdGhpcy50cmVlU2VydmljZS50cmVlU3RhdGUgPSB0aGlzLmluaXRUcmVlU3RydWN0dXJlKG51bGwsIHRoaXMudHJlZVNlcnZpY2Uubm9kZUl0ZW1zKTtcbiAgICB0aGlzLnRyZWVTZXJ2aWNlLmNsZWFyKCk7XG4gICAgdGhpcy50cmVlU2VydmljZS5zZXRJbml0aWFsU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFRyZWVTdHJ1Y3R1cmUocGFyZW50OiBOb2RlU3RhdGUsIG5vZGVJdGVtczogTm9kZUl0ZW08YW55PltdKTogTm9kZVN0YXRlW10ge1xuICAgIGNvbnN0IHRyZWVTdHJ1Y3R1cmU6IE5vZGVTdGF0ZVtdID0gW107XG5cbiAgICBub2RlSXRlbXMuZm9yRWFjaCgobm9kZUl0ZW06IE5vZGVJdGVtPGFueT4pID0+IHtcbiAgICAgIGNvbnN0IG5vZGVTdGF0ZTogTm9kZVN0YXRlID0gVHJlZVNlcnZpY2UuaW5pdFN0YXRlKHBhcmVudCwgbm9kZUl0ZW0pO1xuXG4gICAgICBpZiAobm9kZUl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgbm9kZVN0YXRlLmNoaWxkcmVuID0gdGhpcy5pbml0VHJlZVN0cnVjdHVyZShub2RlU3RhdGUsIG5vZGVJdGVtLmNoaWxkcmVuKTtcbiAgICAgICAgbm9kZVN0YXRlLmZpbHRlcmVkQ2hpbGRyZW4gPSBub2RlU3RhdGUuY2hpbGRyZW47XG4gICAgICB9XG5cbiAgICAgIHRyZWVTdHJ1Y3R1cmUucHVzaChub2RlU3RhdGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyZWVTdHJ1Y3R1cmU7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlRmlsdGVyKG5ld1ZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyZWVTZXJ2aWNlLmZpbHRlckNoYW5nZWQobmV3VmFsdWUudG9Mb3dlckNhc2UoKSk7XG4gIH1cbn1cbiIsIjxncmF2aXR5LXRleHQtZmllbGQgW2xhYmVsXT1cIidDaGFuZ2UgZmlsdGVyJ1wiICpuZ0lmPVwic2hvd0ZpbHRlcklucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKT1cImNoYW5nZUZpbHRlcigkZXZlbnQpXCI+PC9ncmF2aXR5LXRleHQtZmllbGQ+XG48dHJlZS1ub2RlIFtub2RlU3RhdGVdPVwic3RhdGVcIiAqbmdGb3I9XCJsZXQgc3RhdGUgb2YgdHJlZVNlcnZpY2UudHJlZVN0YXRlXCI+PC90cmVlLW5vZGU+XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10cmVlLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LXRyZWUtdmlldy9ncmF2aXR5LXRyZWUtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdHJlZS12aWV3L2dyYXZpdHktdHJlZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBd0IsTUFBTSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFlLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBV3pDLE1BQU0sT0FBTyx3QkFBd0I7SUFRbkMsWUFBNEIsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFIM0Msb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBR2hELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDOUUsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDN0M7UUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDckIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRGLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8saUJBQWlCLENBQUMsTUFBaUIsRUFBRSxTQUEwQjtRQUNyRSxNQUFNLGFBQWEsR0FBZ0IsRUFBRSxDQUFDO1FBRXRDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUF1QixFQUFFLEVBQUU7WUFDNUMsTUFBTSxTQUFTLEdBQWMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFckUsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFO2dCQUNyQixTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxRSxTQUFTLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQzthQUNqRDtZQUVELGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRU0sWUFBWSxDQUFDLFFBQWdCO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7K0dBM0RVLHdCQUF3QjttR0FBeEIsd0JBQXdCLHlMQUZ4QixDQUFDLFdBQVcsQ0FBQywrQ0NYMUIseVBBR0E7OzRGRFVhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxtQkFBbUIsYUFHbEIsQ0FBQyxXQUFXLENBQUM7a0dBS2YsU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJlZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2UvdHJlZS1zZXJ2aWNlXCI7XG5pbXBvcnQge1N1YnNjcmlwdGlvbiwgdGltZXJ9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge05vZGVJdGVtfSBmcm9tIFwiLi9tb2RlbHMvbm9kZS1pdGVtXCI7XG5pbXBvcnQge1RyZWVDYWxsYmFja3N9IGZyb20gXCIuL21vZGVscy90cmVlLWNhbGxiYWNrc1wiO1xuaW1wb3J0IHtOb2RlU3RhdGV9IGZyb20gXCIuL21vZGVscy9ub2RlLXN0YXRlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYXZpdHktdHJlZS12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyYXZpdHktdHJlZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3Jhdml0eS10cmVlLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbVHJlZVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEdyYXZpdHlUcmVlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmVlU2VydmljZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIEBJbnB1dCgpIGNhbGxiYWNrczogVHJlZUNhbGxiYWNrcztcbiAgQElucHV0KCkgbm9kZUl0ZW1zOiBOb2RlSXRlbTxhbnk+W107XG4gIEBJbnB1dCgpIHNob3dGaWx0ZXJJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRJdGVtcyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB0cmVlU2VydmljZTogVHJlZVNlcnZpY2UpIHtcbiAgICB0aGlzLnRyZWVTZXJ2aWNlU3Vic2NyaXB0aW9uID0gdHJlZVNlcnZpY2UuY29ubmVjdCgpLnN1YnNjcmliZSgoaXRlbXM6IGFueVtdKSA9PiB7XG4gICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aW1lcigwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZW1pdChpdGVtcyk7XG4gICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnRyZWVTZXJ2aWNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMuY2FsbGJhY2tzKSB7XG4gICAgICB0aGlzLnRyZWVTZXJ2aWNlLmNhbGxiYWNrcyA9IHRoaXMuY2FsbGJhY2tzO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLm5vZGVJdGVtcykge1xuICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgdGhpcy50cmVlU2VydmljZS5jYWxsYmFja3MgPSB0aGlzLmNhbGxiYWNrcztcbiAgICB0aGlzLnRyZWVTZXJ2aWNlLm5vZGVJdGVtcyA9IHRoaXMubm9kZUl0ZW1zO1xuICAgIHRoaXMudHJlZVNlcnZpY2UudHJlZVN0YXRlID0gdGhpcy5pbml0VHJlZVN0cnVjdHVyZShudWxsLCB0aGlzLnRyZWVTZXJ2aWNlLm5vZGVJdGVtcyk7XG5cbiAgICB0aGlzLnRyZWVTZXJ2aWNlLmNsZWFyKCk7XG4gICAgdGhpcy50cmVlU2VydmljZS5zZXRJbml0aWFsU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFRyZWVTdHJ1Y3R1cmUocGFyZW50OiBOb2RlU3RhdGUsIG5vZGVJdGVtczogTm9kZUl0ZW08YW55PltdKTogTm9kZVN0YXRlW10ge1xuICAgIGNvbnN0IHRyZWVTdHJ1Y3R1cmU6IE5vZGVTdGF0ZVtdID0gW107XG5cbiAgICBub2RlSXRlbXMuZm9yRWFjaCgobm9kZUl0ZW06IE5vZGVJdGVtPGFueT4pID0+IHtcbiAgICAgIGNvbnN0IG5vZGVTdGF0ZTogTm9kZVN0YXRlID0gVHJlZVNlcnZpY2UuaW5pdFN0YXRlKHBhcmVudCwgbm9kZUl0ZW0pO1xuXG4gICAgICBpZiAobm9kZUl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgbm9kZVN0YXRlLmNoaWxkcmVuID0gdGhpcy5pbml0VHJlZVN0cnVjdHVyZShub2RlU3RhdGUsIG5vZGVJdGVtLmNoaWxkcmVuKTtcbiAgICAgICAgbm9kZVN0YXRlLmZpbHRlcmVkQ2hpbGRyZW4gPSBub2RlU3RhdGUuY2hpbGRyZW47XG4gICAgICB9XG5cbiAgICAgIHRyZWVTdHJ1Y3R1cmUucHVzaChub2RlU3RhdGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyZWVTdHJ1Y3R1cmU7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlRmlsdGVyKG5ld1ZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyZWVTZXJ2aWNlLmZpbHRlckNoYW5nZWQobmV3VmFsdWUudG9Mb3dlckNhc2UoKSk7XG4gIH1cbn1cbiIsIjxncmF2aXR5LXRleHQtZmllbGQgW2xhYmVsXT1cIidDaGFuZ2UgZmlsdGVyJ1wiICpuZ0lmPVwic2hvd0ZpbHRlcklucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKT1cImNoYW5nZUZpbHRlcigkZXZlbnQpXCI+PC9ncmF2aXR5LXRleHQtZmllbGQ+XG48dHJlZS1ub2RlIFtub2RlU3RhdGVdPVwic3RhdGVcIiAqbmdGb3I9XCJsZXQgc3RhdGUgb2YgdHJlZVNlcnZpY2UudHJlZVN0YXRlXCI+PC90cmVlLW5vZGU+XG4iXX0=
@@ -21,14 +21,32 @@ export class TreeService {
21
21
  return this.selectedItemsSubject.asObservable();
22
22
  }
23
23
  setInitialState() {
24
- this.setInitialSelectedState(this.treeState);
24
+ this.setInitialSelectedState();
25
+ this.treeState.forEach(state => {
26
+ this.reEvaluateSelectedState(state);
27
+ });
28
+ this.selectedItemsSubject.next(this.selectedItems);
25
29
  }
26
- setInitialSelectedState(nodeStates) {
27
- for (const state of nodeStates) {
28
- if (state.nodeItem.selected && (!state.children || state.children.length === 0)) {
29
- this.toggleSelectedState(state, true);
30
+ setInitialSelectedState() {
31
+ this.traverseAndInitialize(this.treeState);
32
+ this.treeState.forEach(state => {
33
+ this.reEvaluateSelectedState(state);
34
+ });
35
+ this.selectedItemsSubject.next(this.selectedItems);
36
+ }
37
+ traverseAndInitialize(states) {
38
+ for (const state of states) {
39
+ if (state.nodeItem.selected && state.showCheckbox && !state.disabled) {
40
+ state.selected = true;
41
+ state.selectedState = NodeSelectedState.checked;
42
+ if (!this.selectedItems.includes(state.nodeItem.item)) {
43
+ this.selectedItems.push(state.nodeItem.item);
44
+ this.selectedStates.push(state);
45
+ }
46
+ }
47
+ if (state.children?.length) {
48
+ this.traverseAndInitialize(state.children);
30
49
  }
31
- this.setInitialSelectedState(state.children);
32
50
  }
33
51
  }
34
52
  clear() {
@@ -71,57 +89,50 @@ export class TreeService {
71
89
  return;
72
90
  }
73
91
  if (state.selectedState === NodeSelectedState.unChecked) {
74
- this.setChecked(state, true, ignoreDisabled);
75
- }
76
- else if (state.selectedState === NodeSelectedState.checked) {
77
- this.setUnchecked(state, true, ignoreDisabled);
92
+ state.selectedState = NodeSelectedState.checked;
93
+ state.selected = true;
94
+ if (state.showCheckbox) {
95
+ this.addSelected(state);
96
+ }
97
+ this.selectParents(state.parent);
78
98
  }
79
99
  else {
80
- if (this.anyActiveSelected(state) && !state.selected) {
81
- this.setUnchecked(state, true, ignoreDisabled);
82
- }
83
- else {
84
- this.setChecked(state, true, ignoreDisabled);
85
- }
100
+ this.setUnchecked(state, state.showCheckbox, ignoreDisabled);
86
101
  }
102
+ this.selectedItemsSubject.next(this.selectedItems);
87
103
  if (state.parent) {
88
104
  this.childStateChanged(state.parent);
89
105
  }
90
106
  }
91
- setChecked(state, propagate, ignoreDisabled) {
92
- if (state.disabled && !ignoreDisabled) {
93
- return;
94
- }
95
- state.selectedState = NodeSelectedState.checked;
96
- state.selected = true;
97
- if (TreeService.hasNoChildren(state)) {
98
- this.addSelected(state);
99
- }
100
- else if (propagate) {
101
- for (const child of state.children) {
102
- this.setChecked(child, propagate, ignoreDisabled);
107
+ selectParents(state) {
108
+ while (state) {
109
+ if (state.showCheckbox) {
110
+ state.selectedState = NodeSelectedState.checked;
111
+ state.selected = true;
112
+ this.addSelected(state);
103
113
  }
114
+ state = state.parent;
104
115
  }
105
116
  }
106
- setUnchecked(state, propagate, ignoreDisabled) {
117
+ setUnchecked(state, propagate = false, ignoreDisabled) {
107
118
  if (state.disabled && !ignoreDisabled) {
108
119
  return;
109
120
  }
110
- state.selectedState = NodeSelectedState.unChecked;
111
- state.selected = false;
112
- if (TreeService.hasNoChildren(state)) {
121
+ if (state.showCheckbox) {
122
+ state.selectedState = NodeSelectedState.unChecked;
123
+ state.selected = false;
113
124
  this.removeSelected(state.nodeItem.item);
114
125
  if (this.callbacks?.unSelect) {
115
126
  this.callbacks.unSelect(state.nodeItem);
116
127
  }
117
128
  }
118
- else if (propagate) {
129
+ if (propagate) {
119
130
  for (const child of state.children) {
120
131
  this.setUnchecked(child, propagate, ignoreDisabled);
121
132
  }
122
133
  }
123
- if (!this.anyChildSelected(state)) {
124
- this.removeSelected(state.nodeItem.item);
134
+ if (state.parent) {
135
+ this.childStateChanged(state.parent);
125
136
  }
126
137
  }
127
138
  removeSelected(item) {
@@ -129,16 +140,32 @@ export class TreeService {
129
140
  if (index !== -1) {
130
141
  this.selectedItems.splice(index, 1);
131
142
  }
143
+ let stateIndex = this.selectedStates.findIndex(s => s.nodeItem.item === item);
144
+ if (stateIndex !== -1) {
145
+ this.selectedStates.splice(stateIndex, 1);
146
+ }
147
+ this.selectedItemsSubject.next(this.selectedItems);
132
148
  }
133
149
  static hasNoChildren(state) {
134
150
  return !state.children || state.children.length === 0;
135
151
  }
136
152
  addSelected(state) {
137
- this.selectedItems.push(state.nodeItem.item);
138
- this.selectedStates.push(state);
139
- if (this.callbacks?.select) {
140
- this.callbacks.select(state.nodeItem);
153
+ if (this.selectedItems.indexOf(state.nodeItem.item) === -1) {
154
+ this.selectedItems.push(state.nodeItem.item);
155
+ this.selectedStates.push(state);
156
+ if (this.callbacks?.select) {
157
+ this.callbacks.select(state.nodeItem);
158
+ }
159
+ }
160
+ let current = state.parent;
161
+ while (current) {
162
+ if (this.selectedItems.indexOf(current.nodeItem.item) === -1) {
163
+ this.selectedItems.push(current.nodeItem.item);
164
+ this.selectedStates.push(current);
165
+ }
166
+ current = current.parent;
141
167
  }
168
+ this.selectedItemsSubject.next(this.selectedItems);
142
169
  }
143
170
  reEvaluateSelectedState(state) {
144
171
  if (!TreeService.hasNoChildren(state)) {
@@ -150,26 +177,32 @@ export class TreeService {
150
177
  }
151
178
  childStateChanged(state) {
152
179
  if (this.anyChildSelected(state)) {
153
- if (state.nodeItem.id != '0') {
154
- let itemIndex = this.selectedItems.indexOf(state.nodeItem.item);
155
- if (itemIndex === -1) {
156
- this.selectedItems.push(state.nodeItem.item);
157
- }
158
- }
159
180
  if (this.allChildrenSelected(state)) {
160
- this.setChecked(state, false);
181
+ if (state.showCheckbox) {
182
+ state.selectedState = NodeSelectedState.checked;
183
+ state.selected = true;
184
+ if (state.nodeItem.id !== '0' && this.selectedItems.indexOf(state.nodeItem.item) === -1) {
185
+ this.selectedItems.push(state.nodeItem.item);
186
+ this.selectedStates.push(state);
187
+ }
188
+ }
189
+ else {
190
+ state.selectedState = NodeSelectedState.indeterminate;
191
+ state.selected = false;
192
+ }
161
193
  }
162
194
  else {
163
195
  state.selectedState = NodeSelectedState.indeterminate;
164
196
  state.selected = false;
165
197
  }
166
198
  }
167
- else {
199
+ else if (!state.selected) {
168
200
  this.setUnchecked(state, false);
169
201
  }
170
202
  if (state.parent) {
171
203
  this.childStateChanged(state.parent);
172
204
  }
205
+ this.selectedItemsSubject.next(this.selectedItems);
173
206
  }
174
207
  anyChildSelected(state) {
175
208
  return state.children.find((item) => item.selectedState === NodeSelectedState.checked || item.selectedState === NodeSelectedState.indeterminate) != null;
@@ -196,15 +229,6 @@ export class TreeService {
196
229
  return state.children.every(it => it.selectedState === NodeSelectedState.checked);
197
230
  }
198
231
  }
199
- anyActiveSelected(state) {
200
- let result = state.children.filter(it => !it.disabled && it.selected).length > 0;
201
- for (const child of state.children) {
202
- if (!TreeService.hasNoChildren(child) && this.anyActiveSelected(child)) {
203
- result = true;
204
- }
205
- }
206
- return result;
207
- }
208
232
  filterChanged(value) {
209
233
  this.filterValue = value;
210
234
  this.filterChangeSubject.next(value);
@@ -215,4 +239,4 @@ export class TreeService {
215
239
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeService, decorators: [{
216
240
  type: Injectable
217
241
  }], ctorParameters: function () { return []; } });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LXRyZWUtdmlldy9zZXJ2aWNlL3RyZWUtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxlQUFlLEVBQTJCLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFJaEUsTUFBTSxPQUFPLFdBQVc7SUFhdEI7UUFUTyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUV6QixrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUd6Qix3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9ELG1CQUFjLEdBQWdCLEVBQUUsQ0FBQztRQUd2QyxJQUFJLENBQUMsK0JBQStCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLCtCQUErQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sdUJBQXVCLENBQUMsVUFBdUI7UUFDckQsS0FBSyxNQUFNLEtBQUssSUFBSSxVQUFVLEVBQUU7WUFDOUIsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDL0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQzthQUN2QztZQUVELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBRU0sS0FBSztRQUNWLEtBQUssSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQyxLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN2QixLQUFLLENBQUMsYUFBYSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQztTQUNuRDtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFtQixFQUFFLE1BQWM7UUFDeEQsSUFBSSxPQUFPLEdBQWMsRUFBRSxDQUFDO1FBRTVCLEtBQUssSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFO1lBQ3hCLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QixLQUFLLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO2dCQUNsQyxLQUFLLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUV4RSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNuQyxLQUFLLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO2lCQUNsQztnQkFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQ3pDO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBZ0IsRUFBRSxNQUFjO1FBQ2xELEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sTUFBTSxDQUFDLE1BQW1CLEVBQUUsS0FBYTtRQUMvQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFvQixFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLElBQUksS0FBSyxLQUFLLEVBQUUsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvSixDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQWdCO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRTtZQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBZ0IsRUFBRSxjQUF1QjtRQUNuRSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckMsT0FBTztTQUNSO1FBRUQsSUFBSSxLQUFLLENBQUMsYUFBYSxLQUFLLGlCQUFpQixDQUFDLFNBQVMsRUFBRTtZQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDOUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLEtBQUssaUJBQWlCLENBQUMsT0FBTyxFQUFFO1lBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztTQUNoRDthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO2dCQUNwRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7YUFDaEQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2FBQzlDO1NBQ0Y7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFTyxVQUFVLENBQUMsS0FBZ0IsRUFBRSxTQUFrQixFQUFFLGNBQXdCO1FBQy9FLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFFRCxLQUFLLENBQUMsYUFBYSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztRQUNoRCxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUV0QixJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjthQUFNLElBQUksU0FBUyxFQUFFO1lBQ3BCLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2FBQ25EO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWdCLEVBQUUsU0FBa0IsRUFBRSxjQUF3QjtRQUNqRixJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckMsT0FBTztTQUNSO1FBRUQsS0FBSyxDQUFDLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7UUFDbEQsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFdkIsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV6QyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFO2dCQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDekM7U0FDRjthQUFNLElBQUksU0FBUyxFQUFFO1lBQ3BCLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2FBQ3JEO1NBQ0Y7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQztJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsSUFBUztRQUM5QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFnQjtRQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFnQjtRQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVNLHVCQUF1QixDQUFDLEtBQWdCO1FBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU5QixLQUFLLE1BQU0sS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNyQztTQUNGO0lBQ0gsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQWdCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO2dCQUM1QixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUVoRSxJQUFJLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDOUM7YUFDRjtZQUVELElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUMvQjtpQkFBTTtnQkFDTCxLQUFLLENBQUMsYUFBYSxHQUFHLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztnQkFDdEQsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7YUFDeEI7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDakM7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFnQjtRQUN2QyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLGlCQUFpQixDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN0SyxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFpQixFQUFFLFFBQXVCO1FBQ2hFLE9BQU87WUFDTCxNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxFQUFFO1lBQ1osZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUSxLQUFLLEtBQUs7WUFDckMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEtBQUssSUFBSTtZQUNwQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsU0FBUztZQUMxQyxRQUFRLEVBQUUsS0FBSztZQUNmLFlBQVksRUFBRSxRQUFRLENBQUMsWUFBWTtTQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQWdCO1FBQzFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7WUFDM0IsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEtBQUssaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1NBQy9JO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGFBQWEsS0FBSyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuRjtJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFnQjtRQUN4QyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVqRixLQUFLLE1BQU0sS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN0RSxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ2Y7U0FDRjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7K0dBeFBVLFdBQVc7bUhBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge05vZGVJdGVtfSBmcm9tICcuLi9tb2RlbHMvbm9kZS1pdGVtJztcbmltcG9ydCB7Tm9kZVN0YXRlfSBmcm9tICcuLi9tb2RlbHMvbm9kZS1zdGF0ZSc7XG5pbXBvcnQge05vZGVTZWxlY3RlZFN0YXRlfSBmcm9tICcuLi9tb2RlbHMvbm9kZS1zZWxlY3RlZC1zdGF0ZSc7XG5pbXBvcnQge1RyZWVDYWxsYmFja3N9IGZyb20gJy4uL21vZGVscy90cmVlLWNhbGxiYWNrcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmVlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyQ2hhbmdlU3ViamVjdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBjYWxsYmFja3M6IFRyZWVDYWxsYmFja3M7XG4gIHB1YmxpYyBmaWx0ZXJWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBub2RlSXRlbXM6IE5vZGVJdGVtPGFueT5bXTtcbiAgcHVibGljIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XG4gIHB1YmxpYyB0cmVlU3RhdGU6IE5vZGVTdGF0ZVtdO1xuXG4gIHByaXZhdGUgZmlsdGVyQ2hhbmdlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5maWx0ZXJWYWx1ZSk7XG4gIHByaXZhdGUgc2VsZWN0ZWRJdGVtc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gIHByaXZhdGUgc2VsZWN0ZWRTdGF0ZXM6IE5vZGVTdGF0ZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5maWx0ZXJDaGFuZ2VTdWJqZWN0U3Vic2NyaXB0aW9uID0gdGhpcy5maWx0ZXJDaGFuZ2VTdWJqZWN0LnBpcGUoZGVib3VuY2VUaW1lKDMwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlclRyYXZlcnNlKHRoaXMudHJlZVN0YXRlLCB0aGlzLmZpbHRlclZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZmlsdGVyQ2hhbmdlU3ViamVjdFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGNvbm5lY3QoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEluaXRpYWxTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEluaXRpYWxTZWxlY3RlZFN0YXRlKHRoaXMudHJlZVN0YXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5pdGlhbFNlbGVjdGVkU3RhdGUobm9kZVN0YXRlczogTm9kZVN0YXRlW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHN0YXRlIG9mIG5vZGVTdGF0ZXMpIHtcbiAgICAgIGlmIChzdGF0ZS5ub2RlSXRlbS5zZWxlY3RlZCAmJiAoIXN0YXRlLmNoaWxkcmVuIHx8IHN0YXRlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgdGhpcy50b2dnbGVTZWxlY3RlZFN0YXRlKHN0YXRlLCB0cnVlKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXRJbml0aWFsU2VsZWN0ZWRTdGF0ZShzdGF0ZS5jaGlsZHJlbik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIGZvciAobGV0IHN0YXRlIG9mIHRoaXMuc2VsZWN0ZWRTdGF0ZXMpIHtcbiAgICAgIHN0YXRlLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICBzdGF0ZS5zZWxlY3RlZFN0YXRlID0gTm9kZVNlbGVjdGVkU3RhdGUudW5DaGVja2VkO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPSAwO1xuICAgIHRoaXMuc2VsZWN0ZWRTdGF0ZXMubGVuZ3RoID0gMDtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyVHJhdmVyc2Uoc3RhdGVzOiBOb2RlU3RhdGVbXSwgZmlsdGVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgcmVzdWx0czogYm9vbGVhbltdID0gW107XG5cbiAgICBmb3IgKGxldCBzdGF0ZSBvZiBzdGF0ZXMpIHtcbiAgICAgIGlmIChzdGF0ZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIHN0YXRlLmhhc0ZpbHRlcmVkQ2hpbGRyZW4gPSBmYWxzZTtcbiAgICAgICAgc3RhdGUuaGFzRmlsdGVyZWRDaGlsZHJlbiA9IHRoaXMuZmlsdGVyVHJhdmVyc2Uoc3RhdGUuY2hpbGRyZW4sIGZpbHRlcik7XG5cbiAgICAgICAgaWYgKHRoaXMuYXBwbHlGaWx0ZXIoc3RhdGUsIGZpbHRlcikpIHtcbiAgICAgICAgICBzdGF0ZS5oYXNGaWx0ZXJlZENoaWxkcmVuID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3VsdHMucHVzaChzdGF0ZS5oYXNGaWx0ZXJlZENoaWxkcmVuKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cy5zb21lKChpdGVtOiBib29sZWFuKSA9PiBpdGVtKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGaWx0ZXIoc3RhdGU6IE5vZGVTdGF0ZSwgZmlsdGVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBzdGF0ZS5maWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maWx0ZXIoc3RhdGUuY2hpbGRyZW4sIGZpbHRlcik7XG4gICAgcmV0dXJuIHN0YXRlLmZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyKHN0YXRlczogTm9kZVN0YXRlW10sIHZhbHVlOiBzdHJpbmcpOiBOb2RlU3RhdGVbXSB7XG4gICAgcmV0dXJuIHN0YXRlcy5maWx0ZXIoKG5vZGVTdGF0ZTogTm9kZVN0YXRlKSA9PiBub2RlU3RhdGUuaGFzRmlsdGVyZWRDaGlsZHJlbiB8fCB2YWx1ZSA9PT0gJycgfHwgbm9kZVN0YXRlLm5vZGVJdGVtLm5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHZhbHVlKSAhPT0gLTEpO1xuICB9XG5cbiAgcHVibGljIGNoZWNrYm94Q2xpY2soc3RhdGU6IE5vZGVTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU2VsZWN0ZWRTdGF0ZShzdGF0ZSwgZmFsc2UpO1xuXG4gICAgaWYgKHRoaXMuY2FsbGJhY2tzPy50b2dnbGUpIHtcbiAgICAgIHRoaXMuY2FsbGJhY2tzLnRvZ2dsZShzdGF0ZS5ub2RlSXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVTZWxlY3RlZFN0YXRlKHN0YXRlOiBOb2RlU3RhdGUsIGlnbm9yZURpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHN0YXRlLmRpc2FibGVkICYmICFpZ25vcmVEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZS5zZWxlY3RlZFN0YXRlID09PSBOb2RlU2VsZWN0ZWRTdGF0ZS51bkNoZWNrZWQpIHtcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZChzdGF0ZSwgdHJ1ZSwgaWdub3JlRGlzYWJsZWQpO1xuICAgIH0gZWxzZSBpZiAoc3RhdGUuc2VsZWN0ZWRTdGF0ZSA9PT0gTm9kZVNlbGVjdGVkU3RhdGUuY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZXRVbmNoZWNrZWQoc3RhdGUsIHRydWUsIGlnbm9yZURpc2FibGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuYW55QWN0aXZlU2VsZWN0ZWQoc3RhdGUpICYmICFzdGF0ZS5zZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnNldFVuY2hlY2tlZChzdGF0ZSwgdHJ1ZSwgaWdub3JlRGlzYWJsZWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXRDaGVja2VkKHN0YXRlLCB0cnVlLCBpZ25vcmVEaXNhYmxlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLnBhcmVudCkge1xuICAgICAgdGhpcy5jaGlsZFN0YXRlQ2hhbmdlZChzdGF0ZS5wYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hlY2tlZChzdGF0ZTogTm9kZVN0YXRlLCBwcm9wYWdhdGU6IGJvb2xlYW4sIGlnbm9yZURpc2FibGVkPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChzdGF0ZS5kaXNhYmxlZCAmJiAhaWdub3JlRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdGF0ZS5zZWxlY3RlZFN0YXRlID0gTm9kZVNlbGVjdGVkU3RhdGUuY2hlY2tlZDtcbiAgICBzdGF0ZS5zZWxlY3RlZCA9IHRydWU7XG5cbiAgICBpZiAoVHJlZVNlcnZpY2UuaGFzTm9DaGlsZHJlbihzdGF0ZSkpIHtcbiAgICAgIHRoaXMuYWRkU2VsZWN0ZWQoc3RhdGUpO1xuICAgIH0gZWxzZSBpZiAocHJvcGFnYXRlKSB7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHN0YXRlLmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMuc2V0Q2hlY2tlZChjaGlsZCwgcHJvcGFnYXRlLCBpZ25vcmVEaXNhYmxlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRVbmNoZWNrZWQoc3RhdGU6IE5vZGVTdGF0ZSwgcHJvcGFnYXRlOiBib29sZWFuLCBpZ25vcmVEaXNhYmxlZD86IGJvb2xlYW4pIHtcbiAgICBpZiAoc3RhdGUuZGlzYWJsZWQgJiYgIWlnbm9yZURpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3RhdGUuc2VsZWN0ZWRTdGF0ZSA9IE5vZGVTZWxlY3RlZFN0YXRlLnVuQ2hlY2tlZDtcbiAgICBzdGF0ZS5zZWxlY3RlZCA9IGZhbHNlO1xuXG4gICAgaWYgKFRyZWVTZXJ2aWNlLmhhc05vQ2hpbGRyZW4oc3RhdGUpKSB7XG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkKHN0YXRlLm5vZGVJdGVtLml0ZW0pO1xuXG4gICAgICBpZiAodGhpcy5jYWxsYmFja3M/LnVuU2VsZWN0KSB7XG4gICAgICAgIHRoaXMuY2FsbGJhY2tzLnVuU2VsZWN0KHN0YXRlLm5vZGVJdGVtKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BhZ2F0ZSkge1xuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBzdGF0ZS5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLnNldFVuY2hlY2tlZChjaGlsZCwgcHJvcGFnYXRlLCBpZ25vcmVEaXNhYmxlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFueUNoaWxkU2VsZWN0ZWQoc3RhdGUpKSB7XG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkKHN0YXRlLm5vZGVJdGVtLml0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU2VsZWN0ZWQoaXRlbTogYW55KTogdm9pZCB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaGFzTm9DaGlsZHJlbihzdGF0ZTogTm9kZVN0YXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFzdGF0ZS5jaGlsZHJlbiB8fCBzdGF0ZS5jaGlsZHJlbi5sZW5ndGggPT09IDA7XG4gIH1cblxuICBwcml2YXRlIGFkZFNlbGVjdGVkKHN0YXRlOiBOb2RlU3RhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChzdGF0ZS5ub2RlSXRlbS5pdGVtKTtcbiAgICB0aGlzLnNlbGVjdGVkU3RhdGVzLnB1c2goc3RhdGUpO1xuXG4gICAgaWYgKHRoaXMuY2FsbGJhY2tzPy5zZWxlY3QpIHtcbiAgICAgIHRoaXMuY2FsbGJhY2tzLnNlbGVjdChzdGF0ZS5ub2RlSXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlRXZhbHVhdGVTZWxlY3RlZFN0YXRlKHN0YXRlOiBOb2RlU3RhdGUpOiB2b2lkIHtcbiAgICBpZiAoIVRyZWVTZXJ2aWNlLmhhc05vQ2hpbGRyZW4oc3RhdGUpKSB7XG4gICAgICB0aGlzLmNoaWxkU3RhdGVDaGFuZ2VkKHN0YXRlKTtcblxuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBzdGF0ZS5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLnJlRXZhbHVhdGVTZWxlY3RlZFN0YXRlKGNoaWxkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2hpbGRTdGF0ZUNoYW5nZWQoc3RhdGU6IE5vZGVTdGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFueUNoaWxkU2VsZWN0ZWQoc3RhdGUpKSB7XG4gICAgICBpZiAoc3RhdGUubm9kZUl0ZW0uaWQgIT0gJzAnKSB7XG4gICAgICAgIGxldCBpdGVtSW5kZXggPSB0aGlzLnNlbGVjdGVkSXRlbXMuaW5kZXhPZihzdGF0ZS5ub2RlSXRlbS5pdGVtKTtcblxuICAgICAgICBpZiAoaXRlbUluZGV4ID09PSAtMSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKHN0YXRlLm5vZGVJdGVtLml0ZW0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmFsbENoaWxkcmVuU2VsZWN0ZWQoc3RhdGUpKSB7XG4gICAgICAgIHRoaXMuc2V0Q2hlY2tlZChzdGF0ZSwgZmFsc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUuc2VsZWN0ZWRTdGF0ZSA9IE5vZGVTZWxlY3RlZFN0YXRlLmluZGV0ZXJtaW5hdGU7XG4gICAgICAgIHN0YXRlLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0VW5jaGVja2VkKHN0YXRlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLnBhcmVudCkge1xuICAgICAgdGhpcy5jaGlsZFN0YXRlQ2hhbmdlZChzdGF0ZS5wYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYW55Q2hpbGRTZWxlY3RlZChzdGF0ZTogTm9kZVN0YXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXRlLmNoaWxkcmVuLmZpbmQoKGl0ZW06IE5vZGVTdGF0ZSkgPT4gaXRlbS5zZWxlY3RlZFN0YXRlID09PSBOb2RlU2VsZWN0ZWRTdGF0ZS5jaGVja2VkIHx8IGl0ZW0uc2VsZWN0ZWRTdGF0ZSA9PT0gTm9kZVNlbGVjdGVkU3RhdGUuaW5kZXRlcm1pbmF0ZSkgIT0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaW5pdFN0YXRlKHBhcmVudDogTm9kZVN0YXRlLCBub2RlSXRlbTogTm9kZUl0ZW08YW55Pik6IE5vZGVTdGF0ZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcmVudDogcGFyZW50LFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgZmlsdGVyZWRDaGlsZHJlbjogW10sXG4gICAgICBoYXNGaWx0ZXJlZENoaWxkcmVuOiBmYWxzZSxcbiAgICAgIG5vZGVJdGVtOiBub2RlSXRlbSxcbiAgICAgIGV4cGFuZGVkOiBub2RlSXRlbS5leHBhbmRlZCAhPT0gZmFsc2UsXG4gICAgICBkaXNhYmxlZDogbm9kZUl0ZW0uZGlzYWJsZWQgPT09IHRydWUsXG4gICAgICBzZWxlY3RlZFN0YXRlOiBOb2RlU2VsZWN0ZWRTdGF0ZS51bkNoZWNrZWQsXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICBzaG93Q2hlY2tib3g6IG5vZGVJdGVtLnNob3dDaGVja2JveFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFsbENoaWxkcmVuU2VsZWN0ZWQoc3RhdGU6IE5vZGVTdGF0ZSk6IGJvb2xlYW4ge1xuICAgIGlmIChzdGF0ZS5ub2RlSXRlbS5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHN0YXRlLmNoaWxkcmVuLmV2ZXJ5KGl0ID0+IGl0LnNlbGVjdGVkU3RhdGUgPT09IE5vZGVTZWxlY3RlZFN0YXRlLmNoZWNrZWQpICYmIHN0YXRlLmNoaWxkcmVuLmxlbmd0aCA9PT0gc3RhdGUubm9kZUl0ZW0uY2hpbGRyZW4ubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3RhdGUuY2hpbGRyZW4uZXZlcnkoaXQgPT4gaXQuc2VsZWN0ZWRTdGF0ZSA9PT0gTm9kZVNlbGVjdGVkU3RhdGUuY2hlY2tlZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhbnlBY3RpdmVTZWxlY3RlZChzdGF0ZTogTm9kZVN0YXRlKTogYm9vbGVhbiB7XG4gICAgbGV0IHJlc3VsdCA9IHN0YXRlLmNoaWxkcmVuLmZpbHRlcihpdCA9PiAhaXQuZGlzYWJsZWQgJiYgaXQuc2VsZWN0ZWQpLmxlbmd0aCA+IDA7XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHN0YXRlLmNoaWxkcmVuKSB7XG4gICAgICBpZiAoIVRyZWVTZXJ2aWNlLmhhc05vQ2hpbGRyZW4oY2hpbGQpICYmIHRoaXMuYW55QWN0aXZlU2VsZWN0ZWQoY2hpbGQpKSB7XG4gICAgICAgIHJlc3VsdCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXJDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlclZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5maWx0ZXJDaGFuZ2VTdWJqZWN0Lm5leHQodmFsdWUpO1xuICB9XG59XG4iXX0=
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LXRyZWUtdmlldy9zZXJ2aWNlL3RyZWUtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxlQUFlLEVBQTJCLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFJaEUsTUFBTSxPQUFPLFdBQVc7SUFhdEI7UUFUTyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUV6QixrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUd6Qix3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlELG1CQUFjLEdBQWdCLEVBQUUsQ0FBQztRQUd2QyxJQUFJLENBQUMsK0JBQStCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLCtCQUErQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JELENB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QUFDLGFBQWEsS0FBSyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7U0FDL0k7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsYUFBYSxLQUFLLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ25GO0lBQ0gsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFhO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQzsrR0ExUlUsV0FBVzttSEFBWCxXQUFXOzs0RkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Tm9kZUl0ZW19IGZyb20gJy4uL21vZGVscy9ub2RlLWl0ZW0nO1xuaW1wb3J0IHtOb2RlU3RhdGV9IGZyb20gJy4uL21vZGVscy9ub2RlLXN0YXRlJztcbmltcG9ydCB7Tm9kZVNlbGVjdGVkU3RhdGV9IGZyb20gJy4uL21vZGVscy9ub2RlLXNlbGVjdGVkLXN0YXRlJztcbmltcG9ydCB7VHJlZUNhbGxiYWNrc30gZnJvbSAnLi4vbW9kZWxzL3RyZWUtY2FsbGJhY2tzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRyZWVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJDaGFuZ2VTdWJqZWN0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgcHVibGljIGNhbGxiYWNrczogVHJlZUNhbGxiYWNrcztcbiAgcHVibGljIGZpbHRlclZhbHVlOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIG5vZGVJdGVtczogTm9kZUl0ZW08YW55PltdO1xuICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogYW55W10gPSBbXTtcbiAgcHVibGljIHRyZWVTdGF0ZTogTm9kZVN0YXRlW107XG5cbiAgcHJpdmF0ZSBmaWx0ZXJDaGFuZ2VTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmZpbHRlclZhbHVlKTtcbiAgcHVibGljIHNlbGVjdGVkSXRlbXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICBwcml2YXRlIHNlbGVjdGVkU3RhdGVzOiBOb2RlU3RhdGVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZmlsdGVyQ2hhbmdlU3ViamVjdFN1YnNjcmlwdGlvbiA9IHRoaXMuZmlsdGVyQ2hhbmdlU3ViamVjdC5waXBlKGRlYm91bmNlVGltZSgzMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJUcmF2ZXJzZSh0aGlzLnRyZWVTdGF0ZSwgdGhpcy5maWx0ZXJWYWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmZpbHRlckNoYW5nZVN1YmplY3RTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25uZWN0KCk6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRJbml0aWFsU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRJbml0aWFsU2VsZWN0ZWRTdGF0ZSgpO1xuXG4gICAgdGhpcy50cmVlU3RhdGUuZm9yRWFjaChzdGF0ZSA9PiB7XG4gICAgICB0aGlzLnJlRXZhbHVhdGVTZWxlY3RlZFN0YXRlKHN0YXRlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtc1N1YmplY3QubmV4dCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICB9XG5cbiAgcHVibGljIHNldEluaXRpYWxTZWxlY3RlZFN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMudHJhdmVyc2VBbmRJbml0aWFsaXplKHRoaXMudHJlZVN0YXRlKTtcblxuICAgIHRoaXMudHJlZVN0YXRlLmZvckVhY2goc3RhdGUgPT4ge1xuICAgICAgdGhpcy5yZUV2YWx1YXRlU2VsZWN0ZWRTdGF0ZShzdGF0ZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNlbGVjdGVkSXRlbXNTdWJqZWN0Lm5leHQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhdmVyc2VBbmRJbml0aWFsaXplKHN0YXRlczogTm9kZVN0YXRlW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHN0YXRlIG9mIHN0YXRlcykge1xuICAgICAgaWYgKHN0YXRlLm5vZGVJdGVtLnNlbGVjdGVkICYmIHN0YXRlLnNob3dDaGVja2JveCAmJiAhc3RhdGUuZGlzYWJsZWQpIHtcbiAgICAgICAgc3RhdGUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICBzdGF0ZS5zZWxlY3RlZFN0YXRlID0gTm9kZVNlbGVjdGVkU3RhdGUuY2hlY2tlZDtcblxuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhzdGF0ZS5ub2RlSXRlbS5pdGVtKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKHN0YXRlLm5vZGVJdGVtLml0ZW0pO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdGF0ZXMucHVzaChzdGF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy50cmF2ZXJzZUFuZEluaXRpYWxpemUoc3RhdGUuY2hpbGRyZW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIGZvciAobGV0IHN0YXRlIG9mIHRoaXMuc2VsZWN0ZWRTdGF0ZXMpIHtcbiAgICAgIHN0YXRlLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICBzdGF0ZS5zZWxlY3RlZFN0YXRlID0gTm9kZVNlbGVjdGVkU3RhdGUudW5DaGVja2VkO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPSAwO1xuICAgIHRoaXMuc2VsZWN0ZWRTdGF0ZXMubGVuZ3RoID0gMDtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyVHJhdmVyc2Uoc3RhdGVzOiBOb2RlU3RhdGVbXSwgZmlsdGVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgcmVzdWx0czogYm9vbGVhbltdID0gW107XG5cbiAgICBmb3IgKGxldCBzdGF0ZSBvZiBzdGF0ZXMpIHtcbiAgICAgIGlmIChzdGF0ZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIHN0YXRlLmhhc0ZpbHRlcmVkQ2hpbGRyZW4gPSBmYWxzZTtcbiAgICAgICAgc3RhdGUuaGFzRmlsdGVyZWRDaGlsZHJlbiA9IHRoaXMuZmlsdGVyVHJhdmVyc2Uoc3RhdGUuY2hpbGRyZW4sIGZpbHRlcik7XG5cbiAgICAgICAgaWYgKHRoaXMuYXBwbHlGaWx0ZXIoc3RhdGUsIGZpbHRlcikpIHtcbiAgICAgICAgICBzdGF0ZS5oYXNGaWx0ZXJlZENoaWxkcmVuID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3VsdHMucHVzaChzdGF0ZS5oYXNGaWx0ZXJlZENoaWxkcmVuKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cy5zb21lKChpdGVtOiBib29sZWFuKSA9PiBpdGVtKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGaWx0ZXIoc3RhdGU6IE5vZGVTdGF0ZSwgZmlsdGVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBzdGF0ZS5maWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maWx0ZXIoc3RhdGUuY2hpbGRyZW4sIGZpbHRlcik7XG4gICAgcmV0dXJuIHN0YXRlLmZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyKHN0YXRlczogTm9kZVN0YXRlW10sIHZhbHVlOiBzdHJpbmcpOiBOb2RlU3RhdGVbXSB7XG4gICAgcmV0dXJuIHN0YXRlcy5maWx0ZXIoKG5vZGVTdGF0ZTogTm9kZVN0YXRlKSA9PiBub2RlU3RhdGUuaGFzRmlsdGVyZWRDaGlsZHJlbiB8fCB2YWx1ZSA9PT0gJycgfHwgbm9kZVN0YXRlLm5vZGVJdGVtLm5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHZhbHVlKSAhPT0gLTEpO1xuICB9XG5cbiAgcHVibGljIGNoZWNrYm94Q2xpY2soc3RhdGU6IE5vZGVTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU2VsZWN0ZWRTdGF0ZShzdGF0ZSwgZmFsc2UpO1xuXG4gICAgaWYgKHRoaXMuY2FsbGJhY2tzPy50b2dnbGUpIHtcbiAgICAgIHRoaXMuY2FsbGJhY2tzLnRvZ2dsZShzdGF0ZS5ub2RlSXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVTZWxlY3RlZFN0YXRlKHN0YXRlOiBOb2RlU3RhdGUsIGlnbm9yZURpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHN0YXRlLmRpc2FibGVkICYmICFpZ25vcmVEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZS5zZWxlY3RlZFN0YXRlID09PSBOb2RlU2VsZWN0ZWRTdGF0ZS51bkNoZWNrZWQpIHtcbiAgICAgIHN0YXRlLnNlbGVjdGVkU3RhdGUgPSBOb2RlU2VsZWN0ZWRTdGF0ZS5jaGVja2VkO1xuICAgICAgc3RhdGUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgaWYgKHN0YXRlLnNob3dDaGVja2JveCkge1xuICAgICAgICB0aGlzLmFkZFNlbGVjdGVkKHN0YXRlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0UGFyZW50cyhzdGF0ZS5wYXJlbnQpO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIHRoaXMuc2V0VW5jaGVja2VkKHN0YXRlLCBzdGF0ZS5zaG93Q2hlY2tib3gsIGlnbm9yZURpc2FibGVkKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkSXRlbXNTdWJqZWN0Lm5leHQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcblxuICAgIGlmIChzdGF0ZS5wYXJlbnQpIHtcbiAgICAgIHRoaXMuY2hpbGRTdGF0ZUNoYW5nZWQoc3RhdGUucGFyZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdFBhcmVudHMoc3RhdGU6IE5vZGVTdGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICB3aGlsZSAoc3RhdGUpIHtcbiAgICAgIGlmIChzdGF0ZS5zaG93Q2hlY2tib3gpIHtcbiAgICAgICAgc3RhdGUuc2VsZWN0ZWRTdGF0ZSA9IE5vZGVTZWxlY3RlZFN0YXRlLmNoZWNrZWQ7XG4gICAgICAgIHN0YXRlLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hZGRTZWxlY3RlZChzdGF0ZSk7XG4gICAgICB9XG4gICAgICBzdGF0ZSA9IHN0YXRlLnBhcmVudDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFVuY2hlY2tlZChzdGF0ZTogTm9kZVN0YXRlLCBwcm9wYWdhdGU6IGJvb2xlYW4gPSBmYWxzZSwgaWdub3JlRGlzYWJsZWQ/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHN0YXRlLmRpc2FibGVkICYmICFpZ25vcmVEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZS5zaG93Q2hlY2tib3gpIHtcbiAgICAgIHN0YXRlLnNlbGVjdGVkU3RhdGUgPSBOb2RlU2VsZWN0ZWRTdGF0ZS51bkNoZWNrZWQ7XG4gICAgICBzdGF0ZS5zZWxlY3RlZCA9IGZhbHNlO1xuXG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkKHN0YXRlLm5vZGVJdGVtLml0ZW0pO1xuXG4gICAgICBpZiAodGhpcy5jYWxsYmFja3M/LnVuU2VsZWN0KSB7XG4gICAgICAgIHRoaXMuY2FsbGJhY2tzLnVuU2VsZWN0KHN0YXRlLm5vZGVJdGVtKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvcGFnYXRlKSB7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHN0YXRlLmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMuc2V0VW5jaGVja2VkKGNoaWxkLCBwcm9wYWdhdGUsIGlnbm9yZURpc2FibGVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhdGUucGFyZW50KSB7XG4gICAgICB0aGlzLmNoaWxkU3RhdGVDaGFuZ2VkKHN0YXRlLnBhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTZWxlY3RlZChpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBsZXQgaW5kZXggPSB0aGlzLnNlbGVjdGVkSXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgbGV0IHN0YXRlSW5kZXggPSB0aGlzLnNlbGVjdGVkU3RhdGVzLmZpbmRJbmRleChzID0+IHMubm9kZUl0ZW0uaXRlbSA9PT0gaXRlbSk7XG4gICAgaWYgKHN0YXRlSW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkU3RhdGVzLnNwbGljZShzdGF0ZUluZGV4LCAxKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zU3ViamVjdC5uZXh0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBoYXNOb0NoaWxkcmVuKHN0YXRlOiBOb2RlU3RhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXN0YXRlLmNoaWxkcmVuIHx8IHN0YXRlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkU2VsZWN0ZWQoc3RhdGU6IE5vZGVTdGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMuaW5kZXhPZihzdGF0ZS5ub2RlSXRlbS5pdGVtKSA9PT0gLTEpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKHN0YXRlLm5vZGVJdGVtLml0ZW0pO1xuICAgICAgdGhpcy5zZWxlY3RlZFN0YXRlcy5wdXNoKHN0YXRlKTtcbiAgICAgIGlmICh0aGlzLmNhbGxiYWNrcz8uc2VsZWN0KSB7XG4gICAgICAgIHRoaXMuY2FsbGJhY2tzLnNlbGVjdChzdGF0ZS5ub2RlSXRlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGN1cnJlbnQgPSBzdGF0ZS5wYXJlbnQ7XG4gICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMuaW5kZXhPZihjdXJyZW50Lm5vZGVJdGVtLml0ZW0pID09PSAtMSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChjdXJyZW50Lm5vZGVJdGVtLml0ZW0pO1xuICAgICAgICB0aGlzLnNlbGVjdGVkU3RhdGVzLnB1c2goY3VycmVudCk7XG4gICAgICB9XG4gICAgICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnQ7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zU3ViamVjdC5uZXh0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gIH1cblxuICBwdWJsaWMgcmVFdmFsdWF0ZVNlbGVjdGVkU3RhdGUoc3RhdGU6IE5vZGVTdGF0ZSk6IHZvaWQge1xuICAgIGlmICghVHJlZVNlcnZpY2UuaGFzTm9DaGlsZHJlbihzdGF0ZSkpIHtcbiAgICAgIHRoaXMuY2hpbGRTdGF0ZUNoYW5nZWQoc3RhdGUpO1xuXG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHN0YXRlLmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMucmVFdmFsdWF0ZVNlbGVjdGVkU3RhdGUoY2hpbGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hpbGRTdGF0ZUNoYW5nZWQoc3RhdGU6IE5vZGVTdGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFueUNoaWxkU2VsZWN0ZWQoc3RhdGUpKSB7XG4gICAgICBpZiAodGhpcy5hbGxDaGlsZHJlblNlbGVjdGVkKHN0YXRlKSkge1xuICAgICAgICBpZiAoc3RhdGUuc2hvd0NoZWNrYm94KSB7XG4gICAgICAgICAgc3RhdGUuc2VsZWN0ZWRTdGF0ZSA9IE5vZGVTZWxlY3RlZFN0YXRlLmNoZWNrZWQ7XG4gICAgICAgICAgc3RhdGUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgIGlmIChzdGF0ZS5ub2RlSXRlbS5pZCAhPT0gJzAnICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5pbmRleE9mKHN0YXRlLm5vZGVJdGVtLml0ZW0pID09PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goc3RhdGUubm9kZUl0ZW0uaXRlbSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RhdGVzLnB1c2goc3RhdGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZS5zZWxlY3RlZFN0YXRlID0gTm9kZVNlbGVjdGVkU3RhdGUuaW5kZXRlcm1pbmF0ZTtcbiAgICAgICAgICBzdGF0ZS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS5zZWxlY3RlZFN0YXRlID0gTm9kZVNlbGVjdGVkU3RhdGUuaW5kZXRlcm1pbmF0ZTtcbiAgICAgICAgc3RhdGUuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCFzdGF0ZS5zZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZXRVbmNoZWNrZWQoc3RhdGUsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdGUucGFyZW50KSB7XG4gICAgICB0aGlzLmNoaWxkU3RhdGVDaGFuZ2VkKHN0YXRlLnBhcmVudCk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zU3ViamVjdC5uZXh0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gIH1cblxuICBwcml2YXRlIGFueUNoaWxkU2VsZWN0ZWQoc3RhdGU6IE5vZGVTdGF0ZSk6IGJvb2xlYW4ge1xuXG5cbiAgICByZXR1cm4gc3RhdGUuY2hpbGRyZW4uZmluZCgoaXRlbTogTm9kZVN0YXRlKSA9PiBpdGVtLnNlbGVjdGVkU3RhdGUgPT09IE5vZGVTZWxlY3RlZFN0YXRlLmNoZWNrZWQgfHwgaXRlbS5zZWxlY3RlZFN0YXRlID09PSBOb2RlU2VsZWN0ZWRTdGF0ZS5pbmRldGVybWluYXRlKSAhPSBudWxsO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpbml0U3RhdGUocGFyZW50OiBOb2RlU3RhdGUsIG5vZGVJdGVtOiBOb2RlSXRlbTxhbnk+KTogTm9kZVN0YXRlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFyZW50OiBwYXJlbnQsXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgICBmaWx0ZXJlZENoaWxkcmVuOiBbXSxcbiAgICAgIGhhc0ZpbHRlcmVkQ2hpbGRyZW46IGZhbHNlLFxuICAgICAgbm9kZUl0ZW06IG5vZGVJdGVtLFxuICAgICAgZXhwYW5kZWQ6IG5vZGVJdGVtLmV4cGFuZGVkICE9PSBmYWxzZSxcbiAgICAgIGRpc2FibGVkOiBub2RlSXRlbS5kaXNhYmxlZCA9PT0gdHJ1ZSxcbiAgICAgIHNlbGVjdGVkU3RhdGU6IE5vZGVTZWxlY3RlZFN0YXRlLnVuQ2hlY2tlZCxcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgIHNob3dDaGVja2JveDogbm9kZUl0ZW0uc2hvd0NoZWNrYm94XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYWxsQ2hpbGRyZW5TZWxlY3RlZChzdGF0ZTogTm9kZVN0YXRlKTogYm9vbGVhbiB7XG4gICAgaWYgKHN0YXRlLm5vZGVJdGVtLmNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gc3RhdGUuY2hpbGRyZW4uZXZlcnkoaXQgPT4gaXQuc2VsZWN0ZWRTdGF0ZSA9PT0gTm9kZVNlbGVjdGVkU3RhdGUuY2hlY2tlZCkgJiYgc3RhdGUuY2hpbGRyZW4ubGVuZ3RoID09PSBzdGF0ZS5ub2RlSXRlbS5jaGlsZHJlbi5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzdGF0ZS5jaGlsZHJlbi5ldmVyeShpdCA9PiBpdC5zZWxlY3RlZFN0YXRlID09PSBOb2RlU2VsZWN0ZWRTdGF0ZS5jaGVja2VkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyQ2hhbmdlZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5maWx0ZXJWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuZmlsdGVyQ2hhbmdlU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgfVxufVxuIl19
@@ -112,11 +112,12 @@ var ICONS;
112
112
  ICONS[ICONS["unsuccess"] = 54] = "unsuccess";
113
113
  ICONS[ICONS["update"] = 55] = "update";
114
114
  ICONS[ICONS["user"] = 56] = "user";
115
- ICONS[ICONS["warning-circle"] = 57] = "warning-circle";
116
- ICONS[ICONS["hero-avatar-admin"] = 58] = "hero-avatar-admin";
117
- ICONS[ICONS["hero-avatar-regular"] = 59] = "hero-avatar-regular";
118
- ICONS[ICONS["hero-avatar-support"] = 60] = "hero-avatar-support";
119
- ICONS[ICONS["hero-avatar-blocked"] = 61] = "hero-avatar-blocked";
115
+ ICONS[ICONS["wallet"] = 57] = "wallet";
116
+ ICONS[ICONS["warning-circle"] = 58] = "warning-circle";
117
+ ICONS[ICONS["hero-avatar-admin"] = 59] = "hero-avatar-admin";
118
+ ICONS[ICONS["hero-avatar-regular"] = 60] = "hero-avatar-regular";
119
+ ICONS[ICONS["hero-avatar-support"] = 61] = "hero-avatar-support";
120
+ ICONS[ICONS["hero-avatar-blocked"] = 62] = "hero-avatar-blocked";
120
121
  })(ICONS || (ICONS = {}));
121
122
 
122
123
  class GravityButtonComponent {
@@ -4965,14 +4966,32 @@ class TreeService {
4965
4966
  return this.selectedItemsSubject.asObservable();
4966
4967
  }
4967
4968
  setInitialState() {
4968
- this.setInitialSelectedState(this.treeState);
4969
+ this.setInitialSelectedState();
4970
+ this.treeState.forEach(state => {
4971
+ this.reEvaluateSelectedState(state);
4972
+ });
4973
+ this.selectedItemsSubject.next(this.selectedItems);
4969
4974
  }
4970
- setInitialSelectedState(nodeStates) {
4971
- for (const state of nodeStates) {
4972
- if (state.nodeItem.selected && (!state.children || state.children.length === 0)) {
4973
- this.toggleSelectedState(state, true);
4975
+ setInitialSelectedState() {
4976
+ this.traverseAndInitialize(this.treeState);
4977
+ this.treeState.forEach(state => {
4978
+ this.reEvaluateSelectedState(state);
4979
+ });
4980
+ this.selectedItemsSubject.next(this.selectedItems);
4981
+ }
4982
+ traverseAndInitialize(states) {
4983
+ for (const state of states) {
4984
+ if (state.nodeItem.selected && state.showCheckbox && !state.disabled) {
4985
+ state.selected = true;
4986
+ state.selectedState = NodeSelectedState.checked;
4987
+ if (!this.selectedItems.includes(state.nodeItem.item)) {
4988
+ this.selectedItems.push(state.nodeItem.item);
4989
+ this.selectedStates.push(state);
4990
+ }
4991
+ }
4992
+ if (state.children?.length) {
4993
+ this.traverseAndInitialize(state.children);
4974
4994
  }
4975
- this.setInitialSelectedState(state.children);
4976
4995
  }
4977
4996
  }
4978
4997
  clear() {
@@ -5015,57 +5034,50 @@ class TreeService {
5015
5034
  return;
5016
5035
  }
5017
5036
  if (state.selectedState === NodeSelectedState.unChecked) {
5018
- this.setChecked(state, true, ignoreDisabled);
5019
- }
5020
- else if (state.selectedState === NodeSelectedState.checked) {
5021
- this.setUnchecked(state, true, ignoreDisabled);
5037
+ state.selectedState = NodeSelectedState.checked;
5038
+ state.selected = true;
5039
+ if (state.showCheckbox) {
5040
+ this.addSelected(state);
5041
+ }
5042
+ this.selectParents(state.parent);
5022
5043
  }
5023
5044
  else {
5024
- if (this.anyActiveSelected(state) && !state.selected) {
5025
- this.setUnchecked(state, true, ignoreDisabled);
5026
- }
5027
- else {
5028
- this.setChecked(state, true, ignoreDisabled);
5029
- }
5045
+ this.setUnchecked(state, state.showCheckbox, ignoreDisabled);
5030
5046
  }
5047
+ this.selectedItemsSubject.next(this.selectedItems);
5031
5048
  if (state.parent) {
5032
5049
  this.childStateChanged(state.parent);
5033
5050
  }
5034
5051
  }
5035
- setChecked(state, propagate, ignoreDisabled) {
5036
- if (state.disabled && !ignoreDisabled) {
5037
- return;
5038
- }
5039
- state.selectedState = NodeSelectedState.checked;
5040
- state.selected = true;
5041
- if (TreeService.hasNoChildren(state)) {
5042
- this.addSelected(state);
5043
- }
5044
- else if (propagate) {
5045
- for (const child of state.children) {
5046
- this.setChecked(child, propagate, ignoreDisabled);
5052
+ selectParents(state) {
5053
+ while (state) {
5054
+ if (state.showCheckbox) {
5055
+ state.selectedState = NodeSelectedState.checked;
5056
+ state.selected = true;
5057
+ this.addSelected(state);
5047
5058
  }
5059
+ state = state.parent;
5048
5060
  }
5049
5061
  }
5050
- setUnchecked(state, propagate, ignoreDisabled) {
5062
+ setUnchecked(state, propagate = false, ignoreDisabled) {
5051
5063
  if (state.disabled && !ignoreDisabled) {
5052
5064
  return;
5053
5065
  }
5054
- state.selectedState = NodeSelectedState.unChecked;
5055
- state.selected = false;
5056
- if (TreeService.hasNoChildren(state)) {
5066
+ if (state.showCheckbox) {
5067
+ state.selectedState = NodeSelectedState.unChecked;
5068
+ state.selected = false;
5057
5069
  this.removeSelected(state.nodeItem.item);
5058
5070
  if (this.callbacks?.unSelect) {
5059
5071
  this.callbacks.unSelect(state.nodeItem);
5060
5072
  }
5061
5073
  }
5062
- else if (propagate) {
5074
+ if (propagate) {
5063
5075
  for (const child of state.children) {
5064
5076
  this.setUnchecked(child, propagate, ignoreDisabled);
5065
5077
  }
5066
5078
  }
5067
- if (!this.anyChildSelected(state)) {
5068
- this.removeSelected(state.nodeItem.item);
5079
+ if (state.parent) {
5080
+ this.childStateChanged(state.parent);
5069
5081
  }
5070
5082
  }
5071
5083
  removeSelected(item) {
@@ -5073,16 +5085,32 @@ class TreeService {
5073
5085
  if (index !== -1) {
5074
5086
  this.selectedItems.splice(index, 1);
5075
5087
  }
5088
+ let stateIndex = this.selectedStates.findIndex(s => s.nodeItem.item === item);
5089
+ if (stateIndex !== -1) {
5090
+ this.selectedStates.splice(stateIndex, 1);
5091
+ }
5092
+ this.selectedItemsSubject.next(this.selectedItems);
5076
5093
  }
5077
5094
  static hasNoChildren(state) {
5078
5095
  return !state.children || state.children.length === 0;
5079
5096
  }
5080
5097
  addSelected(state) {
5081
- this.selectedItems.push(state.nodeItem.item);
5082
- this.selectedStates.push(state);
5083
- if (this.callbacks?.select) {
5084
- this.callbacks.select(state.nodeItem);
5098
+ if (this.selectedItems.indexOf(state.nodeItem.item) === -1) {
5099
+ this.selectedItems.push(state.nodeItem.item);
5100
+ this.selectedStates.push(state);
5101
+ if (this.callbacks?.select) {
5102
+ this.callbacks.select(state.nodeItem);
5103
+ }
5085
5104
  }
5105
+ let current = state.parent;
5106
+ while (current) {
5107
+ if (this.selectedItems.indexOf(current.nodeItem.item) === -1) {
5108
+ this.selectedItems.push(current.nodeItem.item);
5109
+ this.selectedStates.push(current);
5110
+ }
5111
+ current = current.parent;
5112
+ }
5113
+ this.selectedItemsSubject.next(this.selectedItems);
5086
5114
  }
5087
5115
  reEvaluateSelectedState(state) {
5088
5116
  if (!TreeService.hasNoChildren(state)) {
@@ -5094,26 +5122,32 @@ class TreeService {
5094
5122
  }
5095
5123
  childStateChanged(state) {
5096
5124
  if (this.anyChildSelected(state)) {
5097
- if (state.nodeItem.id != '0') {
5098
- let itemIndex = this.selectedItems.indexOf(state.nodeItem.item);
5099
- if (itemIndex === -1) {
5100
- this.selectedItems.push(state.nodeItem.item);
5101
- }
5102
- }
5103
5125
  if (this.allChildrenSelected(state)) {
5104
- this.setChecked(state, false);
5126
+ if (state.showCheckbox) {
5127
+ state.selectedState = NodeSelectedState.checked;
5128
+ state.selected = true;
5129
+ if (state.nodeItem.id !== '0' && this.selectedItems.indexOf(state.nodeItem.item) === -1) {
5130
+ this.selectedItems.push(state.nodeItem.item);
5131
+ this.selectedStates.push(state);
5132
+ }
5133
+ }
5134
+ else {
5135
+ state.selectedState = NodeSelectedState.indeterminate;
5136
+ state.selected = false;
5137
+ }
5105
5138
  }
5106
5139
  else {
5107
5140
  state.selectedState = NodeSelectedState.indeterminate;
5108
5141
  state.selected = false;
5109
5142
  }
5110
5143
  }
5111
- else {
5144
+ else if (!state.selected) {
5112
5145
  this.setUnchecked(state, false);
5113
5146
  }
5114
5147
  if (state.parent) {
5115
5148
  this.childStateChanged(state.parent);
5116
5149
  }
5150
+ this.selectedItemsSubject.next(this.selectedItems);
5117
5151
  }
5118
5152
  anyChildSelected(state) {
5119
5153
  return state.children.find((item) => item.selectedState === NodeSelectedState.checked || item.selectedState === NodeSelectedState.indeterminate) != null;
@@ -5140,15 +5174,6 @@ class TreeService {
5140
5174
  return state.children.every(it => it.selectedState === NodeSelectedState.checked);
5141
5175
  }
5142
5176
  }
5143
- anyActiveSelected(state) {
5144
- let result = state.children.filter(it => !it.disabled && it.selected).length > 0;
5145
- for (const child of state.children) {
5146
- if (!TreeService.hasNoChildren(child) && this.anyActiveSelected(child)) {
5147
- result = true;
5148
- }
5149
- }
5150
- return result;
5151
- }
5152
5177
  filterChanged(value) {
5153
5178
  this.filterValue = value;
5154
5179
  this.filterChangeSubject.next(value);