ets-fe-ng-sdk 18.0.19 → 18.0.21

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.
@@ -110,4 +110,4 @@ var ELoaderType;
110
110
  ELoaderType["ringRipples"] = "ringRipples";
111
111
  ELoaderType["fadingCircles"] = "fadingCircles";
112
112
  })(ELoaderType || (ELoaderType = {}));
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUVSLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDckcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDL0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDeEcsT0FBTyxFQUNMLElBQUksRUFDSixPQUFPLEVBQ1AsUUFBUSxFQUNSLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQVcsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBd0IxRCxN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QUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsVUFBVTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDOzhHQXZGVSxlQUFlO2tHQUFmLGVBQWUsNnlCQ25ENUIsdWlEQW9EQSx5RERYSSxZQUFZLG9GQUNaLHVCQUF1Qiw0REFDdkIscUJBQXFCLDBEQUNyQixvQkFBb0IseURBQ3BCLHNCQUFzQixzREFHdEIsZ0JBQWdCOzsyRkFHUCxlQUFlO2tCQXRCM0IsU0FBUzsrQkFDRSxRQUFRLGNBR04sSUFBSSxXQUdQO3dCQUNQLElBQUk7d0JBQ0osT0FBTzt3QkFDUCxRQUFRO3dCQUNSLFlBQVk7d0JBQ1osWUFBWTt3QkFDWix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxnQkFBZ0I7cUJBQ2pCO3NGQU1xQixRQUFRO3NCQUE3QixLQUFLO3VCQUFDLFNBQVM7O0FBbUdsQixJQUFLLFdBTUo7QUFORCxXQUFLLFdBQVc7SUFDZCxnREFBaUMsQ0FBQTtJQUNqQyw0Q0FBNkIsQ0FBQTtJQUM3Qix3Q0FBeUIsQ0FBQTtJQUN6QiwwQ0FBMkIsQ0FBQTtJQUMzQiw4Q0FBK0IsQ0FBQTtBQUNqQyxDQUFDLEVBTkksV0FBVyxLQUFYLFdBQVcsUUFNZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBzaWduYWwsXG4gIGlucHV0LFxuICBjb21wdXRlZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIGluamVjdCxcbiAgRGVzdHJveVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTREtUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgRmFkaW5nQ2lyY2xlc0NvbXBvbmVudCB9IGZyb20gJy4vbG9hZGVyLWFuaW1hdGlvbnMvZmFkaW5nLWNpcmNsZXMvZmFkaW5nLWNpcmNsZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFJpbmdSaXBwbGVzQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkZXItYW5pbWF0aW9ucy9yaW5nLXJpcHBsZXMvcmluZy1yaXBwbGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb3VuY2luZ0JhbGxDb21wb25lbnQgfSBmcm9tICcuL2xvYWRlci1hbmltYXRpb25zL2JvdW5jaW5nLWJhbGwvYm91bmNpbmctYmFsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmxpbmtpbmdCbG9ja3NDb21wb25lbnQgfSBmcm9tICcuL2xvYWRlci1hbmltYXRpb25zL2JsaW5raW5nLWJsb2Nrcy9ibGlua2luZy1ibG9ja3MuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIE5nSWYsXG4gIE5nU3R5bGUsXG4gIE5nU3dpdGNoLFxuICBOZ1N3aXRjaENhc2UsXG4gIE5nU3dpdGNoRGVmYXVsdCxcbiAgQXN5bmNQaXBlLFxuICBDb21tb25Nb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQYWdlTG9hZGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9wYWdlLWxvYWRlci5jbGFzcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgaW50ZXJ2YWwsIG9mLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsb2FkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbG9hZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIFxuICAvL1xuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ1N0eWxlLFxuICAgIE5nU3dpdGNoLFxuICAgIE5nU3dpdGNoQ2FzZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQmxpbmtpbmdCbG9ja3NDb21wb25lbnQsXG4gICAgQm91bmNpbmdCYWxsQ29tcG9uZW50LFxuICAgIFJpbmdSaXBwbGVzQ29tcG9uZW50LFxuICAgIEZhZGluZ0NpcmNsZXNDb21wb25lbnQsXG4gICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgIEFzeW5jUGlwZSxcbiAgICBTREtUcmFuc2xhdGVQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMb2FkZXJDb21wb25lbnQge1xuICBsb2FkZXIgPSBuZXcgUGFnZUxvYWRlcigpO1xuICBjbGFzcyA9IGlucHV0PGNsYXNzZXM+KCd2aC04MCcpO1xuICB0ZXh0ID0gaW5wdXQoJ0xvYWRpbmcnKTtcbiAgQElucHV0KCdsb2FkaW5nJykgc2V0IF9sb2FkaW5nKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHYpO1xuICB9XG4gIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdEhlaWdodCA9ICcxMDAlJztcblxuICBjb21wdXRlZEhlaWdodCA9IGNvbXB1dGVkPHN0cmluZyB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuaGVpZ2h0KCksXG4gICAgICBtaW5IZWlnaHQgPSAyMDAsXG4gICAgICByYXRpb0hXID0gdGhpcy5yYXRpb0hXKCksXG4gICAgICB3aWR0aCA9IHRoaXMud2lkdGgoKSxcbiAgICAgIGZpbmFsSGVpZ2h0ID0gaGVpZ2h0IHx8ICh3aWR0aCA/IE1hdGgucm91bmQod2lkdGggKiByYXRpb0hXKSA6IHVuZGVmaW5lZCk7XG4gICAgcmV0dXJuIGZpbmFsSGVpZ2h0XG4gICAgICA/IChmaW5hbEhlaWdodCA8IG1pbkhlaWdodCA/IG1pbkhlaWdodCA6IGZpbmFsSGVpZ2h0KSArICdweCdcbiAgICAgIDogdGhpcy5kZWZhdWx0SGVpZ2h0O1xuICB9KTtcblxuICBjb21wdXRlZE1pbkhlaWdodCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuY29tcHV0ZWRIZWlnaHQoKTtcbiAgICByZXR1cm4gaGVpZ2h0ID09IHRoaXMuZGVmYXVsdEhlaWdodCA/ICc4MHZoJyA6IGhlaWdodDtcbiAgfSk7XG5cbiAgY29tcHV0ZWRDbGFzcyA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIGNvbnN0IGNsYXNzcyA9IHRoaXMuY2xhc3MoKSxcbiAgICAgIGhlaWdodCA9IHRoaXMuY29tcHV0ZWRIZWlnaHQoKTtcbiAgICByZXR1cm4gaGVpZ2h0ID09IHRoaXMuZGVmYXVsdEhlaWdodCA/IGNsYXNzcyA6ICcnO1xuICB9KTtcblxuICBoZWlnaHQgPSBpbnB1dDxudW1iZXI+KCk7XG4gIHdpZHRoID0gaW5wdXQ8bnVtYmVyPigpO1xuICByYXRpb0hXID0gaW5wdXQ8bnVtYmVyPigzIC8gNCk7XG5cbiAgcmVhZG9ubHkgY3VycmVudExvYWRlckluZGV4ID0gc2lnbmFsKDApO1xuICByZWFkb25seSBsb2FkZXJUeXBlTGlzdCA9IHNpZ25hbDxFTG9hZGVyVHlwZVtdPihbXG4gICAgRUxvYWRlclR5cGUuZmFkaW5nQ2lyY2xlcyxcbiAgICBFTG9hZGVyVHlwZS5ibGlua2luZ0Jsb2NrcyxcbiAgICBFTG9hZGVyVHlwZS5ib3VuY2luZ0JhbGwsXG4gICAgRUxvYWRlclR5cGUucmluZ1JpcHBsZXMsXG4gIF0pO1xuICByZWFkb25seSBjdXJyZW50TG9hZGVyVHlwZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubG9hZGVyVHlwZUxpc3QoKVt0aGlzLmN1cnJlbnRMb2FkZXJJbmRleCgpXSk7XG4gIHJlYWRvbmx5IGxvYWRlclR5cGVzID0gc2lnbmFsKEVMb2FkZXJUeXBlKTtcbiAgcHJvdGVjdGVkIGRlc3Ryb3llclJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgY29uc3RydWN0b3IocHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBjb25zdCBzdWIgPSB0b09ic2VydmFibGUodGhpcy5sb2FkaW5nKVxuICAgICAgLnBpcGUoIFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBcbiAgICAgICAgc3dpdGNoTWFwKChsb2FkaW5nKSA9PlxuICAgICAgICAgIGxvYWRpbmdcbiAgICAgICAgICAgID8gaW50ZXJ2YWwoMTAwMDApLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRMb2FkZXJJbmRleCgpICsgMSA9PSB0aGlzLmxvYWRlclR5cGVMaXN0Lmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9hZGVySW5kZXguc2V0KDApO1xuICAgICAgICAgICAgICAgICAgZWxzZSB0aGlzLmN1cnJlbnRMb2FkZXJJbmRleC51cGRhdGUoKGkpID0+IGkgKyAxKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBvZihudWxsKS5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2FkZXJJbmRleC5zZXQoMCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLmRlc3Ryb3llclJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgc3ViPy51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIG5leHQoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudExvYWRlckluZGV4KCkgKyAxID09IHRoaXMubG9hZGVyVHlwZUxpc3QubGVuZ3RoKSB0aGlzLmN1cnJlbnRMb2FkZXJJbmRleC5zZXQoMCk7XG4gICAgZWxzZSB0aGlzLmN1cnJlbnRMb2FkZXJJbmRleC51cGRhdGUoKGkpID0+IGkgKyAxKTtcbiAgfVxuXG4gIHN0YXJ0TG9hZGVyKCkge1xuICAgIHRoaXMubG9hZGVyLnN0YXJ0UGwoKTtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRoaXMubG9hZGVyLmlzTG9hZGluZyk7XG4gIH1cbiAgc3RvcExvYWRlcigpIHtcbiAgICB0aGlzLmxvYWRlci5zdG9wUGwoKTtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRoaXMubG9hZGVyLmlzTG9hZGluZyk7XG4gIH1cbn1cblxudHlwZSBjbGFzc2VzID1cbiAgfCAndmgtMTAnXG4gIHwgJ3ZoLTIwJ1xuICB8ICd2aC0zMCdcbiAgfCAndmgtNDAnXG4gIHwgJ3ZoLTUwJ1xuICB8ICd2aC02MCdcbiAgfCAndmgtNzAnXG4gIHwgJ3ZoLTgwJ1xuICB8ICd2aC05MCdcbiAgfCAndmgtOTUnXG4gIHwgJ3ZoLTEwMCc7XG5cbmVudW0gRUxvYWRlclR5cGUge1xuICBibGlua2luZ0Jsb2NrcyA9ICdibGlua2luZ0Jsb2NrcycsXG4gIGJvdW5jaW5nQmFsbCA9ICdib3VuY2luZ0JhbGwnLFxuICBmYWRpbmdCYXJzID0gJ2ZhZGluZ0JhcnMnLFxuICByaW5nUmlwcGxlcyA9ICdyaW5nUmlwcGxlcycsXG4gIGZhZGluZ0NpcmNsZXMgPSAnZmFkaW5nQ2lyY2xlcycsXG59XG4iLCI8ZGl2IGNsYXNzPVwiaC0xMDBcIj5cbiAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJcIj5cbiAgICB7e2NvbXB1dGVkSGVpZ2h0KCkgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAge3tjbGFzcygpIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgIHt7Y29tcHV0ZWRDbGFzcygpIH19XG4gICAgPC9kaXY+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCIge3tjb21wdXRlZENsYXNzKCl9fSAgIGNlbnRlciAgXCIgaWQ9XCJsb2FkZXJcIiBbc3R5bGUuaGVpZ2h0XT1cImNvbXB1dGVkSGVpZ2h0KClcIiBbc3R5bGUubWluSGVpZ2h0XT1cImNvbXB1dGVkTWluSGVpZ2h0KClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICAgIHt7Y3VycmVudExvYWRlckluZGV4KCl9fVxuICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICBAc3dpdGNoIChjdXJyZW50TG9hZGVyVHlwZSgpKSB7XG4gICAgICAgICAgICBAY2FzZSAobG9hZGVyVHlwZXMoKS5ibGlua2luZ0Jsb2Nrcykge1xuICAgICAgICAgICAgICA8YmxpbmtpbmctYmxvY2tzIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAobG9hZGVyVHlwZXMoKS5ib3VuY2luZ0JhbGwpIHtcbiAgICAgICAgICAgICAgPGJvdW5jaW5nLWJhbGwgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwibG9hZGVyVHlwZXMuZmFkaW5nQmFyc1wiPlxuICAgICAgICAgICAgPGZhZGluZy1iYXJzPjwvZmFkaW5nLWJhcnM+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxuICAgICAgICAgICAgQGNhc2UgKGxvYWRlclR5cGVzKCkucmluZ1JpcHBsZXMpIHtcbiAgICAgICAgICAgICAgPHJpbmctcmlwcGxlcyAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKGxvYWRlclR5cGVzKCkuZmFkaW5nQ2lyY2xlcykge1xuICAgICAgICAgICAgICA8ZmFkaW5nLWNpcmNsZXMgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgPCEtLSA8YmxpbmtpbmctYmxvY2tzIC8+IC0tPlxuICAgICAgICAgICAgICA8ZmFkaW5nLWNpcmNsZXMgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKHRleHQoKSkge1xuICAgICAgICAgICAgPGg1IGNsYXNzPVwibXQtMiBub3NlbGVjdFwiPnt7IHRleHQoKSB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19PC9oNT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8ZGl2IFtoaWRkZW5dPVwibG9hZGluZygpXCIgI2NvbnQgY2xhc3M9XCJsb2FkaW5nLWNvbnRlbnQtY29udGFpbmVyXCI+XG4gICAgPCEtLSA8ZGl2ID4gLS0+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUVSLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDckcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDL0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDeEcsT0FBTyxFQUNMLElBQUksRUFDSixPQUFPLEVBQ1AsUUFBUSxFQUNSLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQVcsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBc0IxRCxN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QUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsVUFBVTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDOzhHQXZGVSxlQUFlO2tHQUFmLGVBQWUsNnlCQ2pENUIsdWlEQW9EQSx5RERiSSxZQUFZLG9GQUNaLHVCQUF1Qiw0REFDdkIscUJBQXFCLDBEQUNyQixvQkFBb0IseURBQ3BCLHNCQUFzQixzREFHdEIsZ0JBQWdCOzsyRkFHUCxlQUFlO2tCQXBCM0IsU0FBUzsrQkFDRSxRQUFRLGNBR04sSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osT0FBTzt3QkFDUCxRQUFRO3dCQUNSLFlBQVk7d0JBQ1osWUFBWTt3QkFDWix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxnQkFBZ0I7cUJBQ2pCO3NGQU1xQixRQUFRO3NCQUE3QixLQUFLO3VCQUFDLFNBQVM7O0FBbUdsQixJQUFLLFdBTUo7QUFORCxXQUFLLFdBQVc7SUFDZCxnREFBaUMsQ0FBQTtJQUNqQyw0Q0FBNkIsQ0FBQTtJQUM3Qix3Q0FBeUIsQ0FBQTtJQUN6QiwwQ0FBMkIsQ0FBQTtJQUMzQiw4Q0FBK0IsQ0FBQTtBQUNqQyxDQUFDLEVBTkksV0FBVyxLQUFYLFdBQVcsUUFNZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBzaWduYWwsXG4gIGlucHV0LFxuICBjb21wdXRlZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIGluamVjdCxcbiAgRGVzdHJveVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTREtUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgRmFkaW5nQ2lyY2xlc0NvbXBvbmVudCB9IGZyb20gJy4vbG9hZGVyLWFuaW1hdGlvbnMvZmFkaW5nLWNpcmNsZXMvZmFkaW5nLWNpcmNsZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFJpbmdSaXBwbGVzQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkZXItYW5pbWF0aW9ucy9yaW5nLXJpcHBsZXMvcmluZy1yaXBwbGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb3VuY2luZ0JhbGxDb21wb25lbnQgfSBmcm9tICcuL2xvYWRlci1hbmltYXRpb25zL2JvdW5jaW5nLWJhbGwvYm91bmNpbmctYmFsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmxpbmtpbmdCbG9ja3NDb21wb25lbnQgfSBmcm9tICcuL2xvYWRlci1hbmltYXRpb25zL2JsaW5raW5nLWJsb2Nrcy9ibGlua2luZy1ibG9ja3MuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIE5nSWYsXG4gIE5nU3R5bGUsXG4gIE5nU3dpdGNoLFxuICBOZ1N3aXRjaENhc2UsXG4gIE5nU3dpdGNoRGVmYXVsdCxcbiAgQXN5bmNQaXBlLFxuICBDb21tb25Nb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQYWdlTG9hZGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9wYWdlLWxvYWRlci5jbGFzcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgaW50ZXJ2YWwsIG9mLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsb2FkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbG9hZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsIFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ1N0eWxlLFxuICAgIE5nU3dpdGNoLFxuICAgIE5nU3dpdGNoQ2FzZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQmxpbmtpbmdCbG9ja3NDb21wb25lbnQsXG4gICAgQm91bmNpbmdCYWxsQ29tcG9uZW50LFxuICAgIFJpbmdSaXBwbGVzQ29tcG9uZW50LFxuICAgIEZhZGluZ0NpcmNsZXNDb21wb25lbnQsXG4gICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgIEFzeW5jUGlwZSxcbiAgICBTREtUcmFuc2xhdGVQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMb2FkZXJDb21wb25lbnQge1xuICBsb2FkZXIgPSBuZXcgUGFnZUxvYWRlcigpO1xuICBjbGFzcyA9IGlucHV0PGNsYXNzZXM+KCd2aC04MCcpO1xuICB0ZXh0ID0gaW5wdXQoJ0xvYWRpbmcnKTtcbiAgQElucHV0KCdsb2FkaW5nJykgc2V0IF9sb2FkaW5nKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHYpO1xuICB9XG4gIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdEhlaWdodCA9ICcxMDAlJztcblxuICBjb21wdXRlZEhlaWdodCA9IGNvbXB1dGVkPHN0cmluZyB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuaGVpZ2h0KCksXG4gICAgICBtaW5IZWlnaHQgPSAyMDAsXG4gICAgICByYXRpb0hXID0gdGhpcy5yYXRpb0hXKCksXG4gICAgICB3aWR0aCA9IHRoaXMud2lkdGgoKSxcbiAgICAgIGZpbmFsSGVpZ2h0ID0gaGVpZ2h0IHx8ICh3aWR0aCA/IE1hdGgucm91bmQod2lkdGggKiByYXRpb0hXKSA6IHVuZGVmaW5lZCk7XG4gICAgcmV0dXJuIGZpbmFsSGVpZ2h0XG4gICAgICA/IChmaW5hbEhlaWdodCA8IG1pbkhlaWdodCA/IG1pbkhlaWdodCA6IGZpbmFsSGVpZ2h0KSArICdweCdcbiAgICAgIDogdGhpcy5kZWZhdWx0SGVpZ2h0O1xuICB9KTtcblxuICBjb21wdXRlZE1pbkhlaWdodCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuY29tcHV0ZWRIZWlnaHQoKTtcbiAgICByZXR1cm4gaGVpZ2h0ID09IHRoaXMuZGVmYXVsdEhlaWdodCA/ICc4MHZoJyA6IGhlaWdodDtcbiAgfSk7XG5cbiAgY29tcHV0ZWRDbGFzcyA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIGNvbnN0IGNsYXNzcyA9IHRoaXMuY2xhc3MoKSxcbiAgICAgIGhlaWdodCA9IHRoaXMuY29tcHV0ZWRIZWlnaHQoKTtcbiAgICByZXR1cm4gaGVpZ2h0ID09IHRoaXMuZGVmYXVsdEhlaWdodCA/IGNsYXNzcyA6ICcnO1xuICB9KTtcblxuICBoZWlnaHQgPSBpbnB1dDxudW1iZXI+KCk7XG4gIHdpZHRoID0gaW5wdXQ8bnVtYmVyPigpO1xuICByYXRpb0hXID0gaW5wdXQ8bnVtYmVyPigzIC8gNCk7XG5cbiAgcmVhZG9ubHkgY3VycmVudExvYWRlckluZGV4ID0gc2lnbmFsKDApO1xuICByZWFkb25seSBsb2FkZXJUeXBlTGlzdCA9IHNpZ25hbDxFTG9hZGVyVHlwZVtdPihbXG4gICAgRUxvYWRlclR5cGUuZmFkaW5nQ2lyY2xlcyxcbiAgICBFTG9hZGVyVHlwZS5ibGlua2luZ0Jsb2NrcyxcbiAgICBFTG9hZGVyVHlwZS5ib3VuY2luZ0JhbGwsXG4gICAgRUxvYWRlclR5cGUucmluZ1JpcHBsZXMsXG4gIF0pO1xuICByZWFkb25seSBjdXJyZW50TG9hZGVyVHlwZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubG9hZGVyVHlwZUxpc3QoKVt0aGlzLmN1cnJlbnRMb2FkZXJJbmRleCgpXSk7XG4gIHJlYWRvbmx5IGxvYWRlclR5cGVzID0gc2lnbmFsKEVMb2FkZXJUeXBlKTtcbiAgcHJvdGVjdGVkIGRlc3Ryb3llclJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgY29uc3RydWN0b3IocHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBjb25zdCBzdWIgPSB0b09ic2VydmFibGUodGhpcy5sb2FkaW5nKVxuICAgICAgLnBpcGUoIFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBcbiAgICAgICAgc3dpdGNoTWFwKChsb2FkaW5nKSA9PlxuICAgICAgICAgIGxvYWRpbmdcbiAgICAgICAgICAgID8gaW50ZXJ2YWwoMTAwMDApLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRMb2FkZXJJbmRleCgpICsgMSA9PSB0aGlzLmxvYWRlclR5cGVMaXN0Lmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9hZGVySW5kZXguc2V0KDApO1xuICAgICAgICAgICAgICAgICAgZWxzZSB0aGlzLmN1cnJlbnRMb2FkZXJJbmRleC51cGRhdGUoKGkpID0+IGkgKyAxKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBvZihudWxsKS5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2FkZXJJbmRleC5zZXQoMCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLmRlc3Ryb3llclJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgc3ViPy51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIG5leHQoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudExvYWRlckluZGV4KCkgKyAxID09IHRoaXMubG9hZGVyVHlwZUxpc3QubGVuZ3RoKSB0aGlzLmN1cnJlbnRMb2FkZXJJbmRleC5zZXQoMCk7XG4gICAgZWxzZSB0aGlzLmN1cnJlbnRMb2FkZXJJbmRleC51cGRhdGUoKGkpID0+IGkgKyAxKTtcbiAgfVxuXG4gIHN0YXJ0TG9hZGVyKCkge1xuICAgIHRoaXMubG9hZGVyLnN0YXJ0UGwoKTtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRoaXMubG9hZGVyLmlzTG9hZGluZyk7XG4gIH1cbiAgc3RvcExvYWRlcigpIHtcbiAgICB0aGlzLmxvYWRlci5zdG9wUGwoKTtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRoaXMubG9hZGVyLmlzTG9hZGluZyk7XG4gIH1cbn1cblxudHlwZSBjbGFzc2VzID1cbiAgfCAndmgtMTAnXG4gIHwgJ3ZoLTIwJ1xuICB8ICd2aC0zMCdcbiAgfCAndmgtNDAnXG4gIHwgJ3ZoLTUwJ1xuICB8ICd2aC02MCdcbiAgfCAndmgtNzAnXG4gIHwgJ3ZoLTgwJ1xuICB8ICd2aC05MCdcbiAgfCAndmgtOTUnXG4gIHwgJ3ZoLTEwMCc7XG5cbmVudW0gRUxvYWRlclR5cGUge1xuICBibGlua2luZ0Jsb2NrcyA9ICdibGlua2luZ0Jsb2NrcycsXG4gIGJvdW5jaW5nQmFsbCA9ICdib3VuY2luZ0JhbGwnLFxuICBmYWRpbmdCYXJzID0gJ2ZhZGluZ0JhcnMnLFxuICByaW5nUmlwcGxlcyA9ICdyaW5nUmlwcGxlcycsXG4gIGZhZGluZ0NpcmNsZXMgPSAnZmFkaW5nQ2lyY2xlcycsXG59XG4iLCI8ZGl2IGNsYXNzPVwiaC0xMDBcIj5cbiAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJcIj5cbiAgICB7e2NvbXB1dGVkSGVpZ2h0KCkgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAge3tjbGFzcygpIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgIHt7Y29tcHV0ZWRDbGFzcygpIH19XG4gICAgPC9kaXY+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCIge3tjb21wdXRlZENsYXNzKCl9fSAgIGNlbnRlciAgXCIgaWQ9XCJsb2FkZXJcIiBbc3R5bGUuaGVpZ2h0XT1cImNvbXB1dGVkSGVpZ2h0KClcIiBbc3R5bGUubWluSGVpZ2h0XT1cImNvbXB1dGVkTWluSGVpZ2h0KClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICAgIHt7Y3VycmVudExvYWRlckluZGV4KCl9fVxuICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICBAc3dpdGNoIChjdXJyZW50TG9hZGVyVHlwZSgpKSB7XG4gICAgICAgICAgICBAY2FzZSAobG9hZGVyVHlwZXMoKS5ibGlua2luZ0Jsb2Nrcykge1xuICAgICAgICAgICAgICA8YmxpbmtpbmctYmxvY2tzIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAobG9hZGVyVHlwZXMoKS5ib3VuY2luZ0JhbGwpIHtcbiAgICAgICAgICAgICAgPGJvdW5jaW5nLWJhbGwgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwibG9hZGVyVHlwZXMuZmFkaW5nQmFyc1wiPlxuICAgICAgICAgICAgPGZhZGluZy1iYXJzPjwvZmFkaW5nLWJhcnM+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxuICAgICAgICAgICAgQGNhc2UgKGxvYWRlclR5cGVzKCkucmluZ1JpcHBsZXMpIHtcbiAgICAgICAgICAgICAgPHJpbmctcmlwcGxlcyAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKGxvYWRlclR5cGVzKCkuZmFkaW5nQ2lyY2xlcykge1xuICAgICAgICAgICAgICA8ZmFkaW5nLWNpcmNsZXMgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgPCEtLSA8YmxpbmtpbmctYmxvY2tzIC8+IC0tPlxuICAgICAgICAgICAgICA8ZmFkaW5nLWNpcmNsZXMgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKHRleHQoKSkge1xuICAgICAgICAgICAgPGg1IGNsYXNzPVwibXQtMiBub3NlbGVjdFwiPnt7IHRleHQoKSB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19PC9oNT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8ZGl2IFtoaWRkZW5dPVwibG9hZGluZygpXCIgI2NvbnQgY2xhc3M9XCJsb2FkaW5nLWNvbnRlbnQtY29udGFpbmVyXCI+XG4gICAgPCEtLSA8ZGl2ID4gLS0+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -23,7 +23,7 @@ export class ToggleInputFormComponent {
23
23
  this.deleteFromFormFunc = input();
24
24
  this.gridNo = model(6);
25
25
  this.labelField = input();
26
- this.labelSeperator = input(' - ');
26
+ this.labelSeparator = input(' - ');
27
27
  this.searchQuery = model();
28
28
  this.showToggleAll = input(true);
29
29
  this.valueField = input.required();
@@ -45,10 +45,10 @@ export class ToggleInputFormComponent {
45
45
  return typeof _checkedPredicate == 'function' ? _checkedPredicate : null;
46
46
  });
47
47
  this.initialList = computed(() => {
48
- const list = this._list() || [], valueField = this.valueField(), labelField = this.labelField(), labelSeperator = this.labelSeperator(), checkedField = this.checkedField(), checkedPredicate = this.checkedPredicate(), labelFields = labelField ? (Array.isArray(labelField) ? labelField : [labelField]) : null;
48
+ const list = this._list() || [], valueField = this.valueField(), labelField = this.labelField(), labelSeparator = this.labelSeparator(), checkedField = this.checkedField(), checkedPredicate = this.checkedPredicate(), labelFields = labelField ? (Array.isArray(labelField) ? labelField : [labelField]) : null;
49
49
  return list.map((option) => ({
50
50
  value: option[valueField],
51
- label: EVFunctions.strConcatenator2(labelFields.map((labelField) => option?.[labelField]), labelSeperator),
51
+ label: EVFunctions.strConcatenator2(labelFields.map((labelField) => option?.[labelField]), labelSeparator),
52
52
  originalRow: option,
53
53
  initiallyChecked: checkedField ? !!option[checkedField] : checkedPredicate?.(option),
54
54
  }));
@@ -82,7 +82,7 @@ export class ToggleInputFormComponent {
82
82
  this.toggleAll({ checked: true });
83
83
  }
84
84
  }, { allowSignalWrites: true });
85
- this.columnLengths = signal([
85
+ this.columnLengths = computed(() => [
86
86
  { label: `List`, value: 1 },
87
87
  { label: `Dual`, value: 2 },
88
88
  { label: `Triple`, value: 3 },
@@ -134,9 +134,10 @@ export class ToggleInputFormComponent {
134
134
  }
135
135
  reset() {
136
136
  this.hasHandledDefaultToggle.set(false);
137
+ this.selectedMap.set({});
137
138
  }
138
139
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ToggleInputFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: ToggleInputFormComponent, isStandalone: true, selector: "toggle-input-form", inputs: { addToFormFunc: { classPropertyName: "addToFormFunc", publicName: "addToFormFunc", isSignal: true, isRequired: false, transformFunction: null }, defaultToggleAll: { classPropertyName: "defaultToggleAll", publicName: "defaultToggleAll", isSignal: true, isRequired: false, transformFunction: null }, deleteFromFormFunc: { classPropertyName: "deleteFromFormFunc", publicName: "deleteFromFormFunc", isSignal: true, isRequired: false, transformFunction: null }, gridNo: { classPropertyName: "gridNo", publicName: "gridNo", isSignal: true, isRequired: false, transformFunction: null }, labelField: { classPropertyName: "labelField", publicName: "labelField", isSignal: true, isRequired: false, transformFunction: null }, labelSeperator: { classPropertyName: "labelSeperator", publicName: "labelSeperator", isSignal: true, isRequired: false, transformFunction: null }, searchQuery: { classPropertyName: "searchQuery", publicName: "searchQuery", isSignal: true, isRequired: false, transformFunction: null }, showToggleAll: { classPropertyName: "showToggleAll", publicName: "showToggleAll", isSignal: true, isRequired: false, transformFunction: null }, valueField: { classPropertyName: "valueField", publicName: "valueField", isSignal: true, isRequired: true, transformFunction: null }, checkedChecker: { classPropertyName: "checkedChecker", publicName: "checkedChecker", isSignal: true, isRequired: true, transformFunction: null }, _list: { classPropertyName: "_list", publicName: "list", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { gridNo: "gridNoChange", searchQuery: "searchQueryChange", selected: "selected" }, ngImport: i0, template: "<div class=\"pb-3\">\n <div class=\"row align-items-center justify-content-between g-3\">\n <div class=\"col-lg-auto\">\n <mat-slide-toggle (change)=\"toggleAll($event)\" [checked]=\"defaultToggleAll()\">\n {{ 'Toggle All' | appTranslate | async }}\n </mat-slide-toggle>\n </div>\n <div class=\"col-lg d-flex justify-content-end\">\n <div class=\"row align-items-center g-3\">\n <div class=\"col-auto\">\n <app-btn\n iconBtn\n [showHelpIcon]=\"false\"\n help=\"{{ searchBox.hidden ? 'Open search' : 'Close search' }}\"\n [icon]=\"searchBox.hidden ? 'search' : 'close'\"\n (mclick)=\"searchBox.hidden = !searchBox.hidden\" />\n </div>\n <div class=\"col-auto\" [hidden]=\"true\" #searchBox>\n <app-input-td-rf\n type=\"text\"\n [noFormat]=\"true\"\n [showLabel]=\"false\"\n placeholder=\"Type to search\"\n [(model)]=\"searchQuery\" />\n </div>\n <div class=\"col-auto\">\n <app-btn\n customIcon=\"fa fa-list\"\n [showHelpIcon]=\"false\"\n help=\"Grid Style\"\n [matMenuTriggerFor]=\"gridMenu\" />\n <mat-menu #gridMenu=\"matMenu\" class=\"\">\n @for (item of columnLengths(); track item.value) {\n <button\n mat-menu-item\n (click)=\"gridNo.set(item.value)\"\n [ngClass]=\"{ 'text-primary': item.value == _currentGrid() }\">\n {{ item.label | appTranslate | async }}\n </button>\n }\n </mat-menu>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div\n class=\"row row-cols-md-{{ mdGrid() }} row-cols-lg-{{ lgGrid() }} row-cols-xxl-{{\n xxlGrid()\n }} g-3\">\n @for (item of list() | filterArrayByString: searchQuery() : ['label']; track item.value) {\n <div class=\"\">\n <div class=\"border rounded-10 p-10\">\n <div class=\"row align-items-center\">\n <div\n class=\"col text-ellipsis\"\n [matTooltip]=\"ele.innerText\"\n [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n #ele>\n {{ item.label }}\n </div>\n <div class=\"col-auto\">\n <mat-slide-toggle\n [checked]=\"item.checked\"\n (change)=\"toggleItem($event, item)\" />\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "pipe", type: FilterArrayByStringPipe, name: "filterArrayByString" }, { kind: "component", type: InputTD_RFComponent, selector: "app-input-td-rf", inputs: ["validators", "asyncValidators", "model"], outputs: ["modelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: ToggleInputFormComponent, isStandalone: true, selector: "toggle-input-form", inputs: { addToFormFunc: { classPropertyName: "addToFormFunc", publicName: "addToFormFunc", isSignal: true, isRequired: false, transformFunction: null }, defaultToggleAll: { classPropertyName: "defaultToggleAll", publicName: "defaultToggleAll", isSignal: true, isRequired: false, transformFunction: null }, deleteFromFormFunc: { classPropertyName: "deleteFromFormFunc", publicName: "deleteFromFormFunc", isSignal: true, isRequired: false, transformFunction: null }, gridNo: { classPropertyName: "gridNo", publicName: "gridNo", isSignal: true, isRequired: false, transformFunction: null }, labelField: { classPropertyName: "labelField", publicName: "labelField", isSignal: true, isRequired: false, transformFunction: null }, labelSeparator: { classPropertyName: "labelSeparator", publicName: "labelSeparator", isSignal: true, isRequired: false, transformFunction: null }, searchQuery: { classPropertyName: "searchQuery", publicName: "searchQuery", isSignal: true, isRequired: false, transformFunction: null }, showToggleAll: { classPropertyName: "showToggleAll", publicName: "showToggleAll", isSignal: true, isRequired: false, transformFunction: null }, valueField: { classPropertyName: "valueField", publicName: "valueField", isSignal: true, isRequired: true, transformFunction: null }, checkedChecker: { classPropertyName: "checkedChecker", publicName: "checkedChecker", isSignal: true, isRequired: true, transformFunction: null }, _list: { classPropertyName: "_list", publicName: "list", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { gridNo: "gridNoChange", searchQuery: "searchQueryChange", selected: "selected" }, ngImport: i0, template: "<div class=\"pb-3\">\n <div class=\"row align-items-center justify-content-between g-3\">\n <div class=\"col-lg-auto\">\n <mat-slide-toggle (change)=\"toggleAll($event)\" [checked]=\"defaultToggleAll()\">\n {{ 'Toggle All' | appTranslate | async }}\n </mat-slide-toggle>\n </div>\n <div class=\"col-lg d-flex justify-content-end\">\n <div class=\"row align-items-center g-3\">\n <div class=\"col-auto\">\n <app-btn\n iconBtn\n [showHelpIcon]=\"false\"\n help=\"{{ searchBox.hidden ? 'Open search' : 'Close search' }}\"\n [icon]=\"searchBox.hidden ? 'search' : 'close'\"\n (mclick)=\"searchBox.hidden = !searchBox.hidden\" />\n </div>\n <div class=\"col-auto\" [hidden]=\"true\" #searchBox>\n <app-input-td-rf\n type=\"text\"\n [noFormat]=\"true\"\n [showLabel]=\"false\"\n placeholder=\"Type to search\"\n [(model)]=\"searchQuery\" />\n </div>\n <div class=\"col-auto\">\n <app-btn\n customIcon=\"fa fa-list\"\n [showHelpIcon]=\"false\"\n help=\"Grid Style\"\n [matMenuTriggerFor]=\"gridMenu\" />\n <mat-menu #gridMenu=\"matMenu\" class=\"\">\n @for (item of columnLengths(); track item.value) {\n <button\n mat-menu-item\n (click)=\"gridNo.set(item.value)\"\n [ngClass]=\"{ 'text-primary': item.value == _currentGrid() }\">\n {{ item.label | appTranslate | async }}\n </button>\n }\n </mat-menu>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div\n class=\"row row-cols-md-{{ mdGrid() }} row-cols-lg-{{ lgGrid() }} row-cols-xxl-{{\n xxlGrid()\n }} g-3\">\n @for (item of list() | filterArrayByString: searchQuery() : ['label']; track item.value) {\n <div class=\"\">\n <div class=\"border rounded-10 p-10\">\n <div class=\"row align-items-center\">\n <div\n class=\"col text-ellipsis\"\n [matTooltip]=\"ele.innerText\"\n [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n #ele>\n {{ item.label }}\n </div>\n <div class=\"col-auto\">\n <mat-slide-toggle\n [checked]=\"item.checked\"\n (change)=\"toggleItem($event, item)\" />\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "pipe", type: FilterArrayByStringPipe, name: "filterArrayByString" }, { kind: "component", type: InputTD_RFComponent, selector: "app-input-td-rf", inputs: ["validators", "asyncValidators", "model"], outputs: ["modelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
140
141
  }
141
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ToggleInputFormComponent, decorators: [{
142
143
  type: Component,
@@ -152,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
152
153
  SDKTranslatePipe,
153
154
  ], template: "<div class=\"pb-3\">\n <div class=\"row align-items-center justify-content-between g-3\">\n <div class=\"col-lg-auto\">\n <mat-slide-toggle (change)=\"toggleAll($event)\" [checked]=\"defaultToggleAll()\">\n {{ 'Toggle All' | appTranslate | async }}\n </mat-slide-toggle>\n </div>\n <div class=\"col-lg d-flex justify-content-end\">\n <div class=\"row align-items-center g-3\">\n <div class=\"col-auto\">\n <app-btn\n iconBtn\n [showHelpIcon]=\"false\"\n help=\"{{ searchBox.hidden ? 'Open search' : 'Close search' }}\"\n [icon]=\"searchBox.hidden ? 'search' : 'close'\"\n (mclick)=\"searchBox.hidden = !searchBox.hidden\" />\n </div>\n <div class=\"col-auto\" [hidden]=\"true\" #searchBox>\n <app-input-td-rf\n type=\"text\"\n [noFormat]=\"true\"\n [showLabel]=\"false\"\n placeholder=\"Type to search\"\n [(model)]=\"searchQuery\" />\n </div>\n <div class=\"col-auto\">\n <app-btn\n customIcon=\"fa fa-list\"\n [showHelpIcon]=\"false\"\n help=\"Grid Style\"\n [matMenuTriggerFor]=\"gridMenu\" />\n <mat-menu #gridMenu=\"matMenu\" class=\"\">\n @for (item of columnLengths(); track item.value) {\n <button\n mat-menu-item\n (click)=\"gridNo.set(item.value)\"\n [ngClass]=\"{ 'text-primary': item.value == _currentGrid() }\">\n {{ item.label | appTranslate | async }}\n </button>\n }\n </mat-menu>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div\n class=\"row row-cols-md-{{ mdGrid() }} row-cols-lg-{{ lgGrid() }} row-cols-xxl-{{\n xxlGrid()\n }} g-3\">\n @for (item of list() | filterArrayByString: searchQuery() : ['label']; track item.value) {\n <div class=\"\">\n <div class=\"border rounded-10 p-10\">\n <div class=\"row align-items-center\">\n <div\n class=\"col text-ellipsis\"\n [matTooltip]=\"ele.innerText\"\n [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n #ele>\n {{ item.label }}\n </div>\n <div class=\"col-auto\">\n <mat-slide-toggle\n [checked]=\"item.checked\"\n (change)=\"toggleItem($event, item)\" />\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block}\n"] }]
154
155
  }] });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWlucHV0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL3RvZ2dsZS1pbnB1dC1mb3JtL3RvZ2dsZS1pbnB1dC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy90b2dnbGUtaW5wdXQtZm9ybS90b2dnbGUtaW5wdXQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFFVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sdUJBQXVCLEdBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7OztBQXFCOUQsTUFBTSxPQUFPLHdCQUF3QjtJQWxCckM7UUFtQnFCLE9BQUUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdEMsa0JBQWEsR0FBRyxLQUFLLEVBQTJCLENBQUM7UUFDakQscUJBQWdCLEdBQUcsS0FBSyxFQUFXLENBQUM7UUFDcEMsdUJBQWtCLEdBQUcsS0FBSyxFQUEyQixDQUFDO1FBQ3RELFdBQU0sR0FBRyxLQUFLLENBQVcsQ0FBQyxDQUFDLENBQUM7UUFDNUIsZUFBVSxHQUFHLEtBQUssRUFBcUMsQ0FBQztRQUN4RCxtQkFBYyxHQUFHLEtBQUssQ0FBUyxLQUFLLENBQUMsQ0FBQztRQUN0QyxnQkFBVyxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQzlCLGtCQUFhLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUF1QyxDQUFDO1FBQzVFOzs7O2FBSUs7UUFDSSxtQkFBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWtELENBQUM7UUFDbEYsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUVyRCxhQUFRLEdBQUcsTUFBTSxFQUFhLENBQUM7UUFFeEMsa0VBQWtFO1FBQy9DLGlCQUFZLEdBQUcsUUFBUSxDQUFnQixHQUFHLEVBQUU7WUFDN0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDaEQsT0FBTyxPQUFPLGlCQUFpQixJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUMzRSxDQUFDLENBQUMsQ0FBQztRQUNnQixxQkFBZ0IsR0FBRyxRQUFRLENBQStCLEdBQUcsRUFBRTtZQUNoRixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoRCxPQUFPLE9BQU8saUJBQWlCLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzNFLENBQUMsQ0FBQyxDQUFDO1FBQ2dCLGdCQUFXLEdBQUcsUUFBUSxDQUEyQixHQUFHLEVBQUU7WUFDdkUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFDN0IsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFDOUIsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFDOUIsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFDdEMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFDbEMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQzFDLFdBQVcsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUU1RixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLEtBQUssRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUN6QixLQUFLLEVBQUUsV0FBVyxDQUFDLGdCQUFnQixDQUNqQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQVcsQ0FBQyxFQUMvRCxjQUFjLENBQ2Y7Z0JBQ0QsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFNLENBQUM7YUFDckYsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUNnQixnQkFBVyxHQUFHLE1BQU0sQ0FBK0IsRUFBRSxDQUFDLENBQUM7UUFDdkQsU0FBSSxHQUFHLFFBQVEsQ0FBMkIsR0FBRyxFQUFFO1lBQ2hFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQzFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1lBRXpDLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNoQyxPQUFPO29CQUNMLEdBQUcsTUFBTTtvQkFDVCxPQUFPLEVBQ0wsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0I7aUJBQzFGLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRWdCLDRCQUF1QixHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVqRCxpQkFBWSxHQUFHLE1BQU0sQ0FBUyxTQUFTLENBQUMsQ0FBQztRQUNuRCxnQkFBVyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNoRCxZQUFPLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELFdBQU0sR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFO1lBQ2hELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQixPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNnQixXQUFNLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRTtZQUNoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQ3ZCLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekIsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO1FBRWdCLDJCQUFzQixHQUFHLE1BQU0sQ0FDaEQsR0FBRyxFQUFFO1lBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUN0QixnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFDMUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFFM0QsSUFBSSxDQUFDLHVCQUF1QixJQUFJLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ2pGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7UUFFaUIsa0JBQWEsR0FBRyxNQUFNLENBQXVDO1lBQzlFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQzdCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQzdCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1NBQy9CLENBQUMsQ0FBQztLQW1ESjtJQWpEVyxVQUFVLENBQUMsQ0FBdUIsRUFBRSxJQUE0QixFQUFFLElBQUksR0FBRyxJQUFJO1FBQ3JGLElBQUksQ0FBQyxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzs7WUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVTLFNBQVMsQ0FBQyxJQUE0QixFQUFFLElBQUksR0FBRyxJQUFJO1FBQzNELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUNsQixJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxXQUFXLENBQUMsSUFBNEIsRUFBRSxJQUFJLEdBQUcsSUFBSTtRQUM3RCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFDbEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxTQUFTLENBQUMsQ0FBdUI7UUFDekMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxDQUFDLE9BQU87WUFDWCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUM7O1lBRUgsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLElBQUksQ0FBQyxJQUFJLEVBQUU7YUFDUixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7YUFDeEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQzdCLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDOzhHQXJKVSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwyckRDOUNyQyw4K0VBdUVBLCtFRHBDSSxZQUFZLGlMQUNaLG9CQUFvQixtV0FDcEIsWUFBWSw4ZkFDWix1QkFBdUIsNERBQ3ZCLG1CQUFtQix5SUFDbkIsV0FBVyw4QkFDWCxnQkFBZ0IsNFRBQ2hCLGFBQWEseXZCQUNiLGdCQUFnQjs7MkZBR1Asd0JBQXdCO2tCQWxCcEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgSW5wdXRTZXJ2aWNlIH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25MYWJlbFR5cGUgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRURF9SRkNvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0L2lucHV0LXRkLXJmLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNES1RyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBGaWx0ZXJBcnJheUJ5U3RyaW5nUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3V0aWxpdHkucGlwZSc7XG5pbXBvcnQgeyBJVG9nZ2xlT3B0aW9uIH0gZnJvbSAnLi90b2dnbGUtaW5wdXQtZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBFVkZ1bmN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3MvYmFzZS1mdW5jdGlvbnMnO1xuaW1wb3J0IHsgS2V5T2ZUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luZGV4Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9nZ2xlLWlucHV0LWZvcm0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9nZ2xlLWlucHV0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdG9nZ2xlLWlucHV0LWZvcm0uY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBCdG5Db21wb25lbnQsXG4gICAgRmlsdGVyQXJyYXlCeVN0cmluZ1BpcGUsXG4gICAgSW5wdXRURF9SRkNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgU0RLVHJhbnNsYXRlUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9nZ2xlSW5wdXRGb3JtQ29tcG9uZW50PFRPcHRpb24+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHVTID0gaW5qZWN0KFV0aWxpdHlTZXJ2aWNlKTtcblxuICByZWFkb25seSBhZGRUb0Zvcm1GdW5jID0gaW5wdXQ8KGRhdGE/OiBUT3B0aW9uKSA9PiBhbnk+KCk7XG4gIHJlYWRvbmx5IGRlZmF1bHRUb2dnbGVBbGwgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBkZWxldGVGcm9tRm9ybUZ1bmMgPSBpbnB1dDwoZGF0YT86IFRPcHRpb24pID0+IGFueT4oKTtcbiAgcmVhZG9ubHkgZ3JpZE5vID0gbW9kZWw8R3JpZFNpemU+KDYpO1xuICByZWFkb25seSBsYWJlbEZpZWxkID0gaW5wdXQ8a2V5b2YgVE9wdGlvbiB8IChrZXlvZiBUT3B0aW9uKVtdPigpO1xuICByZWFkb25seSBsYWJlbFNlcGVyYXRvciA9IGlucHV0PHN0cmluZz4oJyAtICcpO1xuICByZWFkb25seSBzZWFyY2hRdWVyeSA9IG1vZGVsPHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgc2hvd1RvZ2dsZUFsbCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSB2YWx1ZUZpZWxkID0gaW5wdXQucmVxdWlyZWQ8S2V5T2ZUeXBlPFRPcHRpb24sIHN0cmluZyB8IG51bWJlcj4+KCk7XG4gIC8qKlxuICAgKiBJZiB5b3UgcGFzcyBhIGZpZWxkIG5hbWU6IENoZWNrcyBpZiB2YWx1ZSBleGlzdHMgaW4gdGhlIHNwZWNpZmllZCBmaWVsZC4gSWYgaXQgaXMgYSBib29sZWFuIGZpZWxkLCBpdCBjaGVja3MgaWYgaXQgaXMgdHJ1ZS5cbiAgICpcbiAgICogSWYgeW91IHBhc3MgYSBwcmVkaWNhdGUgZnVuY3Rpb246IENoZWNrcyBlYWNoIG9iamVjdCB1c2luZyB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uIHRvIGV2YWx1YXRlIGl0IGlzIGNoZWNrZWQgb3Igbm90LlxuICAgKiAqL1xuICByZWFkb25seSBjaGVja2VkQ2hlY2tlciA9IGlucHV0LnJlcXVpcmVkPGtleW9mIFRPcHRpb24gfCAoKG9wdGlvbjogVE9wdGlvbikgPT4gYm9vbGVhbik+KCk7XG4gIHJlYWRvbmx5IF9saXN0ID0gaW5wdXQucmVxdWlyZWQ8VE9wdGlvbltdPih7IGFsaWFzOiAnbGlzdCcgfSk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWQgPSBvdXRwdXQ8VE9wdGlvbltdPigpO1xuXG4gIC8vIHByb3RlY3RlZCByZWFkb25seSBsaXN0ID0gc2lnbmFsPElUb2dnbGVPcHRpb248VE9wdGlvbj5bXT4oW10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hlY2tlZEZpZWxkID0gY29tcHV0ZWQ8a2V5b2YgVE9wdGlvbj4oKCkgPT4ge1xuICAgIGNvbnN0IF9jaGVja2VkUHJlZGljYXRlID0gdGhpcy5jaGVja2VkQ2hlY2tlcigpO1xuICAgIHJldHVybiB0eXBlb2YgX2NoZWNrZWRQcmVkaWNhdGUgPT0gJ2Z1bmN0aW9uJyA/IG51bGwgOiBfY2hlY2tlZFByZWRpY2F0ZTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjaGVja2VkUHJlZGljYXRlID0gY29tcHV0ZWQ8KG9wdGlvbjogVE9wdGlvbikgPT4gYm9vbGVhbj4oKCkgPT4ge1xuICAgIGNvbnN0IF9jaGVja2VkUHJlZGljYXRlID0gdGhpcy5jaGVja2VkQ2hlY2tlcigpO1xuICAgIHJldHVybiB0eXBlb2YgX2NoZWNrZWRQcmVkaWNhdGUgPT0gJ2Z1bmN0aW9uJyA/IF9jaGVja2VkUHJlZGljYXRlIDogbnVsbDtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbml0aWFsTGlzdCA9IGNvbXB1dGVkPElUb2dnbGVPcHRpb248VE9wdGlvbj5bXT4oKCkgPT4ge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLl9saXN0KCkgfHwgW10sXG4gICAgICB2YWx1ZUZpZWxkID0gdGhpcy52YWx1ZUZpZWxkKCksXG4gICAgICBsYWJlbEZpZWxkID0gdGhpcy5sYWJlbEZpZWxkKCksXG4gICAgICBsYWJlbFNlcGVyYXRvciA9IHRoaXMubGFiZWxTZXBlcmF0b3IoKSxcbiAgICAgIGNoZWNrZWRGaWVsZCA9IHRoaXMuY2hlY2tlZEZpZWxkKCksXG4gICAgICBjaGVja2VkUHJlZGljYXRlID0gdGhpcy5jaGVja2VkUHJlZGljYXRlKCksXG4gICAgICBsYWJlbEZpZWxkcyA9IGxhYmVsRmllbGQgPyAoQXJyYXkuaXNBcnJheShsYWJlbEZpZWxkKSA/IGxhYmVsRmllbGQgOiBbbGFiZWxGaWVsZF0pIDogbnVsbDtcblxuICAgIHJldHVybiBsaXN0Lm1hcCgob3B0aW9uKSA9PiAoe1xuICAgICAgdmFsdWU6IG9wdGlvblt2YWx1ZUZpZWxkXSxcbiAgICAgIGxhYmVsOiBFVkZ1bmN0aW9ucy5zdHJDb25jYXRlbmF0b3IyKFxuICAgICAgICBsYWJlbEZpZWxkcy5tYXAoKGxhYmVsRmllbGQpID0+IG9wdGlvbj8uW2xhYmVsRmllbGRdIGFzIHN0cmluZyksXG4gICAgICAgIGxhYmVsU2VwZXJhdG9yLFxuICAgICAgKSxcbiAgICAgIG9yaWdpbmFsUm93OiBvcHRpb24sXG4gICAgICBpbml0aWFsbHlDaGVja2VkOiBjaGVja2VkRmllbGQgPyAhIW9wdGlvbltjaGVja2VkRmllbGRdIDogY2hlY2tlZFByZWRpY2F0ZT8uKG9wdGlvbiksXG4gICAgfSkpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkTWFwID0gc2lnbmFsPHsgW3ZhbHVlOiBzdHJpbmddOiBib29sZWFuIH0+KHt9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxpc3QgPSBjb21wdXRlZDxJVG9nZ2xlT3B0aW9uPFRPcHRpb24+W10+KCgpID0+IHtcbiAgICBjb25zdCBpbml0aWFsTGlzdCA9IHRoaXMuaW5pdGlhbExpc3QoKSB8fCBbXSxcbiAgICAgIHNlbGVjdGVkTWFwID0gdGhpcy5zZWxlY3RlZE1hcCgpIHx8IHt9O1xuXG4gICAgcmV0dXJuIGluaXRpYWxMaXN0Lm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIGNoZWNrZWQ6XG4gICAgICAgICAgc2VsZWN0ZWRNYXBbb3B0aW9uLnZhbHVlXSAhPSBudWxsID8gc2VsZWN0ZWRNYXBbb3B0aW9uLnZhbHVlXSA6IG9wdGlvbi5pbml0aWFsbHlDaGVja2VkLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc0hhbmRsZWREZWZhdWx0VG9nZ2xlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2N1cnJlbnRHcmlkID0gc2lnbmFsPG51bWJlcj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgY3VycmVudEdyaWQgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHRoaXMuX2N1cnJlbnRHcmlkKCkpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgeHhsR3JpZCA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4gdGhpcy5ncmlkTm8oKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBsZ0dyaWQgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHtcbiAgICBjb25zdCBudW0gPSB0aGlzLmdyaWRObygpO1xuICAgIHJldHVybiBudW0gPiAzID8gbnVtIC0gMSA6IG51bTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBtZEdyaWQgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHtcbiAgICBjb25zdCBudW0gPSB0aGlzLmdyaWRObygpLFxuICAgICAgbGdHcmlkID0gdGhpcy5sZ0dyaWQoKTtcbiAgICByZXR1cm4gbnVtID4gMyA/IE1hdGguZmxvb3IobGdHcmlkIC8gMikgOiBudW07XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0VG9nZ2xlQWxsRWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3QoKSxcbiAgICAgICAgZGVmYXVsdFRvZ2dsZUFsbCA9IHRoaXMuZGVmYXVsdFRvZ2dsZUFsbCgpLFxuICAgICAgICBoYXNIYW5kbGVkRGVmYXVsdFRvZ2dsZSA9IHRoaXMuaGFzSGFuZGxlZERlZmF1bHRUb2dnbGUoKTtcblxuICAgICAgaWYgKCFoYXNIYW5kbGVkRGVmYXVsdFRvZ2dsZSAmJiBkZWZhdWx0VG9nZ2xlQWxsICYmICFsaXN0LnNvbWUoKHgpID0+IHguY2hlY2tlZCkpIHtcbiAgICAgICAgdGhpcy5oYXNIYW5kbGVkRGVmYXVsdFRvZ2dsZS5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMudG9nZ2xlQWxsKHsgY2hlY2tlZDogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29sdW1uTGVuZ3RocyA9IHNpZ25hbDx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBHcmlkU2l6ZSB9W10+KFtcbiAgICB7IGxhYmVsOiBgTGlzdGAsIHZhbHVlOiAxIH0sXG4gICAgeyBsYWJlbDogYER1YWxgLCB2YWx1ZTogMiB9LFxuICAgIHsgbGFiZWw6IGBUcmlwbGVgLCB2YWx1ZTogMyB9LFxuICAgIHsgbGFiZWw6IGBNZWRpdW1gLCB2YWx1ZTogNCB9LFxuICAgIHsgbGFiZWw6IGBNYXhpbXVtYCwgdmFsdWU6IDYgfSxcbiAgXSk7XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZUl0ZW0oZTogeyBjaGVja2VkOiBib29sZWFuIH0sIGl0ZW06IElUb2dnbGVPcHRpb248VE9wdGlvbj4sIGVtaXQgPSB0cnVlKSB7XG4gICAgaWYgKGUuY2hlY2tlZCkgdGhpcy5jaGVja0l0ZW0oaXRlbSwgZW1pdCk7XG4gICAgZWxzZSB0aGlzLnVuY2hlY2tJdGVtKGl0ZW0sIGVtaXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoZWNrSXRlbShpdGVtOiBJVG9nZ2xlT3B0aW9uPFRPcHRpb24+LCBlbWl0ID0gdHJ1ZSkge1xuICAgIHRoaXMuc2VsZWN0ZWRNYXAudXBkYXRlKChtYXBwKSA9PiAoeyAuLi5tYXBwLCBbaXRlbS52YWx1ZV06IHRydWUgfSkpO1xuICAgIGlmICghZW1pdCkgcmV0dXJuO1xuICAgIHRoaXMuYWRkVG9Gb3JtRnVuYygpPy4oaXRlbS5vcmlnaW5hbFJvdyk7XG4gICAgdGhpcy5lbWl0U2VsZWN0ZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bmNoZWNrSXRlbShpdGVtOiBJVG9nZ2xlT3B0aW9uPFRPcHRpb24+LCBlbWl0ID0gdHJ1ZSkge1xuICAgIHRoaXMuc2VsZWN0ZWRNYXAudXBkYXRlKChtYXBwKSA9PiAoeyAuLi5tYXBwLCBbaXRlbS52YWx1ZV06IGZhbHNlIH0pKTtcbiAgICBpZiAoIWVtaXQpIHJldHVybjtcbiAgICB0aGlzLmRlbGV0ZUZyb21Gb3JtRnVuYygpPy4oaXRlbS5vcmlnaW5hbFJvdyk7XG4gICAgdGhpcy5lbWl0U2VsZWN0ZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVBbGwoZTogeyBjaGVja2VkOiBib29sZWFuIH0pIHtcbiAgICBjb25zdCBpbml0aWFsTGlzdCA9IHRoaXMuaW5pdGlhbExpc3QoKTtcbiAgICBpZiAoZS5jaGVja2VkKVxuICAgICAgaW5pdGlhbExpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrSXRlbShpdGVtLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuYWRkVG9Gb3JtRnVuYygpPy4oaXRlbS5vcmlnaW5hbFJvdyk7XG4gICAgICB9KTtcbiAgICBlbHNlXG4gICAgICBpbml0aWFsTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIHRoaXMudW5jaGVja0l0ZW0oaXRlbSwgZmFsc2UpO1xuICAgICAgICB0aGlzLmRlbGV0ZUZyb21Gb3JtRnVuYygpPy4oaXRlbS5vcmlnaW5hbFJvdyk7XG4gICAgICB9KTtcbiAgICB0aGlzLmVtaXRTZWxlY3RlZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVtaXRTZWxlY3RlZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQoXG4gICAgICB0aGlzLmxpc3QoKVxuICAgICAgICAuZmlsdGVyKCh4KSA9PiB4LmNoZWNrZWQpXG4gICAgICAgIC5tYXAoKHgpID0+IHgub3JpZ2luYWxSb3cpLFxuICAgICk7XG4gIH1cblxuICBnZXRTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0KCk7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLmhhc0hhbmRsZWREZWZhdWx0VG9nZ2xlLnNldChmYWxzZSk7XG4gIH1cbn1cbnR5cGUgR3JpZFNpemUgPSA2IHwgNCB8IDMgfCAyIHwgMTtcbiIsIjxkaXYgY2xhc3M9XCJwYi0zXCI+XG4gIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGctM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctYXV0b1wiPlxuICAgICAgPG1hdC1zbGlkZS10b2dnbGUgKGNoYW5nZSk9XCJ0b2dnbGVBbGwoJGV2ZW50KVwiIFtjaGVja2VkXT1cImRlZmF1bHRUb2dnbGVBbGwoKVwiPlxuICAgICAgICB7eyAnVG9nZ2xlIEFsbCcgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGcgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyIGctM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICA8YXBwLWJ0blxuICAgICAgICAgICAgaWNvbkJ0blxuICAgICAgICAgICAgW3Nob3dIZWxwSWNvbl09XCJmYWxzZVwiXG4gICAgICAgICAgICBoZWxwPVwie3sgc2VhcmNoQm94LmhpZGRlbiA/ICdPcGVuIHNlYXJjaCcgOiAnQ2xvc2Ugc2VhcmNoJyB9fVwiXG4gICAgICAgICAgICBbaWNvbl09XCJzZWFyY2hCb3guaGlkZGVuID8gJ3NlYXJjaCcgOiAnY2xvc2UnXCJcbiAgICAgICAgICAgIChtY2xpY2spPVwic2VhcmNoQm94LmhpZGRlbiA9ICFzZWFyY2hCb3guaGlkZGVuXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiIFtoaWRkZW5dPVwidHJ1ZVwiICNzZWFyY2hCb3g+XG4gICAgICAgICAgPGFwcC1pbnB1dC10ZC1yZlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW25vRm9ybWF0XT1cInRydWVcIlxuICAgICAgICAgICAgW3Nob3dMYWJlbF09XCJmYWxzZVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgdG8gc2VhcmNoXCJcbiAgICAgICAgICAgIFsobW9kZWwpXT1cInNlYXJjaFF1ZXJ5XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiPlxuICAgICAgICAgIDxhcHAtYnRuXG4gICAgICAgICAgICBjdXN0b21JY29uPVwiZmEgZmEtbGlzdFwiXG4gICAgICAgICAgICBbc2hvd0hlbHBJY29uXT1cImZhbHNlXCJcbiAgICAgICAgICAgIGhlbHA9XCJHcmlkIFN0eWxlXCJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJncmlkTWVudVwiIC8+XG4gICAgICAgICAgPG1hdC1tZW51ICNncmlkTWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cIlwiPlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBjb2x1bW5MZW5ndGhzKCk7IHRyYWNrIGl0ZW0udmFsdWUpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ3JpZE5vLnNldChpdGVtLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAndGV4dC1wcmltYXJ5JzogaXRlbS52YWx1ZSA9PSBfY3VycmVudEdyaWQoKSB9XCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2XG4gIGNsYXNzPVwicm93IHJvdy1jb2xzLW1kLXt7IG1kR3JpZCgpIH19IHJvdy1jb2xzLWxnLXt7IGxnR3JpZCgpIH19IHJvdy1jb2xzLXh4bC17e1xuICAgIHh4bEdyaWQoKVxuICB9fSBnLTNcIj5cbiAgQGZvciAoaXRlbSBvZiBsaXN0KCkgfCBmaWx0ZXJBcnJheUJ5U3RyaW5nOiBzZWFyY2hRdWVyeSgpIDogWydsYWJlbCddOyB0cmFjayBpdGVtLnZhbHVlKSB7XG4gICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkLTEwIHAtMTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNvbCB0ZXh0LWVsbGlwc2lzXCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImVsZS5pbm5lclRleHRcIlxuICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09XCJlbGUuc2Nyb2xsV2lkdGggPD0gZWxlLm9mZnNldFdpZHRoXCJcbiAgICAgICAgICAgICNlbGU+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG4gICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpdGVtLmNoZWNrZWRcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUl0ZW0oJGV2ZW50LCBpdGVtKVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWlucHV0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL3RvZ2dsZS1pbnB1dC1mb3JtL3RvZ2dsZS1pbnB1dC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy90b2dnbGUtaW5wdXQtZm9ybS90b2dnbGUtaW5wdXQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFFVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sdUJBQXVCLEdBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxt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QUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQXRKVSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwyckRDOUNyQyw4K0VBdUVBLCtFRHBDSSxZQUFZLGlMQUNaLG9CQUFvQixtV0FDcEIsWUFBWSw4ZkFDWix1QkFBdUIsNERBQ3ZCLG1CQUFtQix5SUFDbkIsV0FBVyw4QkFDWCxnQkFBZ0IsNFRBQ2hCLGFBQWEseXZCQUNiLGdCQUFnQjs7MkZBR1Asd0JBQXdCO2tCQWxCcEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgSW5wdXRTZXJ2aWNlIH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25MYWJlbFR5cGUgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRURF9SRkNvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0L2lucHV0LXRkLXJmLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNES1RyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBGaWx0ZXJBcnJheUJ5U3RyaW5nUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3V0aWxpdHkucGlwZSc7XG5pbXBvcnQgeyBJVG9nZ2xlT3B0aW9uIH0gZnJvbSAnLi90b2dnbGUtaW5wdXQtZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBFVkZ1bmN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3MvYmFzZS1mdW5jdGlvbnMnO1xuaW1wb3J0IHsgS2V5T2ZUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luZGV4Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9nZ2xlLWlucHV0LWZvcm0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9nZ2xlLWlucHV0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdG9nZ2xlLWlucHV0LWZvcm0uY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBCdG5Db21wb25lbnQsXG4gICAgRmlsdGVyQXJyYXlCeVN0cmluZ1BpcGUsXG4gICAgSW5wdXRURF9SRkNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgU0RLVHJhbnNsYXRlUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9nZ2xlSW5wdXRGb3JtQ29tcG9uZW50PFRPcHRpb24+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHVTID0gaW5qZWN0KFV0aWxpdHlTZXJ2aWNlKTtcblxuICByZWFkb25seSBhZGRUb0Zvcm1GdW5jID0gaW5wdXQ8KGRhdGE/OiBUT3B0aW9uKSA9PiBhbnk+KCk7XG4gIHJlYWRvbmx5IGRlZmF1bHRUb2dnbGVBbGwgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBkZWxldGVGcm9tRm9ybUZ1bmMgPSBpbnB1dDwoZGF0YT86IFRPcHRpb24pID0+IGFueT4oKTtcbiAgcmVhZG9ubHkgZ3JpZE5vID0gbW9kZWw8R3JpZFNpemU+KDYpO1xuICByZWFkb25seSBsYWJlbEZpZWxkID0gaW5wdXQ8a2V5b2YgVE9wdGlvbiB8IChrZXlvZiBUT3B0aW9uKVtdPigpO1xuICByZWFkb25seSBsYWJlbFNlcGFyYXRvciA9IGlucHV0PHN0cmluZz4oJyAtICcpO1xuICByZWFkb25seSBzZWFyY2hRdWVyeSA9IG1vZGVsPHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgc2hvd1RvZ2dsZUFsbCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSB2YWx1ZUZpZWxkID0gaW5wdXQucmVxdWlyZWQ8S2V5T2ZUeXBlPFRPcHRpb24sIHN0cmluZyB8IG51bWJlcj4+KCk7XG4gIC8qKlxuICAgKiBJZiB5b3UgcGFzcyBhIGZpZWxkIG5hbWU6IENoZWNrcyBpZiB2YWx1ZSBleGlzdHMgaW4gdGhlIHNwZWNpZmllZCBmaWVsZC4gSWYgaXQgaXMgYSBib29sZWFuIGZpZWxkLCBpdCBjaGVja3MgaWYgaXQgaXMgdHJ1ZS5cbiAgICpcbiAgICogSWYgeW91IHBhc3MgYSBwcmVkaWNhdGUgZnVuY3Rpb246IENoZWNrcyBlYWNoIG9iamVjdCB1c2luZyB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uIHRvIGV2YWx1YXRlIGl0IGlzIGNoZWNrZWQgb3Igbm90LlxuICAgKiAqL1xuICByZWFkb25seSBjaGVja2VkQ2hlY2tlciA9IGlucHV0LnJlcXVpcmVkPGtleW9mIFRPcHRpb24gfCAoKG9wdGlvbjogVE9wdGlvbikgPT4gYm9vbGVhbik+KCk7XG4gIHJlYWRvbmx5IF9saXN0ID0gaW5wdXQucmVxdWlyZWQ8VE9wdGlvbltdPih7IGFsaWFzOiAnbGlzdCcgfSk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWQgPSBvdXRwdXQ8VE9wdGlvbltdPigpO1xuXG4gIC8vIHByb3RlY3RlZCByZWFkb25seSBsaXN0ID0gc2lnbmFsPElUb2dnbGVPcHRpb248VE9wdGlvbj5bXT4oW10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hlY2tlZEZpZWxkID0gY29tcHV0ZWQ8a2V5b2YgVE9wdGlvbj4oKCkgPT4ge1xuICAgIGNvbnN0IF9jaGVja2VkUHJlZGljYXRlID0gdGhpcy5jaGVja2VkQ2hlY2tlcigpO1xuICAgIHJldHVybiB0eXBlb2YgX2NoZWNrZWRQcmVkaWNhdGUgPT0gJ2Z1bmN0aW9uJyA/IG51bGwgOiBfY2hlY2tlZFByZWRpY2F0ZTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjaGVja2VkUHJlZGljYXRlID0gY29tcHV0ZWQ8KG9wdGlvbjogVE9wdGlvbikgPT4gYm9vbGVhbj4oKCkgPT4ge1xuICAgIGNvbnN0IF9jaGVja2VkUHJlZGljYXRlID0gdGhpcy5jaGVja2VkQ2hlY2tlcigpO1xuICAgIHJldHVybiB0eXBlb2YgX2NoZWNrZWRQcmVkaWNhdGUgPT0gJ2Z1bmN0aW9uJyA/IF9jaGVja2VkUHJlZGljYXRlIDogbnVsbDtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbml0aWFsTGlzdCA9IGNvbXB1dGVkPElUb2dnbGVPcHRpb248VE9wdGlvbj5bXT4oKCkgPT4ge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLl9saXN0KCkgfHwgW10sXG4gICAgICB2YWx1ZUZpZWxkID0gdGhpcy52YWx1ZUZpZWxkKCksXG4gICAgICBsYWJlbEZpZWxkID0gdGhpcy5sYWJlbEZpZWxkKCksXG4gICAgICBsYWJlbFNlcGFyYXRvciA9IHRoaXMubGFiZWxTZXBhcmF0b3IoKSxcbiAgICAgIGNoZWNrZWRGaWVsZCA9IHRoaXMuY2hlY2tlZEZpZWxkKCksXG4gICAgICBjaGVja2VkUHJlZGljYXRlID0gdGhpcy5jaGVja2VkUHJlZGljYXRlKCksXG4gICAgICBsYWJlbEZpZWxkcyA9IGxhYmVsRmllbGQgPyAoQXJyYXkuaXNBcnJheShsYWJlbEZpZWxkKSA/IGxhYmVsRmllbGQgOiBbbGFiZWxGaWVsZF0pIDogbnVsbDtcblxuICAgIHJldHVybiBsaXN0Lm1hcCgob3B0aW9uKSA9PiAoe1xuICAgICAgdmFsdWU6IG9wdGlvblt2YWx1ZUZpZWxkXSxcbiAgICAgIGxhYmVsOiBFVkZ1bmN0aW9ucy5zdHJDb25jYXRlbmF0b3IyKFxuICAgICAgICBsYWJlbEZpZWxkcy5tYXAoKGxhYmVsRmllbGQpID0+IG9wdGlvbj8uW2xhYmVsRmllbGRdIGFzIHN0cmluZyksXG4gICAgICAgIGxhYmVsU2VwYXJhdG9yLFxuICAgICAgKSxcbiAgICAgIG9yaWdpbmFsUm93OiBvcHRpb24sXG4gICAgICBpbml0aWFsbHlDaGVja2VkOiBjaGVja2VkRmllbGQgPyAhIW9wdGlvbltjaGVja2VkRmllbGRdIDogY2hlY2tlZFByZWRpY2F0ZT8uKG9wdGlvbiksXG4gICAgfSkpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkTWFwID0gc2lnbmFsPHsgW3ZhbHVlOiBzdHJpbmddOiBib29sZWFuIH0+KHt9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxpc3QgPSBjb21wdXRlZDxJVG9nZ2xlT3B0aW9uPFRPcHRpb24+W10+KCgpID0+IHtcbiAgICBjb25zdCBpbml0aWFsTGlzdCA9IHRoaXMuaW5pdGlhbExpc3QoKSB8fCBbXSxcbiAgICAgIHNlbGVjdGVkTWFwID0gdGhpcy5zZWxlY3RlZE1hcCgpIHx8IHt9O1xuXG4gICAgcmV0dXJuIGluaXRpYWxMaXN0Lm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIGNoZWNrZWQ6XG4gICAgICAgICAgc2VsZWN0ZWRNYXBbb3B0aW9uLnZhbHVlXSAhPSBudWxsID8gc2VsZWN0ZWRNYXBbb3B0aW9uLnZhbHVlXSA6IG9wdGlvbi5pbml0aWFsbHlDaGVja2VkLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc0hhbmRsZWREZWZhdWx0VG9nZ2xlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2N1cnJlbnRHcmlkID0gc2lnbmFsPG51bWJlcj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgY3VycmVudEdyaWQgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHRoaXMuX2N1cnJlbnRHcmlkKCkpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgeHhsR3JpZCA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4gdGhpcy5ncmlkTm8oKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBsZ0dyaWQgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHtcbiAgICBjb25zdCBudW0gPSB0aGlzLmdyaWRObygpO1xuICAgIHJldHVybiBudW0gPiAzID8gbnVtIC0gMSA6IG51bTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBtZEdyaWQgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHtcbiAgICBjb25zdCBudW0gPSB0aGlzLmdyaWRObygpLFxuICAgICAgbGdHcmlkID0gdGhpcy5sZ0dyaWQoKTtcbiAgICByZXR1cm4gbnVtID4gMyA/IE1hdGguZmxvb3IobGdHcmlkIC8gMikgOiBudW07XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0VG9nZ2xlQWxsRWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3QoKSxcbiAgICAgICAgZGVmYXVsdFRvZ2dsZUFsbCA9IHRoaXMuZGVmYXVsdFRvZ2dsZUFsbCgpLFxuICAgICAgICBoYXNIYW5kbGVkRGVmYXVsdFRvZ2dsZSA9IHRoaXMuaGFzSGFuZGxlZERlZmF1bHRUb2dnbGUoKTtcblxuICAgICAgaWYgKCFoYXNIYW5kbGVkRGVmYXVsdFRvZ2dsZSAmJiBkZWZhdWx0VG9nZ2xlQWxsICYmICFsaXN0LnNvbWUoKHgpID0+IHguY2hlY2tlZCkpIHtcbiAgICAgICAgdGhpcy5oYXNIYW5kbGVkRGVmYXVsdFRvZ2dsZS5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMudG9nZ2xlQWxsKHsgY2hlY2tlZDogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29sdW1uTGVuZ3RocyA9IGNvbXB1dGVkPHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IEdyaWRTaXplIH1bXT4oKCkgPT4gW1xuICAgIHsgbGFiZWw6IGBMaXN0YCwgdmFsdWU6IDEgfSxcbiAgICB7IGxhYmVsOiBgRHVhbGAsIHZhbHVlOiAyIH0sXG4gICAgeyBsYWJlbDogYFRyaXBsZWAsIHZhbHVlOiAzIH0sXG4gICAgeyBsYWJlbDogYE1lZGl1bWAsIHZhbHVlOiA0IH0sXG4gICAgeyBsYWJlbDogYE1heGltdW1gLCB2YWx1ZTogNiB9LFxuICBdKTtcblxuICBwcm90ZWN0ZWQgdG9nZ2xlSXRlbShlOiB7IGNoZWNrZWQ6IGJvb2xlYW4gfSwgaXRlbTogSVRvZ2dsZU9wdGlvbjxUT3B0aW9uPiwgZW1pdCA9IHRydWUpIHtcbiAgICBpZiAoZS5jaGVja2VkKSB0aGlzLmNoZWNrSXRlbShpdGVtLCBlbWl0KTtcbiAgICBlbHNlIHRoaXMudW5jaGVja0l0ZW0oaXRlbSwgZW1pdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tJdGVtKGl0ZW06IElUb2dnbGVPcHRpb248VE9wdGlvbj4sIGVtaXQgPSB0cnVlKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1hcC51cGRhdGUoKG1hcHApID0+ICh7IC4uLm1hcHAsIFtpdGVtLnZhbHVlXTogdHJ1ZSB9KSk7XG4gICAgaWYgKCFlbWl0KSByZXR1cm47XG4gICAgdGhpcy5hZGRUb0Zvcm1GdW5jKCk/LihpdGVtLm9yaWdpbmFsUm93KTtcbiAgICB0aGlzLmVtaXRTZWxlY3RlZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVuY2hlY2tJdGVtKGl0ZW06IElUb2dnbGVPcHRpb248VE9wdGlvbj4sIGVtaXQgPSB0cnVlKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1hcC51cGRhdGUoKG1hcHApID0+ICh7IC4uLm1hcHAsIFtpdGVtLnZhbHVlXTogZmFsc2UgfSkpO1xuICAgIGlmICghZW1pdCkgcmV0dXJuO1xuICAgIHRoaXMuZGVsZXRlRnJvbUZvcm1GdW5jKCk/LihpdGVtLm9yaWdpbmFsUm93KTtcbiAgICB0aGlzLmVtaXRTZWxlY3RlZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZUFsbChlOiB7IGNoZWNrZWQ6IGJvb2xlYW4gfSkge1xuICAgIGNvbnN0IGluaXRpYWxMaXN0ID0gdGhpcy5pbml0aWFsTGlzdCgpO1xuICAgIGlmIChlLmNoZWNrZWQpXG4gICAgICBpbml0aWFsTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tJdGVtKGl0ZW0sIGZhbHNlKTtcbiAgICAgICAgdGhpcy5hZGRUb0Zvcm1GdW5jKCk/LihpdGVtLm9yaWdpbmFsUm93KTtcbiAgICAgIH0pO1xuICAgIGVsc2VcbiAgICAgIGluaXRpYWxMaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgdGhpcy51bmNoZWNrSXRlbShpdGVtLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuZGVsZXRlRnJvbUZvcm1GdW5jKCk/LihpdGVtLm9yaWdpbmFsUm93KTtcbiAgICAgIH0pO1xuICAgIHRoaXMuZW1pdFNlbGVjdGVkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW1pdFNlbGVjdGVkKCkge1xuICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChcbiAgICAgIHRoaXMubGlzdCgpXG4gICAgICAgIC5maWx0ZXIoKHgpID0+IHguY2hlY2tlZClcbiAgICAgICAgLm1hcCgoeCkgPT4geC5vcmlnaW5hbFJvdyksXG4gICAgKTtcbiAgfVxuXG4gIGdldFN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLmxpc3QoKTtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuaGFzSGFuZGxlZERlZmF1bHRUb2dnbGUuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNlbGVjdGVkTWFwLnNldCh7fSk7XG4gIH1cbn1cbnR5cGUgR3JpZFNpemUgPSA2IHwgNCB8IDMgfCAyIHwgMTtcbiIsIjxkaXYgY2xhc3M9XCJwYi0zXCI+XG4gIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGctM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctYXV0b1wiPlxuICAgICAgPG1hdC1zbGlkZS10b2dnbGUgKGNoYW5nZSk9XCJ0b2dnbGVBbGwoJGV2ZW50KVwiIFtjaGVja2VkXT1cImRlZmF1bHRUb2dnbGVBbGwoKVwiPlxuICAgICAgICB7eyAnVG9nZ2xlIEFsbCcgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGcgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyIGctM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICA8YXBwLWJ0blxuICAgICAgICAgICAgaWNvbkJ0blxuICAgICAgICAgICAgW3Nob3dIZWxwSWNvbl09XCJmYWxzZVwiXG4gICAgICAgICAgICBoZWxwPVwie3sgc2VhcmNoQm94LmhpZGRlbiA/ICdPcGVuIHNlYXJjaCcgOiAnQ2xvc2Ugc2VhcmNoJyB9fVwiXG4gICAgICAgICAgICBbaWNvbl09XCJzZWFyY2hCb3guaGlkZGVuID8gJ3NlYXJjaCcgOiAnY2xvc2UnXCJcbiAgICAgICAgICAgIChtY2xpY2spPVwic2VhcmNoQm94LmhpZGRlbiA9ICFzZWFyY2hCb3guaGlkZGVuXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiIFtoaWRkZW5dPVwidHJ1ZVwiICNzZWFyY2hCb3g+XG4gICAgICAgICAgPGFwcC1pbnB1dC10ZC1yZlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW25vRm9ybWF0XT1cInRydWVcIlxuICAgICAgICAgICAgW3Nob3dMYWJlbF09XCJmYWxzZVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgdG8gc2VhcmNoXCJcbiAgICAgICAgICAgIFsobW9kZWwpXT1cInNlYXJjaFF1ZXJ5XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiPlxuICAgICAgICAgIDxhcHAtYnRuXG4gICAgICAgICAgICBjdXN0b21JY29uPVwiZmEgZmEtbGlzdFwiXG4gICAgICAgICAgICBbc2hvd0hlbHBJY29uXT1cImZhbHNlXCJcbiAgICAgICAgICAgIGhlbHA9XCJHcmlkIFN0eWxlXCJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJncmlkTWVudVwiIC8+XG4gICAgICAgICAgPG1hdC1tZW51ICNncmlkTWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cIlwiPlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBjb2x1bW5MZW5ndGhzKCk7IHRyYWNrIGl0ZW0udmFsdWUpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ3JpZE5vLnNldChpdGVtLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAndGV4dC1wcmltYXJ5JzogaXRlbS52YWx1ZSA9PSBfY3VycmVudEdyaWQoKSB9XCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2XG4gIGNsYXNzPVwicm93IHJvdy1jb2xzLW1kLXt7IG1kR3JpZCgpIH19IHJvdy1jb2xzLWxnLXt7IGxnR3JpZCgpIH19IHJvdy1jb2xzLXh4bC17e1xuICAgIHh4bEdyaWQoKVxuICB9fSBnLTNcIj5cbiAgQGZvciAoaXRlbSBvZiBsaXN0KCkgfCBmaWx0ZXJBcnJheUJ5U3RyaW5nOiBzZWFyY2hRdWVyeSgpIDogWydsYWJlbCddOyB0cmFjayBpdGVtLnZhbHVlKSB7XG4gICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkLTEwIHAtMTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNvbCB0ZXh0LWVsbGlwc2lzXCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImVsZS5pbm5lclRleHRcIlxuICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09XCJlbGUuc2Nyb2xsV2lkdGggPD0gZWxlLm9mZnNldFdpZHRoXCJcbiAgICAgICAgICAgICNlbGU+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG4gICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpdGVtLmNoZWNrZWRcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUl0ZW0oJGV2ZW50LCBpdGVtKVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
@@ -3243,7 +3243,7 @@ class TranslationService {
3243
3243
  this.baseURL = environment.apiBaseUrl + '/rest/translation/';
3244
3244
  this.translationRequestMatrix = [];
3245
3245
  this.translationResponseMatrix = new BehaviorSubject({});
3246
- this.seperator = '~~~';
3246
+ this.separator = '~~~';
3247
3247
  this.name = 'glossary';
3248
3248
  this.uS = inject(UtilityService);
3249
3249
  this.pipeTransformer = (text) => of(text);
@@ -3311,7 +3311,7 @@ class TranslationService {
3311
3311
  lastValueFrom(this.apiService.postString(this.baseURL +
3312
3312
  (this.transGlossary?.code
3313
3313
  ? `language?glossaryCode=${this.transGlossary?.code}&sourceLang=${this.sourceLanguage}&targetLang=${this.targetLanguage}`
3314
- : `language/${this.targetLanguage}`), body.map((x) => this.tagger(x.id, x.text)).join(this.seperator)))
3314
+ : `language/${this.targetLanguage}`), body.map((x) => this.tagger(x.id, x.text)).join(this.separator)))
3315
3315
  .then((r) => {
3316
3316
  this.translationResponseMatrix.next(this.detagger(r));
3317
3317
  })
@@ -3345,7 +3345,7 @@ class TranslationService {
3345
3345
  }));
3346
3346
  }
3347
3347
  detagger(str) {
3348
- const items = str?.split(this.seperator);
3348
+ const items = str?.split(this.separator);
3349
3349
  const resobj = {};
3350
3350
  for (const str of items) {
3351
3351
  resobj[str?.split('"')[1]] = str?.split('>')[1]?.split('</div')[0];
@@ -3358,7 +3358,7 @@ class TranslationService {
3358
3358
  return this.apiService
3359
3359
  .postString(this.baseURL + `language/${environment.targetLanguage}`, Object.keys(body)
3360
3360
  .map((id) => this.tagger(id, body[id]))
3361
- .join(this.seperator))
3361
+ .join(this.separator))
3362
3362
  .pipe(map((r) => {
3363
3363
  return this.detagger(r)[id];
3364
3364
  }));
@@ -4851,7 +4851,7 @@ class InputService {
4851
4851
  length: 2,
4852
4852
  class: 'col-2',
4853
4853
  width: '32px',
4854
- // seperator: '/',
4854
+ // separator: '/',
4855
4855
  },
4856
4856
  {
4857
4857
  label: 'month',
@@ -4860,7 +4860,7 @@ class InputService {
4860
4860
  length: 3,
4861
4861
  class: 'col-2',
4862
4862
  width: '55px',
4863
- seperator: '/',
4863
+ separator: '/',
4864
4864
  },
4865
4865
  {
4866
4866
  label: 'year',
@@ -4869,7 +4869,7 @@ class InputService {
4869
4869
  length: 4,
4870
4870
  class: 'col-3',
4871
4871
  width: '45px',
4872
- seperator: '/',
4872
+ separator: '/',
4873
4873
  },
4874
4874
  {
4875
4875
  label: 'hour',
@@ -4879,7 +4879,7 @@ class InputService {
4879
4879
  class: 'col-auto',
4880
4880
  width: '25px',
4881
4881
  isTime: true,
4882
- seperator: ',',
4882
+ separator: ',',
4883
4883
  },
4884
4884
  {
4885
4885
  label: 'minute',
@@ -4889,7 +4889,7 @@ class InputService {
4889
4889
  class: 'col-auto',
4890
4890
  width: '25px',
4891
4891
  isTime: true,
4892
- seperator: ':',
4892
+ separator: ':',
4893
4893
  },
4894
4894
  {
4895
4895
  label: 'second',
@@ -4899,7 +4899,7 @@ class InputService {
4899
4899
  class: 'col-auto',
4900
4900
  width: '25px',
4901
4901
  isTime: true,
4902
- seperator: ':',
4902
+ separator: ':',
4903
4903
  },
4904
4904
  {
4905
4905
  label: 'meridiem',
@@ -4909,7 +4909,7 @@ class InputService {
4909
4909
  class: 'col-auto',
4910
4910
  width: '25px',
4911
4911
  isTime: true,
4912
- seperator: ':',
4912
+ separator: ':',
4913
4913
  },
4914
4914
  ];
4915
4915
  this.labeller = EVFunctions.strConcatenator;
@@ -6004,7 +6004,7 @@ class DateInputComponent {
6004
6004
  }
6005
6005
  }
6006
6006
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DateInputComponent, deps: [{ token: InputService }, { token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
6007
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: DateInputComponent, isStandalone: true, selector: "date-input", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, inpCl: { classPropertyName: "inpCl", publicName: "inpCl", isSignal: true, isRequired: false, transformFunction: null }, cls: { classPropertyName: "cls", publicName: "cls", isSignal: true, isRequired: false, transformFunction: null }, inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null }, valid: { classPropertyName: "valid", publicName: "valid", isSignal: false, isRequired: false, transformFunction: null }, _max: { classPropertyName: "_max", publicName: "max", isSignal: false, isRequired: false, transformFunction: null }, _min: { classPropertyName: "_min", publicName: "min", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, debug: { classPropertyName: "debug", publicName: "debug", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, _type: { classPropertyName: "_type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, showValidation: { classPropertyName: "showValidation", publicName: "showValidation", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChanged: "valueChanged" }, viewQueries: [{ propertyName: "matCalendar", first: true, predicate: MatCalendar, descendants: true }], ngImport: i0, template: "<div class=\"customdate ps-2 {{ cls() }} {{ inputClass() }}\" [ngClass]=\"{ disabled: readonly() || disabled() }\">\n <div class=\"row g-1 w-100 align-items-center\">\n <!-- <div class=\"col overflow-auto hide-scroll-x\" [formGroup]=\"form2\">\n <div class=\"d-flex w-100 align-items-center\" [formGroup]=\"form2\">\n <ng-container *ngFor=\"let item of iS.dateInputChunks;let ci=index\">\n <div [style.width]=\"'auto'||item.width\" class=\" d-flex align-items-center\" *ngIf=\"ci<chunksLength\">\n <span>{{item.seperator}}</span>\n <input noformat class=\"d-i-f\" id=\"{{this.id}}_di_{{item.formControlName}}\" [type]=\"item.type\"\n [formControlName]=\"item.formControlName\" [matTooltipShowDelay]=\"2000\"\n [matTooltip]=\"item.label\" [style.width.ch]=\"item?.length\" [placeholder]=\"item.placeholder\">\n </div>\n </ng-container>\n\n\n </div>\n </div> -->\n <div class=\"col\">\n <input\n class=\"w-100 border-0\"\n [value]=\"formattedValue()\"\n (change)=\"iS.formatUserInput($event, form(), showTime(), id())\"\n placeholder=\"dd/mm/yyyy{{ showTime() ? ' hh:mm:ss:aa' : '' }}\"\n [readOnly]=\"disabled()\" />\n <!-- <input class=\"w-100 border-0\" [value]=\"form.controls.formattedValue.value\" (change)=\"formatUserInput()\"\n [readOnly]=\"control?.disabled\" [mat-menu-trigger-for]=\"control?.disabled||readonly?null:picker\"> -->\n </div>\n @if (!disabled() && !readonly()) {\n <div class=\"col-auto\">\n <mat-datepicker-toggle\n matIconSuffix\n [mat-menu-trigger-for]=\"picker\"\n (click)=\"formValue()?.date ? matCalRef._goToDateInView(formValue()?.date, 'month') : null\"></mat-datepicker-toggle>\n </div>\n }\n </div>\n</div>\n\n<mat-menu class=\"full-width\" #picker=\"matMenu\" xPosition=\"after\">\n <div class=\"customdate-picker\" [ngClass]=\"{ 'pe-3': showTime() }\" (click)=\"$event.stopPropagation()\">\n <div class=\"row justify-content-center m-0 gy-2\">\n <div class=\"col-lg-auto\">\n <div class=\"calendar-cont\" #calendarCont>\n <mat-calendar\n #matCalRef\n [selected]=\"formValue()?.date\"\n [maxDate]=\"max()\"\n [minDate]=\"min()\"\n (selectedChange)=\"form().controls.date.patchValue($event)\"></mat-calendar>\n </div>\n </div>\n @if (showTime()) {\n <div class=\"col-lg-auto\">\n <div class=\"time-cont text-center\">\n <div class=\"d-flex align-items-center\">\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\" [style.height.px]=\"calendarCont.offsetHeight\">\n <div class=\"sticky-top bg-white rounded-10 text-primary\">\n {{ 'HR' | appTranslate | async }}\n </div>\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.hours\">\n @for (item of iS.timeHours(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item\">\n {{ item }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\" [style.height.px]=\"calendarCont.offsetHeight\">\n <div class=\"sticky-top bg-white rounded-10 text-primary\">\n {{ 'MIN' | appTranslate | async }}\n </div>\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.minutes\">\n @for (item of iS.timeMinutes(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item\">\n {{ item }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\" [style.height.px]=\"calendarCont.offsetHeight\">\n <div class=\"sticky-top bg-white rounded-10 text-primary\">\n {{ 'S' | appTranslate | async }}\n </div>\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.seconds\">\n @for (item of iS.timeSeconds(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item\">\n {{ item }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\">\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.meridiem\">\n @for (item of iS.timeMeridiem(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item.incrementor\">\n {{ item.label | uppercase }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n</mat-menu>\n", styles: ["input:focus-visible{outline:none}input{background-color:transparent!important}.d-i-f{border:none;width:auto;min-width:0;padding:0;text-align:center}:host{--phFC: #484848 !important}:host ::-webkit-input-placeholder{text-transform:none;color:var(--phFC)}:host :-ms-input-placeholder{text-transform:none;color:var(--phFC)}:host ::placeholder{text-transform:none;color:var(--phFC)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i6.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }, { kind: "ngmodule", type: MatRippleModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i6$1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i6$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i3$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
6007
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: DateInputComponent, isStandalone: true, selector: "date-input", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, inpCl: { classPropertyName: "inpCl", publicName: "inpCl", isSignal: true, isRequired: false, transformFunction: null }, cls: { classPropertyName: "cls", publicName: "cls", isSignal: true, isRequired: false, transformFunction: null }, inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null }, valid: { classPropertyName: "valid", publicName: "valid", isSignal: false, isRequired: false, transformFunction: null }, _max: { classPropertyName: "_max", publicName: "max", isSignal: false, isRequired: false, transformFunction: null }, _min: { classPropertyName: "_min", publicName: "min", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, debug: { classPropertyName: "debug", publicName: "debug", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, _type: { classPropertyName: "_type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, showValidation: { classPropertyName: "showValidation", publicName: "showValidation", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChanged: "valueChanged" }, viewQueries: [{ propertyName: "matCalendar", first: true, predicate: MatCalendar, descendants: true }], ngImport: i0, template: "<div class=\"customdate ps-2 {{ cls() }} {{ inputClass() }}\" [ngClass]=\"{ disabled: readonly() || disabled() }\">\n <div class=\"row g-1 w-100 align-items-center\">\n <!-- <div class=\"col overflow-auto hide-scroll-x\" [formGroup]=\"form2\">\n <div class=\"d-flex w-100 align-items-center\" [formGroup]=\"form2\">\n <ng-container *ngFor=\"let item of iS.dateInputChunks;let ci=index\">\n <div [style.width]=\"'auto'||item.width\" class=\" d-flex align-items-center\" *ngIf=\"ci<chunksLength\">\n <span>{{item.separator}}</span>\n <input noformat class=\"d-i-f\" id=\"{{this.id}}_di_{{item.formControlName}}\" [type]=\"item.type\"\n [formControlName]=\"item.formControlName\" [matTooltipShowDelay]=\"2000\"\n [matTooltip]=\"item.label\" [style.width.ch]=\"item?.length\" [placeholder]=\"item.placeholder\">\n </div>\n </ng-container>\n\n\n </div>\n </div> -->\n <div class=\"col\">\n <input\n class=\"w-100 border-0\"\n [value]=\"formattedValue()\"\n (change)=\"iS.formatUserInput($event, form(), showTime(), id())\"\n placeholder=\"dd/mm/yyyy{{ showTime() ? ' hh:mm:ss:aa' : '' }}\"\n [readOnly]=\"disabled()\" />\n <!-- <input class=\"w-100 border-0\" [value]=\"form.controls.formattedValue.value\" (change)=\"formatUserInput()\"\n [readOnly]=\"control?.disabled\" [mat-menu-trigger-for]=\"control?.disabled||readonly?null:picker\"> -->\n </div>\n @if (!disabled() && !readonly()) {\n <div class=\"col-auto\">\n <mat-datepicker-toggle\n matIconSuffix\n [mat-menu-trigger-for]=\"picker\"\n (click)=\"formValue()?.date ? matCalRef._goToDateInView(formValue()?.date, 'month') : null\"></mat-datepicker-toggle>\n </div>\n }\n </div>\n</div>\n\n<mat-menu class=\"full-width\" #picker=\"matMenu\" xPosition=\"after\">\n <div class=\"customdate-picker\" [ngClass]=\"{ 'pe-3': showTime() }\" (click)=\"$event.stopPropagation()\">\n <div class=\"row justify-content-center m-0 gy-2\">\n <div class=\"col-lg-auto\">\n <div class=\"calendar-cont\" #calendarCont>\n <mat-calendar\n #matCalRef\n [selected]=\"formValue()?.date\"\n [maxDate]=\"max()\"\n [minDate]=\"min()\"\n (selectedChange)=\"form().controls.date.patchValue($event)\"></mat-calendar>\n </div>\n </div>\n @if (showTime()) {\n <div class=\"col-lg-auto\">\n <div class=\"time-cont text-center\">\n <div class=\"d-flex align-items-center\">\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\" [style.height.px]=\"calendarCont.offsetHeight\">\n <div class=\"sticky-top bg-white rounded-10 text-primary\">\n {{ 'HR' | appTranslate | async }}\n </div>\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.hours\">\n @for (item of iS.timeHours(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item\">\n {{ item }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\" [style.height.px]=\"calendarCont.offsetHeight\">\n <div class=\"sticky-top bg-white rounded-10 text-primary\">\n {{ 'MIN' | appTranslate | async }}\n </div>\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.minutes\">\n @for (item of iS.timeMinutes(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item\">\n {{ item }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\" [style.height.px]=\"calendarCont.offsetHeight\">\n <div class=\"sticky-top bg-white rounded-10 text-primary\">\n {{ 'S' | appTranslate | async }}\n </div>\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.seconds\">\n @for (item of iS.timeSeconds(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item\">\n {{ item }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\">\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.meridiem\">\n @for (item of iS.timeMeridiem(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item.incrementor\">\n {{ item.label | uppercase }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n</mat-menu>\n", styles: ["input:focus-visible{outline:none}input{background-color:transparent!important}.d-i-f{border:none;width:auto;min-width:0;padding:0;text-align:center}:host{--phFC: #484848 !important}:host ::-webkit-input-placeholder{text-transform:none;color:var(--phFC)}:host :-ms-input-placeholder{text-transform:none;color:var(--phFC)}:host ::placeholder{text-transform:none;color:var(--phFC)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i6.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }, { kind: "ngmodule", type: MatRippleModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i6$1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i6$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i3$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
6008
6008
  }
6009
6009
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DateInputComponent, decorators: [{
6010
6010
  type: Component,
@@ -6031,7 +6031,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
6031
6031
  NgSwitchDefault,
6032
6032
  ReactiveFormsModule,
6033
6033
  MatMenuModule,
6034
- ], template: "<div class=\"customdate ps-2 {{ cls() }} {{ inputClass() }}\" [ngClass]=\"{ disabled: readonly() || disabled() }\">\n <div class=\"row g-1 w-100 align-items-center\">\n <!-- <div class=\"col overflow-auto hide-scroll-x\" [formGroup]=\"form2\">\n <div class=\"d-flex w-100 align-items-center\" [formGroup]=\"form2\">\n <ng-container *ngFor=\"let item of iS.dateInputChunks;let ci=index\">\n <div [style.width]=\"'auto'||item.width\" class=\" d-flex align-items-center\" *ngIf=\"ci<chunksLength\">\n <span>{{item.seperator}}</span>\n <input noformat class=\"d-i-f\" id=\"{{this.id}}_di_{{item.formControlName}}\" [type]=\"item.type\"\n [formControlName]=\"item.formControlName\" [matTooltipShowDelay]=\"2000\"\n [matTooltip]=\"item.label\" [style.width.ch]=\"item?.length\" [placeholder]=\"item.placeholder\">\n </div>\n </ng-container>\n\n\n </div>\n </div> -->\n <div class=\"col\">\n <input\n class=\"w-100 border-0\"\n [value]=\"formattedValue()\"\n (change)=\"iS.formatUserInput($event, form(), showTime(), id())\"\n placeholder=\"dd/mm/yyyy{{ showTime() ? ' hh:mm:ss:aa' : '' }}\"\n [readOnly]=\"disabled()\" />\n <!-- <input class=\"w-100 border-0\" [value]=\"form.controls.formattedValue.value\" (change)=\"formatUserInput()\"\n [readOnly]=\"control?.disabled\" [mat-menu-trigger-for]=\"control?.disabled||readonly?null:picker\"> -->\n </div>\n @if (!disabled() && !readonly()) {\n <div class=\"col-auto\">\n <mat-datepicker-toggle\n matIconSuffix\n [mat-menu-trigger-for]=\"picker\"\n (click)=\"formValue()?.date ? matCalRef._goToDateInView(formValue()?.date, 'month') : null\"></mat-datepicker-toggle>\n </div>\n }\n </div>\n</div>\n\n<mat-menu class=\"full-width\" #picker=\"matMenu\" xPosition=\"after\">\n <div class=\"customdate-picker\" [ngClass]=\"{ 'pe-3': showTime() }\" (click)=\"$event.stopPropagation()\">\n <div class=\"row justify-content-center m-0 gy-2\">\n <div class=\"col-lg-auto\">\n <div class=\"calendar-cont\" #calendarCont>\n <mat-calendar\n #matCalRef\n [selected]=\"formValue()?.date\"\n [maxDate]=\"max()\"\n [minDate]=\"min()\"\n (selectedChange)=\"form().controls.date.patchValue($event)\"></mat-calendar>\n </div>\n </div>\n @if (showTime()) {\n <div class=\"col-lg-auto\">\n <div class=\"time-cont text-center\">\n <div class=\"d-flex align-items-center\">\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\" [style.height.px]=\"calendarCont.offsetHeight\">\n <div class=\"sticky-top bg-white rounded-10 text-primary\">\n {{ 'HR' | appTranslate | async }}\n </div>\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.hours\">\n @for (item of iS.timeHours(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item\">\n {{ item }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\" [style.height.px]=\"calendarCont.offsetHeight\">\n <div class=\"sticky-top bg-white rounded-10 text-primary\">\n {{ 'MIN' | appTranslate | async }}\n </div>\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.minutes\">\n @for (item of iS.timeMinutes(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item\">\n {{ item }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\" [style.height.px]=\"calendarCont.offsetHeight\">\n <div class=\"sticky-top bg-white rounded-10 text-primary\">\n {{ 'S' | appTranslate | async }}\n </div>\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.seconds\">\n @for (item of iS.timeSeconds(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item\">\n {{ item }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\">\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.meridiem\">\n @for (item of iS.timeMeridiem(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item.incrementor\">\n {{ item.label | uppercase }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n</mat-menu>\n", styles: ["input:focus-visible{outline:none}input{background-color:transparent!important}.d-i-f{border:none;width:auto;min-width:0;padding:0;text-align:center}:host{--phFC: #484848 !important}:host ::-webkit-input-placeholder{text-transform:none;color:var(--phFC)}:host :-ms-input-placeholder{text-transform:none;color:var(--phFC)}:host ::placeholder{text-transform:none;color:var(--phFC)}\n"] }]
6034
+ ], template: "<div class=\"customdate ps-2 {{ cls() }} {{ inputClass() }}\" [ngClass]=\"{ disabled: readonly() || disabled() }\">\n <div class=\"row g-1 w-100 align-items-center\">\n <!-- <div class=\"col overflow-auto hide-scroll-x\" [formGroup]=\"form2\">\n <div class=\"d-flex w-100 align-items-center\" [formGroup]=\"form2\">\n <ng-container *ngFor=\"let item of iS.dateInputChunks;let ci=index\">\n <div [style.width]=\"'auto'||item.width\" class=\" d-flex align-items-center\" *ngIf=\"ci<chunksLength\">\n <span>{{item.separator}}</span>\n <input noformat class=\"d-i-f\" id=\"{{this.id}}_di_{{item.formControlName}}\" [type]=\"item.type\"\n [formControlName]=\"item.formControlName\" [matTooltipShowDelay]=\"2000\"\n [matTooltip]=\"item.label\" [style.width.ch]=\"item?.length\" [placeholder]=\"item.placeholder\">\n </div>\n </ng-container>\n\n\n </div>\n </div> -->\n <div class=\"col\">\n <input\n class=\"w-100 border-0\"\n [value]=\"formattedValue()\"\n (change)=\"iS.formatUserInput($event, form(), showTime(), id())\"\n placeholder=\"dd/mm/yyyy{{ showTime() ? ' hh:mm:ss:aa' : '' }}\"\n [readOnly]=\"disabled()\" />\n <!-- <input class=\"w-100 border-0\" [value]=\"form.controls.formattedValue.value\" (change)=\"formatUserInput()\"\n [readOnly]=\"control?.disabled\" [mat-menu-trigger-for]=\"control?.disabled||readonly?null:picker\"> -->\n </div>\n @if (!disabled() && !readonly()) {\n <div class=\"col-auto\">\n <mat-datepicker-toggle\n matIconSuffix\n [mat-menu-trigger-for]=\"picker\"\n (click)=\"formValue()?.date ? matCalRef._goToDateInView(formValue()?.date, 'month') : null\"></mat-datepicker-toggle>\n </div>\n }\n </div>\n</div>\n\n<mat-menu class=\"full-width\" #picker=\"matMenu\" xPosition=\"after\">\n <div class=\"customdate-picker\" [ngClass]=\"{ 'pe-3': showTime() }\" (click)=\"$event.stopPropagation()\">\n <div class=\"row justify-content-center m-0 gy-2\">\n <div class=\"col-lg-auto\">\n <div class=\"calendar-cont\" #calendarCont>\n <mat-calendar\n #matCalRef\n [selected]=\"formValue()?.date\"\n [maxDate]=\"max()\"\n [minDate]=\"min()\"\n (selectedChange)=\"form().controls.date.patchValue($event)\"></mat-calendar>\n </div>\n </div>\n @if (showTime()) {\n <div class=\"col-lg-auto\">\n <div class=\"time-cont text-center\">\n <div class=\"d-flex align-items-center\">\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\" [style.height.px]=\"calendarCont.offsetHeight\">\n <div class=\"sticky-top bg-white rounded-10 text-primary\">\n {{ 'HR' | appTranslate | async }}\n </div>\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.hours\">\n @for (item of iS.timeHours(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item\">\n {{ item }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\" [style.height.px]=\"calendarCont.offsetHeight\">\n <div class=\"sticky-top bg-white rounded-10 text-primary\">\n {{ 'MIN' | appTranslate | async }}\n </div>\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.minutes\">\n @for (item of iS.timeMinutes(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item\">\n {{ item }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\" [style.height.px]=\"calendarCont.offsetHeight\">\n <div class=\"sticky-top bg-white rounded-10 text-primary\">\n {{ 'S' | appTranslate | async }}\n </div>\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.seconds\">\n @for (item of iS.timeSeconds(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item\">\n {{ item }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <div class=\"border rounded-10 overflow-hidden mx-1\">\n <div class=\"time-options-cont hide-scroll\">\n <mat-button-toggle-group class=\"hide-scroll\" [formControl]=\"form().controls.meridiem\">\n @for (item of iS.timeMeridiem(); track item) {\n <mat-button-toggle mat-icon-button class=\"rounded-10\" [value]=\"item.incrementor\">\n {{ item.label | uppercase }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n</mat-menu>\n", styles: ["input:focus-visible{outline:none}input{background-color:transparent!important}.d-i-f{border:none;width:auto;min-width:0;padding:0;text-align:center}:host{--phFC: #484848 !important}:host ::-webkit-input-placeholder{text-transform:none;color:var(--phFC)}:host :-ms-input-placeholder{text-transform:none;color:var(--phFC)}:host ::placeholder{text-transform:none;color:var(--phFC)}\n"] }]
6035
6035
  }], ctorParameters: () => [{ type: InputService }, { type: i1.DatePipe }], propDecorators: { valueChanged: [{
6036
6036
  type: Output
6037
6037
  }], value: [{
@@ -15922,7 +15922,7 @@ class ToggleInputFormComponent {
15922
15922
  this.deleteFromFormFunc = input();
15923
15923
  this.gridNo = model(6);
15924
15924
  this.labelField = input();
15925
- this.labelSeperator = input(' - ');
15925
+ this.labelSeparator = input(' - ');
15926
15926
  this.searchQuery = model();
15927
15927
  this.showToggleAll = input(true);
15928
15928
  this.valueField = input.required();
@@ -15944,10 +15944,10 @@ class ToggleInputFormComponent {
15944
15944
  return typeof _checkedPredicate == 'function' ? _checkedPredicate : null;
15945
15945
  });
15946
15946
  this.initialList = computed(() => {
15947
- const list = this._list() || [], valueField = this.valueField(), labelField = this.labelField(), labelSeperator = this.labelSeperator(), checkedField = this.checkedField(), checkedPredicate = this.checkedPredicate(), labelFields = labelField ? (Array.isArray(labelField) ? labelField : [labelField]) : null;
15947
+ const list = this._list() || [], valueField = this.valueField(), labelField = this.labelField(), labelSeparator = this.labelSeparator(), checkedField = this.checkedField(), checkedPredicate = this.checkedPredicate(), labelFields = labelField ? (Array.isArray(labelField) ? labelField : [labelField]) : null;
15948
15948
  return list.map((option) => ({
15949
15949
  value: option[valueField],
15950
- label: EVFunctions.strConcatenator2(labelFields.map((labelField) => option?.[labelField]), labelSeperator),
15950
+ label: EVFunctions.strConcatenator2(labelFields.map((labelField) => option?.[labelField]), labelSeparator),
15951
15951
  originalRow: option,
15952
15952
  initiallyChecked: checkedField ? !!option[checkedField] : checkedPredicate?.(option),
15953
15953
  }));
@@ -15981,7 +15981,7 @@ class ToggleInputFormComponent {
15981
15981
  this.toggleAll({ checked: true });
15982
15982
  }
15983
15983
  }, { allowSignalWrites: true });
15984
- this.columnLengths = signal([
15984
+ this.columnLengths = computed(() => [
15985
15985
  { label: `List`, value: 1 },
15986
15986
  { label: `Dual`, value: 2 },
15987
15987
  { label: `Triple`, value: 3 },
@@ -16033,9 +16033,10 @@ class ToggleInputFormComponent {
16033
16033
  }
16034
16034
  reset() {
16035
16035
  this.hasHandledDefaultToggle.set(false);
16036
+ this.selectedMap.set({});
16036
16037
  }
16037
16038
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ToggleInputFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16038
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: ToggleInputFormComponent, isStandalone: true, selector: "toggle-input-form", inputs: { addToFormFunc: { classPropertyName: "addToFormFunc", publicName: "addToFormFunc", isSignal: true, isRequired: false, transformFunction: null }, defaultToggleAll: { classPropertyName: "defaultToggleAll", publicName: "defaultToggleAll", isSignal: true, isRequired: false, transformFunction: null }, deleteFromFormFunc: { classPropertyName: "deleteFromFormFunc", publicName: "deleteFromFormFunc", isSignal: true, isRequired: false, transformFunction: null }, gridNo: { classPropertyName: "gridNo", publicName: "gridNo", isSignal: true, isRequired: false, transformFunction: null }, labelField: { classPropertyName: "labelField", publicName: "labelField", isSignal: true, isRequired: false, transformFunction: null }, labelSeperator: { classPropertyName: "labelSeperator", publicName: "labelSeperator", isSignal: true, isRequired: false, transformFunction: null }, searchQuery: { classPropertyName: "searchQuery", publicName: "searchQuery", isSignal: true, isRequired: false, transformFunction: null }, showToggleAll: { classPropertyName: "showToggleAll", publicName: "showToggleAll", isSignal: true, isRequired: false, transformFunction: null }, valueField: { classPropertyName: "valueField", publicName: "valueField", isSignal: true, isRequired: true, transformFunction: null }, checkedChecker: { classPropertyName: "checkedChecker", publicName: "checkedChecker", isSignal: true, isRequired: true, transformFunction: null }, _list: { classPropertyName: "_list", publicName: "list", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { gridNo: "gridNoChange", searchQuery: "searchQueryChange", selected: "selected" }, ngImport: i0, template: "<div class=\"pb-3\">\n <div class=\"row align-items-center justify-content-between g-3\">\n <div class=\"col-lg-auto\">\n <mat-slide-toggle (change)=\"toggleAll($event)\" [checked]=\"defaultToggleAll()\">\n {{ 'Toggle All' | appTranslate | async }}\n </mat-slide-toggle>\n </div>\n <div class=\"col-lg d-flex justify-content-end\">\n <div class=\"row align-items-center g-3\">\n <div class=\"col-auto\">\n <app-btn\n iconBtn\n [showHelpIcon]=\"false\"\n help=\"{{ searchBox.hidden ? 'Open search' : 'Close search' }}\"\n [icon]=\"searchBox.hidden ? 'search' : 'close'\"\n (mclick)=\"searchBox.hidden = !searchBox.hidden\" />\n </div>\n <div class=\"col-auto\" [hidden]=\"true\" #searchBox>\n <app-input-td-rf\n type=\"text\"\n [noFormat]=\"true\"\n [showLabel]=\"false\"\n placeholder=\"Type to search\"\n [(model)]=\"searchQuery\" />\n </div>\n <div class=\"col-auto\">\n <app-btn\n customIcon=\"fa fa-list\"\n [showHelpIcon]=\"false\"\n help=\"Grid Style\"\n [matMenuTriggerFor]=\"gridMenu\" />\n <mat-menu #gridMenu=\"matMenu\" class=\"\">\n @for (item of columnLengths(); track item.value) {\n <button\n mat-menu-item\n (click)=\"gridNo.set(item.value)\"\n [ngClass]=\"{ 'text-primary': item.value == _currentGrid() }\">\n {{ item.label | appTranslate | async }}\n </button>\n }\n </mat-menu>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div\n class=\"row row-cols-md-{{ mdGrid() }} row-cols-lg-{{ lgGrid() }} row-cols-xxl-{{\n xxlGrid()\n }} g-3\">\n @for (item of list() | filterArrayByString: searchQuery() : ['label']; track item.value) {\n <div class=\"\">\n <div class=\"border rounded-10 p-10\">\n <div class=\"row align-items-center\">\n <div\n class=\"col text-ellipsis\"\n [matTooltip]=\"ele.innerText\"\n [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n #ele>\n {{ item.label }}\n </div>\n <div class=\"col-auto\">\n <mat-slide-toggle\n [checked]=\"item.checked\"\n (change)=\"toggleItem($event, item)\" />\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i1$3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "pipe", type: FilterArrayByStringPipe, name: "filterArrayByString" }, { kind: "component", type: InputTD_RFComponent, selector: "app-input-td-rf", inputs: ["validators", "asyncValidators", "model"], outputs: ["modelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16039
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: ToggleInputFormComponent, isStandalone: true, selector: "toggle-input-form", inputs: { addToFormFunc: { classPropertyName: "addToFormFunc", publicName: "addToFormFunc", isSignal: true, isRequired: false, transformFunction: null }, defaultToggleAll: { classPropertyName: "defaultToggleAll", publicName: "defaultToggleAll", isSignal: true, isRequired: false, transformFunction: null }, deleteFromFormFunc: { classPropertyName: "deleteFromFormFunc", publicName: "deleteFromFormFunc", isSignal: true, isRequired: false, transformFunction: null }, gridNo: { classPropertyName: "gridNo", publicName: "gridNo", isSignal: true, isRequired: false, transformFunction: null }, labelField: { classPropertyName: "labelField", publicName: "labelField", isSignal: true, isRequired: false, transformFunction: null }, labelSeparator: { classPropertyName: "labelSeparator", publicName: "labelSeparator", isSignal: true, isRequired: false, transformFunction: null }, searchQuery: { classPropertyName: "searchQuery", publicName: "searchQuery", isSignal: true, isRequired: false, transformFunction: null }, showToggleAll: { classPropertyName: "showToggleAll", publicName: "showToggleAll", isSignal: true, isRequired: false, transformFunction: null }, valueField: { classPropertyName: "valueField", publicName: "valueField", isSignal: true, isRequired: true, transformFunction: null }, checkedChecker: { classPropertyName: "checkedChecker", publicName: "checkedChecker", isSignal: true, isRequired: true, transformFunction: null }, _list: { classPropertyName: "_list", publicName: "list", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { gridNo: "gridNoChange", searchQuery: "searchQueryChange", selected: "selected" }, ngImport: i0, template: "<div class=\"pb-3\">\n <div class=\"row align-items-center justify-content-between g-3\">\n <div class=\"col-lg-auto\">\n <mat-slide-toggle (change)=\"toggleAll($event)\" [checked]=\"defaultToggleAll()\">\n {{ 'Toggle All' | appTranslate | async }}\n </mat-slide-toggle>\n </div>\n <div class=\"col-lg d-flex justify-content-end\">\n <div class=\"row align-items-center g-3\">\n <div class=\"col-auto\">\n <app-btn\n iconBtn\n [showHelpIcon]=\"false\"\n help=\"{{ searchBox.hidden ? 'Open search' : 'Close search' }}\"\n [icon]=\"searchBox.hidden ? 'search' : 'close'\"\n (mclick)=\"searchBox.hidden = !searchBox.hidden\" />\n </div>\n <div class=\"col-auto\" [hidden]=\"true\" #searchBox>\n <app-input-td-rf\n type=\"text\"\n [noFormat]=\"true\"\n [showLabel]=\"false\"\n placeholder=\"Type to search\"\n [(model)]=\"searchQuery\" />\n </div>\n <div class=\"col-auto\">\n <app-btn\n customIcon=\"fa fa-list\"\n [showHelpIcon]=\"false\"\n help=\"Grid Style\"\n [matMenuTriggerFor]=\"gridMenu\" />\n <mat-menu #gridMenu=\"matMenu\" class=\"\">\n @for (item of columnLengths(); track item.value) {\n <button\n mat-menu-item\n (click)=\"gridNo.set(item.value)\"\n [ngClass]=\"{ 'text-primary': item.value == _currentGrid() }\">\n {{ item.label | appTranslate | async }}\n </button>\n }\n </mat-menu>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div\n class=\"row row-cols-md-{{ mdGrid() }} row-cols-lg-{{ lgGrid() }} row-cols-xxl-{{\n xxlGrid()\n }} g-3\">\n @for (item of list() | filterArrayByString: searchQuery() : ['label']; track item.value) {\n <div class=\"\">\n <div class=\"border rounded-10 p-10\">\n <div class=\"row align-items-center\">\n <div\n class=\"col text-ellipsis\"\n [matTooltip]=\"ele.innerText\"\n [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n #ele>\n {{ item.label }}\n </div>\n <div class=\"col-auto\">\n <mat-slide-toggle\n [checked]=\"item.checked\"\n (change)=\"toggleItem($event, item)\" />\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i1$3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "pipe", type: FilterArrayByStringPipe, name: "filterArrayByString" }, { kind: "component", type: InputTD_RFComponent, selector: "app-input-td-rf", inputs: ["validators", "asyncValidators", "model"], outputs: ["modelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16039
16040
  }
16040
16041
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ToggleInputFormComponent, decorators: [{
16041
16042
  type: Component,