[{"__symbolic":"module","version":4,"metadata":{"CreateOrEditEventModalComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../../../../../shared/configure-component-base","name":"ConfigureComponentBase","line":37,"character":53},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":32,"character":1},"arguments":[{"selector":"create-or-edit-event-modal","template":"<div class=\"modal-content fe-modal-container create-or-edit-event-wrap designer-input-wrap\" [busyIf]=\"isLoading\" bs-modal-drag> <div class=\"modal-header fe-modal-header\"> <h4 class=\"fe-modal-header-title\"> <span *ngIf=\"eventId\">{{lc(\"EditEvent\")}}</span> <span *ngIf=\"!eventId\">{{lc(\"AddEvent\")}}</span> </h4> <div class=\"fe-modal-header-close\" aria-label=\"Close\" (click)=\"close()\">×</div> </div> <form #saveEventForm=\"ngForm\" novalidate> <div class=\"modal-body\" class=\"create-or-edit-event-body\"> <tabset #staticTabs class=\"tab-container tabbable-line\"> <tab heading=\"{{lc('BasicProperty')}}\" customClass=\"m-tabs__item\"> <div class=\"event-transverse clearfix\"> <div class=\"event-title\"> {{lc('EventDataSource')}}: </div> <div> <div class=\"event-level-content event-input clearfix\"> <div class=\"event-level-button active\"> {{lc('Variable')}} </div> </div> </div> </div> <div class=\"event-transverse clearfix\"> <div class=\"event-title\"> {{lc('ConfigureVariableName')}}: </div> <div class=\"event-input\"> <variable-selector [configureId]=\"configureId\" [(currentVariableId)]=\"currentVariableId\" [dataType]=\"dataType\"> </variable-selector> </div> </div> <div class=\"event-border-bottom\"></div> <div class=\"event-transverse clearfix\"> <div class=\"event-title\"> <i class=\"star\">*</i> {{lc('EventName')}}: </div> <div class=\"event-input\"> <input #eventNameCtrl=\"ngModel\" type=\"text\" name=\"eventName\" [(ngModel)]=\"event.name\" maxlength=\"200\" required> <validation-messages [formCtrl]=\"eventNameCtrl\"></validation-messages> </div> </div> <div class=\"event-transverse clearfix\"> <div class=\"event-title\"> <i class=\"star\">*</i> {{lc('EventMessage')}}: </div> <div class=\"event-input\"> <textarea #eventMessageCtrl=\"ngModel\" class=\"whole-width textarea event-message\" rows=\"4\" name=\"eventMessage\" required maxlength=\"500\" [(ngModel)]=\"event.eventMessage\"> </textarea> <validation-messages [formCtrl]=\"eventMessageCtrl\"></validation-messages> </div> </div> <div class=\"event-transverse clearfix\"> <div class=\"event-title\"> <i class=\"star\">*</i> {{lc(\"EventGroup\")}}: </div> <div class=\"event-input\"> <ng-select name=\"groupListSelect\" [items]=\"groupList\" bindLabel=\"name\" bindValue=\"id\" [searchable]=\"false\" [(ngModel)]=\"configureEventGroupId\" [required]=\"true\" [clearable]=\"false\" placeholder=\"{{lc('PleaseSelect')}}\" [notFoundText]=\"l('NoData')\"> <ng-template ng-option-tmp ng-label-tmp let-item=\"item\"> {{item.name}} </ng-template> </ng-select> </div> </div> <div *ngIf=\"isSelectedVariable\"> <div class=\"event-transverse clearfix\"> <div class=\"event-title\"> {{lc(\"TriggerRule\")}}: </div> <div class=\"event-input\"> <ng-select name=\"triggerRule\" [items]=\"triggerRuleTypes\" bindLabel=\"name\" bindValue=\"key\" [searchable]=\"false\" [(ngModel)]=\"selectTriggerRuleType\" [clearable]=\"false\" placeholder=\"{{lc('PleaseSelect')}}\" [notFoundText]=\"l('NoData')\"> <ng-template ng-option-tmp ng-label-tmp let-item=\"item\"> {{lc(item.name)}} </ng-template> </ng-select> </div> </div> <div *ngIf=\"!isBitDatatype && selectTriggerRuleType === triggerRuleType.Threshold\"> <div class=\"event-transverse clearfix\"> <div class=\"event-title\"> &nbsp;&nbsp;&nbsp;</div> <div class=\"event-input trigger-rule-position\"> <span class=\"variable-value\">{{lc(\"VariableValue\")}}</span> <ng-select class=\"condition\" name=\"condition1\" [items]=\"conditionTypes\" bindLabel=\"name\" bindValue=\"key\" [searchable]=\"false\" [required]=\"true\" [(ngModel)]=\"thresholdValue.condition1\" [clearable]=\"false\" placeholder=\"{{lc('PleaseSelect')}}\" [notFoundText]=\"l('NoData')\"> <ng-template ng-option-tmp ng-label-tmp let-item=\"item\"> {{lc(item.name)}} </ng-template> </ng-select> <div class=\"operand\"> <input type=\"number\" name=\"operand1\" #operand1=\"ngModel\" [(ngModel)]=\"thresholdValue.operand1\" [minNumber]=\"minFloatValue\" (blur)=\"operand1ToFixed(operand1.valid)\" [maxNumber]=\"maxFloatValue\" minValueCheck required> <div *ngIf=\"thresholdValue.operand1 && operand1.invalid\" class=\"error-tips\"> {{lc('DataOverflow')}}</div> </div> <ng-select class=\"trigger-rule-last\" name=\"conditionCombine\" [items]=\"conditionCombines\" bindLabel=\"name\" bindValue=\"key\" [required]=\"true\" [searchable]=\"false\" [(ngModel)]=\"thresholdValue.conditionCombine\" [clearable]=\"false\" placeholder=\"{{lc('PleaseSelect')}}\" [notFoundText]=\"l('NoData')\"> <ng-template ng-option-tmp ng-label-tmp let-item=\"item\"> {{lc(item.name)}} </ng-template> </ng-select> </div> </div> <div *ngIf=\"thresholdValue.conditionCombine === +conditionCombine.And || thresholdValue.conditionCombine === +conditionCombine.Or\" class=\"event-transverse clearfix\"> <div class=\"event-title\"> &nbsp;&nbsp;&nbsp;</div> <div class=\"event-input\"> <span class=\"variable-value\">{{lc(\"VariableValue\")}}</span> <ng-select class=\"condition\" name=\"condition2\" [items]=\"conditionTypes\" bindLabel=\"name\" bindValue=\"key\" [searchable]=\"false\" [required]=\"true\" [(ngModel)]=\"thresholdValue.condition2\" [clearable]=\"false\" placeholder=\"{{lc('PleaseSelect')}}\" [notFoundText]=\"l('NoData')\"> <ng-template ng-option-tmp ng-label-tmp let-item=\"item\"> {{lc(item.name)}} </ng-template> </ng-select> <div class=\"operand\"> <input type=\"number\" name=\"operand2\" #operand2=\"ngModel\" [(ngModel)]=\"thresholdValue.operand2\" [minNumber]=\"minFloatValue\" [maxNumber]=\"maxFloatValue\" (blur)=\"operand2ToFixed(operand2.valid)\" minValueCheck required> <div *ngIf=\"thresholdValue.operand2 && operand2.invalid\" class=\"error-tips\"> {{lc('DataOverflow')}}</div> </div> <span class=\"trigger-rule-last\"></span> </div> </div> </div> <div *ngIf=\"!isBitDatatype && selectTriggerRuleType === triggerRuleType.Deviance\" class=\"event-transverse clearfix\"> <div class=\"event-title\"> <i class=\"star\">*</i> {{lc(\"DevianceValue\")}}: </div> <div class=\"event-input\"> <input type=\"number\" name=\"value\" #devianceValueRef=\"ngModel\" [(ngModel)]=\"devianceValue.value\" devianceValueCheck required> </div> <div class=\"has-danger\" *ngIf=\"devianceValueRef.touched && devianceValueRef.invalid\"> <div class=\"form-control-feedback\"> <span>{{lc('DevianceValueValidateMessage')}}</span> </div> </div> </div> <div *ngIf=\"!isBitDatatype && selectTriggerRuleType === triggerRuleType.Deviance\" class=\"event-transverse clearfix\"> <div class=\"event-title\"> <i class=\"star\">*</i> {{lc(\"TargetValue\")}}: </div> <div class=\"event-input\"> <input type=\"number\" name=\"targetValue\" [(ngModel)]=\"devianceValue.targetValue\" required> </div> </div> <div *ngIf=\"!isBitDatatype && selectTriggerRuleType === triggerRuleType.ChangeRate\" class=\"event-transverse clearfix\"> <div class=\"event-title\"> {{lc(\"ChangeRate\")}}: </div> <div class=\"event-input\"> <input type=\"number\" name=\"changeRate\" [(ngModel)]=\"changeRateValue.changeRate\" required> </div> </div> <div *ngIf=\"!isBitDatatype && selectTriggerRuleType === triggerRuleType.ChangeRate\" class=\"event-transverse clearfix\"> <div class=\"event-title\">{{lc(\"AlarmEventCycle\")}}:</div> <div class=\"event-input\"> <input type=\"number\" name=\"cycle\" class=\"input-number\" [(ngModel)]=\"changeRateValue.cycle\" required>{{lc(\"Second\")}} </div> </div> <div class=\"event-transverse clearfix\"> <div class=\"event-title\"> {{lc(\"DelayTime\")}}: </div> <div class=\"event-input\"> <input type=\"number\" name=\"delayTime\" class=\"input-number\" #delayTime=\"ngModel\" onkeydown=\"return event.keyCode !== 69 && event.keyCode !== 190\" [(ngModel)]=\"event.delayTime\" delayTimeCheck required>{{lc(\"Second\")}} <i nz-icon nzType=\"question-circle\" nz-tooltip nzOverlayClassName=\"wechat-popover\" nzTheme=\"outline\" [nzTitle]=\"alarmAndEventDelayTimePrompt\" nzPlacement=\"right\"></i> <ng-template #alarmAndEventDelayTimePrompt> <div class=\"font-size-12px\"> {{getDeadOrDelayPrompt(\"AlarmAndEventDelayTimePrompt\")}} </div> </ng-template> </div> <div class=\"has-danger\" *ngIf=\"delayTime.invalid\"> <div class=\"form-control-feedback\"> <span>{{lc('DelayTimeValidateMessage')}}</span> </div> </div> </div> <div *ngIf=\"!isBitDatatype\" class=\"event-transverse clearfix\"> <div class=\"event-title\"> {{lc(\"DeadBand\")}}: </div> <div class=\"event-input\"> <input type=\"number\" name=\"deadBand\" class=\"input-number\" [(ngModel)]=\"event.deadBand\" #deadBandRef=\"ngModel\" deadBandValueCheck required> <i nz-icon nzType=\"question-circle\" nz-tooltip nzOverlayClassName=\"wechat-popover\" nzTheme=\"outline\" [nzTitle]=\"alarmAndEventDeadTimePrompt\" nzPlacement=\"right\"></i> <ng-template #alarmAndEventDeadTimePrompt> <div class=\"font-size-12px\"> {{getDeadOrDelayPrompt(\"AlarmAndEventDeadTimePrompt\")}} </div> </ng-template> </div> <div class=\"has-danger\" *ngIf=\"deadBandRef.touched && deadBandRef.invalid\"> <div class=\"form-control-feedback\"> <span>{{lc('DeadBandValidateMessage')}}</span> </div> </div> </div> </div> </tab> <tab heading=\"{{lc('StorageSetting')}}\" customClass=\"m-tabs__item\"> <div class=\"event-transverse clearfix\"> <div class=\"event-title\"> {{lc('StoragePath')}}: </div> <div class=\"event-input\"> <div class=\"ui-inputgroup\"> <input type=\"text\" pInputText placeholder=\"{{lc('IoTDataBase')}}\" [disabled]=\"true\"> <span class=\"ui-inputgroup-addon\">...</span> </div> </div> </div> <div class=\"event-transverse clearfix\"> <div class=\"event-title\"> {{lc('StorageTime')}}: </div> <div class=\"event-input\"> <ng-select class=\"storage-time-types\" [items]=\"storageTimeTypes\" bindLabel=\"name\" name=\"StorageTimeTypes\" [(ngModel)]=\"selectedStorageTimeType\" [clearable]=\"false\" selectOnTab=\"false\" [placeholder]=\"\" [loadingText]=\"l('LoadWithThreeDot')\" bindValue=\"key\" [notFoundText]=\"l('NoData')\" [disabled]=\"true\"> <ng-template ng-label-tmp let-item=\"item\" let-index=\"index\"> {{lc(item.name)}} </ng-template> <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\"> {{lc(item.name)}} </ng-template> </ng-select> </div> </div> </tab> </tabset> </div> <div class=\"fe-modal-footer\"> <div class=\"button-group\"> <button type=\"submit\" class=\"fe-btn fe-btn-default fe-btn-save\" [disabled]=\"!saveEventForm.form.valid || saving\" [buttonBusy]=\"saving\" (click)=\"save()\" [busyText]=\"l('SavingWithThreeDot')\"> {{l('Save')}} </button> <button [disabled]=\"saving\" type=\"button\" class=\"fe-btn fe-btn-default fe-btn-cancel-one\" (click)=\"close()\"> {{l('Cancel')}} </button> </div> </div> </form> </div> ","styles":[".create-or-edit-event-body { margin-left: 20px; margin-right: 20px; padding: 1rem 0; .event-transverse { width: 100%; margin: 1rem auto; .event-title { float: left; width: 28%; line-height: 30px; text-align: right; padding-right: 15px; white-space: nowrap; .star { color: red; } } .event-input { margin-left: 28%; width: 350px; .storage-time-types ::ng-deep.ng-star-inserted{ color:#999; } .ui-inputgroup-addon { height: 30px; margin-left: 10px; padding-top: 0px !important; } input { width: 100%; height: 30px; } select { width: 100%; height: 30px; } .open-event-choose-btn { height: 30px; width: 30px; background-color: white; border: 1px solid #b5c2ca; cursor: pointer; span { color: #3695FF; } } button[disabled] { border: 1px solid #C4C6CF; background-color: #F2F3F7; height: 30px; } .input-number { width: 50% !important; margin-right: 10px; } .variable-value { width: 80px; white-space: nowrap; } .condition { display: inline-block; width: 70px; margin-left: 5px; } .operand { display: inline-block; vertical-align: top; width: 70px; margin-left: 5px; } .trigger-rule-last { width: 93px; display: inline-block; margin-left: 5px; } .event-message { color: #666666; padding-left: 4px; border: 1px solid #d7dbe5; } .textarea { resize: none; } } .has-danger { margin-left: 0; } .trigger-rule-position { position: relative; } } } .create-or-edit-event-wrap{ .fe-modal-header { border-bottom: 1px solid #f4f4f4; .fe-modal-header-title { line-height: 50px; } } .modal-content .modal-body { padding-bottom: 0; } .event-transverse:last-child { margin-bottom: 0; } .fe-btn.fe-btn-default.fe-btn-save.save-and-import { width: auto; padding: 0 10px; } .event-border-bottom { border-bottom: 1px solid #f4f4f4; } .event-level-content { cursor: pointer; width: calc(60% - 20px); .event-level-button { width: 25%; height: 30px; float: left; border: 1px solid #C4C6CF; display: flex; justify-content: space-around; align-items: center; .level-color { width: 16px; height: 16px; } } .event-level-button.active { background-color: #EBECF0; } .level-one { .level-color { background-color: #3695FF; } } .level-two { .level-color { background-color: #FFE900; } } .level-three { .level-color { background-color: #FFA800; } } .level-four { .level-color { background-color: #E84F4F; } } .event-level-button:not(:last-child) { border-right: 0; } } select:invalid { color: gray !important; } option[disabled] { display: none !important; } option { color: black !important; } .select-search { float: left; width: 260px; margin-left: 22%; padding: 8px; background-color: #eee; } select option { color: rgba(0, 0, 0, 0.6); } input.ng-touched.ng-invalid { outline: none !important; border: 1px solid #f4516c; } textarea.ng-touched.ng-invalid { outline: none !important; border: 1px solid #f4516c !important; } .tab-container .tabbable-line { ul { margin-left: 20px; } } .font-size-12px{ font-size: 12px; } .error-tips { color: #f4516c; } .prompt{ cursor: pointer; position: relative; } .prompt:hover > div{ display:block; } .prompt-message{ display: none; text-align: left; z-index: 100; position: absolute; width: 200px; background: #fff; padding: 5px; font-size: 11px; color: #999; box-shadow: 5px 5px 15px #ccc; } } "]}]}],"members":{"configureId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":5}}]}],"eventId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":5}}]}],"createdEvent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":41,"character":5}}]}],"updatedEvent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":42,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":91,"character":9},"arguments":[{"__symbolic":"reference","module":"../../../../core/variable/variable.service","name":"VARIABLE_SERVICE","line":91,"character":16}]}],null],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":87,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":88,"character":33},{"__symbolic":"reference","module":"../../../../../../shared/service-proxies/service-proxies","name":"ConfigureEventServiceProxy","line":89,"character":48},{"__symbolic":"reference","module":"../../../../../../shared/service-proxies/service-proxies","name":"ConfigureEventGroupServiceProxy","line":90,"character":53},{"__symbolic":"reference","module":"../../../../core/variable/variable.services","name":"VariableService","line":91,"character":68},{"__symbolic":"reference","module":"ngx-bootstrap","name":"BsModalRef","line":92,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"loadEventGroup":[{"__symbolic":"method"}],"initData":[{"__symbolic":"method"}],"loadEventForEdit":[{"__symbolic":"method"}],"setEventData":[{"__symbolic":"method"}],"initTriggerRule":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"setTriggerRule":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"currentVariableIdChanged":[{"__symbolic":"method"}],"validCheckDeadValue":[{"__symbolic":"method"}],"operand1ToFixed":[{"__symbolic":"method"}],"operand2ToFixed":[{"__symbolic":"method"}],"getDeadOrDelayPrompt":[{"__symbolic":"method"}]}}}}]