@sd-angular/core 1.3.213 → 1.3.216
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/autocomplete/sd-angular-core-autocomplete.metadata.json +1 -1
- package/autocomplete/src/lib/autocomplete.component.d.ts +4 -1
- package/bundles/sd-angular-core-autocomplete.umd.js +22 -2
- package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.min.js +2 -2
- package/bundles/sd-angular-core-autocomplete.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-checkbox.umd.js +29 -3
- package/bundles/sd-angular-core-checkbox.umd.js.map +1 -1
- package/bundles/sd-angular-core-checkbox.umd.min.js +2 -2
- package/bundles/sd-angular-core-checkbox.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-date-month.umd.js +23 -1
- package/bundles/sd-angular-core-date-month.umd.js.map +1 -1
- package/bundles/sd-angular-core-date-month.umd.min.js +2 -2
- package/bundles/sd-angular-core-date-month.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-date-time.umd.js +24 -1
- package/bundles/sd-angular-core-date-time.umd.js.map +1 -1
- package/bundles/sd-angular-core-date-time.umd.min.js +1 -1
- package/bundles/sd-angular-core-date-time.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-editor.umd.js +23 -3
- package/bundles/sd-angular-core-editor.umd.js.map +1 -1
- package/bundles/sd-angular-core-editor.umd.min.js +1 -1
- package/bundles/sd-angular-core-editor.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-input-currency.umd.js +22 -2
- package/bundles/sd-angular-core-input-currency.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-currency.umd.min.js +1 -1
- package/bundles/sd-angular-core-input-currency.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-input-dropdown.umd.js +22 -2
- package/bundles/sd-angular-core-input-dropdown.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-dropdown.umd.min.js +1 -1
- package/bundles/sd-angular-core-input-dropdown.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-input-number.umd.js +25 -2
- package/bundles/sd-angular-core-input-number.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-number.umd.min.js +2 -2
- package/bundles/sd-angular-core-input-number.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-input.umd.js +33 -3
- package/bundles/sd-angular-core-input.umd.js.map +1 -1
- package/bundles/sd-angular-core-input.umd.min.js +2 -2
- package/bundles/sd-angular-core-input.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-radio.umd.js +22 -2
- package/bundles/sd-angular-core-radio.umd.js.map +1 -1
- package/bundles/sd-angular-core-radio.umd.min.js +2 -2
- package/bundles/sd-angular-core-radio.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-select-editor.umd.js +1 -1
- package/bundles/sd-angular-core-select-editor.umd.js.map +1 -1
- package/bundles/sd-angular-core-select-editor.umd.min.js +2 -2
- package/bundles/sd-angular-core-select-editor.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.js +22 -2
- package/bundles/sd-angular-core-select.umd.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.min.js +2 -2
- package/bundles/sd-angular-core-select.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-switch.umd.js +34 -7
- package/bundles/sd-angular-core-switch.umd.js.map +1 -1
- package/bundles/sd-angular-core-switch.umd.min.js +2 -2
- package/bundles/sd-angular-core-switch.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-table.umd.js +95 -77
- package/bundles/sd-angular-core-table.umd.js.map +1 -1
- package/bundles/sd-angular-core-table.umd.min.js +1 -1
- package/bundles/sd-angular-core-table.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-textarea.umd.js +22 -2
- package/bundles/sd-angular-core-textarea.umd.js.map +1 -1
- package/bundles/sd-angular-core-textarea.umd.min.js +1 -1
- package/bundles/sd-angular-core-textarea.umd.min.js.map +1 -1
- package/checkbox/sd-angular-core-checkbox.metadata.json +1 -1
- package/checkbox/src/lib/checkbox.component.d.ts +4 -1
- package/date-month/sd-angular-core-date-month.metadata.json +1 -1
- package/date-month/src/lib/date-month.component.d.ts +4 -1
- package/date-time/sd-angular-core-date-time.metadata.json +1 -1
- package/date-time/src/lib/date-time.component.d.ts +4 -1
- package/editor/sd-angular-core-editor.metadata.json +1 -1
- package/editor/src/lib/editor.component.d.ts +4 -1
- package/esm2015/autocomplete/src/lib/autocomplete.component.js +19 -3
- package/esm2015/checkbox/src/lib/checkbox.component.js +26 -4
- package/esm2015/date-month/src/lib/date-month.component.js +20 -2
- package/esm2015/date-time/src/lib/date-time.component.js +21 -2
- package/esm2015/editor/src/lib/editor.component.js +20 -4
- package/esm2015/input/src/lib/input.component.js +28 -3
- package/esm2015/input-currency/src/lib/input-currency.component.js +19 -3
- package/esm2015/input-dropdown/src/lib/input.component.js +19 -3
- package/esm2015/input-number/src/lib/input-number.component.js +22 -3
- package/esm2015/radio/src/lib/radio.component.js +19 -3
- package/esm2015/select/src/lib/select.component.js +19 -3
- package/esm2015/select-editor/src/lib/select-editor.component.js +2 -2
- package/esm2015/switch/src/lib/switch.component.js +26 -4
- package/esm2015/switch/src/lib/switch.module.js +3 -1
- package/esm2015/table/src/lib/components/column-inline-filter/column-inline-filter.component.js +1 -1
- package/esm2015/table/src/lib/models/table-column.model.js +1 -1
- package/esm2015/table/src/lib/services/table-filter/table-filter.service.js +19 -7
- package/esm2015/table/src/lib/table.component.js +5 -2
- package/esm2015/textarea/src/lib/textarea.component.js +19 -3
- package/fesm2015/sd-angular-core-autocomplete.js +18 -2
- package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
- package/fesm2015/sd-angular-core-checkbox.js +25 -3
- package/fesm2015/sd-angular-core-checkbox.js.map +1 -1
- package/fesm2015/sd-angular-core-date-month.js +19 -1
- package/fesm2015/sd-angular-core-date-month.js.map +1 -1
- package/fesm2015/sd-angular-core-date-time.js +20 -1
- package/fesm2015/sd-angular-core-date-time.js.map +1 -1
- package/fesm2015/sd-angular-core-editor.js +19 -3
- package/fesm2015/sd-angular-core-editor.js.map +1 -1
- package/fesm2015/sd-angular-core-input-currency.js +18 -2
- package/fesm2015/sd-angular-core-input-currency.js.map +1 -1
- package/fesm2015/sd-angular-core-input-dropdown.js +18 -2
- package/fesm2015/sd-angular-core-input-dropdown.js.map +1 -1
- package/fesm2015/sd-angular-core-input-number.js +21 -2
- package/fesm2015/sd-angular-core-input-number.js.map +1 -1
- package/fesm2015/sd-angular-core-input.js +29 -4
- package/fesm2015/sd-angular-core-input.js.map +1 -1
- package/fesm2015/sd-angular-core-radio.js +18 -2
- package/fesm2015/sd-angular-core-radio.js.map +1 -1
- package/fesm2015/sd-angular-core-select-editor.js +1 -1
- package/fesm2015/sd-angular-core-select-editor.js.map +1 -1
- package/fesm2015/sd-angular-core-select.js +18 -2
- package/fesm2015/sd-angular-core-select.js.map +1 -1
- package/fesm2015/sd-angular-core-switch.js +27 -3
- package/fesm2015/sd-angular-core-switch.js.map +1 -1
- package/fesm2015/sd-angular-core-table.js +22 -7
- package/fesm2015/sd-angular-core-table.js.map +1 -1
- package/fesm2015/sd-angular-core-textarea.js +18 -2
- package/fesm2015/sd-angular-core-textarea.js.map +1 -1
- package/input/sd-angular-core-input.metadata.json +1 -1
- package/input/src/lib/input.component.d.ts +5 -1
- package/input-currency/sd-angular-core-input-currency.metadata.json +1 -1
- package/input-currency/src/lib/input-currency.component.d.ts +4 -1
- package/input-dropdown/sd-angular-core-input-dropdown.metadata.json +1 -1
- package/input-dropdown/src/lib/input.component.d.ts +4 -1
- package/input-number/sd-angular-core-input-number.metadata.json +1 -1
- package/input-number/src/lib/input-number.component.d.ts +5 -1
- package/package.json +1 -1
- package/radio/sd-angular-core-radio.metadata.json +1 -1
- package/radio/src/lib/radio.component.d.ts +4 -1
- package/{sd-angular-core-1.3.213.tgz → sd-angular-core-1.3.216.tgz} +0 -0
- package/select/sd-angular-core-select.metadata.json +1 -1
- package/select/src/lib/select.component.d.ts +4 -1
- package/select-editor/sd-angular-core-select-editor.metadata.json +1 -1
- package/switch/sd-angular-core-switch.metadata.json +1 -1
- package/switch/src/lib/switch.component.d.ts +4 -1
- package/table/sd-angular-core-table.metadata.json +1 -1
- package/table/src/lib/models/table-column.model.d.ts +1 -0
- package/textarea/sd-angular-core-textarea.metadata.json +1 -1
- package/textarea/src/lib/textarea.component.d.ts +4 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms"),require("uuid"),require("object-hash"),require("rxjs"),require("@sd-angular/core/common"),require("@angular/material/form-field"),require("@angular/material/input"),require("@angular/material/button"),require("@angular/material/icon"),require("@angular/material/tooltip"),require("@sd-angular/core/translate"),require("@sd-angular/core/popover")):"function"==typeof define&&define.amd?define("@sd-angular/core/input-number",["exports","@angular/core","@angular/common","@angular/forms","uuid","object-hash","rxjs","@sd-angular/core/common","@angular/material/form-field","@angular/material/input","@angular/material/button","@angular/material/icon","@angular/material/tooltip","@sd-angular/core/translate","@sd-angular/core/popover"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["sd-angular"]=e["sd-angular"]||{},e["sd-angular"].core=e["sd-angular"].core||{},e["sd-angular"].core["input-number"]={}),e.ng.core,e.ng.common,e.ng.forms,e.uuid,e.hash,e.rxjs,e["sd-angular"].core.common,e.ng.material.formField,e.ng.material.input,e.ng.material.button,e.ng.material.icon,e.ng.material.tooltip,e["sd-angular"].core.translate,e["sd-angular"].core.popover)}(this,(function(e,t,r,n,o,a,
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms"),require("uuid"),require("object-hash"),require("rxjs"),require("@sd-angular/core/common"),require("@angular/material/form-field"),require("@angular/material/input"),require("@angular/material/button"),require("@angular/material/icon"),require("@angular/material/tooltip"),require("@sd-angular/core/translate"),require("@sd-angular/core/popover")):"function"==typeof define&&define.amd?define("@sd-angular/core/input-number",["exports","@angular/core","@angular/common","@angular/forms","uuid","object-hash","rxjs","@sd-angular/core/common","@angular/material/form-field","@angular/material/input","@angular/material/button","@angular/material/icon","@angular/material/tooltip","@sd-angular/core/translate","@sd-angular/core/popover"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["sd-angular"]=e["sd-angular"]||{},e["sd-angular"].core=e["sd-angular"].core||{},e["sd-angular"].core["input-number"]={}),e.ng.core,e.ng.common,e.ng.forms,e.uuid,e.hash,e.rxjs,e["sd-angular"].core.common,e.ng.material.formField,e.ng.material.input,e.ng.material.button,e.ng.material.icon,e.ng.material.tooltip,e["sd-angular"].core.translate,e["sd-angular"].core.popover)}(this,(function(e,t,r,n,o,i,a,l,s,u,c,p,d,f,m){"use strict";function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g=h(i);
|
|
2
2
|
/*! *****************************************************************************
|
|
3
3
|
Copyright (c) Microsoft Corporation.
|
|
4
4
|
|
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */function b(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{s(n.next(e))}catch(e){a(e)}}function l(e){try{s(n.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,l)}s((n=n.apply(e,t||[])).next())}))}function y(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(a){return function(l){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,l])}}}Object.create;var v,C,w,x,M,I,k,E,V,F,O,q,S;Object.create;function T(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}function j(e,t,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,r):o?o.value=r:t.set(e,r),r}var P=function(){function e(e){this.formControl=e}return e.prototype.isErrorState=function(e,t){var r,n,o,a=t&&t.submitted;return!(!(null===(r=this.formControl)||void 0===r?void 0:r.invalid)||!((null===(n=this.formControl)||void 0===n?void 0:n.dirty)||(null===(o=this.formControl)||void 0===o?void 0:o.touched)||a))},e}(),R=function(){function e(e,r){var a=this;this.ref=e,this.formConfig=r,this.id="I"+o.v4(),v.set(this,o.v4()),C.set(this,void 0),this.disableErrorMessage=!1,w.set(this,!1),x.set(this,void 0),this.modelChange=new t.EventEmitter,this.isRequired=!1,this.precision=3,this.isReadonly=!1,M.set(this,void 0),this.copyable=!1,this.copied=!1,this.sdChange=new t.EventEmitter,this.sdFocus=new t.EventEmitter,this.sdFocusForceBlur=new t.EventEmitter,this.keyupEnter=new t.EventEmitter,this.formControl=new l.SdFormControl,this.inputControl=new l.SdFormControl,I.set(this,new i.Subscription),this.matcher=new P(this.formControl),this.isFocused=!1,k.set(this,(function(e){var t=e.split(",");return t.length>=2?T(a,E).call(a,t[0])+","+t[1]:T(a,E).call(a,e)})),E.set(this,(function(e){return Number.toVNCurrency(((null==e?void 0:e.toString())||"").replace(/\./g,""))})),V.set(this,(function(e){return+((null==e?void 0:e.toString())||"").replace(/\./g,"").replace(/,/g,".")})),this.reValidate=function(){a.formControl.updateValueAndValidity()},F.set(this,(function(){a.formControl.clearValidators(),a.formControl.clearAsyncValidators();var e=[],t=[];a.isRequired&&e.push(n.Validators.required),(a.minNumber||0===a.minNumber)&&e.push(n.Validators.min(a.minNumber)),(a.maxNumber||0===a.maxNumber)&&e.push(n.Validators.max(a.maxNumber)),T(a,M)&&t.push(T(a,S).call(a,T(a,M))),a.formControl.setValidators(e),a.formControl.setAsyncValidators(t),a.formControl.updateValueAndValidity()})),O.set(this,(function(e){j(a,x,null!=e?e:null),a.modelChange.emit(T(a,x)),a.sdChange.emit(T(a,x)),a.formControl.setValue(T(a,x))})),this.onKeyupEnter=function(){var e,t=(null!==(e=a.inputControl.value)&&void 0!==e?e:"").toString();t.length>t.trim().length&&a.inputControl.setValue(t.trim()),a.keyupEnter.emit(a.inputControl.value),T(a,w)&&a.blur()},this.onKeydown=function(e){if(e.ctrlKey&&"v"==e.key)T(a,q).call(a,e,"");else{var t=e.keyCode||e.charCode;8!=t&&46!=t&&37!=t&&39!=t&&35!=t&&36!=t&&9!=t&&(!e.ctrlKey||"c"!=e.key&&"x"!=e.key&&"a"!=e.key)&&(e.shiftKey&&9==t||T(a,q).call(a,e,e.key))}},q.set(this,(function(e,t){var r=e.target.value.split("");r.splice(e.target.selectionStart,e.target.selectionEnd-e.target.selectionStart,t);var n=r.join("");if("positive"===a.type||"-"!==n){var o=new RegExp("^"+a.regex,"g");!n||String(n).match(o)||e.preventDefault()}})),this.onFocus=function(){var e;a.isFocused=!0,a.sdFocus.emit(),(null===(e=a.sdFocusForceBlur.observers)||void 0===e?void 0:e.length)>0&&(a.blur(),a.sdFocusForceBlur.emit())},this.onBlur=function(){var e;a.isFocused=!1;var t=(null!==(e=a.inputControl.value)&&void 0!==e?e:"").toString(),r=t.split(",");r.length>=2&&""==r[1]?a.inputControl.setValue(T(a,E).call(a,r[0])):t.length>t.trim().length&&a.inputControl.setValue(t.trim())},this.onClick=function(){var e;(null===(e=a.sdView)||void 0===e?void 0:e.templateRef)&&(a.formControl.disabled||a.isFocused||a.focus())},this.blur=function(){var e,t;a.isFocused=!1,null===(t=null===(e=a.control)||void 0===e?void 0:e.nativeElement)||void 0===t||t.blur()},this.focus=function(){a.isFocused=!0,setTimeout((function(){var e,t;null===(t=null===(e=a.control)||void 0===e?void 0:e.nativeElement)||void 0===t||t.focus()}),100)},S.set(this,(function(e){return function(t){return b(a,void 0,void 0,(function(){var r,n,o,a;return y(this,(function(i){switch(i.label){case 0:return n=null!==(r=t.value)&&void 0!==r?r:null,e&&"function"==typeof e?(o=e(n))instanceof Promise?[4,o]:[3,2]:[3,3];case 1:return(a=i.sent())?[2,{customValidator:a}]:[2,null];case 2:return o?[2,{customValidator:o}]:[2,null];case 3:return[2,null]}}))}))}}))}return Object.defineProperty(e.prototype,"name",{set:function(e){e&&j(this,v,e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"form",{set:function(e){e&&(e instanceof n.NgForm?j(this,C,e.form):j(this,C,e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_label",{set:function(e){this.label=e,this.qcId=g.default({selector:"sd-input-number",label:e})},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_disableErrorMessage",{set:function(e){this.disableErrorMessage=""===e||e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_blurOnEnter",{set:function(e){j(this,w,""===e||e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"model",{set:function(e){if(T(this,x)!==e)if(j(this,x,e),this.formControl.setValue(T(this,x),{emitEvent:!1}),e||0===e){var t=e.toString().replace(/\./g,",");this.inputControl.setValue(T(this,k).call(this,t),{emitEvent:!1})}else this.inputControl.setValue("",{emitEvent:!1})},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"required",{set:function(e){this.isRequired=""===e||e,T(this,F).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"readonly",{set:function(e){this.isReadonly=""===e||e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"min",{set:function(e){this.minNumber=e,T(this,F).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"max",{set:function(e){this.maxNumber=e,T(this,F).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"validator",{set:function(e){j(this,M,e),T(this,F).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{set:function(e){(e=""===e||e)?(this.inputControl.disable(),this.formControl.disable()):(this.inputControl.enable(),this.formControl.enable())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_copyable",{set:function(e){this.copyable=""===e||e},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var e,t=this;this.appearance=this.appearance||(null===(e=this.formConfig)||void 0===e?void 0:e.appearance),T(this,I).add(this.inputControl.touchChanges.subscribe((function(){t.formControl.markAsTouched(),t.ref.markForCheck()}))),T(this,I).add(this.formControl.sdChanges.subscribe((function(){t.ref.markForCheck()}))),T(this,I).add(this.inputControl.sdChanges.subscribe((function(){t.ref.markForCheck()})))},Object.defineProperty(e.prototype,"regex",{get:function(){var e="(([0-9]+(\\.[0-9])?)+(\\,[0-9]{0,"+this.precision+"}){0,1})$";return 0===this.precision&&(e="(([0-9]+(\\.[0-9])?)+)$"),"negative"===this.type&&(e="[-]"+e),this.type||(e="[-]?"+e),e},enumerable:!1,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e,t=this;T(this,I).add(this.inputControl.valueChanges.subscribe((function(){var e=t.inputControl.value;if(e){var r=T(t,V).call(t,e);isNaN(r)||(t.inputControl.setValue(T(t,k).call(t,e),{emitEvent:!1}),T(t,O).call(t,r))}else T(t,O).call(t,void 0)}))),null===(e=T(this,C))||void 0===e||e.addControl(T(this,v),this.formControl),this.ref.detectChanges()},e.prototype.ngOnDestroy=function(){var e;null===(e=T(this,C))||void 0===e||e.removeControl(T(this,v)),T(this,I).unsubscribe()},e.prototype.onPaste=function(e){var t=e.clipboardData.getData("text");T(this,q).call(this,e,t)},e.prototype.onCopyText=function(){var e=this;SdUtility.copyToClipboard(this.inputControl.value),this.copied=!0,setTimeout((function(){e.copied=!1}),2e3)},e}();v=new WeakMap,C=new WeakMap,w=new WeakMap,x=new WeakMap,M=new WeakMap,I=new WeakMap,k=new WeakMap,E=new WeakMap,V=new WeakMap,F=new WeakMap,O=new WeakMap,q=new WeakMap,S=new WeakMap,R.decorators=[{type:t.Component,args:[{selector:"sd-input-number",template:'<ng-container *ngIf="!appearance && sdLabelDef?.templateRef">\r\n <ng-container *ngTemplateOutlet="sdLabelDef.templateRef">\r\n </ng-container>\r\n</ng-container>\r\n<label *ngIf="!appearance && label && !sdLabelDef?.templateRef" class="d-block mb-0 T14M">{{label}} <span class="text-danger mb-2"\r\n *ngIf="isRequired">*</span></label>\r\n<div class="d-flex align-items-center" [class.sd-view]="sdView?.templateRef" [class.c-focused]="isFocused"\r\n [class.c-disabled]="formControl.disabled" (click)="onClick()">\r\n <ng-container *ngIf="sdView?.templateRef && !isFocused; else default">\r\n <ng-container *ngTemplateOutlet="sdView.templateRef;context: { value: formControl.value }">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class="sd-md" [ngClass]="{ \'sd-sm\': size === \'sm\', \'no-padding-wrapper\': disableErrorMessage}"\r\n [appearance]="appearance || \'outline\'">\r\n <mat-label *ngIf="appearance && label">{{label}}</mat-label>\r\n <input aria-hidden="true" [id]="id" [formControl]="inputControl" #control matInput\r\n [placeholder]="placeholder || (appearance ? label : \'\')" [errorStateMatcher]="matcher"\r\n (keyup.enter)="onKeyupEnter()" (focus)="onFocus()" (blur)="onBlur()" (keydown)="onKeydown($event)"\r\n [required]="isRequired" [readonly]="isReadonly" [autocomplete]="id" (paste)="onPaste($event)" autocorrect="off"\r\n [attr.data-qclabel]="label" [attr.data-qcid]="qcId"\r\n [sdPopoverTriggerFor]="null" [sdPopoverDisabled]="!disableErrorMessage || formControl.valid">\r\n <ng-container *ngIf="sdSuffix?.templateRef" matSuffix>\r\n <ng-container *ngTemplateOutlet="sdSuffix.templateRef">\r\n </ng-container>\r\n </ng-container>\r\n <svg \r\n #copyTooltip="matTooltip" \r\n *ngIf="copyable" \r\n matSuffix \r\n [matTooltip]="copied ? \'Copied\' : \'Copy\'" \r\n class="icon-copy" \r\n focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" \r\n (click)="onCopyText()">\r\n <path d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"></path>\r\n </svg>\r\n <mat-error *ngIf="formControl?.errors?.required">\r\n <ng-container *ngIf="!disableErrorMessage">{{ "This field is required" | sdTranslate }}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf="formControl.errors?.min"> \r\n <ng-container *ngIf="!disableErrorMessage">{{\'Không nhập bé hơn \'}} <strong>{{minNumber}}</strong></ng-container>\r\n </mat-error>\r\n <mat-error *ngIf="formControl.errors?.max">\r\n <ng-container *ngIf="!disableErrorMessage">{{\'Không nhập lớn hơn \'}} <strong>{{maxNumber}}</strong></ng-container>\r\n </mat-error>\r\n <mat-error *ngIf="formControl.errors?.customValidator">\r\n <ng-container *ngIf="!disableErrorMessage">{{formControl.errors?.customValidator}}</ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>\r\n\x3c!-- <sd-popover #error="sdPopover" type="danger" width="300px">\r\n <span *ngIf="formControl.errors?.required">\r\n {{ "This field is required" | sdTranslate }}\r\n </span>\r\n <span *ngIf="formControl.errors?.customValidator">\r\n {{formControl.errors?.customValidator}}\r\n </span>\r\n</sd-popover> --\x3e',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[":host ::ng-deep .mat-form-field.sd-form-tooltip{width:calc(100% - 30px)}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}:host ::ng-deep .mat-form-field:hover .icon-copy{opacity:1}:host ::ng-deep .mat-form-field .icon-copy{cursor:pointer;fill:rgba(0,0,0,.5);height:.9em;opacity:0;transition:opacity .2s linear;width:.9em}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}.sd-tooltip{display:inline-block;margin:auto;text-align:center;width:30px}:host{display:block;padding-top:5px}.sd-md:hover .btn-copy{visibility:visible}.btn-copy{background:#e9e9e9!important;font-size:12px;line-height:26px!important;margin-bottom:3px;visibility:hidden}"]}]}],R.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:void 0,decorators:[{type:t.Inject,args:[l.FORM_CONFIG]},{type:t.Optional}]}]},R.propDecorators={name:[{type:t.Input}],size:[{type:t.Input}],form:[{type:t.Input}],_label:[{type:t.Input,args:["label"]}],placeholder:[{type:t.Input}],_disableErrorMessage:[{type:t.Input,args:["disableErrorMessage"]}],_blurOnEnter:[{type:t.Input,args:["blurOnEnter"]}],model:[{type:t.Input}],modelChange:[{type:t.Output}],required:[{type:t.Input}],type:[{type:t.Input}],precision:[{type:t.Input}],readonly:[{type:t.Input}],min:[{type:t.Input}],max:[{type:t.Input}],validator:[{type:t.Input}],disabled:[{type:t.Input}],appearance:[{type:t.Input}],copyTooltip:[{type:t.ViewChild,args:["copyTooltip"]}],_copyable:[{type:t.Input,args:["copyable"]}],sdChange:[{type:t.Output}],sdFocus:[{type:t.Output}],sdFocusForceBlur:[{type:t.Output}],keyupEnter:[{type:t.Output}],control:[{type:t.ViewChild,args:["control"]}],sdView:[{type:t.ContentChild,args:[l.SdViewDefDirective]}],sdSuffix:[{type:t.ContentChild,args:[l.SdSuffixDirective]}],sdLabelDef:[{type:t.ContentChild,args:[l.SdLabelDefDirective]}]};var N=function(){};N.decorators=[{type:t.NgModule,args:[{declarations:[R],imports:[r.CommonModule,n.FormsModule,n.ReactiveFormsModule,s.MatFormFieldModule,u.MatInputModule,p.MatIconModule,d.MatTooltipModule,f.SdTranslateModule,l.SdCommonModule,m.SdPopoverModule,c.MatButtonModule],exports:[R]}]}],e.SdInputNumber=R,e.SdInputNumberModule=N,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
15
|
+
***************************************************************************** */function b(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{s(n.next(e))}catch(e){i(e)}}function l(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,l)}s((n=n.apply(e,t||[])).next())}))}function y(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}}Object.create;var v,C,w,E,I,x,M,k,V,O,F,q,S;Object.create;function T(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}function j(e,t,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,r):o?o.value=r:t.set(e,r),r}var P=function(){function e(e){this.formControl=e}return e.prototype.isErrorState=function(e,t){var r,n,o,i=t&&t.submitted;return!(!(null===(r=this.formControl)||void 0===r?void 0:r.invalid)||!((null===(n=this.formControl)||void 0===n?void 0:n.dirty)||(null===(o=this.formControl)||void 0===o?void 0:o.touched)||i))},e}(),R=function(){function e(e,r){var i=this;this.ref=e,this.formConfig=r,this.id="I"+o.v4(),v.set(this,o.v4()),C.set(this,void 0),this.disableErrorMessage=!1,w.set(this,!1),E.set(this,void 0),this.modelChange=new t.EventEmitter,this.isRequired=!1,this.precision=3,this.isReadonly=!1,I.set(this,void 0),this.copyable=!1,this.copied=!1,this.sdChange=new t.EventEmitter,this.sdFocus=new t.EventEmitter,this.sdBlur=new t.EventEmitter,this.sdFocusForceBlur=new t.EventEmitter,this.keyupEnter=new t.EventEmitter,this.formControl=new l.SdFormControl,this.inputControl=new l.SdFormControl,x.set(this,new a.Subscription),this.matcher=new P(this.formControl),this.isFocused=!1,M.set(this,(function(e){var t=e.split(",");return t.length>=2?T(i,k).call(i,t[0])+","+t[1]:T(i,k).call(i,e)})),k.set(this,(function(e){return Number.toVNCurrency(((null==e?void 0:e.toString())||"").replace(/\./g,""))})),V.set(this,(function(e){return+((null==e?void 0:e.toString())||"").replace(/\./g,"").replace(/,/g,".")})),this.reValidate=function(){i.formControl.updateValueAndValidity()},O.set(this,(function(){i.formControl.clearValidators(),i.formControl.clearAsyncValidators();var e=[],t=[];i.isRequired&&e.push(n.Validators.required),(i.minNumber||0===i.minNumber)&&e.push(n.Validators.min(i.minNumber)),(i.maxNumber||0===i.maxNumber)&&e.push(n.Validators.max(i.maxNumber)),T(i,I)&&t.push(T(i,S).call(i,T(i,I))),i.inlineError&&e.push(i.customInlineErrorValidator()),i.formControl.setValidators(e),i.formControl.setAsyncValidators(t),i.formControl.updateValueAndValidity()})),F.set(this,(function(e){j(i,E,null!=e?e:null),i.modelChange.emit(T(i,E)),i.sdChange.emit(T(i,E)),i.formControl.setValue(T(i,E))})),this.onKeyupEnter=function(){var e,t=(null!==(e=i.inputControl.value)&&void 0!==e?e:"").toString();t.length>t.trim().length&&i.inputControl.setValue(t.trim()),i.keyupEnter.emit(i.inputControl.value),T(i,w)&&i.blur()},this.onKeydown=function(e){if(e.ctrlKey&&"v"==e.key)T(i,q).call(i,e,"");else{var t=e.keyCode||e.charCode;8!=t&&46!=t&&37!=t&&39!=t&&35!=t&&36!=t&&9!=t&&(!e.ctrlKey||"c"!=e.key&&"x"!=e.key&&"a"!=e.key)&&(e.shiftKey&&9==t||T(i,q).call(i,e,e.key))}},q.set(this,(function(e,t){var r=e.target.value.split("");r.splice(e.target.selectionStart,e.target.selectionEnd-e.target.selectionStart,t);var n=r.join("");if("positive"===i.type||"-"!==n){var o=new RegExp("^"+i.regex,"g");!n||String(n).match(o)||e.preventDefault()}})),this.onFocus=function(){var e;i.isFocused=!0,i.sdFocus.emit(),(null===(e=i.sdFocusForceBlur.observers)||void 0===e?void 0:e.length)>0&&(i.blur(),i.sdFocusForceBlur.emit())},this.onBlur=function(){var e;i.isFocused=!1;var t=(null!==(e=i.inputControl.value)&&void 0!==e?e:"").toString(),r=t.split(",");r.length>=2&&""==r[1]?i.inputControl.setValue(T(i,k).call(i,r[0])):(t.length>t.trim().length&&i.inputControl.setValue(t.trim()),i.sdBlur.emit(i.formControl.value))},this.onClick=function(){var e;(null===(e=i.sdView)||void 0===e?void 0:e.templateRef)&&(i.formControl.disabled||i.isFocused||i.focus())},this.blur=function(){var e,t;i.isFocused=!1,null===(t=null===(e=i.control)||void 0===e?void 0:e.nativeElement)||void 0===t||t.blur()},this.focus=function(){i.isFocused=!0,setTimeout((function(){var e,t;null===(t=null===(e=i.control)||void 0===e?void 0:e.nativeElement)||void 0===t||t.focus()}),100)},S.set(this,(function(e){return function(t){return b(i,void 0,void 0,(function(){var r,n,o,i;return y(this,(function(a){switch(a.label){case 0:return n=null!==(r=t.value)&&void 0!==r?r:null,e&&"function"==typeof e?(o=e(n))instanceof Promise?[4,o]:[3,2]:[3,3];case 1:return(i=a.sent())?[2,{customValidator:i}]:[2,null];case 2:return o?[2,{customValidator:o}]:[2,null];case 3:return[2,null]}}))}))}}))}return Object.defineProperty(e.prototype,"name",{set:function(e){e&&j(this,v,e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"form",{set:function(e){e&&(e instanceof n.NgForm?j(this,C,e.form):j(this,C,e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_label",{set:function(e){this.label=e,this.qcId=g.default({selector:"sd-input-number",label:e})},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_disableErrorMessage",{set:function(e){this.disableErrorMessage=""===e||e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_blurOnEnter",{set:function(e){j(this,w,""===e||e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"model",{set:function(e){if(T(this,E)!==e)if(j(this,E,e),this.formControl.setValue(T(this,E),{emitEvent:!1}),e||0===e){var t=e.toString().replace(/\./g,",");this.inputControl.setValue(T(this,M).call(this,t),{emitEvent:!1})}else this.inputControl.setValue("",{emitEvent:!1})},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"required",{set:function(e){this.isRequired=""===e||e,T(this,O).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"readonly",{set:function(e){this.isReadonly=""===e||e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"min",{set:function(e){this.minNumber=e,T(this,O).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"max",{set:function(e){this.maxNumber=e,T(this,O).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"validator",{set:function(e){j(this,I,e),T(this,O).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_inlineError",{set:function(e){this.inlineError=e,T(this,O).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{set:function(e){(e=""===e||e)?(this.inputControl.disable(),this.formControl.disable()):(this.inputControl.enable(),this.formControl.enable())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_copyable",{set:function(e){this.copyable=""===e||e},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var e,t=this;this.appearance=this.appearance||(null===(e=this.formConfig)||void 0===e?void 0:e.appearance),T(this,x).add(this.inputControl.touchChanges.subscribe((function(){t.formControl.markAsTouched(),t.ref.markForCheck()}))),T(this,x).add(this.formControl.sdChanges.subscribe((function(){t.ref.markForCheck()}))),T(this,x).add(this.inputControl.sdChanges.subscribe((function(){t.ref.markForCheck()})))},Object.defineProperty(e.prototype,"regex",{get:function(){var e="(([0-9]+(\\.[0-9])?)+(\\,[0-9]{0,"+this.precision+"}){0,1})$";return 0===this.precision&&(e="(([0-9]+(\\.[0-9])?)+)$"),"negative"===this.type&&(e="[-]"+e),this.type||(e="[-]?"+e),e},enumerable:!1,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e,t=this;T(this,x).add(this.inputControl.valueChanges.subscribe((function(){var e=t.inputControl.value;if(e){var r=T(t,V).call(t,e);isNaN(r)||(t.inputControl.setValue(T(t,M).call(t,e),{emitEvent:!1}),T(t,F).call(t,r))}else T(t,F).call(t,void 0)}))),null===(e=T(this,C))||void 0===e||e.addControl(T(this,v),this.formControl),this.ref.detectChanges()},e.prototype.ngOnDestroy=function(){var e;null===(e=T(this,C))||void 0===e||e.removeControl(T(this,v)),T(this,x).unsubscribe()},e.prototype.customInlineErrorValidator=function(){return function(e){return{inlineError:!0}}},e.prototype.onPaste=function(e){var t=e.clipboardData.getData("text");T(this,q).call(this,e,t)},e.prototype.onCopyText=function(){var e=this;SdUtility.copyToClipboard(this.inputControl.value),this.copied=!0,setTimeout((function(){e.copied=!1}),2e3)},e}();v=new WeakMap,C=new WeakMap,w=new WeakMap,E=new WeakMap,I=new WeakMap,x=new WeakMap,M=new WeakMap,k=new WeakMap,V=new WeakMap,O=new WeakMap,F=new WeakMap,q=new WeakMap,S=new WeakMap,R.decorators=[{type:t.Component,args:[{selector:"sd-input-number",template:'<ng-container *ngIf="!appearance && sdLabelDef?.templateRef">\r\n <ng-container *ngTemplateOutlet="sdLabelDef.templateRef">\r\n </ng-container>\r\n</ng-container>\r\n<label *ngIf="!appearance && label && !sdLabelDef?.templateRef" class="d-block mb-0 T14M">{{label}} <span class="text-danger mb-2"\r\n *ngIf="isRequired">*</span></label>\r\n<div class="d-flex align-items-center" [class.sd-view]="sdView?.templateRef" [class.c-focused]="isFocused"\r\n [class.c-disabled]="formControl.disabled" (click)="onClick()">\r\n <ng-container *ngIf="sdView?.templateRef && !isFocused; else default">\r\n <ng-container *ngTemplateOutlet="sdView.templateRef;context: { value: formControl.value }">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class="sd-md" [ngClass]="{ \'sd-sm\': size === \'sm\', \'no-padding-wrapper\': disableErrorMessage}"\r\n [appearance]="appearance || \'outline\'">\r\n <mat-label *ngIf="appearance && label">{{label}}</mat-label>\r\n <input aria-hidden="true" [id]="id" [formControl]="inputControl" #control matInput\r\n [placeholder]="placeholder || (appearance ? label : \'\')" [errorStateMatcher]="matcher"\r\n (keyup.enter)="onKeyupEnter()" (focus)="onFocus()" (blur)="onBlur()" (keydown)="onKeydown($event)"\r\n [required]="isRequired" [readonly]="isReadonly" [autocomplete]="id" (paste)="onPaste($event)" autocorrect="off"\r\n [attr.data-qclabel]="label" [attr.data-qcid]="qcId"\r\n [sdPopoverTriggerFor]="null" [sdPopoverDisabled]="!disableErrorMessage || formControl.valid">\r\n <ng-container *ngIf="sdSuffix?.templateRef" matSuffix>\r\n <ng-container *ngTemplateOutlet="sdSuffix.templateRef">\r\n </ng-container>\r\n </ng-container>\r\n <svg \r\n #copyTooltip="matTooltip" \r\n *ngIf="copyable" \r\n matSuffix \r\n [matTooltip]="copied ? \'Copied\' : \'Copy\'" \r\n class="icon-copy" \r\n focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" \r\n (click)="onCopyText()">\r\n <path d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"></path>\r\n </svg>\r\n <mat-error *ngIf="formControl?.errors?.required">\r\n <ng-container *ngIf="!disableErrorMessage">{{ "This field is required" | sdTranslate }}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf="formControl.errors?.min"> \r\n <ng-container *ngIf="!disableErrorMessage">{{\'Không nhập bé hơn \'}} <strong>{{minNumber}}</strong></ng-container>\r\n </mat-error>\r\n <mat-error *ngIf="formControl.errors?.max">\r\n <ng-container *ngIf="!disableErrorMessage">{{\'Không nhập lớn hơn \'}} <strong>{{maxNumber}}</strong></ng-container>\r\n </mat-error>\r\n <mat-error *ngIf="formControl.errors?.customValidator">\r\n <ng-container *ngIf="!disableErrorMessage">{{formControl.errors?.customValidator}}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf="formControl.errors?.inlineError">\r\n <ng-container *ngIf="!disableErrorMessage">{{inlineError}}</ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>\r\n\x3c!-- <sd-popover #error="sdPopover" type="danger" width="300px">\r\n <span *ngIf="formControl.errors?.required">\r\n {{ "This field is required" | sdTranslate }}\r\n </span>\r\n <span *ngIf="formControl.errors?.customValidator">\r\n {{formControl.errors?.customValidator}}\r\n </span>\r\n</sd-popover> --\x3e',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[":host ::ng-deep .mat-form-field.sd-form-tooltip{width:calc(100% - 30px)}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}:host ::ng-deep .mat-form-field:hover .icon-copy{opacity:1}:host ::ng-deep .mat-form-field .icon-copy{cursor:pointer;fill:rgba(0,0,0,.5);height:.9em;opacity:0;transition:opacity .2s linear;width:.9em}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}.sd-tooltip{display:inline-block;margin:auto;text-align:center;width:30px}:host{display:block;padding-top:5px}.sd-md:hover .btn-copy{visibility:visible}.btn-copy{background:#e9e9e9!important;font-size:12px;line-height:26px!important;margin-bottom:3px;visibility:hidden}"]}]}],R.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:void 0,decorators:[{type:t.Inject,args:[l.FORM_CONFIG]},{type:t.Optional}]}]},R.propDecorators={name:[{type:t.Input}],size:[{type:t.Input}],form:[{type:t.Input}],_label:[{type:t.Input,args:["label"]}],placeholder:[{type:t.Input}],_disableErrorMessage:[{type:t.Input,args:["disableErrorMessage"]}],_blurOnEnter:[{type:t.Input,args:["blurOnEnter"]}],model:[{type:t.Input}],modelChange:[{type:t.Output}],required:[{type:t.Input}],type:[{type:t.Input}],precision:[{type:t.Input}],readonly:[{type:t.Input}],min:[{type:t.Input}],max:[{type:t.Input}],validator:[{type:t.Input}],_inlineError:[{type:t.Input,args:["inlineError"]}],disabled:[{type:t.Input}],appearance:[{type:t.Input}],copyTooltip:[{type:t.ViewChild,args:["copyTooltip"]}],_copyable:[{type:t.Input,args:["copyable"]}],sdChange:[{type:t.Output}],sdFocus:[{type:t.Output}],sdBlur:[{type:t.Output}],sdFocusForceBlur:[{type:t.Output}],keyupEnter:[{type:t.Output}],control:[{type:t.ViewChild,args:["control"]}],sdView:[{type:t.ContentChild,args:[l.SdViewDefDirective]}],sdSuffix:[{type:t.ContentChild,args:[l.SdSuffixDirective]}],sdLabelDef:[{type:t.ContentChild,args:[l.SdLabelDefDirective]}]};var N=function(){};N.decorators=[{type:t.NgModule,args:[{declarations:[R],imports:[r.CommonModule,n.FormsModule,n.ReactiveFormsModule,s.MatFormFieldModule,u.MatInputModule,p.MatIconModule,d.MatTooltipModule,f.SdTranslateModule,l.SdCommonModule,m.SdPopoverModule,c.MatButtonModule],exports:[R]}]}],e.SdInputNumber=R,e.SdInputNumberModule=N,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
16
16
|
//# sourceMappingURL=sd-angular-core-input-number.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/input-number/src/lib/input-number.component.ts","../../../../projects/sd-core/input-number/src/lib/input-number.module.ts"],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","Object","create","__classPrivateFieldGet","receiver","state","kind","has","get","__classPrivateFieldSet","set","SdInputNumberErrotStateMatcher","formControl","prototype","isErrorState","control","form","isSubmitted","submitted","_a","invalid","_b","dirty","_c","touched","SdInputNumber","ref","formConfig","_this","id","uuid.v4","_name","_form","disableErrorMessage","_blurOnEnter_1","_model","modelChange","EventEmitter","isRequired","precision","isReadonly","_validator","copyable","copied","sdChange","sdFocus","sdFocusForceBlur","keyupEnter","SdFormControl","inputControl","_subscription","Subscription","matcher","isFocused","_getValueWithFormat","arrayNext","split","_formatNumber","text","Number","toVNCurrency","toString","replace","_toNumber","reValidate","updateValueAndValidity","_updateValidator","clearValidators","clearAsyncValidators","validators","asyncValidators","Validators","required","minNumber","min","maxNumber","max","_customValidator","setValidators","setAsyncValidators","_onChange","emit","setValue","onKeyupEnter","val","trim","blur","onKeydown","event","ctrlKey","key","_checkValue","keyCode","charCode","shiftKey","nextKey","curval_arr","target","splice","selectionStart","selectionEnd","newval","join","type","regExp","RegExp","regex","String","match","preventDefault","onFocus","observers","onBlur","arrayValue","onClick","sdView","templateRef","disabled","focus","nativeElement","setTimeout","func","c","message","_d","customValidator","defineProperty","NgForm","qcId","hash","selector","emitEvent","validator","disable","enable","ngOnInit","appearance","add","touchChanges","subscribe","markAsTouched","markForCheck","sdChanges","ngAfterViewInit","valueChanges","isNaN","undefined","addControl","detectChanges","ngOnDestroy","removeControl","unsubscribe","onPaste","clipboardData","getData","onCopyText","SdUtility","copyToClipboard","Component","args","template","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","Inject","FORM_CONFIG","Optional","Input","Output","ViewChild","ContentChild","SdViewDefDirective","SdSuffixDirective","SdLabelDefDirective","NgModule","declarations","imports","CommonModule","FormsModule","ReactiveFormsModule","MatFormFieldModule","MatInputModule","MatIconModule","MatTooltipModule","SdTranslateModule","SdCommonModule","SdPopoverModule","MatButtonModule","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n AfterViewInit,\r\n ElementRef,\r\n OnInit,\r\n ContentChild,\r\n ChangeDetectionStrategy,\r\n HostListener,\r\n Inject,\r\n SimpleChanges,\r\n Optional\r\n} from '@angular/core';\r\nimport { AbstractControl, NgForm, ValidatorFn, Validators, AsyncValidatorFn, FormGroup, FormControl, FormGroupDirective } from '@angular/forms';\r\nimport * as uuid from 'uuid';\r\nimport hash from 'object-hash';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { SdFormControl, SdSuffixDirective } from '@sd-angular/core/common';\r\nimport { SdViewDefDirective } from '@sd-angular/core/common';\r\nimport { FORM_CONFIG } from '@sd-angular/core/common';\r\nimport { IFormConfiguration } from '@sd-angular/core/common';\r\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { SdLabelDefDirective } from '@sd-angular/core/common';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nclass SdInputNumberErrotStateMatcher implements ErrorStateMatcher {\r\n constructor(private formControl: FormControl) { }\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n const isSubmitted = form && form.submitted;\r\n return !!(this.formControl?.invalid && (this.formControl?.dirty || this.formControl?.touched || isSubmitted));\r\n }\r\n}\r\n@Component({\r\n selector: 'sd-input-number',\r\n templateUrl: './input-number.component.html',\r\n styleUrls: ['./input-number.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdInputNumber implements OnDestroy, OnInit, AfterViewInit {\r\n id = `I${uuid.v4()}`;\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n qcId: string;\r\n label: string;\r\n @Input('label') set _label(val: string) {\r\n this.label = val;\r\n this.qcId = hash({\r\n selector: 'sd-input-number',\r\n label: val\r\n });\r\n };\r\n @Input() placeholder: string;\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n }\r\n #blurOnEnter = false;\r\n @Input('blurOnEnter') set _blurOnEnter(val: boolean | '') {\r\n this.#blurOnEnter = (val === '') || val;\r\n }\r\n #model: any;\r\n @Input() set model(value: any) {\r\n if (this.#model !== value) {\r\n this.#model = value;\r\n this.formControl.setValue(this.#model, {\r\n emitEvent: false\r\n });\r\n if (value || value === 0) {\r\n const val = value.toString().replace(/\\./g, ',');\r\n this.inputControl.setValue(this.#getValueWithFormat(val), {\r\n emitEvent: false\r\n });\r\n } else {\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n\r\n // Validator\r\n isRequired = false;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n this.#updateValidator();\r\n }\r\n @Input() type: 'negative' | 'positive'; //negative: chỉ nhập số âm, positive: chỉ số dương\r\n @Input() precision: number = 3; //số chữ số thập phân \r\n\r\n isReadonly = false;\r\n @Input() set readonly(val: boolean | '') {\r\n this.isReadonly = (val === '') || val;\r\n }\r\n\r\n minNumber: number;\r\n @Input() set min(val: number) {\r\n this.minNumber = val;\r\n this.#updateValidator();\r\n }\r\n\r\n maxNumber: number;\r\n @Input() set max(val: number) {\r\n this.maxNumber = val;\r\n this.#updateValidator();\r\n }\r\n\r\n #validator: (value: any) => string | Promise<string>;\r\n @Input() set validator(validator: (value: any) => string | Promise<string>) {\r\n this.#validator = validator;\r\n this.#updateValidator();\r\n }\r\n\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.inputControl.disable();\r\n this.formControl.disable();\r\n } else {\r\n this.inputControl.enable();\r\n this.formControl.enable();\r\n }\r\n }\r\n @Input() appearance: MatFormFieldAppearance;\r\n\r\n @ViewChild('copyTooltip') copyTooltip: MatTooltip;\r\n copyable = false;\r\n @Input('copyable') set _copyable(val: boolean | '') {\r\n this.copyable = (val === '') || val;\r\n }\r\n copied = false;\r\n\r\n @Output() sdChange = new EventEmitter<any>();\r\n @Output() sdFocus = new EventEmitter<any>();\r\n @Output() sdFocusForceBlur = new EventEmitter<any>();\r\n @Output() keyupEnter = new EventEmitter();\r\n\r\n @ViewChild('control') control: ElementRef;\r\n formControl = new SdFormControl();\r\n inputControl = new SdFormControl();\r\n #subscription = new Subscription();\r\n matcher = new SdInputNumberErrotStateMatcher(this.formControl);\r\n\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n @ContentChild(SdSuffixDirective) sdSuffix: SdSuffixDirective;\r\n @ContentChild(SdLabelDefDirective) sdLabelDef: SdLabelDefDirective;\r\n isFocused = false;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n @Inject(FORM_CONFIG) @Optional() private formConfig: IFormConfiguration) {\r\n }\r\n\r\n ngOnInit() {\r\n this.appearance = this.appearance || this.formConfig?.appearance;\r\n this.#subscription.add(this.inputControl.touchChanges.subscribe(() => {\r\n this.formControl.markAsTouched();\r\n this.ref.markForCheck();\r\n }));\r\n this.#subscription.add(this.formControl.sdChanges.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.#subscription.add(this.inputControl.sdChanges.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n }\r\n\r\n private get regex() {\r\n let result = `(([0-9]+(\\\\.[0-9])?)+(\\\\,[0-9]{0,${this.precision}}){0,1})$`;\r\n if (this.precision === 0) {\r\n result = `(([0-9]+(\\\\.[0-9])?)+)$`;\r\n }\r\n if (this.type === 'negative') {\r\n result = `[-]${result}`;\r\n }\r\n if (!this.type) {\r\n result = `[-]?${result}`;\r\n }\r\n return result;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#subscription.add(this.inputControl.valueChanges.subscribe(() => {\r\n const val = this.inputControl.value;\r\n if (!val) {\r\n this.#onChange(undefined);\r\n return;\r\n }\r\n const value = this.#toNumber(val);\r\n if (!isNaN(value)) {\r\n this.inputControl.setValue(this.#getValueWithFormat(val), {\r\n emitEvent: false\r\n });\r\n this.#onChange(value);\r\n }\r\n }));\r\n this.#form?.addControl(this.#name, this.formControl);\r\n this.ref.detectChanges();\r\n }\r\n\r\n #getValueWithFormat = (value: string) => {\r\n const arrayNext = value.split(',');\r\n if (arrayNext.length >= 2) {\r\n return `${this.#formatNumber(arrayNext[0])},${arrayNext[1]}`;\r\n }\r\n return this.#formatNumber(value);\r\n }\r\n\r\n #formatNumber = (text: any) => {\r\n return Number.toVNCurrency((text?.toString() || '').replace(/\\./g, ''));\r\n // const arrs: string[] = (text?.toString() || '').replace(/\\./g, '').split('');\r\n // return arrs.reverse().reduce((acc, num, index) => {\r\n // return num + (num !== '-' && index && !(index % 3) ? '.' : '') + acc;\r\n // }, '');\r\n }\r\n\r\n #toNumber = (text: any) => +((text?.toString() || '').replace(/\\./g, '').replace(/,/g, '.'));\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n reValidate = () => {\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (this.minNumber || this.minNumber === 0) {\r\n validators.push(Validators.min(this.minNumber));\r\n }\r\n if (this.maxNumber || this.maxNumber === 0) {\r\n validators.push(Validators.max(this.maxNumber));\r\n }\r\n if (this.#validator) {\r\n asyncValidators.push(this.#customValidator(this.#validator));\r\n }\r\n this.formControl.setValidators(validators);\r\n this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n #onChange = (value: any) => {\r\n this.#model = value ?? null;\r\n this.modelChange.emit(this.#model);\r\n this.sdChange.emit(this.#model);\r\n this.formControl.setValue(this.#model);\r\n }\r\n\r\n onKeyupEnter = () => {\r\n const val: string = (this.inputControl.value ?? '').toString();\r\n if (val.length > val.trim().length) {\r\n this.inputControl.setValue(val.trim());\r\n }\r\n this.keyupEnter.emit(this.inputControl.value);\r\n if (this.#blurOnEnter) {\r\n this.blur();\r\n }\r\n }\r\n\r\n onKeydown = (event: KeyboardEvent) => {\r\n if (event.ctrlKey && event.key == 'v') {\r\n this.#checkValue(event, '');\r\n return;\r\n }\r\n const key = event.keyCode || event.charCode;\r\n if (key == 8 || key == 46 || key == 37 || key == 39 || key == 35 || key == 36 || key == 9) {\r\n return;\r\n }\r\n if (event.ctrlKey && (event.key == 'c' || event.key == 'x' || event.key == 'a')) {\r\n return;\r\n }\r\n if (event.shiftKey && key == 9) {\r\n return;\r\n }\r\n this.#checkValue(event, event.key);\r\n }\r\n\r\n onPaste(event: ClipboardEvent) {\r\n const nextKey = event.clipboardData.getData('text');\r\n this.#checkValue(event, nextKey)\r\n }\r\n\r\n #checkValue = (event, nextKey) => {\r\n const current: string = event.target.value;\r\n // if(this.maxNumber === +current.toString().replace(/\\./g, '').replace(/,/g, '.')){\r\n // event.preventDefault();\r\n // return;\r\n // }\r\n const curval_arr = current.split(\"\");\r\n curval_arr.splice(event.target.selectionStart, (event.target.selectionEnd - event.target.selectionStart), nextKey);\r\n const newval = curval_arr.join(\"\");\r\n if (this.type !== 'positive' && newval === '-') {\r\n return;\r\n }\r\n const regExp: RegExp = new RegExp(`^${this.regex}`, 'g');\r\n if (newval && !String(newval).match(regExp)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n // const value = (newval.toString().replace(/\\./g, '').replace(/,/g, '.'));\r\n // if ((this.maxNumber || this.maxNumber === 0) && +value > this.maxNumber) {\r\n // setTimeout(() => {\r\n // this.inputControl.setValue(this.#getValueWithFormat(this.maxNumber.toString().replace(/\\./g, ',')));\r\n // }, 10);\r\n // event.preventDefault();\r\n // }\r\n }\r\n\r\n onFocus = () => {\r\n this.isFocused = true;\r\n this.sdFocus.emit();\r\n if (this.sdFocusForceBlur.observers?.length > 0) {\r\n this.blur();\r\n this.sdFocusForceBlur.emit();\r\n }\r\n }\r\n\r\n onBlur = () => {\r\n this.isFocused = false;\r\n const val: string = (this.inputControl.value ?? '').toString();\r\n const arrayValue = val.split(',');\r\n if (arrayValue.length >= 2 && arrayValue[1] == '') {\r\n this.inputControl.setValue(this.#formatNumber(arrayValue[0]));\r\n return;\r\n }\r\n if (val.length > val.trim().length) {\r\n this.inputControl.setValue(val.trim());\r\n }\r\n }\r\n\r\n onClick = () => {\r\n if (this.sdView?.templateRef) {\r\n if (!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n blur = () => {\r\n this.isFocused = false;\r\n this.control?.nativeElement?.blur();\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.control?.nativeElement?.focus();\r\n }, 100);\r\n }\r\n\r\n #customValidator = (func: (value: any) => string | Promise<string>): AsyncValidatorFn => {\r\n return async (c: AbstractControl): Promise<{ [key: string]: any } | null> => {\r\n const value = c.value ?? null;\r\n if (func && typeof (func) === 'function') {\r\n const result = func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n onCopyText() {\r\n SdUtility.copyToClipboard(this.inputControl.value);\r\n this.copied = true;\r\n setTimeout(() => {\r\n this.copied = false;\r\n }, 2000);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdInputNumber } from './input-number.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\nimport { SdPopoverModule } from '@sd-angular/core/popover';\r\n\r\n@NgModule({\r\n declarations: [SdInputNumber],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n SdTranslateModule,\r\n SdCommonModule,\r\n SdPopoverModule,\r\n MatButtonModule\r\n ],\r\n exports: [\r\n SdInputNumber\r\n ]\r\n})\r\nexport class SdInputNumberModule { }\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/input-number/src/lib/input-number.component.ts","../../../../projects/sd-core/input-number/src/lib/input-number.module.ts"],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","Object","create","__classPrivateFieldGet","receiver","state","kind","has","get","__classPrivateFieldSet","set","SdInputNumberErrotStateMatcher","formControl","prototype","isErrorState","control","form","isSubmitted","submitted","_a","invalid","_b","dirty","_c","touched","SdInputNumber","ref","formConfig","_this","id","uuid.v4","_name","_form","disableErrorMessage","_blurOnEnter_1","_model","modelChange","EventEmitter","isRequired","precision","isReadonly","_validator","copyable","copied","sdChange","sdFocus","sdBlur","sdFocusForceBlur","keyupEnter","SdFormControl","inputControl","_subscription","Subscription","matcher","isFocused","_getValueWithFormat","arrayNext","split","_formatNumber","text","Number","toVNCurrency","toString","replace","_toNumber","reValidate","updateValueAndValidity","_updateValidator","clearValidators","clearAsyncValidators","validators","asyncValidators","Validators","required","minNumber","min","maxNumber","max","_customValidator","inlineError","customInlineErrorValidator","setValidators","setAsyncValidators","_onChange","emit","setValue","onKeyupEnter","val","trim","blur","onKeydown","event","ctrlKey","key","_checkValue","keyCode","charCode","shiftKey","nextKey","curval_arr","target","splice","selectionStart","selectionEnd","newval","join","type","regExp","RegExp","regex","String","match","preventDefault","onFocus","observers","onBlur","arrayValue","onClick","sdView","templateRef","disabled","focus","nativeElement","setTimeout","func","c","message","_d","customValidator","defineProperty","NgForm","qcId","hash","selector","emitEvent","validator","disable","enable","ngOnInit","appearance","add","touchChanges","subscribe","markAsTouched","markForCheck","sdChanges","ngAfterViewInit","valueChanges","isNaN","undefined","addControl","detectChanges","ngOnDestroy","removeControl","unsubscribe","onPaste","clipboardData","getData","onCopyText","SdUtility","copyToClipboard","Component","args","template","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","Inject","FORM_CONFIG","Optional","Input","Output","ViewChild","ContentChild","SdViewDefDirective","SdSuffixDirective","SdLabelDefDirective","NgModule","declarations","imports","CommonModule","FormsModule","ReactiveFormsModule","MatFormFieldModule","MatInputModule","MatIconModule","MatTooltipModule","SdTranslateModule","SdCommonModule","SdPopoverModule","MatButtonModule","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n AfterViewInit,\r\n ElementRef,\r\n OnInit,\r\n ContentChild,\r\n ChangeDetectionStrategy,\r\n HostListener,\r\n Inject,\r\n SimpleChanges,\r\n Optional\r\n} from '@angular/core';\r\nimport { AbstractControl, NgForm, ValidatorFn, Validators, AsyncValidatorFn, FormGroup, FormControl, FormGroupDirective } from '@angular/forms';\r\nimport * as uuid from 'uuid';\r\nimport hash from 'object-hash';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { SdFormControl, SdSuffixDirective } from '@sd-angular/core/common';\r\nimport { SdViewDefDirective } from '@sd-angular/core/common';\r\nimport { FORM_CONFIG } from '@sd-angular/core/common';\r\nimport { IFormConfiguration } from '@sd-angular/core/common';\r\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { SdLabelDefDirective } from '@sd-angular/core/common';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nclass SdInputNumberErrotStateMatcher implements ErrorStateMatcher {\r\n constructor(private formControl: FormControl) { }\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n const isSubmitted = form && form.submitted;\r\n return !!(this.formControl?.invalid && (this.formControl?.dirty || this.formControl?.touched || isSubmitted));\r\n }\r\n}\r\n@Component({\r\n selector: 'sd-input-number',\r\n templateUrl: './input-number.component.html',\r\n styleUrls: ['./input-number.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdInputNumber implements OnDestroy, OnInit, AfterViewInit {\r\n id = `I${uuid.v4()}`;\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n qcId: string;\r\n label: string;\r\n @Input('label') set _label(val: string) {\r\n this.label = val;\r\n this.qcId = hash({\r\n selector: 'sd-input-number',\r\n label: val\r\n });\r\n };\r\n @Input() placeholder: string;\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n }\r\n #blurOnEnter = false;\r\n @Input('blurOnEnter') set _blurOnEnter(val: boolean | '') {\r\n this.#blurOnEnter = (val === '') || val;\r\n }\r\n #model: any;\r\n @Input() set model(value: any) {\r\n if (this.#model !== value) {\r\n this.#model = value;\r\n this.formControl.setValue(this.#model, {\r\n emitEvent: false\r\n });\r\n if (value || value === 0) {\r\n const val = value.toString().replace(/\\./g, ',');\r\n this.inputControl.setValue(this.#getValueWithFormat(val), {\r\n emitEvent: false\r\n });\r\n } else {\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n\r\n // Validator\r\n isRequired = false;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n this.#updateValidator();\r\n }\r\n @Input() type: 'negative' | 'positive'; //negative: chỉ nhập số âm, positive: chỉ số dương\r\n @Input() precision: number = 3; //số chữ số thập phân \r\n\r\n isReadonly = false;\r\n @Input() set readonly(val: boolean | '') {\r\n this.isReadonly = (val === '') || val;\r\n }\r\n\r\n minNumber: number;\r\n @Input() set min(val: number) {\r\n this.minNumber = val;\r\n this.#updateValidator();\r\n }\r\n\r\n maxNumber: number;\r\n @Input() set max(val: number) {\r\n this.maxNumber = val;\r\n this.#updateValidator();\r\n }\r\n\r\n #validator: (value: any) => string | Promise<string>;\r\n @Input() set validator(validator: (value: any) => string | Promise<string>) {\r\n this.#validator = validator;\r\n this.#updateValidator();\r\n }\r\n\r\n inlineError: string;\r\n @Input('inlineError') set _inlineError(val: string) {\r\n this.inlineError = val;\r\n this.#updateValidator();\r\n }\r\n\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.inputControl.disable();\r\n this.formControl.disable();\r\n } else {\r\n this.inputControl.enable();\r\n this.formControl.enable();\r\n }\r\n }\r\n @Input() appearance: MatFormFieldAppearance;\r\n\r\n @ViewChild('copyTooltip') copyTooltip: MatTooltip;\r\n copyable = false;\r\n @Input('copyable') set _copyable(val: boolean | '') {\r\n this.copyable = (val === '') || val;\r\n }\r\n copied = false;\r\n\r\n @Output() sdChange = new EventEmitter<any>();\r\n @Output() sdFocus = new EventEmitter<any>();\r\n @Output() sdBlur = new EventEmitter<any>();\r\n @Output() sdFocusForceBlur = new EventEmitter<any>();\r\n @Output() keyupEnter = new EventEmitter();\r\n\r\n @ViewChild('control') control: ElementRef;\r\n formControl = new SdFormControl();\r\n inputControl = new SdFormControl();\r\n #subscription = new Subscription();\r\n matcher = new SdInputNumberErrotStateMatcher(this.formControl);\r\n\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n @ContentChild(SdSuffixDirective) sdSuffix: SdSuffixDirective;\r\n @ContentChild(SdLabelDefDirective) sdLabelDef: SdLabelDefDirective;\r\n isFocused = false;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n @Inject(FORM_CONFIG) @Optional() private formConfig: IFormConfiguration) {\r\n }\r\n\r\n ngOnInit() {\r\n this.appearance = this.appearance || this.formConfig?.appearance;\r\n this.#subscription.add(this.inputControl.touchChanges.subscribe(() => {\r\n this.formControl.markAsTouched();\r\n this.ref.markForCheck();\r\n }));\r\n this.#subscription.add(this.formControl.sdChanges.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.#subscription.add(this.inputControl.sdChanges.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n }\r\n\r\n private get regex() {\r\n let result = `(([0-9]+(\\\\.[0-9])?)+(\\\\,[0-9]{0,${this.precision}}){0,1})$`;\r\n if (this.precision === 0) {\r\n result = `(([0-9]+(\\\\.[0-9])?)+)$`;\r\n }\r\n if (this.type === 'negative') {\r\n result = `[-]${result}`;\r\n }\r\n if (!this.type) {\r\n result = `[-]?${result}`;\r\n }\r\n return result;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#subscription.add(this.inputControl.valueChanges.subscribe(() => {\r\n const val = this.inputControl.value;\r\n if (!val) {\r\n this.#onChange(undefined);\r\n return;\r\n }\r\n const value = this.#toNumber(val);\r\n if (!isNaN(value)) {\r\n this.inputControl.setValue(this.#getValueWithFormat(val), {\r\n emitEvent: false\r\n });\r\n this.#onChange(value);\r\n }\r\n }));\r\n this.#form?.addControl(this.#name, this.formControl);\r\n this.ref.detectChanges();\r\n }\r\n\r\n #getValueWithFormat = (value: string) => {\r\n const arrayNext = value.split(',');\r\n if (arrayNext.length >= 2) {\r\n return `${this.#formatNumber(arrayNext[0])},${arrayNext[1]}`;\r\n }\r\n return this.#formatNumber(value);\r\n }\r\n\r\n #formatNumber = (text: any) => {\r\n return Number.toVNCurrency((text?.toString() || '').replace(/\\./g, ''));\r\n // const arrs: string[] = (text?.toString() || '').replace(/\\./g, '').split('');\r\n // return arrs.reverse().reduce((acc, num, index) => {\r\n // return num + (num !== '-' && index && !(index % 3) ? '.' : '') + acc;\r\n // }, '');\r\n }\r\n\r\n #toNumber = (text: any) => +((text?.toString() || '').replace(/\\./g, '').replace(/,/g, '.'));\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n reValidate = () => {\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (this.minNumber || this.minNumber === 0) {\r\n validators.push(Validators.min(this.minNumber));\r\n }\r\n if (this.maxNumber || this.maxNumber === 0) {\r\n validators.push(Validators.max(this.maxNumber));\r\n }\r\n if (this.#validator) {\r\n asyncValidators.push(this.#customValidator(this.#validator));\r\n }\r\n if (this.inlineError) {\r\n validators.push(this.customInlineErrorValidator());\r\n }\r\n this.formControl.setValidators(validators);\r\n this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n // Hàm tạo Validators tùy chỉnh cho inlineError\r\n customInlineErrorValidator(): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n return { inlineError: true };\r\n };\r\n }\r\n\r\n #onChange = (value: any) => {\r\n this.#model = value ?? null;\r\n this.modelChange.emit(this.#model);\r\n this.sdChange.emit(this.#model);\r\n this.formControl.setValue(this.#model);\r\n }\r\n\r\n onKeyupEnter = () => {\r\n const val: string = (this.inputControl.value ?? '').toString();\r\n if (val.length > val.trim().length) {\r\n this.inputControl.setValue(val.trim());\r\n }\r\n this.keyupEnter.emit(this.inputControl.value);\r\n if (this.#blurOnEnter) {\r\n this.blur();\r\n }\r\n }\r\n\r\n onKeydown = (event: KeyboardEvent) => {\r\n if (event.ctrlKey && event.key == 'v') {\r\n this.#checkValue(event, '');\r\n return;\r\n }\r\n const key = event.keyCode || event.charCode;\r\n if (key == 8 || key == 46 || key == 37 || key == 39 || key == 35 || key == 36 || key == 9) {\r\n return;\r\n }\r\n if (event.ctrlKey && (event.key == 'c' || event.key == 'x' || event.key == 'a')) {\r\n return;\r\n }\r\n if (event.shiftKey && key == 9) {\r\n return;\r\n }\r\n this.#checkValue(event, event.key);\r\n }\r\n\r\n onPaste(event: ClipboardEvent) {\r\n const nextKey = event.clipboardData.getData('text');\r\n this.#checkValue(event, nextKey)\r\n }\r\n\r\n #checkValue = (event, nextKey) => {\r\n const current: string = event.target.value;\r\n // if(this.maxNumber === +current.toString().replace(/\\./g, '').replace(/,/g, '.')){\r\n // event.preventDefault();\r\n // return;\r\n // }\r\n const curval_arr = current.split(\"\");\r\n curval_arr.splice(event.target.selectionStart, (event.target.selectionEnd - event.target.selectionStart), nextKey);\r\n const newval = curval_arr.join(\"\");\r\n if (this.type !== 'positive' && newval === '-') {\r\n return;\r\n }\r\n const regExp: RegExp = new RegExp(`^${this.regex}`, 'g');\r\n if (newval && !String(newval).match(regExp)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n // const value = (newval.toString().replace(/\\./g, '').replace(/,/g, '.'));\r\n // if ((this.maxNumber || this.maxNumber === 0) && +value > this.maxNumber) {\r\n // setTimeout(() => {\r\n // this.inputControl.setValue(this.#getValueWithFormat(this.maxNumber.toString().replace(/\\./g, ',')));\r\n // }, 10);\r\n // event.preventDefault();\r\n // }\r\n }\r\n\r\n onFocus = () => {\r\n this.isFocused = true;\r\n this.sdFocus.emit();\r\n if (this.sdFocusForceBlur.observers?.length > 0) {\r\n this.blur();\r\n this.sdFocusForceBlur.emit();\r\n }\r\n }\r\n\r\n onBlur = () => {\r\n this.isFocused = false;\r\n const val: string = (this.inputControl.value ?? '').toString();\r\n const arrayValue = val.split(',');\r\n if (arrayValue.length >= 2 && arrayValue[1] == '') {\r\n this.inputControl.setValue(this.#formatNumber(arrayValue[0]));\r\n return;\r\n }\r\n if (val.length > val.trim().length) {\r\n this.inputControl.setValue(val.trim());\r\n }\r\n this.sdBlur.emit(this.formControl.value);\r\n }\r\n\r\n onClick = () => {\r\n if (this.sdView?.templateRef) {\r\n if (!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n blur = () => {\r\n this.isFocused = false;\r\n this.control?.nativeElement?.blur();\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.control?.nativeElement?.focus();\r\n }, 100);\r\n }\r\n\r\n #customValidator = (func: (value: any) => string | Promise<string>): AsyncValidatorFn => {\r\n return async (c: AbstractControl): Promise<{ [key: string]: any } | null> => {\r\n const value = c.value ?? null;\r\n if (func && typeof (func) === 'function') {\r\n const result = func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n onCopyText() {\r\n SdUtility.copyToClipboard(this.inputControl.value);\r\n this.copied = true;\r\n setTimeout(() => {\r\n this.copied = false;\r\n }, 2000);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdInputNumber } from './input-number.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\nimport { SdPopoverModule } from '@sd-angular/core/popover';\r\n\r\n@NgModule({\r\n declarations: [SdInputNumber],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n SdTranslateModule,\r\n SdCommonModule,\r\n SdPopoverModule,\r\n MatButtonModule\r\n ],\r\n exports: [\r\n SdInputNumber\r\n ]\r\n})\r\nexport class SdInputNumberModule { }\r\n"]}
|
|
@@ -394,13 +394,18 @@
|
|
|
394
394
|
if (__classPrivateFieldGet(_this, _pattern)) {
|
|
395
395
|
validators.push(forms.Validators.pattern(__classPrivateFieldGet(_this, _pattern)));
|
|
396
396
|
}
|
|
397
|
+
if (_this.inlineError) {
|
|
398
|
+
validators.push(_this.customInlineErrorValidator());
|
|
399
|
+
}
|
|
397
400
|
if (__classPrivateFieldGet(_this, _validator)) {
|
|
398
401
|
asyncValidators.push(__classPrivateFieldGet(_this, _customValidator).call(_this, __classPrivateFieldGet(_this, _validator)));
|
|
399
402
|
}
|
|
400
403
|
_this.formControl.setValidators(validators);
|
|
401
404
|
_this.formControl.setAsyncValidators(asyncValidators);
|
|
402
405
|
_this.formControl.updateValueAndValidity();
|
|
403
|
-
}
|
|
406
|
+
}
|
|
407
|
+
// Hàm tạo Validators tùy chỉnh cho inlineError
|
|
408
|
+
);
|
|
404
409
|
_onChange.set(this, function (value) {
|
|
405
410
|
_this.modelChange.emit(_this.formControl.value);
|
|
406
411
|
_this.sdChange.emit(_this.formControl.value);
|
|
@@ -599,6 +604,14 @@
|
|
|
599
604
|
enumerable: false,
|
|
600
605
|
configurable: true
|
|
601
606
|
});
|
|
607
|
+
Object.defineProperty(SdInput.prototype, "_inlineError", {
|
|
608
|
+
set: function (val) {
|
|
609
|
+
this.inlineError = val;
|
|
610
|
+
__classPrivateFieldGet(this, _updateValidator).call(this);
|
|
611
|
+
},
|
|
612
|
+
enumerable: false,
|
|
613
|
+
configurable: true
|
|
614
|
+
});
|
|
602
615
|
Object.defineProperty(SdInput.prototype, "disabled", {
|
|
603
616
|
// Optional
|
|
604
617
|
set: function (val) {
|
|
@@ -647,6 +660,12 @@
|
|
|
647
660
|
(_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.removeControl(__classPrivateFieldGet(this, _name));
|
|
648
661
|
__classPrivateFieldGet(this, _subscription).unsubscribe();
|
|
649
662
|
};
|
|
663
|
+
// Hàm tạo Validators tùy chỉnh cho inlineError
|
|
664
|
+
SdInput.prototype.customInlineErrorValidator = function () {
|
|
665
|
+
return function (control) {
|
|
666
|
+
return { inlineError: true };
|
|
667
|
+
};
|
|
668
|
+
};
|
|
650
669
|
SdInput.prototype.onCopyText = function () {
|
|
651
670
|
var _this = this;
|
|
652
671
|
SdUtility.copyToClipboard(__classPrivateFieldGet(this, _model));
|
|
@@ -661,7 +680,7 @@
|
|
|
661
680
|
SdInput.decorators = [
|
|
662
681
|
{ type: core.Component, args: [{
|
|
663
682
|
selector: 'sd-input',
|
|
664
|
-
template: "<ng-container *ngIf=\"!appearance && sdLabelDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"sdLabelDef.templateRef\">\r\n </ng-container>\r\n</ng-container>\r\n<label *ngIf=\"!appearance && label && !sdLabelDef?.templateRef\" class=\"d-block mb-0 T14M\">{{label}} <span class=\"text-danger mb-2\"\r\n *ngIf=\"isRequired\">*</span></label>\r\n<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n [class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !isFocused; else default\">\r\n <ng-container *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"sd-md\"\r\n [ngClass]=\"{'sd-form-tooltip':tooltip, 'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n [appearance]=\"appearance || 'outline'\">\r\n <mat-label *ngIf=\"appearance && label\">{{label}}</mat-label>\r\n <input aria-hidden=\"true\" [id]=\"id\" [formControl]=\"formControl\" [type]=\"type\" #control matInput\r\n [placeholder]=\"placeholder || (appearance ? label : '')\" (keyup.enter)=\"onKeyupEnter()\" (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" [required]=\"isRequired\" [readonly]=\"isReadonly\" [autocomplete]=\"id\" autocorrect=\"off\"\r\n [step]=\"1\" [attr.data-qclabel]=\"label\" [attr.data-qcid]=\"qcId\" [sdPopoverTriggerFor]=\"null\"\r\n [sdPopoverDisabled]=\"!disableErrorMessage || formControl.valid\">\r\n <svg \r\n #copyTooltip=\"matTooltip\" \r\n *ngIf=\"copyable\" \r\n matSuffix \r\n [matTooltip]=\"copied ? 'Copied' : 'Copy'\" \r\n class=\"icon-copy\" \r\n focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" \r\n (click)=\"onCopyText()\">\r\n <path d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"></path>\r\n </svg>\r\n <span class=\"mr-1\" *ngIf=\"maxlength && !formControl.disabled\" matSuffix>{{formControl.value?.length || 0}}/{{maxlength}}</span>\r\n <ng-container *ngIf=\"sdInputSuffix?.templateRef\" matSuffix>\r\n <ng-container *ngTemplateOutlet=\"sdInputSuffix.templateRef\">\r\n </ng-container>\r\n </ng-container>\r\n <mat-icon *ngIf=\"!hideIcon && sdClickIcon?.observers?.length\" (click)=\"onClickIcon($event)\"\r\n class=\"pointer sd-suffix-icon\" matSuffix>\r\n {{icon}}\r\n </mat-icon>\r\n <mat-error *ngIf=\"formControl.errors?.required\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{ \"This field is required\" | sdTranslate }}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\" formControl.errors?.maxlength\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{'Max length' | sdTranslate}} {{maxlength}}\r\n </ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.pattern\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{'Pattern error' | sdTranslate}}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.customValidator\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{formControl.errors?.customValidator}}</ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n <div *ngIf=\"tooltip\" class=\"sd-tooltip\">\r\n <mat-icon (click)=\"sdTooltip.toggle()\" [matTooltip]=\"formControl.value | sdInputTooltipPipe:tooltip\" matSuffix\r\n #sdTooltip=\"matTooltip\">info</mat-icon>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<!-- <sd-popover #error=\"sdPopover\" type=\"danger\" width=\"300px\">\r\n <span *ngIf=\"formControl.errors?.required\">\r\n {{ \"This field is required\" | sdTranslate }}\r\n </span>\r\n <span *ngIf=\"formControl.errors?.maxlength\">\r\n {{'Max length' | sdTranslate}} <strong>{{maxlength}}</strong>\r\n </span>\r\n <span *ngIf=\"formControl.errors?.pattern\">\r\n {{'Pattern error' | sdTranslate}}\r\n </span>\r\n <span *ngIf=\"formControl.errors?.customValidator\">\r\n {{formControl.errors?.customValidator}}\r\n </span>\r\n</sd-popover> -->",
|
|
683
|
+
template: "<ng-container *ngIf=\"!appearance && sdLabelDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"sdLabelDef.templateRef\">\r\n </ng-container>\r\n</ng-container>\r\n<label *ngIf=\"!appearance && label && !sdLabelDef?.templateRef\" class=\"d-block mb-0 T14M\">{{label}} <span class=\"text-danger mb-2\"\r\n *ngIf=\"isRequired\">*</span></label>\r\n<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n [class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !isFocused; else default\">\r\n <ng-container *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"sd-md\"\r\n [ngClass]=\"{'sd-form-tooltip':tooltip, 'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n [appearance]=\"appearance || 'outline'\">\r\n <mat-label *ngIf=\"appearance && label\">{{label}}</mat-label>\r\n <input aria-hidden=\"true\" [id]=\"id\" [formControl]=\"formControl\" [type]=\"type\" #control matInput\r\n [placeholder]=\"placeholder || (appearance ? label : '')\" (keyup.enter)=\"onKeyupEnter()\" (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" [required]=\"isRequired\" [readonly]=\"isReadonly\" [autocomplete]=\"id\" autocorrect=\"off\"\r\n [step]=\"1\" [attr.data-qclabel]=\"label\" [attr.data-qcid]=\"qcId\" [sdPopoverTriggerFor]=\"null\"\r\n [sdPopoverDisabled]=\"!disableErrorMessage || formControl.valid\">\r\n <svg \r\n #copyTooltip=\"matTooltip\" \r\n *ngIf=\"copyable\" \r\n matSuffix \r\n [matTooltip]=\"copied ? 'Copied' : 'Copy'\" \r\n class=\"icon-copy\" \r\n focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" \r\n (click)=\"onCopyText()\">\r\n <path d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"></path>\r\n </svg>\r\n <span class=\"mr-1\" *ngIf=\"maxlength && !formControl.disabled\" matSuffix>{{formControl.value?.length || 0}}/{{maxlength}}</span>\r\n <ng-container *ngIf=\"sdInputSuffix?.templateRef\" matSuffix>\r\n <ng-container *ngTemplateOutlet=\"sdInputSuffix.templateRef\">\r\n </ng-container>\r\n </ng-container>\r\n <mat-icon *ngIf=\"!hideIcon && sdClickIcon?.observers?.length\" (click)=\"onClickIcon($event)\"\r\n class=\"pointer sd-suffix-icon\" matSuffix>\r\n {{icon}}\r\n </mat-icon>\r\n <mat-error *ngIf=\"formControl.errors?.required\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{ \"This field is required\" | sdTranslate }}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\" formControl.errors?.maxlength\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{'Max length' | sdTranslate}} {{maxlength}}\r\n </ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.pattern\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{'Pattern error' | sdTranslate}}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.customValidator\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{formControl.errors?.customValidator}}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.inlineError\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{inlineError}}</ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div *ngIf=\"tooltip\" class=\"sd-tooltip\">\r\n <mat-icon (click)=\"sdTooltip.toggle()\" [matTooltip]=\"formControl.value | sdInputTooltipPipe:tooltip\" matSuffix\r\n #sdTooltip=\"matTooltip\">info</mat-icon>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<!-- <sd-popover #error=\"sdPopover\" type=\"danger\" width=\"300px\">\r\n <span *ngIf=\"formControl.errors?.required\">\r\n {{ \"This field is required\" | sdTranslate }}\r\n </span>\r\n <span *ngIf=\"formControl.errors?.maxlength\">\r\n {{'Max length' | sdTranslate}} <strong>{{maxlength}}</strong>\r\n </span>\r\n <span *ngIf=\"formControl.errors?.pattern\">\r\n {{'Pattern error' | sdTranslate}}\r\n </span>\r\n <span *ngIf=\"formControl.errors?.customValidator\">\r\n {{formControl.errors?.customValidator}}\r\n </span>\r\n</sd-popover> -->",
|
|
665
684
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
666
685
|
styles: [":host ::ng-deep .mat-form-field.sd-form-tooltip{width:calc(100% - 30px)}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}:host ::ng-deep .mat-form-field:hover .icon-copy{opacity:1}:host ::ng-deep .mat-form-field .icon-copy{cursor:pointer;fill:rgba(0,0,0,.5);height:.9em;opacity:0;transition:opacity .2s linear;width:.9em}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}.sd-tooltip{display:inline-block;margin:auto;text-align:center;width:30px}:host{display:block;padding-top:5px}.sd-md:hover .btn-copy{visibility:visible}"]
|
|
667
686
|
},] }
|
|
@@ -689,6 +708,7 @@
|
|
|
689
708
|
pMaxlength: [{ type: core.Input, args: ['maxlength',] }],
|
|
690
709
|
pattern: [{ type: core.Input }],
|
|
691
710
|
validator: [{ type: core.Input }],
|
|
711
|
+
_inlineError: [{ type: core.Input, args: ['inlineError',] }],
|
|
692
712
|
disabled: [{ type: core.Input }],
|
|
693
713
|
icon: [{ type: core.Input }],
|
|
694
714
|
_hideIcon: [{ type: core.Input, args: ['hideIcon',] }],
|
|
@@ -705,7 +725,16 @@
|
|
|
705
725
|
sdView: [{ type: core.ContentChild, args: [common.SdViewDefDirective,] }],
|
|
706
726
|
copyTooltip: [{ type: core.ViewChild, args: ['copyTooltip',] }],
|
|
707
727
|
_copyable: [{ type: core.Input, args: ['copyable',] }]
|
|
708
|
-
};
|
|
728
|
+
};
|
|
729
|
+
function backendErrorValidator(backendErrorMessage) {
|
|
730
|
+
return function (control) {
|
|
731
|
+
var value = control.value;
|
|
732
|
+
if (value === backendErrorMessage) {
|
|
733
|
+
return { backendError: true };
|
|
734
|
+
}
|
|
735
|
+
return null;
|
|
736
|
+
};
|
|
737
|
+
}
|
|
709
738
|
|
|
710
739
|
var SdInputTooltipPipe = /** @class */ (function () {
|
|
711
740
|
function SdInputTooltipPipe() {
|
|
@@ -791,6 +820,7 @@
|
|
|
791
820
|
exports.SdInputModule = SdInputModule;
|
|
792
821
|
exports.SdInputSuffixDirective = SdInputSuffixDirective;
|
|
793
822
|
exports.SdInputTooltipPipe = SdInputTooltipPipe;
|
|
823
|
+
exports.backendErrorValidator = backendErrorValidator;
|
|
794
824
|
exports.ɵa = TouchDirective;
|
|
795
825
|
|
|
796
826
|
Object.defineProperty(exports, '__esModule', { value: true });
|