diff --git a/.vscode/settings.json b/.vscode/settings.json
index 4e677935..a98691e9 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -307,6 +307,10 @@
"OrderEntry.bbj": {
"name": "OrderEntry",
"style": ""
+ },
+ "GetRows.bbj": {
+ "name": "GetRows",
+ "style": ""
}
},
"cSpell.words": [
diff --git a/BBjGridExWidget.bbj b/BBjGridExWidget.bbj
index 33628701..c4fa5b17 100644
--- a/BBjGridExWidget.bbj
+++ b/BBjGridExWidget.bbj
@@ -463,6 +463,32 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
methodret "never"
methodend
rem /**
+ rem * Constant value which describes the rows in before sorting and
+ rem * filtering phase.
+ rem *
+ rem * @return BBjString
+ rem */
+ method public static BBjString GRID_ROWS_PHASE_ALL()
+ methodret "forEachNode"
+ methodend
+ rem /**
+ rem * Constant value which describes the rows in after filtering phase.
+ rem *
+ rem * @return BBjString
+ rem */
+ method public static BBjString GRID_ROWS_PHASE_AFTER_FILTER()
+ methodret "forEachNodeAfterFilter"
+ methodend
+ rem /**
+ rem * Constant value which describes the rows in after filtering and sorting
+ rem * phase.
+ rem *
+ rem * @return BBjString
+ rem */
+ method public static BBjString GRID_ROWS_PHASE_AFTER_FILTER_SORT()
+ methodret "forEachNodeAfterFilterAndSort"
+ methodend
+ rem /**
rem * Constant value which defines that chart toolbar settings item
rem *
rem * @return BBjString
@@ -749,7 +775,7 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
method public static void setDebug(BBjNumber debug! , BBjNumber port!)
if(debug!.booleanValue())
chromiumSwitches$ = stbl("!CHROMIUM_SWITCHES","--remote-debugging-port=" + str(port!))
- fi
+ FI
#Debug! = debug!
methodend
@@ -881,7 +907,10 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
method public void onInit(BBjEvent ev!)
#HTMLView!.clearCallback(BBjAPI.ON_PAGE_LOADED)
isLicensed! = 0
- if (#getForceCommunityBuild() = 0) then isLicensed! = #isLicensed() FI
+
+ if (#getForceCommunityBuild() = 0) then
+ isLicensed! = #isLicensed()
+ FI
rem /**
rem * work out the required js files
rem */
@@ -968,7 +997,10 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
rem * @param BBjGainedFocusEvent ev! The focus event
rem */
method public void onGainedFocus(BBjGainedFocusEvent ev!)
- if(ev!.isTemporary()) methodret
+ if(ev!.isTemporary())
+ methodret
+ FI
+
#focus()
methodend
rem /**
@@ -1630,7 +1662,10 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
rem * The widget is declared ready when the HTMLView fires the ON_PAGE_LOADED
rem * event and the scripts are injected succesfully
rem */
- if(!isWidgetReady!) methodret
+ if(!isWidgetReady!)
+ methodret
+ FI
+
isFirstRender! = #getIsFirstRender()
gson! = new Gson()
options! = #getAsJsonObject()
@@ -1644,12 +1679,18 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
rem * is queued in the normal order.
rem */
priority! = 0
- if(!isFirstRender!) priority! = null()
+
+ if(!isFirstRender!)
+ priority! = null()
+ FI
+
#getExecutor().execute("$wnd.gw_init(" + gson!.toJson(options!) + ",'" + #LicenseKey$ + "'," + data$ + ")" , 1 , priority!)
rem /**
rem * Update the IsFirstRender flag once and only once
rem */
- if(!isFirstRender!) #setIsFirstRender(BBjAPI.FALSE)
+ if(!isFirstRender!)
+ #setIsFirstRender(BBjAPI.FALSE)
+ FI
methodend
rem /**
rem * Re-render the column definitions on the client.
@@ -2190,7 +2231,7 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
#getHTMLView().clearCallback(BBjAPI.ON_GAINED_FOCUS)
#HTMLView!.focus()
#getHTMLView().setCallback(BBjAPI.ON_GAINED_FOCUS,#this!,"onGainedFocus")
- fi
+ FI
rem /**
rem * We never debounce the focus calls , this causes a heck of problems
rem * when there are several grids rendered
@@ -2301,6 +2342,16 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
#getExecutor().execute(scriptKey!,script$)
methodend
rem /**
+ rem * Select a row by its index
+ rem *
+ rem *
#API
+ rem *
+ rem * @param BBjNumber x!: the row index to select
+ rem */
+ method public void setSelectedRow(BBjNumber index!)
+ #setSelectedRow(str(index!))
+ methodend
+ rem /**
rem * Select a row by its key
rem *
rem *
#API
@@ -2312,14 +2363,19 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
#getExecutor().execute(script$)
methodend
rem /**
- rem * Select a row by its index
+ rem * Get the current selected row
rem *
rem *
#API
rem *
- rem * @param BBjNumber x!: the row index to select
+ rem * @return GxClientRowModel The selected row if any, null() otherwise
rem */
- method public void setSelectedRow(BBjNumber index!)
- #setSelectedRow(str(index!))
+ method public GxClientRowModel getSelectedRow()
+ returnedRow! = #getExecutor().execute("$wnd.gw_getSelectedRow('" + #GRIDID$ + "')",0)
+ if returnedRow!<>null() and len(returnedRow!) > 0 then
+ methodret #getClientJsonFactory().getRow(returnedRow!)
+ FI
+
+ methodret null()
methodend
rem /**
rem * Select a vector of rows.
@@ -2347,6 +2403,121 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
#getExecutor().execute(script$)
methodend
rem /**
+ rem * Get Array of selected rows
+ rem *
+ rem *
#API
+ rem *
+ rem * @return BBjVector A vector filled with the selected rows
+ rem */
+ method public BBjVector getSelectedRows()
+ rows! = new BBjVector()
+
+ if (#getRS() = null()) then
+ goto getSelectedRowsErr
+ FI
+
+ returnedRows! = #getExecutor().execute("$wnd.gw_getSelectedRows('" + #GRIDID$ + "')" , 0)
+ if returnedRows! = null() then
+ goto getSelectedRowsErr
+ FI
+
+ parser! = new JsonParser()
+ array! = parser!.parse(returnedRows!).getAsJsonArray()
+ it! = array!.iterator()
+ while (it!.hasNext())
+ next! = it!.next().getAsJsonObject(err=getSelectedRowsErr)
+ rows!.add(#getClientJsonFactory().getRow(next!))
+ wend
+
+ getSelectedRowsErr:
+ methodret rows!
+ methodend
+ rem /**
+ rem * Get the rows from grid in the given phase after applying the given
+ rem * filter expression.
+ rem *
+ rem * Note: if you only need to get the whole rows from the grid and you don't care about
+ rem * filtering and sorting Then retrieve them from ResultSet as this will be faster
+ rem * especially in BUI
+ rem *
+ rem * @param BBjString phase! The rows phase
+ rem * @param BBjString filterExpression! A filter expression to execute before returning the rows.
+ rem * The expression must return true or false for the given row
+ rem *
+ rem * @return BBjVector A vector of GxClientRowModel(s)
+ rem *
+ rem * @see #GRID_ROWS_PHASE_ALL()
+ rem * @see #GRID_ROWS_PHASE_AFTER_FILTER()
+ rem * @see #GRID_ROWS_PHASE_AFTER_FILTER_SORT()
+ rem *
+ rem * @see see GxExpression
+ rem */
+ method public BBjVector getRows(BBjString phase! , BBjString filterExpression!)
+ rows! = new BBjVector()
+ returnedRows! = #getExecutor().execute("$wnd.gw_getRows('" + #GRIDID$ + "','" + phase! + "'," + (new Gson()).toJson(filterExpression!) + ")" , 0)
+ if returnedRows! <> null() AND returnedRows! <> "[]" then
+ parser! = new JsonParser()
+ array! = parser!.parse(returnedRows!).getAsJsonArray()
+ it! = array!.iterator()
+ while (it!.hasNext())
+ next! = it!.next().getAsJsonObject()
+ rows!.add(#getClientJsonFactory().getRow(next!))
+ wend
+ FI
+
+ methodret rows!
+ methodend
+ rem /**
+ rem * Get the rows from grid in the given phase after applying the given
+ rem * filter expression.
+ rem *
+ rem * Note: if you only need to get the whole rows from the grid and you don't care about
+ rem * filtering and sorting Then retrieve them from ResultSet as this will be faster
+ rem * especially in BUI
+ rem *
+ rem * @param BBjString phase! The rows phase
+ rem * @param GxExpressionInterface filterExpression! A filter expression to execute before returning the rows.
+ rem * The expression must return true or false for the given row
+ rem *
+ rem * @return BBjVector A vector of GxClientRowModel(s)
+ rem *
+ rem * @see #GRID_ROWS_PHASE_ALL()
+ rem * @see #GRID_ROWS_PHASE_AFTER_FILTER()
+ rem * @see #GRID_ROWS_PHASE_AFTER_FILTER_SORT()
+ rem *
+ rem * @see see GxExpression
+ rem */
+ method public BBjVector getRows(BBjString phase! , GxExpressionInterface filterExpression!)
+ methodret #getRows(phase!, filterExpression!.toString())
+ methodend
+ rem /**
+ rem * Get the rows from grid in the given phase after applying the given
+ rem * filter expression.
+ rem *
+ rem * Note: if you only need to get the whole rows from the grid and you don't care about
+ rem * filtering and sorting Then retrieve them from ResultSet as this will be faster
+ rem * especially in BUI
+ rem *
+ rem * @param BBjString phase! The rows phase
+ rem *
+ rem * @return BBjVector A vector of GxClientRowModel(s)
+ rem *
+ rem * @see #GRID_ROWS_PHASE_ALL()
+ rem * @see #GRID_ROWS_PHASE_AFTER_FILTER()
+ rem * @see #GRID_ROWS_PHASE_AFTER_FILTER_SORT()
+ rem */
+ method public BBjVector getRows(BBjString phase!)
+ methodret #getRows(phase!, "")
+ methodend
+ rem /**
+ rem * Get the rows from grid after sorting and filtering
+ rem *
+ rem * @return BBjVector A vector of GxClientRowModel(s)
+ rem */
+ method public BBjVector getRows()
+ methodret #getRows(#GRID_ROWS_PHASE_AFTER_FILTER_SORT())
+ methodend
+ rem /**
rem * Expand all groups
rem *
rem *
#API
@@ -2580,7 +2751,7 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
method public void updateContext()
if(#IsReady!)
#getExecutor().execute("$wnd.gw_updateContext('" + #GRIDID$ +"'," + #getClientContext().toString() + ")")
- fi
+ FI
methodend
rem /**
rem * Set and apply filter model for the given column
@@ -2651,7 +2822,7 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
if(#getIsReady() = BBjAPI.TRUE)
code! = String.format("JSON.stringify($wnd.gw_getGrid('%s').options.api.getFilterInstance('%s').getModel());" , #getGRIDID(), column!)
jsonModel! = #getExecutor().execute(code! , 0)
- fi
+ FI
if(jsonModel! <> null() AND jsonModel! <> "null")
methodret #getClientJsonFactory().getFilter(jsonModel!,column!)
@@ -2677,16 +2848,16 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
model! = new GxClientFilterSetFilterModel()
break
SWEND
- fi
+ FI
if(model! = null())
throw "Failed to create column filter's model. The column has no filter component attached" , 256
- fi
+ FI
model!.setWidget(#this!)
model!.setColumn(column!)
methodret model!
- fi
+ FI
methodend
rem /**
rem * Get The combined filter model for the given column
@@ -2713,12 +2884,16 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
if(isAlreadyCombined! = 0 AND model!.supportsCombinedModel() = 0)
throw "The column's filter component does not support combined models" , 256
- fi
+ FI
combinedModel! = iff(isAlreadyCombined!,model! ,new GxClientFilterCombinedModel() )
combinedModel!.setWidget(#this!)
combinedModel!.setColumn(column!)
- if(!isAlreadyCombined!) combinedModel!.setFirstCondition(model!)
+
+ if(!isAlreadyCombined!)
+ combinedModel!.setFirstCondition(model!)
+ FI
+
methodret combinedModel!
methodend
rem /**
@@ -3026,51 +3201,6 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
#updateContext()
methodend
rem /**
- rem * Get the current selected row
- rem *
- rem *
#API
- rem *
- rem * @return GxClientRowModel The selected row if any, null() otherwise
- rem */
- method public GxClientRowModel getSelectedRow()
- returnedRow! = #getExecutor().execute("$wnd.gw_getSelectedRow('" + #GRIDID$ + "')",0)
- if returnedRow!<>null() and len(returnedRow!) > 0 then
- methodret #getClientJsonFactory().getRow(returnedRow!)
- FI
-
- methodret null()
- methodend
- rem /**
- rem * Get Array of selected rows
- rem *
- rem *
#API
- rem *
- rem * @return BBjVector A vector filled with the selected rows
- rem */
- method public BBjVector getSelectedRows()
- rows! = new BBjVector()
-
- if (#getRS() = null()) then
- goto getSelectedRowsErr
- FI
-
- returnedRows! = #getExecutor().execute("$wnd.gw_getSelectedRows('" + #GRIDID$ + "')" , 0)
- if returnedRows! = null() then
- goto getSelectedRowsErr
- FI
-
- parser! = new JsonParser()
- array! = parser!.parse(returnedRows!).getAsJsonArray()
- it! = array!.iterator()
- while (it!.hasNext())
- next! = it!.next().getAsJsonObject(err=getSelectedRowsErr)
- rows!.add(#getClientJsonFactory().getRow(next!))
- wend
-
- getSelectedRowsErr:
- methodret rows!
- methodend
- rem /**
rem * The method will return a vector of the selected ranges including columns and rows
rem *
rem *
#API
@@ -3400,4 +3530,4 @@ class public BBjGridExWidget extends BBjWidget implements GxColumnsManagerInterf
#fireEvent(#ON_GRID_KEYPRESS(), event!)
methodend
-classend
+classend
\ No newline at end of file
diff --git a/client/dist/bbj-grid-widget.js b/client/dist/bbj-grid-widget.js
index a3f4ac97..909eb65a 100644
--- a/client/dist/bbj-grid-widget.js
+++ b/client/dist/bbj-grid-widget.js
@@ -1,18 +1,24254 @@
-!function(e,n){for(var t in n)e[t]=n[t]}(window,function(e){var n={};function t(a){if(n[a])return n[a].exports;var r=n[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,t),r.l=!0,r.exports}return t.m=e,t.c=n,t.d=function(e,n,a){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:a})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(t.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var r in e)t.d(a,r,function(n){return e[n]}.bind(null,r));return a},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=19)}([function(e,n,t){"use strict";function a(e){window.BBjGridExWidget=window.BBjGridExWidget||{};var n=window.BBjGridExWidget[e]||null;if(!n){var t=JSON.stringify(Object.keys(window.BBjGridExWidget));throw new TypeError("\n\n[Grid Not Found] The method asked for non-existent grid instance.\n-------------------------------------------------------------------\nRequired Grid Id : ".concat(e," \nRegistered Grids : ").concat(t,"\n"))}return n}Object.defineProperty(n,"__esModule",{value:!0}),n.gw_getDocument=function(){return"undefined"!=typeof $doc?$doc:document},n.gw_getWindow=function(){return"undefined"!=typeof $wnd?$wnd:window},n.gw_escape=function(e){return null!=e?e:""},n.gw_uuid=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var n=16*Math.random()|0;return("x"==e?n:3&n|8).toString(16)}))},n.gw_getGrid=a,n.gw_addGrid=function(e,n){return window.BBjGridExWidget=window.BBjGridExWidget||{},window.BBjGridExWidget[e]=n,a(e)}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.gw_debounce=function(e,n,t){var a;return function(){var r=this,o=arguments,i=function(){a=null,t||e.apply(r,o)},l=t&&!a;clearTimeout(a),a=setTimeout(i,n),l&&e.apply(r,o)}},n.gw_sendEvent=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=e.interests||[];if(r.includes(t)){var o=(0,a.gw_getDocument)().getElementById("event-bridge-".concat(e.id)),i=new CustomEvent("click");i.payload=n,o.dispatchEvent(i)}},n.gw_parseNode=r,n.gw_parseNodeFromEvent=function(e){return r(e.node,e.context)};var a=t(0);function r(e,n){return!0!==e.group&&{i:e.id,x:e.rowIndex,p:e.hasOwnProperty("parent")&&e.parent.hasOwnProperty("key")?e.parent.key:"",c:e.childIndex,s:Boolean(e.selected),cr:n.hasOwnProperty("includeClientRowData")&&!0===n.includeClientRowData?e.data:null}}},function(e,n){var t;t=function(){return this}();try{t=t||new Function("return this")()}catch(e){"object"==typeof window&&(t=window)}e.exports=t},function(e,n,t){var a,r,o={},i=(a=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===r&&(r=a.apply(this,arguments)),r}),l=function(e){return document.querySelector(e)},g=function(e){var n={};return function(e){if("function"==typeof e)return e();if(void 0===n[e]){var t=l.call(this,e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}}(),d=null,c=0,p=[],u=t(51);function s(e,n){for(var t=0;t=0&&p.splice(n,1)}function b(e){var n=document.createElement("style");return e.attrs.type="text/css",A(n,e.attrs),m(e,n),n}function A(e,n){Object.keys(n).forEach((function(t){e.setAttribute(t,n[t])}))}function x(e,n){var t,a,r,o;if(n.transform&&e.css){if(!(o=n.transform(e.css)))return function(){};e.css=o}if(n.singleton){var i=c++;t=d||(d=b(n)),a=k.bind(null,t,i,!1),r=k.bind(null,t,i,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(t=function(e){var n=document.createElement("link");return e.attrs.type="text/css",e.attrs.rel="stylesheet",A(n,e.attrs),m(e,n),n}(n),a=E.bind(null,t,n),r=function(){f(t),t.href&&URL.revokeObjectURL(t.href)}):(t=b(n),a=v.bind(null,t),r=function(){f(t)});return a(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap)return;a(e=n)}else r()}}e.exports=function(e,n){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(n=n||{}).attrs="object"==typeof n.attrs?n.attrs:{},n.singleton||"boolean"==typeof n.singleton||(n.singleton=i()),n.insertInto||(n.insertInto="head"),n.insertAt||(n.insertAt="bottom");var t=h(e,n);return s(t,n),function(e){for(var a=[],r=0;r1&&void 0!==arguments[1]&&arguments[1],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=(0,a.gw_getGrid)(e).options,o=r.columnApi;if(t&&t.length)o.autoSizeColumns(t,Boolean(n));else{var i=[];o.getAllColumns().forEach((function(e){i.push(e.colId)})),o.autoSizeColumns(i,Boolean(n))}},n.gw_ensureColumnVisible=function(e,n){(0,a.gw_getGrid)(e).options.api.ensureColumnVisible(n)},n.gw_setColumnWidth=function(e,n,t){(0,a.gw_getGrid)(e).options.columnApi.setColumnWidth(n,Number(t))},n.gw_pinColumn=function(e,n,t){(0,a.gw_getGrid)(e).options.columnApi.setColumnPinned(n,t)},n.gw_moveColumn=function(e,n,t){(0,a.gw_getGrid)(e).options.columnApi.moveColumn(n,t)},n.gw_isShowSelectionCheckbox=g,n.gw_isHeaderCheckboxSelection=d,n.gw_addRowGroupColumn=function(e,n,t){(0,a.gw_getGrid)(e).options.columnApi[t?"setRowGroupColumns":"addRowGroupColumns"](n.split(",").map((function(e){return e.trim()})))},n.gw_removeRowGroupColumn=function(e,n){(0,a.gw_getGrid)(e).options.columnApi.removeRowGroupColumns(n.split(",").map((function(e){return e.trim()})))},n.gw_getPivotMode=function(e){return(0,a.gw_getGrid)(e).options.columnApi.isPivotMode()},n.gw_setPivotMode=function(e,n){(0,a.gw_getGrid)(e).options.columnApi.setPivotMode(!!Number(n))},n.gw_addPivotColumns=function(e,n,t){(0,a.gw_getGrid)(e).options.columnApi[t?"setPivotColumns":"addPivotColumns"](n.split(",").map((function(e){return e.trim()})))},n.gw_removePivotColumns=function(e,n){(0,a.gw_getGrid)(e).options.columnApi.removePivotColumns(n.split(",").map((function(e){return e.trim()})))},n.gw_addValueColumns=function(e,n){(0,a.gw_getGrid)(e).options.columnApi.addValueColumns(n.split(",").map((function(e){return e.trim()})))},n.gw_removeValueColumns=function(e,n){(0,a.gw_getGrid)(e).options.columnApi.removeValueColumns(n.split(",").map((function(e){return e.trim()})))},n.gw_setSortModel=function(e,n){var t=JSON.parse(n),r=[];t.forEach((function(e){for(var n in e)r.push({colId:n,sort:e[n]})})),(0,a.gw_getGrid)(e).options.api.setSortModel(r)},n.gw_refreshHeader=function(e){(0,a.gw_getGrid)(e).options.api.redrawRows()};var a=t(0),r=t(32),o=t(5).deepParseJson;function i(e){var n=e.tooltipValueGetter;n&&(e.tooltipValueGetter=function(e){return(0,r.gw_executeExpression)(n,e)}),e.tooltipComponent="HTMLTooltip",e.hasOwnProperty("children")&&e.children.forEach((function(e){return i(e)}))}function l(e){for(var n in e){var t=e[n];t.checkboxSelection=t.checkboxSelection||g,t.headerCheckboxSelection=t.headerCheckboxSelection||d,i(t),t.hasOwnProperty("editable")&&"string"==typeof t.editable&&function(){var e=t.editable;t.editable=function(n){return(0,r.gw_executeExpression)(e,n)}}()}}function g(e){return!!e.context.showSelectionCheckbox&&e.columnApi.getAllGridColumns()[0].colDef.field===e.colDef.field}function d(e){return!!e.api.gridOptionsWrapper.gridOptions.context.showHeaderSelectionCheckbox&&e.columnApi.getAllGridColumns()[0].colDef.field===e.colDef.field}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.gw_setQuickFilter=function(e,n){(0,a.gw_getGrid)(e).options.api.setQuickFilter(n)},n.gw_expandAll=function(e){(0,a.gw_getGrid)(e).options.api.expandAll()},n.gw_collapseAll=function(e){(0,a.gw_getGrid)(e).options.api.collapseAll()},n.gw_ensureIndexVisible=function(e,n,t){var r=(0,a.gw_getGrid)(e).options.api,o=r.getRowNode(n);o?r.ensureNodeVisible(o,t):r.ensureIndexVisible(Number(n),t)},n.gw_navigateToNextRow=function(e,n){var t=(0,a.gw_getGrid)(e).options,r=n.previousCellPosition,o=n.nextCellPosition;switch(n.key){case 40:return t.api.forEachNode((function(e){r.rowIndex+1===e.rowIndex&&e.setSelected(!0)})),o;case 38:return t.api.forEachNode((function(e){r.rowIndex-1===e.rowIndex&&e.setSelected(!0)})),o;case 37:case 39:return o;default:throw new Error("You have super strange keyboard")}},n.gw_getRowNodeId=function(e,n){return n[(0,a.gw_getGrid)(e).options.context.getRowNodeId]},n.gw_setRowData=function(e,n){var t=(0,a.gw_getGrid)(e).options;t.api.setRowData(n),t.rowData=n},n.gw_updateRowData=function(e,n,t){var r=(0,a.gw_getGrid)(e).options;if(n.remove.length){var o=[];n.remove.forEach((function(e){o.push(r.api.getRowNode(e).data)})),n.remove=o}t?r.api.batchUpdateRowData(n):r.api.updateRowData(n)},n.gw_setRowsHeight=function(e,n){var t=(0,a.gw_getGrid)(e).options.api;t.forEachNode((function(e){e.setRowHeight(n)})),t.onRowHeightChanged()},n.gw_setRowHeight=function(e,n,t){var r=(0,a.gw_getGrid)(e).options,o=r.api,i=o.getRowNode(n)||o.getDisplayedRowAtIndex(n);i?(i.setRowHeight(t),r.api.onRowHeightChanged()):console.warn("Failed to set height for row ".concat(n,". Row cannot be found"))},n.gw_resetRowHeights=function(e){(0,a.gw_getGrid)(e).options.api.resetRowHeights()},n.gw_setSelectedRows=function(e,n){var t=(0,a.gw_getGrid)(e).options.api;t.forEachNodeAfterFilterAndSort((function(e){(n.indexOf(String(e.rowIndex))>-1||n.indexOf(String(e.id))>-1)&&(e.setSelected(!0),e.expanded=!0)})),t.onGroupExpandedOrCollapsed()},n.gw_selectAll=function(e,n){var t=(0,a.gw_getGrid)(e).options;1===n?t.api.selectAllFiltered():t.api.selectAll()},n.gw_deselectAll=function(e,n){var t=(0,a.gw_getGrid)(e).options;1===n?t.api.deselectAllFiltered():t.api.deselectAll()},n.gw_getSelectedRows=o,n.gw_getSelectedRow=function(e){var n=JSON.parse(o(e));if(n.length)return JSON.stringify(n[n.length-1]);return""},n.gw_redrawRows=function(e){(0,a.gw_getGrid)(e).options.api.redrawRows()};var a=t(0),r=t(1);function o(e){var n=(0,a.gw_getGrid)(e).options,t=n.api.getSelectedNodes(),o=[];return t.forEach((function(e){o.push((0,r.gw_parseNode)(e,n.context))})),JSON.stringify(o)}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.gw_getChartToolbarItems=function(e){return e.api.gridOptionsWrapper.gridOptions.context.chartToolbarItems||[]},n.gw_addChartRange=function(e,n){var t=(0,a.gw_getGrid)(e),i=t.options,l=o(JSON.stringify(n));l.cellRange=(0,r.gw_parseAddCellRange)(i,l.cellRange);var g=i.api.chartRange(l),d=(0,a.gw_uuid)();return t.created_charts=t.created_charts||{},t.created_charts[d]=g,d},n.gw_destroyChart=function(e,n){var t=(0,a.gw_getGrid)(e);if(n)t.hasOwnProperty("created_charts")&&t.created_charts.hasOwnProperty(n)&&t.created_charts[n].destroyChart();else if(t.hasOwnProperty("created_charts"))for(var r in t.created_charts){if(t.created_charts.hasOwnProperty(r))t.created_charts[r].destroyChart()}};var a=t(0),r=t(13),o=t(5).deepParseJson},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.gw_startEditingCell=function(e,n,t,r,o){var i=(0,a.gw_getGrid)(e).options,l=i.api,g=l.getRowNode(n)||l.getDisplayedRowAtIndex(n);i.api.startEditingCell({rowIndex:g.rowIndex,colKey:t,keyPress:Number(r),charPress:o})},n.gw_stopEditing=function(e,n){(0,a.gw_getGrid)(e).options.api.stopEditing(n)},n.gw_tabToNextCell=function(e){(0,a.gw_getGrid)(e).options.api.tabToNextCell()},n.gw_tabToPreviousCell=function(e){(0,a.gw_getGrid)(e).options.api.tabToPreviousCell()},n.gw_setFocusedCell=function(e,n,t){var r,o,i=(0,a.gw_getGrid)(e).options;if(i.api.getEditingCells().length>0)return;if(-1==n){var l=i.api.getFocusedCell();l?(r=l.rowIndex,o=l.column.colId):(r=0,o=i.columnApi.getAllGridColumns()[0].colId)}else r=n?Number.isInteger(+n)?+n:i.api.getRowNode(n).rowIndex:0,o=t||i.columnApi.getAllGridColumns()[0].colId;(0,a.gw_getGrid)(e).options.api.setFocusedCell(r,o)},n.gw_getRangeSelections=function(e){var n=(0,a.gw_getGrid)(e).options,t=n.context,o=n.api,i=o.getCellRanges(),l=o.getModel(),g=[];return i.forEach((function(e){for(var n=e.columns.reduce((function(e,n){return"ag-Grid-AutoColumn"!==n.colId&&e.push(n.colId),e}),[]).filter(Boolean),a=Math.min(e.startRow.rowIndex,e.endRow.rowIndex),o=Math.max(e.startRow.rowIndex,e.endRow.rowIndex),i=[],d=a;d<=o;d++){var c=l.getRow(d);if(c){var p=(0,r.gw_parseNode)(c,t);p&&i.push(p)}}i.length&&n.length&&g.push({r:i,c:n})})),JSON.stringify(g)},n.gw_parseAddCellRange=i,n.gw_addCellRange=function(e,n){var t=(0,a.gw_getGrid)(e).options;t.api.addCellRange(i(t,n))},n.gw_clearRangeSelection=function(e){(0,a.gw_getGrid)(e).options.api.clearRangeSelection()};var a=t(0),r=t(1),o=t(5).deepParseJson;function i(e,n){var t=o(JSON.stringify(n)),a=t.start?Number.isInteger(+t.start)?+t.start:e.api.getRowNode(t.start).rowIndex:0,r=t.end?Number.isInteger(+t.end)?+t.end:e.api.getRowNode(t.end).rowIndex:e.rowData.length-1;return{rowStartIndex:Math.abs(a),rowEndIndex:Math.abs(r),columns:t.columns}}},function(e,n){e.exports=function(e){if(!e.webpackPolyfill){var n=Object.create(e);n.children||(n.children=[]),Object.defineProperty(n,"loaded",{enumerable:!0,get:function(){return n.l}}),Object.defineProperty(n,"id",{enumerable:!0,get:function(){return n.i}}),Object.defineProperty(n,"exports",{enumerable:!0}),n.webpackPolyfill=1}return n}},function(e,n,t){"use strict";t.r(n);const a=/^\d+$/,r=/\s/,o=e=>e==e.toLowerCase()&&e!=e.toUpperCase(),i=e=>e==e.toUpperCase()&&e!=e.toLowerCase(),l=(e,n,t,a)=>{if(!e){const e=a.charAt(t),n=t+1;throw{name:"StringMaskError",message:`StringMaskError: error applying mask at position "${n}" , char "${e}"`,pos:n,char:e}}n[t]=" "};var g=class{static mask(e,n,t=!0){e=String(e);const g=(n=String(n)).length,d=e.length;if(d>g){if(t)return e;throw{name:"MaskIsTooShortError",message:"MaskIsTooShortError: Mask is shorter than the passed string"}}const c=new Array(g);let p=0,u="";for(let s=0;s?@[]^_`{|}~".indexOf(n)>-1?c[s]=n:l(t,c,s,e)}else c[s]=" ";++p;break;default:c[s]=u}if(pg){if(i)return e.toString();throw{name:"MaskError",message:"MaskError: Number is too large for mask"}}if(m>d){p=a._round(p,d),u=a._toCharArray(p),s=u.length,h=0,m=0,c=!1;for(let e=0;eg){if(i)return e.toString();throw{name:"MaskError",message:"MaskError: Number is too large for mask"}}}let f=" ",b=" ",A=0,x=0,w=0;"*"==n.charAt(0)&&(f="*");const y=f,k=a._getSign(p)<0;let v=s>0||n.indexOf("0")>=0,E=!1,_=!1;c=!1;let C=new Array(l);for(let e=0;e0?C[x]=t:(C[x]=f,c||(w=e)),++x;break;case"-":_||" "!=b?C[x]=k?"-":f:(k&&(b="-"),C[x]=f,w=c?-1:e),++x;break;case"+":_||" "!=b?C[x]=k?"-":"+":(b=k?"-":"+",C[x]=f,w=c?-1:e),++x;break;case"$":_||" "!=b?C[x]="$":(b="$",C[x]=f,w=c?-1:e),++x;break;case"(":_||" "!=b?C[x]=k?"(":c?" ":f:(k&&(b="("),C[x]=f,w=c?-1:e),++x;break;case")":C[x]=k?")":c?" ":f,++x;break;case"C":e=l;)--w;C[w]==y&&(C[w]=b)}return C.join("")}static _shift(e,n,t){t&&(n=-n);var a=(""+e).split("e");return+(a[0]+"e"+(a[1]?+a[1]+n:n))}static _round(e,n){return a._shift(Math.round(a._shift(e,n,!1)),n,!0)}static _toCharArray(e){const n=a._getSign(e);let t=[];if(0!==n){let a=n<0?`${-1*e.toString()}`:e.toString();a.length>1&&"0"==a.charAt(0)&&(a=a.substring(1)),t=a.split("")}return t}static _getSign(e){return(e>0)-(e<0)||+e}}var r=a;n.default=r},function(e,n,t){"use strict";(function(e){var a=t(4),r=t(18),o="object"==typeof exports&&exports&&!exports.nodeType&&exports,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,l=i&&i.exports===o?a.a.Buffer:void 0,g=(l?l.isBuffer:void 0)||r.a;n.a=g}).call(this,t(14)(e))},function(e,n,t){"use strict";n.a=function(){return!1}},function(e,n,t){e.exports=t(20)},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),t(21),t(23),t(25),t(27);var a=t(29);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(n,e,{enumerable:!0,get:function(){return a[e]}})}));var r=t(30);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(n,e,{enumerable:!0,get:function(){return r[e]}})})),t(49),t(52),t(54),t(56),t(58),t(60)},function(e,n,t){(function(n){n.BBj||(n.BBj={}),e.exports=n.BBj.Masks=t(22)}).call(this,t(2))},function(e,n,t){"use strict";(function(e){var t,a,r,o;function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}"undefined"!=typeof self&&self,o=function(){return function(e){var n={};function t(a){if(n[a])return n[a].exports;var r=n[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,t),r.l=!0,r.exports}return t.m=e,t.c=n,t.d=function(e,n,a){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:a})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=5)}([function(e,n,t){n.a=function(e){if(null===e||!0===e||!1===e)return NaN;var n=Number(e);return isNaN(n)?n:n<0?Math.ceil(n):Math.floor(n)}},function(e,n,t){var a=t(6);n.a=a.a},function(e,n,t){var a=t(7);t.d(n,"e",(function(){return a.e})),t.d(n,"g",(function(){return a.g})),t.d(n,"h",(function(){return a.h})),t.d(n,"a",(function(){return a.a})),t.d(n,"b",(function(){return a.b})),t.d(n,"d",(function(){return a.d})),t.d(n,"f",(function(){return a.f})),n.c=a.c},function(e,n,t){n.a=function(e,n){var t,i,l;if(t=r.timezoneZ.exec(e))return 0;if(t=r.timezoneHH.exec(e))return o(l=parseInt(t[2],10))?(i=36e5*l,"+"===t[1]?-i:i):NaN;if(t=r.timezoneHHMM.exec(e)){l=parseInt(t[2],10);var g=parseInt(t[3],10);return o(0,g)?(i=36e5*l+6e4*g,"+"===t[1]?-i:i):NaN}if(t=r.timezoneIANA.exec(e)){var d=Object(a.a)(n,e),c=Date.UTC(d[0],d[1]-1,d[2],d[3],d[4],d[5]),p=n.getTime()-n.getTime()%1e3;return-(c-p)}return 0};var a=t(9),r={timezone:/([Z+-].*)$/,timezoneZ:/^(Z)$/,timezoneHH:/^([+-])(\d{2})$/,timezoneHHMM:/^([+-])(\d{2}):?(\d{2})$/,timezoneIANA:/(UTC|(?:[a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?))$/};function o(e,n){return null==n||!(n<0||n>59)}},function(e,n,t){var a=t(19);n.a=a.a},function(e,n,t){Object.defineProperty(n,"__esModule",{value:!0}),t.d(n,"Utils",(function(){return l}));var a=t(1),r=t(2),o=t(4),i=t(20);t.d(n,"Types",(function(){return i.a})),t.d(n,"NumberMask",(function(){return a.a})),t.d(n,"DateMask",(function(){return r.c})),t.d(n,"StringMask",(function(){return o.a}));var l={Dates:{getDayOfYear:r.e,getWeekNumber:r.g,getWeekStartByLocale:r.h,IS_DATE_REGEX:r.a,IS_TIME_REGEX:r.b,fixShortISO:r.d,getTimezoneOrOffset:r.f}};n.default=i.a},function(e,n,t){function a(e,n){for(var t=0;t2&&void 0!==arguments[2]?arguments[2]:",",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],l=t.length;if(0===l){if(i)return str;throw{name:"MaskError",message:"MaskError: Mask is empty"}}for(var g=0,d=0,c=!1,p=0;pg){if(i)return n.toString();throw{name:"MaskError",message:"MaskError: Number is too large for mask"}}if(b>d){s=e._round(s,d),m=(h=e._toCharArray(s)).length,f=0,b=0,c=!1;for(var x=0;xg){if(i)return n.toString();throw{name:"MaskError",message:"MaskError: Number is too large for mask"}}}var w=" ",y=" ",k=0,v=0,E=0;"*"==t.charAt(0)&&(w="*");var _=w,C=e._getSign(s)<0,D=m>0||t.indexOf("0")>=0,I=!1,M=!1;c=!1;for(var B=new Array(l),O=0;O0?B[v]=a:(B[v]=w,c||(E=O)),++v;break;case"-":M||" "!=y?B[v]=C?"-":w:(C&&(y="-"),B[v]=w,E=c?-1:O),++v;break;case"+":M||" "!=y?B[v]=C?"-":"+":(y=C?"-":"+",B[v]=w,E=c?-1:O),++v;break;case"$":M||" "!=y?B[v]="$":(y="$",B[v]=w,E=c?-1:O),++v;break;case"(":M||" "!=y?B[v]=C?"(":c?" ":w:(C&&(y="("),B[v]=w,E=c?-1:O),++v;break;case")":B[v]=C?")":c?" ":w,++v;break;case"C":O=l;)--E;B[E]==_&&(B[E]=y)}return B.join("")}},{key:"_shift",value:function(e,n,t){t&&(n=-n);var a=(""+e).split("e");return+(a[0]+"e"+(a[1]?+a[1]+n:n))}},{key:"_round",value:function(n,t){return e._shift(Math.round(e._shift(n,t,!1)),t,!0)}},{key:"_toCharArray",value:function(n){var t=e._getSign(n),a=[];if(0!==t){var r=t<0?"".concat(-1*n.toString()):n.toString();r.length>1&&"0"==r.charAt(0)&&(r=r.substring(1)),a=r.split("")}return a}},{key:"_getSign",value:function(e){return(e>0)-(e<0)||+e}}],(t=null)&&a(n.prototype,t),r&&a(n,r),e}();n.a=r},function(e,n,t){t.d(n,"b",(function(){return i})),t.d(n,"a",(function(){return l})),t.d(n,"h",(function(){return g})),t.d(n,"e",(function(){return d})),t.d(n,"d",(function(){return c})),t.d(n,"f",(function(){return p})),t.d(n,"g",(function(){return u}));var a=t(8),r=t(15);function o(e,n){for(var t=0;t12?"PM":"AM",pp:e.hours24>12?"pm":"am",p:e.hours24>12?"pm":"am",Jz:1==String(e.dayOfYear).length?"0"+e.dayOfYear:e.dayOfYear,Js:e.dayOfYear,Jl:e.dayOfYear,Jd:e.dayOfYear,J:e.dayOfYear,Wz:1==String(e.dayOfWeek).length?"0"+e.dayOfWeek:e.dayOfWeek,Ws:e.dayOfWeek,Wl:e.dayOfWeek,Wp:String.fromCharCode(e.dayOfWeek),Wd:e.dayOfWeek,W:e.dayOfWeek,wz:1==String(e.weekNumber).length?"0"+e.weekNumber:e.weekNumber,ws:e.weekNumber,wl:e.weekNumber,wp:String.fromCharCode(e.weekNumber),wd:e.weekNumber,w:e.weekNumber}}}],(t=null)&&o(n.prototype,t),r&&o(n,r),e}();n.c=s},function(e,n,t){n.a=function(e,n,t){var i=Object(o.a)(e,t),l=new Date(i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate(),i.getUTCHours(),i.getUTCMinutes(),i.getUTCSeconds(),i.getUTCMilliseconds()),g=Object(a.a)(n,i);return g?Object(r.a)(l,g):l};var a=t(3),r=t(10),o=t(13)},function(e,n,t){n.a=function(e,n){var t=function(e){if(!r[e]){var n=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),t="06/25/2014, 00:00:00"===n||"06/25/2014 00:00:00"===n;r[e]=t?new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return r[e]}(n);return t.formatToParts?function(e,n){for(var t=e.formatToParts(n),r=[],o=0;o=0&&(r[i]=parseInt(t[o].value,10))}return r}(t,e):function(e,n){var t=e.format(n).replace(/\u200E/g,""),a=/(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(t);return[a[3],a[1],a[2],a[4],a[5],a[6]]}(t,e)};var a={year:0,month:1,day:2,hour:3,minute:4,second:5},r={}},function(e,n,t){n.a=function(e,n){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var t=Object(a.a)(n);return Object(r.a)(e,-t)};var a=t(0),r=t(11)},function(e,n,t){n.a=function(e,n){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var t=Object(r.a)(e).getTime(),o=Object(a.a)(n);return new Date(t+o)};var a=t(0),r=t(12)},function(e,n,t){n.a=function(e){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var n=Object.prototype.toString.call(e);return e instanceof Date||"object"===i(e)&&"[object Date]"===n?new Date(e.getTime()):"number"==typeof e||"[object Number]"===n?new Date(e):("string"!=typeof e&&"[object String]"!==n||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}},function(e,n,t){n.a=function(e,n){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(null===e)return new Date(NaN);var t=n||{},l=null==t.additionalDigits?2:Object(a.a)(t.additionalDigits);if(2!==l&&1!==l&&0!==l)throw new RangeError("additionalDigits must be 0, 1 or 2");if(e instanceof Date||"object"===i(e)&&"[object Date]"===Object.prototype.toString.call(e))return new Date(e.getTime());if("number"==typeof e||"[object Number]"===Object.prototype.toString.call(e))return new Date(e);if("string"!=typeof e&&"[object String]"!==Object.prototype.toString.call(e))return new Date(NaN);var u=g(e),s=d(u.date,l),h=s.year,m=s.restDateString,f=c(m,h);if(isNaN(f))return new Date(NaN);if(f){var b,A=f.getTime(),x=0;if(u.time&&(x=p(u.time),isNaN(x)))return new Date(NaN);if(u.timezone||t.timeZone){if(b=Object(o.a)(u.timezone||t.timeZone,new Date(A+x)),isNaN(b))return new Date(NaN)}else b=Object(r.a)(new Date(A+x)),b=Object(r.a)(new Date(A+x+b));return new Date(A+x+b)}return new Date(NaN)};var a=t(0),r=t(14),o=t(3),l={dateTimeDelimeter:/[T ]/,plainTime:/:/,timeZoneDelimeter:/[Z ]/i,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timezone:/([Z+-].*| UTC|(?:[a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?))$/};function g(e){var n,t={},a=e.split(l.dateTimeDelimeter);if(l.plainTime.test(a[0])?(t.date=null,n=a[0]):(t.date=a[0],n=a[1],t.timezone=a[2],l.timeZoneDelimeter.test(t.date)&&(t.date=e.split(l.timeZoneDelimeter)[0],n=e.substr(t.date.length,e.length))),n){var r=l.timezone.exec(n);r?(t.time=n.replace(r[1],""),t.timezone=r[1]):t.time=n}return t}function d(e,n){var t,a=l.YYY[n],r=l.YYYYY[n];if(t=l.YYYY.exec(e)||r.exec(e)){var o=t[1];return{year:parseInt(o,10),restDateString:e.slice(o.length)}}if(t=l.YY.exec(e)||a.exec(e)){var i=t[1];return{year:100*parseInt(i,10),restDateString:e.slice(i.length)}}return{year:null}}function c(e,n){if(null===n)return null;var t,a,r,o;if(0===e.length)return(a=new Date(0)).setUTCFullYear(n),a;if(t=l.MM.exec(e))return a=new Date(0),f(n,r=parseInt(t[1],10)-1)?(a.setUTCFullYear(n,r),a):new Date(NaN);if(t=l.DDD.exec(e)){a=new Date(0);var i=parseInt(t[1],10);return function(e,n){if(n<1)return!1;var t=m(e);return!(t&&n>366)&&!(!t&&n>365)}(n,i)?(a.setUTCFullYear(n,0,i),a):new Date(NaN)}if(t=l.MMDD.exec(e)){a=new Date(0),r=parseInt(t[1],10)-1;var g=parseInt(t[2],10);return f(n,r,g)?(a.setUTCFullYear(n,r,g),a):new Date(NaN)}if(t=l.Www.exec(e))return b(0,o=parseInt(t[1],10)-1)?u(n,o):new Date(NaN);if(t=l.WwwD.exec(e)){o=parseInt(t[1],10)-1;var d=parseInt(t[2],10)-1;return b(0,o,d)?u(n,o,d):new Date(NaN)}return null}function p(e){var n,t,a;if(n=l.HH.exec(e))return A(t=parseFloat(n[1].replace(",",".")))?t%24*36e5:NaN;if(n=l.HHMM.exec(e))return A(t=parseInt(n[1],10),a=parseFloat(n[2].replace(",",".")))?t%24*36e5+6e4*a:NaN;if(n=l.HHMMSS.exec(e)){t=parseInt(n[1],10),a=parseInt(n[2],10);var r=parseFloat(n[3].replace(",","."));return A(t,a,r)?t%24*36e5+6e4*a+1e3*r:NaN}return null}function u(e,n,t){n=n||0,t=t||0;var a=new Date(0);a.setUTCFullYear(e,0,4);var r=7*n+t+1-(a.getUTCDay()||7);return a.setUTCDate(a.getUTCDate()+r),a}var s=[31,28,31,30,31,30,31,31,30,31,30,31],h=[31,29,31,30,31,30,31,31,30,31,30,31];function m(e){return e%400==0||e%4==0&&e%100!=0}function f(e,n,t){if(n<0||n>11)return!1;if(null!=t){if(t<1)return!1;var a=m(e);if(a&&t>h[n])return!1;if(!a&&t>s[n])return!1}return!0}function b(e,n,t){return!(n<0||n>52||null!=t&&(t<0||t>6))}function A(e,n,t){return!(null!=e&&(e<0||e>=25)||null!=n&&(n<0||n>=60)||null!=t&&(t<0||t>=60))}},function(e,n,t){n.a=function(e){var n=new Date(e.getTime()),t=Math.ceil(n.getTimezoneOffset());n.setSeconds(0,0);var a=n.getTime()%6e4;return 6e4*t+a}},function(e,n,t){t.d(n,"a",(function(){return i}));var a=t(16),r=t(17),o=t(18);function i(e){return Object(a.a)(e,r.a,o.a)}},function(e,n,t){function a(e,n){var t=n["string"==typeof e?e.toUpperCase():e];return"number"==typeof t?t:1}function r(e,n,t){if(e){var r,o=e.toLowerCase().split(/[-_]/),i=o[0];if(o[1]&&4===o[1].length?(i+="_"+o[1],r=o[2]):r=o[1],r||(r=n[i]),r)return a(r.match(/^\d+$/)?Number(r):r,t)}return 1}t.d(n,"b",(function(){return a})),t.d(n,"a",(function(){return r}))},function(e,n,t){n.a={en:"US",zh:"CN",zh_hans:"CN",hans:"CN",wuu:"CN",hsn:"CN",hak:"CN",nan:"CN",gan:"CN",hi:"IN",te:"IN",mr:"IN",ta:"IN",gu:"IN",kn:"IN",or:"IN",ml:"IN",pa_guru:"IN",bho:"IN",awa:"IN",as:"IN",mwr:"IN",mai:"IN",mag:"IN",bgc:"IN",hne:"IN",dcc:"IN",dz:"BT",tn:"BW",am:"ET",om:"ET",quc:"GT",id:"ID",jv:"ID",su:"ID",mad:"ID",ms_arab:"ID",ga:"IE",he:"IL",jam:"JM",ja:"JP",km:"KH",ko:"KR",lo:"LA",mh:"MH",my:"MM",mt:"MT",ne:"NP",fil:"PH",ceb:"PH",ilo:"PH",ur:"PK",pa:"PK",pa_arab:"PK",arab:"PK",lah:"PK",ps:"PK",sd:"PK",sd_arab:"PK",skr:"PK",gn:"PY",th:"TH",tts:"TH",aeb:"TN",zh_hant:"TW",hant:"TW",sm:"WS",zu:"ZA",sn:"ZW",arq:"DZ",ar:"EG",arz:"EG",fa:"IR",az_arab:"IR",ary:"MA",bn:"BD",rkt:"BD",dv:"MV"}},function(e,n,t){n.a={AG:0,ATG:0,28:0,AR:0,ARG:0,32:0,AS:0,ASM:0,16:0,AU:0,AUS:0,36:0,BR:0,BRA:0,76:0,BS:0,BHS:0,44:0,BT:0,BTN:0,64:0,BW:0,BWA:0,72:0,BZ:0,BLZ:0,84:0,CA:0,CAN:0,124:0,CN:0,CHN:0,156:0,CO:0,COL:0,170:0,DM:0,DMA:0,212:0,DO:0,DOM:0,214:0,ET:0,ETH:0,231:0,GT:0,GTM:0,320:0,GU:0,GUM:0,316:0,HK:0,HKG:0,344:0,HN:0,HND:0,340:0,ID:0,IDN:0,360:0,IE:0,IRL:0,372:0,IL:0,ISR:0,376:0,IN:0,IND:0,356:0,JM:0,JAM:0,388:0,JP:0,JPN:0,392:0,KE:0,KEN:0,404:0,KH:0,KHM:0,116:0,KR:0,KOR:0,410:0,LA:0,LA0:0,418:0,MH:0,MHL:0,584:0,MM:0,MMR:0,104:0,MO:0,MAC:0,446:0,MT:0,MLT:0,470:0,MX:0,MEX:0,484:0,MZ:0,MOZ:0,508:0,NI:0,NIC:0,558:0,NP:0,NPL:0,524:0,NZ:0,NZL:0,554:0,PA:0,PAN:0,591:0,PE:0,PER:0,604:0,PH:0,PHL:0,608:0,PK:0,PAK:0,586:0,PR:0,PRI:0,630:0,PY:0,PRY:0,600:0,SA:0,SAU:0,682:0,SG:0,SGP:0,702:0,SV:0,SLV:0,222:0,TH:0,THA:0,764:0,TN:0,TUN:0,788:0,TT:0,TTO:0,780:0,TW:0,TWN:0,158:0,UM:0,UMI:0,581:0,US:0,USA:0,840:0,VE:0,VEN:0,862:0,VI:0,VIR:0,850:0,WS:0,WSM:0,882:0,YE:0,YEM:0,887:0,ZA:0,ZAF:0,710:0,ZW:0,ZWE:0,716:0,AE:6,ARE:6,784:6,AF:6,AFG:6,4:6,BH:6,BHR:6,48:6,DJ:6,DJI:6,262:6,DZ:6,DZA:6,12:6,EG:6,EGY:6,818:6,IQ:6,IRQ:6,368:6,IR:6,IRN:6,364:6,JO:6,JOR:6,400:6,KW:6,KWT:6,414:6,LY:6,LBY:6,434:6,MA:6,MAR:6,504:6,OM:6,OMN:6,512:6,QA:6,QAT:6,634:6,SD:6,SDN:6,729:6,SY:6,SYR:6,760:6,BD:5,BGD:5,50:5,MV:5,MDV:5,462:5}},function(e,n,t){function a(e,n){for(var t=0;t2&&void 0!==arguments[2])||arguments[2];e=String(e);var a=(n=String(n)).length,d=e.length;if(d>a){if(t)return e;throw{name:"MaskIsTooShortError",message:"MaskIsTooShortError: Mask is shorter than the passed string"}}for(var c=new Array(a),p=0,u="",s=0;s?@[]^_`{|}~".indexOf(x)>-1?c[s]=x:g(t,c,s,e)}else c[s]=" ";++p;break;default:c[s]=u}if(p2&&void 0!==arguments[2]?arguments[2]:",",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];return a.a.mask(e,n,t,r,o,i)}},{key:"date",value:function(e,n,t,a){return r.c.mask(e,n,t,a)}},{key:"string",value:function(e,n){var t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return o.a.mask(e,n,t)}}],(t=null)&&i(n.prototype,t),l&&i(n,l),e}();n.a=l}])},"object"===i(n)&&"object"===i(e)?e.exports=o():(a=[],void 0===(r="function"==typeof(t=o)?t.apply(n,a):t)||(e.exports=r))}).call(this,t(9)(e))},function(e,n,t){(function(n){n.Basis||(n.Basis={}),e.exports=n.Basis.InputMasking=t(24)}).call(this,t(2))},function(module,exports,__webpack_require__){"use strict";(function(module){var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__,factory;function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}"undefined"!=typeof self&&self,factory=function(__WEBPACK_EXTERNAL_MODULE_0__,__WEBPACK_EXTERNAL_MODULE_7__){return function(e){var n={};function t(a){if(n[a])return n[a].exports;var r=n[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,t),r.l=!0,r.exports}return t.m=e,t.c=n,t.d=function(e,n,a){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:a})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=1)}([function(e,n){e.exports=__WEBPACK_EXTERNAL_MODULE_0__},function(e,n,t){Object.defineProperty(n,"__esModule",{value:!0});var a=t(2),r=t(5);t.d(n,"TextInput",(function(){return a.a})),t.d(n,"NumberInput",(function(){return r.a}))},function(e,n,t){var a=t(3);n.a=a.a},function(e,n,t){var a=t(0),r=t.n(a),o=t(4);function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:{};d(this,e),this.options=l({},{elements:".bbj-text-masked",doc:document,cssClassError:"bbj-mask-error",cssClassSuccess:"bbj-mask-success",onUpdate:null,onInvalid:null},{},n),this._onKeystroke=this._onKeystroke.bind(this),this._onFocus=this._onFocus.bind(this),this.refresh()}var n,t,a;return n=e,(t=[{key:"refresh",value:function(){for(var e,n,t="string"==typeof this.options.elements?this.options.doc.querySelectorAll(this.options.elements):this.options.elements,a=0;a-1;this._wrap(e,r)}else console.warn("BBjMasking: Invalid input element. The element will be ignored",e)}},{key:"destroy",value:function(){for(var e,n,t="string"==typeof this.options.elements?this.options.doc.querySelectorAll(this.options.elements):this.options.elements,a=0;a-1&&this._unwrap(e)}},{key:"_wrap",value:function(e,n){var t=e.getAttribute("id"),a=e.getAttribute("name"),r=e.dataset.mask||"",i=e.pattern,l=Object(o.b)(r),g=i||l,d=null,c=null;return n?c=(d=e.parentNode).querySelector(".textInputMask__unmaskedInput"):(d=this.options.doc.createElement("span"),c=this.options.doc.createElement("input")),e.value=Object(o.c)(e.value,r),e.pattern=g,e.classList.add("textInputMask__textInput"),e.dataset.mask=r,e.dataset.valueUnmasked=Object(o.d)(e.value,r),i&&i!==l&&(e.dataset.isCustomPattern=!0),n||(e.hasAttribute("readonly")||e.hasAttribute("disable")||(e.addEventListener("keyup",this._onKeystroke),e.addEventListener("keypress",this._onKeystroke),e.addEventListener("paste",this._onKeystroke),e.addEventListener("focusin",this._onFocus),e.addEventListener("click",this._onFocus)),e.parentNode.insertBefore(d,e)),this._validateInput(e)&&this.__fireOnUpdate(e.value,e.dataset.valueUnmasked,e),c.setAttribute("aria-hidden","true"),c.setAttribute("type","hidden"),c.classList.add("textInputMask__unmaskedInput"),c.value=e.dataset.valueUnmasked,t&&c.setAttribute("id","".concat(t,"-unmasked")),a&&c.setAttribute("name","".concat(a,"-unmasked")),n||(d.setAttribute("class","textInputMask__wrap"),d.appendChild(c),d.appendChild(e)),d}},{key:"_unwrap",value:function(e){e.removeChild(e.querySelector(".textInputMask__unmaskedInput"));var n=e.querySelector(".textInputMask__textInput");n.removeEventListener("keyup",this._onKeystroke),n.removeEventListener("keypress",this._onKeystroke),n.removeEventListener("paste",this._onKeystroke),n.removeEventListener("focusin",this._onFocus),n.removeEventListener("click",this._onFocus),delete n.dataset.valueUnmasked,n.dataset.isCustomPattern||(n.removeAttribute("pattern"),delete n.dataset.isCustomPattern),n.classList.remove(this.options.cssClassError),e.parentNode.insertBefore(n,e),e.parentNode.removeChild(e)}},{key:"_onKeystroke",value:function(e){if(!(e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)){13!==e.keyCode&&e.preventDefault();var n=e.target,t=n.dataset.mask||this.options.mask,a=e.type;n.classList.remove(this.options.cssClassError),n.classList.remove(this.options.cssClassSuccess),n.setCustomValidity("");var i,l,g=n.value,d=e.keyCode,c=e.key||e.code.replace(/[^0-9]/g,""),p=c?c.length>1?"":c:"",u=Object(o.a)(g,t),s=!1;switch(a){case"paste":i=Object(o.c)((e.clipboardData||window.clipboardData).getData("Text"),t);break;case"keyup":i=g;break;case"keypress":var h=n.selectionStart;h!==u&&(u=h),i=g.substr(0,u)+p+g.substr(u)}if(l=Object(o.d)(i,t),-1===[35,36,37,38,39,40].indexOf(d)){try{n.value=r.a.mask(l,t,!1),this._validateInput(n)&&(n.dataset.valueUnmasked=l,this.options.doc.querySelector("#".concat(n.getAttribute("id"),"-unmasked")).value=l,this.__applyCssClassState(n,"success"),this.__fireOnUpdate(n.value,n.dataset.valueUnmasked,n)),s=!1}catch(e){this.__applyCssClassState(n,"error"),this.__fireOnInvalid(e,n),s=!0}this._updateCaretPosition(n,t)}s||this._validateInput(n)}}},{key:"_onFocus",value:function(e){var n=e.target,t=n.dataset.mask||this.options.mask;this._updateCaretPosition(n,t)}},{key:"_updateCaretPosition",value:function(e,n){setTimeout((function(){var t=Object(o.a)(e.value,n);e.setSelectionRange(t,t)}),0)}},{key:"_validateInput",value:function(e){var n=e.checkValidity();return n?(this.__applyCssClassState(e,"success"),e.setCustomValidity("")):(this.__applyCssClassState(e,"error"),this.__fireOnInvalid(e.validationMessage,e)),n}},{key:"__fireOnUpdate",value:function(e,n,t){this.options.onUpdate&&this.options.onUpdate(e,n,t)}},{key:"__fireOnInvalid",value:function(e,n){this.options.onInvalid&&this.options.onInvalid(e,n)}},{key:"__applyCssClassState",value:function(e,n){e.hasAttribute("readonly")||e.hasAttribute("disabled")?(e.classList.remove(this.options.cssClassError),e.classList.remove(this.options.cssClassSuccess)):("success"===n&&(e.classList.remove(this.options.cssClassError),e.classList.add(this.options.cssClassSuccess)),"error"===n&&(e.classList.add(this.options.cssClassError),e.classList.remove(this.options.cssClassSuccess)))}}])&&c(n.prototype,t),a&&c(n,a),e}();n.a=p},function(module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,"c",(function(){return maskIfNotMasked})),__webpack_require__.d(__webpack_exports__,"d",(function(){return unmask})),__webpack_require__.d(__webpack_exports__,"a",(function(){return findCaretPosition})),__webpack_require__.d(__webpack_exports__,"b",(function(){return generatePatternFromMask}));var __WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask__),SUPPORTED_MASKS=["X","a","A","0","z","Z","U"],IS_UNICODE_PROPERTY_SUPPORTED=!1;try{eval("/\\p{L}/u"),IS_UNICODE_PROPERTY_SUPPORTED=!0}catch(e){IS_UNICODE_PROPERTY_SUPPORTED=!1}var isMaskedValue=function e(n,t){void 0===e.__CACHE__&&(e.__CACHE__={});var a="".concat(n,"-").concat(t);if(!e.__CACHE__[a]){var r=unmask(n,t);e.__CACHE__[a]=n===__WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask___default.a.mask(r,t)}return e.__CACHE__[a]},maskIfNotMasked=function e(n,t){void 0===e.__CACHE__&&(e.__CACHE__={});var a="".concat(n,"-").concat(t);if(!e.__CACHE__[a])if(isMaskedValue(n,t))e.__CACHE__[a]=n;else try{e.__CACHE__[a]=__WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask___default.a.mask(n,t,!1)}catch(n){e.__CACHE__[a]=__WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask___default.a.mask("",t)}return e.__CACHE__[a]},generatePatternFromMask=function e(n){void 0===e.__CACHE__&&(e.__CACHE__={});var t=n;if(!e.__CACHE__[t]){var a=n.split(""),r="";a.forEach((function(e){switch(e){case"X":r+="([^ -~])";break;case"a":case"A":r+=IS_UNICODE_PROPERTY_SUPPORTED?"\\p{L}":"((?:[A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢄᢇ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々〆〱-〵〻〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿯ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛥꜗ-ꜟꜢ-ꞈꞋ-ꞿꟂ-Ᶎꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭧꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf40\udf42-\udf49\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc80-\udd43]|[\ud80c\ud81c-\ud820\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872\ud874-\ud879][\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0\udfe1\udfe3]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]))";break;case"0":r+="([0-9])";break;case"z":case"Z":r+=IS_UNICODE_PROPERTY_SUPPORTED?"([0-9]|\\p{L})":"([0-9]|(?:[A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢄᢇ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々〆〱-〵〻〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿯ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛥꜗ-ꜟꜢ-ꞈꞋ-ꞿꟂ-Ᶎꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭧꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf40\udf42-\udf49\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc80-\udd43]|[\ud80c\ud81c-\ud820\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872\ud874-\ud879][\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0\udfe1\udfe3]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]))";break;case"U":r+=IS_UNICODE_PROPERTY_SUPPORTED?"(([0-9])|(\\s)|([.,/#!$%^&*;:{}=-_`~()])|(\\p{L}))":"(([0-9])|(\\s)|([.,/#!$%^&*;:{}=-_`~()])|(?:[A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢄᢇ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々〆〱-〵〻〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿯ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛥꜗ-ꜟꜢ-ꞈꞋ-ꞿꟂ-Ᶎꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭧꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf40\udf42-\udf49\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc80-\udd43]|[\ud80c\ud81c-\ud820\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872\ud874-\ud879][\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0\udfe1\udfe3]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]))";break;default:r+=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}})),e.__CACHE__[t]=r}return e.__CACHE__[t]},unmask=function e(n,t){void 0===e.__CACHE__&&(e.__CACHE__={});var a="".concat(n,"-").concat(t);if(!e.__CACHE__[a]){for(var r=t.split(""),o=n.split(""),i="",l=0;l-1){if(!new RegExp(generatePatternFromMask(d),IS_UNICODE_PROPERTY_SUPPORTED?"u":"").test(g))break;i+=g}}e.__CACHE__[a]=i.toLocaleLowerCase()}return e.__CACHE__[a]},findCaretPosition=function e(n,t){void 0===e.__CACHE__&&(e.__CACHE__={});var a="".concat(n,"-").concat(t);if(!e.__CACHE__[a]){var r=t.split(""),o=n.split("");o.length-1&&!new RegExp(generatePatternFromMask(g),IS_UNICODE_PROPERTY_SUPPORTED?"u":"").test(o[l])){i=l;break}}e.__CACHE__[a]=i<0?o.length:i}return e.__CACHE__[a]}},function(e,n,t){var a=t(6);n.a=a.a},function(e,n,t){var a=t(7),r=t.n(a);function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:{};g(this,e),this.options=i({},{elements:".bbj-number-masked",doc:document,cssClassError:"bbj-mask-error",cssClassSuccess:"bbj-mask-success",onUpdate:null,onInvalid:null},{},n),this._actualInputHandler=this._actualInputHandler.bind(this),this._unmaskedInputHandler=this._unmaskedInputHandler.bind(this),this.refresh()}var n,t,a;return n=e,(t=[{key:"refresh",value:function(){for(var e,n,t="string"==typeof this.options.elements?this.options.doc.querySelectorAll(this.options.elements):this.options.elements,a=0;a-1;this._wrap(e,r)}else console.warn("BBjMasking: Invalid input element. The element will be ignored",e)}},{key:"destroy",value:function(){for(var e,n,t="string"==typeof this.options.elements?this.options.doc.querySelectorAll(this.options.elements):this.options.elements,a=0;a-1&&this._unwrap(e)}},{key:"_wrap",value:function(e,n){var t=e.getAttribute("id"),a=e.getAttribute("name"),o=e.dataset.step||null,i=e.dataset.max||null,l=e.dataset.min||null,g=e.dataset.groupingSeparator||",",d=e.dataset.decimalSeparator||".",p=e.dataset.forceTrailingZeros||null,u=e.dataset.mask||"",s=e.getAttribute("class"),h=e.getAttribute("required")||null,m=null,f=null;if(n?f=(m=e.parentNode).querySelector(".numberInputMask__unmaskedInput"):(m=this.options.doc.createElement("span"),f=this.options.doc.createElement("input")),n||(e.parentNode.insertBefore(m,e),e.hasAttribute("readonly")||e.hasAttribute("disabled")||(e.addEventListener("click",this._actualInputHandler),e.addEventListener("focusin",this._actualInputHandler))),e.dataset.valueUnmasked=e.value||0,e.dataset.groupingSeparator=g,e.dataset.decimalSeparator=d,e.dataset.forceTrailingZeros=p,e.value=r.a.mask(e.dataset.valueUnmasked,u,g,d,p).trim(),e.classList.add("numberInputMask__textInput",this.options.cssClassSuccess),f.value=e.dataset.valueUnmasked,f.setAttribute("aria-hidden","true"),f.setAttribute("type","hidden"),f.setAttribute("class",s),t&&f.setAttribute("id","".concat(t,"-unmasked")),a&&f.setAttribute("name","".concat(a,"-unmasked")),h&&f.setAttribute("required","required"),o)f.setAttribute("step",o);else{var b=c(f.value),A="1";b>0&&(A=".".concat(Array(b).join("0"),"1")),f.setAttribute("step",A)}return l&&f.setAttribute("min",l),i&&f.setAttribute("max",i),f.dataset.inputId=t,f.dataset.mask=u,f.dataset.groupingSeparator=g,f.dataset.decimalSeparator=d,p&&(f.dataset.forceTrailingZeros=p),n||(f.classList.add("numberInputMask__unmaskedInput"),f.addEventListener("keydown",this._unmaskedInputHandler),f.addEventListener("keyup",this._unmaskedInputHandler),f.addEventListener("focusout",this._unmaskedInputHandler),m.setAttribute("class","numberInputMask__wrap"),m.appendChild(f),m.appendChild(e)),isNaN(Number(e.dataset.valueUnmasked))?e.classList.add(this.options.cssClassError):this._validateInput(f,e)&&this.__fireOnUpdate(e.value,e.dataset.valueUnmasked,e),m}},{key:"_unwrap",value:function(e){var n=e.querySelector(".numberInputMask__textInput"),t=n.id,a=e.querySelector("#".concat(t,"-unmasked"));a.removeEventListener("keyup",this._unmaskedInputHandler),a.removeEventListener("keypress",this._unmaskedInputHandler),a.removeEventListener("focusout",this._unmaskedInputHandler),e.removeChild(a),n.removeEventListener("click",this._actualInputHandler),n.removeEventListener("focusin",this._actualInputHandler),n.classList.remove("numberInputMask__textInput"),n.classList.remove(this.options.cssClassError),n.classList.remove(this.options.cssClassSuccess),delete n.dataset.valueUnmasked,e.parentNode.insertBefore(n,e),e.parentNode.removeChild(e)}},{key:"_actualInputHandler",value:function(e){var n=e.target,t=n.id,a=this.options.doc.querySelector("#".concat(t,"-unmasked"));n.setAttribute("aria-hidden","true"),n.setAttribute("type","hidden"),a.removeAttribute("aria-hidden"),a.setAttribute("type","number"),this._validateInput(a,n),setTimeout((function(){a.focus();var e=String(a.value).length;a.type="text",a.setSelectionRange(e,e),a.type="number"}),0)}},{key:"_unmaskedInputHandler",value:function(e){var n,t=e.target,a=e.keyCode,o=t.dataset.mask,i=t.dataset.groupingSeparator,l=t.dataset.decimalSeparator,g=t.dataset.forceTrailingZeros,d=t.dataset.inputId,c=this.options.doc.querySelector("#".concat(d)),p=!1,u=this._validateInput(t,c);try{p=r.a.mask(t.value||0,o,i,l,g,!1).trim()}catch(e){p=!1,this.__applyCssClassState(t,c,"error"),this.__fireOnInvalid(e,c)}n=p&&u,([13,27].indexOf(a)>-1||"focusout"===e.type)&&(t.classList.remove(this.options.cssClassError),t.classList.remove(this.options.cssClassSuccess),t.setAttribute("aria-hidden","true"),t.setAttribute("type","hidden"),c.removeAttribute("aria-hidden"),c.setAttribute("type","text"),c.classList.add(this.options.cssClassSuccess),n?(c.value=p,c.dataset.valueUnmasked=t.value,this.__fireOnUpdate(p,t.value,c)):(t.value=c.dataset.valueUnmasked,this.__applyCssClassState(t,c,"success")))}},{key:"_validateInput",value:function(e,n){var t=!0,a=Number(e.value);if("hidden"!==e.getAttribute("type")||isNaN(a))t=e.checkValidity();else{var r=e.getAttribute("max"),o=e.getAttribute("min"),i=e.getAttribute("step");o&&(t=t&&a>=Number(o)),r&&(t=t&&a<=Number(r)),i&&(t=t&&c(i)===c(e.value))}return t?this.__applyCssClassState(e,n,"success"):(this.__applyCssClassState(e,n,"error"),this.__fireOnInvalid(e.validationMessage||"Validity check fails",n)),t}},{key:"__fireOnUpdate",value:function(e,n,t){this.options.onUpdate&&this.options.onUpdate(e,n,t)}},{key:"__fireOnInvalid",value:function(e,n){this.options.onInvalid&&this.options.onInvalid(e,n)}},{key:"__applyCssClassState",value:function(e,n,t){n.hasAttribute("readonly")||n.hasAttribute("disabled")?(n.classList.remove(this.options.cssClassError),n.classList.remove(this.options.cssClassSuccess),e.classList.remove(this.options.cssClassError),e.classList.remove(this.options.cssClassSuccess)):("success"===t&&(n.classList.remove(this.options.cssClassError),n.classList.add(this.options.cssClassSuccess),e.classList.remove(this.options.cssClassError),e.classList.add(this.options.cssClassSuccess)),"error"===t&&(n.classList.add(this.options.cssClassError),n.classList.remove(this.options.cssClassSuccess),e.classList.add(this.options.cssClassError),e.classList.remove(this.options.cssClassSuccess)))}}])&&d(n.prototype,t),a&&d(n,a),e}();n.a=p},function(e,n){e.exports=__WEBPACK_EXTERNAL_MODULE_7__}])},"object"===_typeof(exports)&&"object"===_typeof(module)?module.exports=factory(__webpack_require__(15),__webpack_require__(16)):(__WEBPACK_AMD_DEFINE_ARRAY__=[__webpack_require__(15),__webpack_require__(16)],void 0===(__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof(__WEBPACK_AMD_DEFINE_FACTORY__=factory)?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__)||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}).call(this,__webpack_require__(9)(module))},function(e,n,t){(function(n){e.exports=n.flatpickr=t(26)}).call(this,t(2))},function(e,n,t){
+(function(e, a) { for(var i in a) e[i] = a[i]; }(window, /******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // create a fake namespace object
+/******/ // mode & 1: value is a module id, require it
+/******/ // mode & 2: merge all properties of value into the ns
+/******/ // mode & 4: return value when already ns object
+/******/ // mode & 8|1: behave like require
+/******/ __webpack_require__.t = function(value, mode) {
+/******/ if(mode & 1) value = __webpack_require__(value);
+/******/ if(mode & 8) return value;
+/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ var ns = Object.create(null);
+/******/ __webpack_require__.r(ns);
+/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ return ns;
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = 0);
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "../../basis-input-masking/node_modules/bbj-masks/src/NumberMask/NumberMask.js":
+/*!*********************************************************************************************!*\
+ !*** /mnt/d/Github/basis-input-masking/node_modules/bbj-masks/src/NumberMask/NumberMask.js ***!
+ \*********************************************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/*
+ * This file is part of bbj-masks lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * NumberMask
+ *
+ * A javascript implementation for BBj numbers masking
+ *
+ * @author Hyyan Abo Fakher
+ */
+class NumberMask {
+ /**
+ * Mask the given number with the given mask according to BBj rules
+ *
+ * @param {Number} number the number to format
+ * @param {String} mask the mask to use for formatting
+ * @param {String} [groupingSeparator=,] - a char which will be used as a grouping separator
+ * @param {String} [decimalSeparator=.] - a char which will be used as a decimal separator
+ * @param {Boolean} [forceTrailingZeros=false] - Affects the output by switching the way a mask with "#" characters in the trailing positions is filled.
+ * for example, the function `NumberMask.mask(.10:"#.##")` returns ` .10` instead of ` .1 `
+ * @param {Boolean} [loose=true] when true , errors will be ignored and the method will try at apply the mask
+ * anyway , otherwise it will stop at first error and throw it.
+ *
+ * @throws {MaskError} only if loose is disabled
+ *
+ * @returns {String} the masked number
+ */
+ static mask(
+ number,
+ mask,
+ groupingSeparator = ',',
+ decimalSeparator = '.',
+ forceTrailingZeros = false,
+ loose = true
+ ) {
+ const maskLen = mask.length
+ if (0 === maskLen) {
+ if (loose) return str
+ // friendly silent fail
+ else
+ throw {
+ name: 'MaskError',
+ message: `MaskError: Mask is empty`
+ }
+ }
+
+ // Get magnitude and precision of MASK
+ let maskBeforeDecimal = 0
+ let maskAfterDecimal = 0
+ let foundDecimal = false
+ for (let i = 0; i < maskLen; ++i) {
+ const m = mask.charAt(i)
+ if (m == '0' || m == '#') {
+ if (foundDecimal) ++maskAfterDecimal
+ else ++maskBeforeDecimal
+ } else if (m == '.') foundDecimal = true
+ }
+
+ let num = NumberMask._round(number, maskAfterDecimal)
+ let bytes = NumberMask._toCharArray(num)
+
+ // Get magnitude and precision of NUMBER
+ let inLen = bytes.length
+ let numBeforeDecimal = 0
+ let numAfterDecimal = 0
+ foundDecimal = false
+ for (let i = 0; i < inLen; ++i) {
+ if (bytes[i] == '.') foundDecimal = true
+ else {
+ if (foundDecimal) ++numAfterDecimal
+ else ++numBeforeDecimal
+ }
+ }
+
+ // always ignore mask overflow
+ if (numBeforeDecimal > maskBeforeDecimal) {
+ if (loose) return number.toString()
+ // friendly silent fail
+ else
+ throw {
+ name: 'MaskError',
+ message: `MaskError: Number is too large for mask`
+ }
+ }
+
+ // round if mask is for a lower precision number
+ if (numAfterDecimal > maskAfterDecimal) {
+ num = NumberMask._round(num, maskAfterDecimal)
+ bytes = NumberMask._toCharArray(num)
+ inLen = bytes.length
+
+ // Get new magnitude and precision of NUMBER
+ numBeforeDecimal = 0
+ numAfterDecimal = 0
+ foundDecimal = false
+ for (let i = 0; i < inLen; ++i) {
+ if (bytes[i] == '.') foundDecimal = true
+ else {
+ if (foundDecimal) ++numAfterDecimal
+ else ++numBeforeDecimal
+ }
+ }
+
+ // always ignore mask overflow
+ if (numBeforeDecimal > maskBeforeDecimal) {
+ if (loose) return number.toString()
+ // friendly silent fail
+ else
+ throw {
+ name: 'MaskError',
+ message: `MaskError: Number is too large for mask`
+ }
+ }
+ }
+
+ let fillByte = ' ',
+ floatByte = ' '
+ let inPos = 0,
+ outPos = 0,
+ floatPos = 0
+ if (mask.charAt(0) == '*') fillByte = '*'
+
+ const fillInit = fillByte
+ const isNegative = NumberMask._getSign(num) < 0
+ let emitDecimal = inLen > 0 || mask.indexOf('0') >= 0
+ let foundZero = false
+ let foundDigit = false
+ let currency = false
+ foundDecimal = false
+
+ let ret = new Array(maskLen)
+
+ for (let maskPos = 0; maskPos < maskLen; ++maskPos) {
+ let m = mask.charAt(maskPos)
+ switch (m) {
+ case '0':
+ --maskBeforeDecimal
+ if (maskBeforeDecimal < numBeforeDecimal && inPos < inLen) {
+ ret[outPos] = bytes[inPos]
+ ++inPos
+ foundDigit = true
+ } else {
+ ret[outPos] = '0'
+ foundZero = true
+ }
+ ++outPos
+ break
+
+ case '#':
+ --maskBeforeDecimal
+ if (maskBeforeDecimal < numBeforeDecimal && inPos < inLen) {
+ ret[outPos] = bytes[inPos]
+ ++inPos
+ foundDigit = true
+ } else {
+ ret[outPos] =
+ foundDecimal &&
+ forceTrailingZeros &&
+ NumberMask._getSign(num) != 0
+ ? '0'
+ : fillByte
+ if (!foundDecimal) floatPos = maskPos
+ }
+ ++outPos
+ break
+
+ case ',':
+ if (foundZero || inPos > 0) ret[outPos] = groupingSeparator
+ else {
+ ret[outPos] = fillByte
+ if (!foundDecimal) floatPos = maskPos
+ }
+ ++outPos
+ break
+
+ case '-':
+ if (!foundDigit && floatByte == ' ') {
+ if (isNegative) floatByte = '-'
+ ret[outPos] = fillByte
+ floatPos = foundDecimal ? -1 : maskPos
+ } else ret[outPos] = isNegative ? '-' : fillByte
+ ++outPos
+ break
+
+ case '+':
+ if (!foundDigit && floatByte == ' ') {
+ floatByte = isNegative ? '-' : '+'
+ ret[outPos] = fillByte
+ floatPos = foundDecimal ? -1 : maskPos
+ } else ret[outPos] = isNegative ? '-' : '+'
+ ++outPos
+ break
+
+ case '$':
+ if (!foundDigit && floatByte == ' ') {
+ floatByte = '$'
+ ret[outPos] = fillByte
+ floatPos = foundDecimal ? -1 : maskPos
+ } else {
+ ret[outPos] = '$'
+ }
+ ++outPos
+ break
+
+ // case '&':
+ // currency = true
+ // if (!foundDigit && floatByte == ' ') {
+ // floatByte = '&'
+ // ret[outPos] = fillByte
+ // floatPos = foundDecimal ? -1 : maskPos
+ // } else {
+ // ret[outPos] = '&'
+ // }
+ // ++outPos
+ // break
+
+ // case '@':
+ // currency = true
+ // if (!foundDigit && floatByte == ' ') {
+ // floatByte = '@'
+ // ret[outPos] = fillByte
+ // floatPos = foundDecimal ? -1 : maskPos
+ // } else {
+ // ret[outPos] = '@'
+ // }
+ // ++outPos
+ // break
+
+ case '(':
+ if (!foundDigit && floatByte == ' ') {
+ if (isNegative) floatByte = '('
+ ret[outPos] = fillByte
+ floatPos = foundDecimal ? -1 : maskPos
+ } else {
+ if (isNegative) {
+ ret[outPos] = '('
+ } else {
+ ret[outPos] = foundDecimal ? ' ' : fillByte
+ }
+ }
+ ++outPos
+ break
+
+ case ')':
+ if (isNegative) {
+ ret[outPos] = ')'
+ } else {
+ ret[outPos] = foundDecimal ? ' ' : fillByte
+ }
+ ++outPos
+ break
+
+ case 'C':
+ if (maskPos < maskLen - 1 && mask.charAt(maskPos + 1) == 'R') {
+ if (isNegative) {
+ ret[outPos] = 'C'
+ ret[outPos + 1] = 'R'
+ } else {
+ ret[outPos] = ' '
+ ret[outPos + 1] = ' '
+ }
+ outPos += 2
+ ++maskPos
+ } else {
+ ret[outPos] = 'C'
+ ++outPos
+ }
+ break
+ case 'D':
+ if (maskPos < maskLen - 1 && mask.charAt(maskPos + 1) == 'R') {
+ if (isNegative) {
+ ret[outPos] = 'C'
+ ret[outPos + 1] = 'R'
+ } else {
+ ret[outPos] = 'D'
+ ret[outPos + 1] = 'R'
+ }
+ outPos += 2
+ ++maskPos
+ } else {
+ ret[outPos] = 'D'
+ ++outPos
+ }
+ break
+
+ case '*':
+ ret[outPos] = '*'
+ ++outPos
+ break
+
+ case '.':
+ ret[outPos] = emitDecimal ? decimalSeparator : fillByte
+ fillByte = ' '
+ foundDecimal = true
+ ++inPos
+ ++outPos
+ break
+
+ case 'B':
+ ret[outPos] = ' '
+ ++outPos
+ break
+
+ default:
+ ret[outPos] = m
+ ++outPos
+ break
+ }
+ }
+
+ if (floatByte != ' ') {
+ if (floatPos < 0) floatPos = outPos
+ while (floatPos >= maskLen) --floatPos
+ if (ret[floatPos] == fillInit) ret[floatPos] = floatByte
+ }
+
+ return ret.join('')
+ }
+
+ static _shift(number, precision, reverseShift) {
+ if (reverseShift) precision = -precision
+ var numArray = ('' + number).split('e')
+ return +(
+ numArray[0] +
+ 'e' +
+ (numArray[1] ? +numArray[1] + precision : precision)
+ )
+ }
+
+ static _round(number, precision) {
+ return NumberMask._shift(
+ Math.round(NumberMask._shift(number, precision, false)),
+ precision,
+ true
+ )
+ }
+
+ static _toCharArray(number) {
+ const signum = NumberMask._getSign(number)
+ let chars = []
+
+ if (signum !== 0) {
+ let string = signum < 0 ? `${-1 * number.toString()}` : number.toString()
+
+ if (string.length > 1 && string.charAt(0) == '0')
+ string = string.substring(1)
+
+ // The string contains only [0-9] and '.'
+ chars = string.split('')
+ }
+
+ return chars
+ }
+
+ /**
+ * Returns the sign of a number
+ *
+ * @param {Number} x number
+ * @returns {Number} A number representing the sign of the given argument.
+ * If the argument is a positive number, negative number, positive zero
+ * or negative zero, the function will return 1, -1, 0 or -0 respectively.
+ * Otherwise, NaN is returned.
+ */
+ static _getSign(x) {
+ return (x > 0) - (x < 0) || +x
+ }
+}
+
+/* harmony default export */ __webpack_exports__["default"] = (NumberMask);
+
+
+/***/ }),
+
+/***/ "../../basis-input-masking/node_modules/bbj-masks/src/NumberMask/index.js":
+/*!****************************************************************************************!*\
+ !*** /mnt/d/Github/basis-input-masking/node_modules/bbj-masks/src/NumberMask/index.js ***!
+ \****************************************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _NumberMask__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NumberMask */ "../../basis-input-masking/node_modules/bbj-masks/src/NumberMask/NumberMask.js");
+/*
+ * This file is part of bbj-masks lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+
+
+/* harmony default export */ __webpack_exports__["default"] = (_NumberMask__WEBPACK_IMPORTED_MODULE_0__["default"]);
+
+
+/***/ }),
+
+/***/ "../../basis-input-masking/node_modules/bbj-masks/src/StringMask/StringMask.js":
+/*!*********************************************************************************************!*\
+ !*** /mnt/d/Github/basis-input-masking/node_modules/bbj-masks/src/StringMask/StringMask.js ***!
+ \*********************************************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/*
+ * This file is part of bbj-masks lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+const isNumberRegex = /^\d+$/
+const isWhitespaceRegex = /\s/
+const punctuationList = '!"#$%&\'()*+,-./:;<=>?@[]^_`{|}~'
+
+/**
+ * Check if the given string is in lower case
+ *
+ * @param {String} str
+ */
+const isLowerCase = str => {
+ return str == str.toLowerCase() && str != str.toUpperCase()
+}
+
+/**
+ * Check if the given string is in upper case
+ *
+ * @param {String} str
+ */
+const isUpperCase = str => {
+ return str == str.toUpperCase() && str != str.toLowerCase()
+}
+
+const passOrThrowError = (loose, ret, i, str) => {
+ if (!loose) {
+ const char = str.charAt(i)
+ const pos = i + 1
+ throw {
+ name: 'StringMaskError',
+ message: `StringMaskError: error applying mask at position "${pos}" , char "${char}"`,
+ pos,
+ char
+ }
+ } else ret[i] = ' '
+}
+
+/**
+ * NumberMask
+ *
+ * A javascript implementation for BBj numbers masking
+ *
+ * @author Hyyan Abo Fakher
+ */
+class StringMask {
+ /**
+ * Mask the given string with the given mask according to BBj rules
+ *
+ * @param {String} str the string to mask
+ * @param {String} mask the mask to use for formatting
+ * @param {Boolean} [loose=true] when true , errors will be ignored and the method will try at apply the mask
+ * anyway , otherwise it will stop at first error and throw it.
+ *
+ * @throws {MaskIsTooShortError}
+ * @throws {StringMaskError}
+ * @throws {MaskError}
+ *
+ * @returns {String} the masked string
+ */
+ static mask(str, mask, loose = true) {
+ str = String(str)
+ mask = String(mask)
+ const maskLen = mask.length
+ const strLen = str.length
+
+ if (strLen > maskLen) {
+ if (loose) return str
+ // friendly silent fail
+ else
+ throw {
+ name: 'MaskIsTooShortError',
+ message: `MaskIsTooShortError: Mask is shorter than the passed string`
+ }
+ }
+
+ const ret = new Array(maskLen)
+ let pos = 0 // to keep track of the current position in the str
+ let maskByte = ''
+
+ for (let i = 0; i < maskLen; i++) {
+ maskByte = mask.charAt(i)
+ switch (maskByte) {
+ case 'X': // match any character
+ ret[i] = pos < strLen ? str.charAt(pos) : ' '
+ ++pos
+ break
+
+ case 'A': // match letter; force upper case
+ if (pos < strLen) {
+ const byte = str.charAt(pos)
+ if (isUpperCase(byte)) ret[i] = byte
+ else if (isLowerCase(byte)) ret[i] = byte.toUpperCase()
+ else passOrThrowError(loose, ret, i, str)
+ } else ret[i] = ' '
+ ++pos
+ break
+
+ case 'a': // match letter
+ if (pos < strLen) {
+ const byte = str.charAt(pos)
+ if (isUpperCase(byte) || isLowerCase(byte)) ret[i] = byte
+ else passOrThrowError(loose, ret, i, str)
+ } else ret[i] = ' '
+ ++pos
+ break
+ case '0': // match digit
+ if (pos < strLen) {
+ const byte = str.charAt(pos)
+ if (isNumberRegex.test(byte)) ret[i] = byte
+ else passOrThrowError(loose, ret, i, str)
+ } else ret[i] = ' '
+ ++pos
+ break
+ case 'Z': // match letter or digit; force upper case
+ if (pos < strLen) {
+ const byte = str.charAt(pos)
+ if (isUpperCase(byte) || isNumberRegex.test(byte)) ret[i] = byte
+ else if (isLowerCase(byte)) ret[i] = byte.toUpperCase()
+ else passOrThrowError(loose, ret, i, str)
+ } else ret[i] = ' '
+ ++pos
+ break
+ case 'z': // match letter or digit
+ if (pos < strLen) {
+ const byte = str.charAt(pos)
+ if (
+ isUpperCase(byte) ||
+ isLowerCase(byte) ||
+ isNumberRegex.test(byte)
+ )
+ ret[i] = byte
+ else passOrThrowError(loose, ret, i, str)
+ } else ret[i] = ' '
+ ++pos
+ break
+
+ break
+ case 'U': // match letter (force upper case), digit, whitespace or punctuation.
+ if (pos < strLen) {
+ const byte = str.charAt(pos)
+ if (isLowerCase(byte)) ret[i] = byte.toUpperCase()
+ else if (
+ isUpperCase(byte) ||
+ isNumberRegex.test(byte) ||
+ isWhitespaceRegex.test(byte) ||
+ punctuationList.indexOf(byte) > -1
+ )
+ ret[i] = byte
+ else passOrThrowError(loose, ret, i, str)
+ } else ret[i] = ' '
+ ++pos
+ break
+ default:
+ ret[i] = maskByte
+ break
+ }
+ }
+
+ if (pos < strLen) {
+ if (!loose) {
+ throw { name: 'MaskError', message: 'Mask cannot be applied' }
+ }
+ }
+
+ return ret.join('')
+ }
+}
+
+/* harmony default export */ __webpack_exports__["default"] = (StringMask);
+
+
+/***/ }),
+
+/***/ "../../basis-input-masking/node_modules/bbj-masks/src/StringMask/index.js":
+/*!****************************************************************************************!*\
+ !*** /mnt/d/Github/basis-input-masking/node_modules/bbj-masks/src/StringMask/index.js ***!
+ \****************************************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _StringMask__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./StringMask */ "../../basis-input-masking/node_modules/bbj-masks/src/StringMask/StringMask.js");
+/*
+ * This file is part of bbj-masks lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+
+
+/* harmony default export */ __webpack_exports__["default"] = (_StringMask__WEBPACK_IMPORTED_MODULE_0__["default"]);
+
+
+/***/ }),
+
+/***/ "./node_modules/ag-grid-community/dist/styles/ag-grid.css":
+/*!****************************************************************!*\
+ !*** ./node_modules/ag-grid-community/dist/styles/ag-grid.css ***!
+ \****************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+
+var content = __webpack_require__(/*! !../../../postcss-loader/src!../../../postcss-loader/src!./ag-grid.css */ "./node_modules/postcss-loader/src/index.js!./node_modules/postcss-loader/src/index.js!./node_modules/ag-grid-community/dist/styles/ag-grid.css");
+
+if(typeof content === 'string') content = [[module.i, content, '']];
+
+var transform;
+var insertInto;
+
+
+
+var options = {"hmr":true}
+
+options.transform = transform
+options.insertInto = function() {
+ return window.parent.document.head
+ };
+
+var update = __webpack_require__(/*! ../../../style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);
+
+if(content.locals) module.exports = content.locals;
+
+if(false) {}
+
+/***/ }),
+
+/***/ "./node_modules/ag-grid-community/dist/styles/ag-theme-balham-dark.css":
+/*!*****************************************************************************!*\
+ !*** ./node_modules/ag-grid-community/dist/styles/ag-theme-balham-dark.css ***!
+ \*****************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+
+var content = __webpack_require__(/*! !../../../postcss-loader/src!../../../postcss-loader/src!./ag-theme-balham-dark.css */ "./node_modules/postcss-loader/src/index.js!./node_modules/postcss-loader/src/index.js!./node_modules/ag-grid-community/dist/styles/ag-theme-balham-dark.css");
+
+if(typeof content === 'string') content = [[module.i, content, '']];
+
+var transform;
+var insertInto;
+
+
+
+var options = {"hmr":true}
+
+options.transform = transform
+options.insertInto = function() {
+ return window.parent.document.head
+ };
+
+var update = __webpack_require__(/*! ../../../style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);
+
+if(content.locals) module.exports = content.locals;
+
+if(false) {}
+
+/***/ }),
+
+/***/ "./node_modules/ag-grid-community/dist/styles/ag-theme-balham.css":
+/*!************************************************************************!*\
+ !*** ./node_modules/ag-grid-community/dist/styles/ag-theme-balham.css ***!
+ \************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+
+var content = __webpack_require__(/*! !../../../postcss-loader/src!../../../postcss-loader/src!./ag-theme-balham.css */ "./node_modules/postcss-loader/src/index.js!./node_modules/postcss-loader/src/index.js!./node_modules/ag-grid-community/dist/styles/ag-theme-balham.css");
+
+if(typeof content === 'string') content = [[module.i, content, '']];
+
+var transform;
+var insertInto;
+
+
+
+var options = {"hmr":true}
+
+options.transform = transform
+options.insertInto = function() {
+ return window.parent.document.head
+ };
+
+var update = __webpack_require__(/*! ../../../style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);
+
+if(content.locals) module.exports = content.locals;
+
+if(false) {}
+
+/***/ }),
+
+/***/ "./node_modules/ag-grid-community/dist/styles/ag-theme-material.css":
+/*!**************************************************************************!*\
+ !*** ./node_modules/ag-grid-community/dist/styles/ag-theme-material.css ***!
+ \**************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+
+var content = __webpack_require__(/*! !../../../postcss-loader/src!../../../postcss-loader/src!./ag-theme-material.css */ "./node_modules/postcss-loader/src/index.js!./node_modules/postcss-loader/src/index.js!./node_modules/ag-grid-community/dist/styles/ag-theme-material.css");
+
+if(typeof content === 'string') content = [[module.i, content, '']];
+
+var transform;
+var insertInto;
+
+
+
+var options = {"hmr":true}
+
+options.transform = transform
+options.insertInto = function() {
+ return window.parent.document.head
+ };
+
+var update = __webpack_require__(/*! ../../../style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);
+
+if(content.locals) module.exports = content.locals;
+
+if(false) {}
+
+/***/ }),
+
+/***/ "./node_modules/babel-loader/lib/index.js?!../../basis-input-masking/dist/basis-input-masking.js":
+/*!*************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib??ref--4!/mnt/d/Github/basis-input-masking/dist/basis-input-masking.js ***!
+ \*************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
+
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+(function webpackUniversalModuleDefinition(root, factory) {
+ if (( false ? undefined : _typeof(exports)) === 'object' && ( false ? undefined : _typeof(module)) === 'object') module.exports = factory(__webpack_require__(/*! bbj-masks/src/StringMask */ "../../basis-input-masking/node_modules/bbj-masks/src/StringMask/index.js"), __webpack_require__(/*! bbj-masks/src/NumberMask */ "../../basis-input-masking/node_modules/bbj-masks/src/NumberMask/index.js"));else if (true) !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! bbj-masks/src/StringMask */ "../../basis-input-masking/node_modules/bbj-masks/src/StringMask/index.js"), __webpack_require__(/*! bbj-masks/src/NumberMask */ "../../basis-input-masking/node_modules/bbj-masks/src/NumberMask/index.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
+ (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else {}
+})(typeof self !== 'undefined' ? self : void 0, function (__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_7__) {
+ return (
+ /******/
+ function (modules) {
+ // webpackBootstrap
+
+ /******/
+ // The module cache
+
+ /******/
+ var installedModules = {};
+ /******/
+
+ /******/
+ // The require function
+
+ /******/
+
+ function __webpack_require__(moduleId) {
+ /******/
+
+ /******/
+ // Check if module is in cache
+
+ /******/
+ if (installedModules[moduleId]) {
+ /******/
+ return installedModules[moduleId].exports;
+ /******/
+ }
+ /******/
+ // Create a new module (and put it into the cache)
+
+ /******/
+
+
+ var module = installedModules[moduleId] = {
+ /******/
+ i: moduleId,
+
+ /******/
+ l: false,
+
+ /******/
+ exports: {}
+ /******/
+
+ };
+ /******/
+
+ /******/
+ // Execute the module function
+
+ /******/
+
+ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+ /******/
+
+ /******/
+ // Flag the module as loaded
+
+ /******/
+
+ module.l = true;
+ /******/
+
+ /******/
+ // Return the exports of the module
+
+ /******/
+
+ return module.exports;
+ /******/
+ }
+ /******/
+
+ /******/
+
+ /******/
+ // expose the modules object (__webpack_modules__)
+
+ /******/
+
+
+ __webpack_require__.m = modules;
+ /******/
+
+ /******/
+ // expose the module cache
+
+ /******/
+
+ __webpack_require__.c = installedModules;
+ /******/
+
+ /******/
+ // define getter function for harmony exports
+
+ /******/
+
+ __webpack_require__.d = function (exports, name, getter) {
+ /******/
+ if (!__webpack_require__.o(exports, name)) {
+ /******/
+ Object.defineProperty(exports, name, {
+ /******/
+ configurable: false,
+
+ /******/
+ enumerable: true,
+
+ /******/
+ get: getter
+ /******/
+
+ });
+ /******/
+ }
+ /******/
+
+ };
+ /******/
+
+ /******/
+ // getDefaultExport function for compatibility with non-harmony modules
+
+ /******/
+
+
+ __webpack_require__.n = function (module) {
+ /******/
+ var getter = module && module.__esModule ?
+ /******/
+ function getDefault() {
+ return module['default'];
+ } :
+ /******/
+ function getModuleExports() {
+ return module;
+ };
+ /******/
+
+ __webpack_require__.d(getter, 'a', getter);
+ /******/
+
+
+ return getter;
+ /******/
+ };
+ /******/
+
+ /******/
+ // Object.prototype.hasOwnProperty.call
+
+ /******/
+
+
+ __webpack_require__.o = function (object, property) {
+ return Object.prototype.hasOwnProperty.call(object, property);
+ };
+ /******/
+
+ /******/
+ // __webpack_public_path__
+
+ /******/
+
+
+ __webpack_require__.p = "";
+ /******/
+
+ /******/
+ // Load entry module and return exports
+
+ /******/
+
+ return __webpack_require__(__webpack_require__.s = 1);
+ /******/
+ }(
+ /************************************************************************/
+
+ /******/
+ [
+ /* 0 */
+
+ /***/
+ function (module, exports) {
+ module.exports = __WEBPACK_EXTERNAL_MODULE_0__;
+ /***/
+ },
+ /* 1 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+
+ Object.defineProperty(__webpack_exports__, "__esModule", {
+ value: true
+ });
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0__TextInput__ = __webpack_require__(2);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_1__NumberInput__ = __webpack_require__(5);
+ /* harmony reexport (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "TextInput", function () {
+ return __WEBPACK_IMPORTED_MODULE_0__TextInput__["a"];
+ });
+ /* harmony reexport (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "NumberInput", function () {
+ return __WEBPACK_IMPORTED_MODULE_1__NumberInput__["a"];
+ });
+ /*
+ * This file is part of basis-input-masking lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+ /***/
+
+ },
+ /* 2 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0__TextInput__ = __webpack_require__(3);
+ /*
+ * This file is part of basis-input-masking lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+ /* harmony default export */
+
+
+ __webpack_exports__["a"] = __WEBPACK_IMPORTED_MODULE_0__TextInput__["a"
+ /* default */
+ ];
+ /***/
+ },
+ /* 3 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask__ = __webpack_require__(0);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask__);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_1__tools_js__ = __webpack_require__(4);
+
+ function ownKeys(object, enumerableOnly) {
+ var keys = Object.keys(object);
+
+ if (Object.getOwnPropertySymbols) {
+ var symbols = Object.getOwnPropertySymbols(object);
+ if (enumerableOnly) symbols = symbols.filter(function (sym) {
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+ });
+ keys.push.apply(keys, symbols);
+ }
+
+ return keys;
+ }
+
+ function _objectSpread(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i] != null ? arguments[i] : {};
+
+ if (i % 2) {
+ ownKeys(Object(source), true).forEach(function (key) {
+ _defineProperty(target, key, source[key]);
+ });
+ } else if (Object.getOwnPropertyDescriptors) {
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
+ } else {
+ ownKeys(Object(source)).forEach(function (key) {
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
+ });
+ }
+ }
+
+ return target;
+ }
+
+ function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+ }
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+ /*
+ * This file is part of basis-input-masking lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+ /**
+ * The `TextInput` will wrap text inputs and apply the given [bbj string mask](https://github.com/BasisHub/bbj-masks#string-masks)
+ *
+ * **Options**
+ *
+ * _Options can be passed via data attributes . For data attributes, append the option name to data-, as in data-mask_
+ *
+ * | Option | Default | Description |
+ * |-----------|---------|---------------------------------------------------------------------------------------------------------|
+ * | mask | | The bbj string mask @see [BBj String Masks](https://github.com/BasisHub/bbj-masks#string-masks) |
+ *
+ *
+ *
+ * **Example :**
+ * ```html
+ *
+ *
+ *
+ * ```
+ *
+ * @author Hyyan Abo Fakher
+ */
+
+
+ var TextInput = /*#__PURE__*/function () {
+ /**
+ * Construct new TextInput
+ *
+ * @param {?Object} options - The input options.
+ * @param {HTMLElement|String} [options.elements=".bbj-text-masked"] - The class name or the node to use
+ * @param {HTMLDocument} [options.document=document] - Document instance to use
+ * @param {String} [options.cssClassError="bbj-mask-error"] - A css class to attach to the input when it is invalid
+ * @param {String} [options.cssClassSuccess="bbj-mask-success"] - A css class to attach to the input when it is valid after the user interaction
+ * @param {Function} [options.onUpdate=null] - A callback to be called on the new masked value is set
+ * @param {Function} [options.onInvalid=null] - A callback to be called on the input or the mask is invalid
+ */
+ function TextInput() {
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+ _classCallCheck(this, TextInput);
+
+ this.options = _objectSpread({}, {
+ elements: '.bbj-text-masked',
+ doc: document,
+ cssClassError: 'bbj-mask-error',
+ cssClassSuccess: 'bbj-mask-success',
+ onUpdate: null,
+ onInvalid: null
+ }, {}, options);
+ this._onKeystroke = this._onKeystroke.bind(this);
+ this._onFocus = this._onFocus.bind(this);
+ this.refresh();
+ }
+ /**
+ * Initialize the component and wrap the input elements for masking in case
+ * they are not wrapped yet
+ */
+
+
+ _createClass(TextInput, [{
+ key: "refresh",
+ value: function refresh() {
+ var elements = typeof this.options.elements === 'string' ? this.options.doc.querySelectorAll(this.options.elements) : this.options.elements;
+ var input, parentClass;
+
+ for (var i = 0; i < elements.length; i++) {
+ input = elements[i];
+
+ if (input instanceof HTMLInputElement) {
+ parentClass = input.parentNode.getAttribute('class');
+
+ if (!input.getAttribute('id')) {
+ console.warn("BBjMasking: Input has no ID. Without an ID the input cannot be masked", input);
+ continue;
+ } // we don't initialize the input's wrap twice
+
+
+ var isWrapped = parentClass && parentClass.indexOf('textInputMask__wrap') > -1;
+
+ this._wrap(input, isWrapped);
+ } else {
+ console.warn("BBjMasking: Invalid input element. The element will be ignored", input);
+ }
+ }
+ }
+ /**
+ * Unwrap the input elements and remove attached listeners
+ */
+
+ }, {
+ key: "destroy",
+ value: function destroy() {
+ var elements = typeof this.options.elements === 'string' ? this.options.doc.querySelectorAll(this.options.elements) : this.options.elements;
+ var input, parent, parentClass;
+
+ for (var i = 0; i < elements.length; i++) {
+ input = elements[i];
+ parent = input.parentNode;
+ parentClass = parent.getAttribute('class');
+
+ if (parentClass && parentClass.indexOf('textInputMask__wrap') > -1) {
+ this._unwrap(parent);
+ }
+ }
+ }
+ /**
+ * Create the text masking input wrapper
+ *
+ * @param {HTMLInputElement} input the input element
+ * @param {Boolean} isWrapped when true the input is already wrapped and we need to add what is
+ * missing only
+ *
+ * @returns {HTMLSpanElement} the wrap element
+ *
+ * @protected
+ */
+
+ }, {
+ key: "_wrap",
+ value: function _wrap(input, isWrapped) {
+ var inputId = input.getAttribute('id'),
+ inputName = input.getAttribute('name'),
+ mask = input.dataset.mask || '',
+ originalPattern = input.pattern,
+ defaultPattern = Object(__WEBPACK_IMPORTED_MODULE_1__tools_js__["b"
+ /* generatePatternFromMask */
+ ])(mask),
+ pattern = originalPattern || defaultPattern;
+ var wrap = null,
+ unmaskInput = null;
+
+ if (!isWrapped) {
+ wrap = this.options.doc.createElement('span');
+ unmaskInput = this.options.doc.createElement('input'); // hidden input with the unmasked values for forms
+ } else {
+ wrap = input.parentNode;
+ unmaskInput = wrap.querySelector('.textInputMask__unmaskedInput');
+ } // configure the actual input
+ // -----------------------------------------------------
+
+
+ input.value = Object(__WEBPACK_IMPORTED_MODULE_1__tools_js__["c"
+ /* maskIfNotMasked */
+ ])(input.value, mask);
+ input.pattern = pattern;
+ input.classList.add('textInputMask__textInput');
+ input.dataset.mask = mask;
+ input.dataset.valueUnmasked = Object(__WEBPACK_IMPORTED_MODULE_1__tools_js__["d"
+ /* unmask */
+ ])(input.value, mask);
+
+ if (originalPattern && originalPattern !== defaultPattern) {
+ input.dataset.isCustomPattern = true;
+ }
+
+ if (!isWrapped) {
+ if (!(input.hasAttribute('readonly') || input.hasAttribute('disable'))) {
+ input.addEventListener('keyup', this._onKeystroke);
+ input.addEventListener('keypress', this._onKeystroke);
+ input.addEventListener('paste', this._onKeystroke);
+ input.addEventListener('focusin', this._onFocus);
+ input.addEventListener('click', this._onFocus);
+ }
+
+ input.parentNode.insertBefore(wrap, input); // move the input outside the wrapper
+ }
+
+ if (this._validateInput(input)) {
+ this.__fireOnUpdate(input.value, input.dataset.valueUnmasked, input);
+ } // configure the unmasked input
+ // ----------------------------------------------------
+
+
+ unmaskInput.setAttribute('aria-hidden', 'true');
+ unmaskInput.setAttribute('type', 'hidden');
+ unmaskInput.classList.add('textInputMask__unmaskedInput');
+ unmaskInput.value = input.dataset.valueUnmasked;
+ if (inputId) unmaskInput.setAttribute('id', "".concat(inputId, "-unmasked"));
+ if (inputName) unmaskInput.setAttribute('name', "".concat(inputName, "-unmasked"));
+
+ if (!isWrapped) {
+ // configure the wrapper
+ wrap.setAttribute('class', 'textInputMask__wrap');
+ wrap.appendChild(unmaskInput);
+ wrap.appendChild(input);
+ }
+
+ return wrap;
+ }
+ /**
+ * Unwrap the masked input and remove the value changed listener
+ *
+ * @param {HTMLSpanElement} textInput the wrapper span instance
+ *
+ * @protected
+ */
+
+ }, {
+ key: "_unwrap",
+ value: function _unwrap(textInput) {
+ textInput.removeChild(textInput.querySelector('.textInputMask__unmaskedInput'));
+ var input = textInput.querySelector('.textInputMask__textInput');
+ input.removeEventListener('keyup', this._onKeystroke);
+ input.removeEventListener('keypress', this._onKeystroke);
+ input.removeEventListener('paste', this._onKeystroke);
+ input.removeEventListener('focusin', this._onFocus);
+ input.removeEventListener('click', this._onFocus);
+ delete input.dataset.valueUnmasked;
+
+ if (!input.dataset.isCustomPattern) {
+ input.removeAttribute('pattern');
+ delete input.dataset.isCustomPattern;
+ }
+
+ input.classList.remove(this.options.cssClassError);
+ textInput.parentNode.insertBefore(input, textInput);
+ textInput.parentNode.removeChild(textInput);
+ }
+ /**
+ * Listen to every keystroke on the input and update the masked and the unmasked value
+ *
+ * @param {Event} e
+ *
+ * @protected
+ */
+
+ }, {
+ key: "_onKeystroke",
+ value: function _onKeystroke(e) {
+ if (e.ctrlKey || e.shiftKey || e.altKey || e.metaKey) return;
+ if (e.keyCode !== 13) e.preventDefault();
+ var input = e.target,
+ mask = input.dataset.mask || this.options.mask,
+ eventType = e.type;
+ input.classList.remove(this.options.cssClassError);
+ input.classList.remove(this.options.cssClassSuccess);
+ input.setCustomValidity('');
+ var value = input.value,
+ keyCode = e.keyCode,
+ keyContent = e.key || e.code.replace(/[^0-9]/g, ''),
+ key = keyContent ? keyContent.length > 1 ? '' : keyContent : '',
+ insertPosition = Object(__WEBPACK_IMPORTED_MODULE_1__tools_js__["a"
+ /* findCaretPosition */
+ ])(value, mask),
+ newValue,
+ unmaskedValue,
+ maskError = false;
+
+ switch (eventType) {
+ case 'paste':
+ newValue = Object(__WEBPACK_IMPORTED_MODULE_1__tools_js__["c"
+ /* maskIfNotMasked */
+ ])((e.clipboardData || window.clipboardData).getData('Text'), mask);
+ break;
+
+ case 'keyup':
+ newValue = value;
+ break;
+
+ case 'keypress':
+ var selectionStart = input.selectionStart;
+ if (selectionStart !== insertPosition) insertPosition = selectionStart;
+ newValue = value.substr(0, insertPosition) + key + value.substr(insertPosition);
+ break;
+
+ default:
+ break;
+ }
+
+ unmaskedValue = Object(__WEBPACK_IMPORTED_MODULE_1__tools_js__["d"
+ /* unmask */
+ ])(newValue, mask);
+
+ if ([35, 36, 37, 38, 39, 40].indexOf(keyCode) === -1) {
+ try {
+ input.value = __WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask___default.a.mask(unmaskedValue, mask, false);
+
+ if (this._validateInput(input)) {
+ input.dataset.valueUnmasked = unmaskedValue;
+ this.options.doc.querySelector("#".concat(input.getAttribute('id'), "-unmasked")).value = unmaskedValue;
+
+ this.__applyCssClassState(input, 'success');
+
+ this.__fireOnUpdate(input.value, input.dataset.valueUnmasked, input);
+ }
+
+ maskError = false;
+ } catch (error) {
+ this.__applyCssClassState(input, 'error');
+
+ this.__fireOnInvalid(error, input);
+
+ maskError = true;
+ }
+
+ this._updateCaretPosition(input, mask);
+ }
+
+ if (!maskError) this._validateInput(input);
+ }
+ /**
+ * Listen to focus events on the input and update the caret position
+ * where the next char should be inserted according to the mask
+ *
+ * @param {FocusEvent} e
+ *
+ * @protected
+ */
+
+ }, {
+ key: "_onFocus",
+ value: function _onFocus(e) {
+ var input = e.target;
+ var mask = input.dataset.mask || this.options.mask;
+
+ this._updateCaretPosition(input, mask);
+ }
+ /**
+ * Update the caret position on the input based on the given mask
+ *
+ * @param {HTMLInputElement} input instance
+ * @param {String} mask bbj string
+ *
+ * @protected
+ */
+
+ }, {
+ key: "_updateCaretPosition",
+ value: function _updateCaretPosition(input, mask) {
+ setTimeout(function () {
+ var position = Object(__WEBPACK_IMPORTED_MODULE_1__tools_js__["a"
+ /* findCaretPosition */
+ ])(input.value, mask);
+ input.setSelectionRange(position, position);
+ }, 0);
+ }
+ /**
+ * Trigger `checkValidity` on the input
+ *
+ * @param {HTMLInputElement} input
+ *
+ * @returns {Boolean} true when valid , false otherwise
+ *
+ * @protected
+ */
+
+ }, {
+ key: "_validateInput",
+ value: function _validateInput(input) {
+ var isValid = input.checkValidity();
+
+ if (isValid) {
+ this.__applyCssClassState(input, 'success');
+
+ input.setCustomValidity('');
+ } else {
+ this.__applyCssClassState(input, 'error');
+
+ this.__fireOnInvalid(input.validationMessage, input);
+ }
+
+ return isValid;
+ }
+ /**
+ * @private
+ */
+
+ }, {
+ key: "__fireOnUpdate",
+ value: function __fireOnUpdate(valueMasked, valueUnmasked, input) {
+ if (this.options.onUpdate) {
+ this.options.onUpdate(valueMasked, valueUnmasked, input);
+ }
+ }
+ /**
+ * @private
+ */
+
+ }, {
+ key: "__fireOnInvalid",
+ value: function __fireOnInvalid(error, input) {
+ if (this.options.onInvalid) {
+ this.options.onInvalid(error, input);
+ }
+ }
+ /**
+ * @private
+ */
+
+ }, {
+ key: "__applyCssClassState",
+ value: function __applyCssClassState(input, state) {
+ if (input.hasAttribute('readonly') || input.hasAttribute('disabled')) {
+ input.classList.remove(this.options.cssClassError);
+ input.classList.remove(this.options.cssClassSuccess);
+ } else {
+ if (state === 'success') {
+ input.classList.remove(this.options.cssClassError);
+ input.classList.add(this.options.cssClassSuccess);
+ }
+
+ if (state === 'error') {
+ input.classList.add(this.options.cssClassError);
+ input.classList.remove(this.options.cssClassSuccess);
+ }
+ }
+ }
+ }]);
+
+ return TextInput;
+ }();
+ /* harmony default export */
+
+
+ __webpack_exports__["a"] = TextInput;
+ /***/
+ },
+ /* 4 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* unused harmony export isMaskedValue */
+
+ /* harmony export (binding) */
+
+ __webpack_require__.d(__webpack_exports__, "c", function () {
+ return maskIfNotMasked;
+ });
+ /* harmony export (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "d", function () {
+ return unmask;
+ });
+ /* harmony export (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "a", function () {
+ return findCaretPosition;
+ });
+ /* harmony export (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "b", function () {
+ return generatePatternFromMask;
+ });
+ /* unused harmony export IS_UNICODE_PROPERTY_SUPPORTED */
+
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask__ = __webpack_require__(0);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask__);
+ /*
+ * This file is part of basis-input-masking lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+
+ var SUPPORTED_MASKS = ['X', 'a', 'A', '0', 'z', 'Z', 'U'];
+ /**
+ * When true , then the browser supports Unicode Property Escapes
+ * otherwise it is false
+ *
+ * {@link https://github.com/tc39/proposal-regexp-unicode-property-escapes}
+ */
+
+ var IS_UNICODE_PROPERTY_SUPPORTED = false;
+
+ try {
+ eval('/\\p{L}/u');
+ IS_UNICODE_PROPERTY_SUPPORTED = true;
+ } catch (err) {
+ IS_UNICODE_PROPERTY_SUPPORTED = false;
+ }
+ /**
+ * Check if the given value is masked with the given mask or not
+ *
+ * @param {String} value masked or unmasked value
+ * @param {String} mask a bbj mask
+ *
+ * @return {Boolean} true when the value is masked with given mask , false otherwise
+ */
+
+
+ var isMaskedValue = function isMaskedValue(value, mask) {
+ if (typeof isMaskedValue.__CACHE__ === 'undefined') {
+ isMaskedValue.__CACHE__ = {};
+ }
+
+ var cacheKey = "".concat(value, "-").concat(mask);
+
+ if (!isMaskedValue.__CACHE__[cacheKey]) {
+ var unmaskedValue = unmask(value, mask);
+ isMaskedValue.__CACHE__[cacheKey] = value === __WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask___default.a.mask(unmaskedValue, mask);
+ }
+
+ return isMaskedValue.__CACHE__[cacheKey];
+ };
+ /**
+ * Mask the given value with the given mask in case the value is not already masked with the
+ * given mask
+ *
+ * @param {String} value masked or unmasked value
+ * @param {String} mask a bbj mask
+ *
+ * @return {String} a masked value
+ */
+
+
+ var maskIfNotMasked = function maskIfNotMasked(value, mask) {
+ if (typeof maskIfNotMasked.__CACHE__ === 'undefined') {
+ maskIfNotMasked.__CACHE__ = {};
+ }
+
+ var cacheKey = "".concat(value, "-").concat(mask);
+
+ if (!maskIfNotMasked.__CACHE__[cacheKey]) {
+ if (isMaskedValue(value, mask)) {
+ maskIfNotMasked.__CACHE__[cacheKey] = value;
+ } else {
+ try {
+ maskIfNotMasked.__CACHE__[cacheKey] = __WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask___default.a.mask(value, mask, false);
+ } catch (e) {
+ maskIfNotMasked.__CACHE__[cacheKey] = __WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_StringMask___default.a.mask('', mask);
+ }
+ }
+ }
+
+ return maskIfNotMasked.__CACHE__[cacheKey];
+ };
+ /**
+ * Generate a regex patter based on the give task
+ *
+ * @param {String} mask bbj string mask
+ *
+ * @return {String} regex for the give mask
+ */
+
+
+ var generatePatternFromMask = function generatePatternFromMask(mask) {
+ if (typeof generatePatternFromMask.__CACHE__ === 'undefined') {
+ generatePatternFromMask.__CACHE__ = {};
+ }
+
+ var cacheKey = mask;
+
+ if (!generatePatternFromMask.__CACHE__[cacheKey]) {
+ var maskAsArry = mask.split('');
+ var regex = '';
+ maskAsArry.forEach(function (c) {
+ switch (c) {
+ case 'X':
+ regex += '([^ -~])';
+ break;
+
+ case 'a':
+ case 'A':
+ // https://mothereff.in/regexpu#input=var+regex+%3D+/%5Cp%7BL%7D/u%3B&unicodePropertyEscape=1
+ // https://stackoverflow.com/questions/150033/regular-expression-to-match-non-ascii-characters#answer-48902765
+ regex += IS_UNICODE_PROPERTY_SUPPORTED ? '\\p{L}' : "((?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]))";
+ break;
+
+ case '0':
+ regex += '([0-9])';
+ break;
+
+ case 'z':
+ case 'Z':
+ regex += IS_UNICODE_PROPERTY_SUPPORTED ? '([0-9]|\\p{L})' : "([0-9]|(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]))";
+ break;
+
+ case 'U':
+ regex += IS_UNICODE_PROPERTY_SUPPORTED ? '(([0-9])|(\\s)|([.,/#!$%^&*;:{}=-_`~()])|(\\p{L}))' : "(([0-9])|(\\s)|([.,/#!$%^&*;:{}=-_`~()])|(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]))";
+ break;
+
+ default:
+ regex += c.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
+ break;
+ }
+ });
+ generatePatternFromMask.__CACHE__[cacheKey] = regex;
+ }
+
+ return generatePatternFromMask.__CACHE__[cacheKey];
+ };
+ /**
+ * Unmask the given value
+ *
+ * @param {String} maskedValue masked string
+ * @param {String} mask the used mask to produce the masked string
+ */
+
+
+ var unmask = function unmask(maskedValue, mask) {
+ if (typeof unmask.__CACHE__ === 'undefined') {
+ unmask.__CACHE__ = {};
+ }
+
+ var cacheKey = "".concat(maskedValue, "-").concat(mask);
+
+ if (!unmask.__CACHE__[cacheKey]) {
+ var maskAsArray = mask.split('');
+ var maskedValueAsArray = maskedValue.split('');
+ var unmasked = '';
+
+ for (var index = 0; index < maskedValueAsArray.length; index++) {
+ var el = maskedValueAsArray[index];
+ var _mask = maskAsArray[index];
+ var elHasMask = SUPPORTED_MASKS.indexOf(_mask) > -1;
+
+ if (elHasMask) {
+ var pattern = new RegExp(generatePatternFromMask(_mask), IS_UNICODE_PROPERTY_SUPPORTED ? 'u' : '');
+ if (pattern.test(el)) unmasked += el;else break;
+ }
+ }
+
+ unmask.__CACHE__[cacheKey] = unmasked.toLocaleLowerCase();
+ }
+
+ return unmask.__CACHE__[cacheKey];
+ };
+ /**
+ * Given the masked string , find the next caret position depending on
+ * what is missing to complete the mask
+ *
+ * @param {String} maskedValue masked string
+ * @param {String} mask the used mask to produce the masked string
+ */
+
+
+ var findCaretPosition = function findCaretPosition(maskedValue, mask) {
+ if (typeof findCaretPosition.__CACHE__ === 'undefined') {
+ findCaretPosition.__CACHE__ = {};
+ }
+
+ var cacheKey = "".concat(maskedValue, "-").concat(mask);
+
+ if (!findCaretPosition.__CACHE__[cacheKey]) {
+ var maskAsArray = mask.split('');
+ var maskedValueAsArray = maskedValue.split('');
+
+ if (maskedValueAsArray.length < maskAsArray.length) {
+ maskedValueAsArray = maskedValueAsArray.concat(new Array(maskAsArray.length - maskedValueAsArray.length).join(' ').split(''));
+ }
+
+ var position = -1;
+
+ for (var index = 0; index < maskAsArray.length; index++) {
+ var el = maskAsArray[index];
+
+ if (el !== maskedValueAsArray[index]) {
+ // if (maskedValueAsArray[index] === ' ') return index
+ if (SUPPORTED_MASKS.indexOf(el) > -1) {
+ var pattern = new RegExp(generatePatternFromMask(el), IS_UNICODE_PROPERTY_SUPPORTED ? 'u' : '');
+
+ if (!pattern.test(maskedValueAsArray[index])) {
+ position = index;
+ break;
+ }
+ }
+ }
+ }
+
+ findCaretPosition.__CACHE__[cacheKey] = position < 0 ? maskedValueAsArray.length : position;
+ }
+
+ return findCaretPosition.__CACHE__[cacheKey];
+ };
+ /***/
+
+ },
+ /* 5 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0__NumberInput__ = __webpack_require__(6);
+ /*
+ * This file is part of basis-input-masking lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+ /* harmony default export */
+
+
+ __webpack_exports__["a"] = __WEBPACK_IMPORTED_MODULE_0__NumberInput__["a"
+ /* default */
+ ];
+ /***/
+ },
+ /* 6 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_NumberMask__ = __webpack_require__(7);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_NumberMask___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_NumberMask__);
+
+ function ownKeys(object, enumerableOnly) {
+ var keys = Object.keys(object);
+
+ if (Object.getOwnPropertySymbols) {
+ var symbols = Object.getOwnPropertySymbols(object);
+ if (enumerableOnly) symbols = symbols.filter(function (sym) {
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+ });
+ keys.push.apply(keys, symbols);
+ }
+
+ return keys;
+ }
+
+ function _objectSpread(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i] != null ? arguments[i] : {};
+
+ if (i % 2) {
+ ownKeys(Object(source), true).forEach(function (key) {
+ _defineProperty(target, key, source[key]);
+ });
+ } else if (Object.getOwnPropertyDescriptors) {
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
+ } else {
+ ownKeys(Object(source)).forEach(function (key) {
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
+ });
+ }
+ }
+
+ return target;
+ }
+
+ function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+ }
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+ /*
+ * This file is part of basis-input-masking lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+
+ var countDecimals = function countDecimals(value) {
+ if (value % 1 != 0) {
+ var split = value.toString().split('.');
+ if (split.length === 2) return split[1].length;
+ }
+
+ return 0;
+ };
+ /**
+ * The `NumberInput` will wrap text inputs and apply the given [bbj Number mask](https://github.com/BasisHub/bbj-masks#number-masks)
+ *
+ * **Options**
+ *
+ * _Options can be passed via data attributes . For data attributes, append the option name to data-, as in data-mask_
+ *
+ * | Option | Default | Description |
+ * |-----------|---------|---------------------------------------------------------------------------------------------------------|
+ * | mask | | The bbj number mask @see [BBj Number Masks](https://github.com/BasisHub/bbj-masks#number-masks) |
+ * | min | | The maximum value to accept for this input|
+ * | max | | The minimum value to accept for this input|
+ * | step | | A stepping interval to use when using up and down arrows to adjust the value, as well as for validation|
+ * |grouping-separator | , | a char which will be used as a grouping separator |
+ * |decimal-separator | . | a char which will be used as a decimal separator |
+ * |force-trailing-zeros | false | Affects the output by switching the way a mask with "#" characters in the trailing positions is filled. for example, the function NumberMask.mask(.10:"#.##") returns .10 instead of .1|
+ *
+ *
+ *
+ * **Example :**
+ * ```html
+ *
+ *
+ *
+ * ```
+ *
+ * @author Hyyan Abo Fakher
+ */
+
+
+ var NumberInput = /*#__PURE__*/function () {
+ /**
+ * Construct new NumberInput
+ *
+ * @param {?Object} options - The input options.
+ * @param {HTMLElement|String} [options.elements=".bbj-number-masked"] - The class name or the node to use
+ * @param {HTMLDocument} [options.document=document] - Document instance to use
+ * @param {String} [options.cssClassError="bbj-mask-error"] - A css class to attach to the input when it is invalid
+ * @param {String} [options.cssClassSuccess="bbj-mask-success"] - A css class to attach to the input when it is valid after the user interaction
+ * @param {Function} [options.onUpdate=null] - A callback to be called on the new masked value is set
+ * @param {Function} [options.onInvalid=null] - A callback to be called on the input or the mask is invalid
+ */
+ function NumberInput() {
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+ _classCallCheck(this, NumberInput);
+
+ this.options = _objectSpread({}, {
+ elements: '.bbj-number-masked',
+ doc: document,
+ cssClassError: 'bbj-mask-error',
+ cssClassSuccess: 'bbj-mask-success',
+ onUpdate: null,
+ onInvalid: null
+ }, {}, options);
+ this._actualInputHandler = this._actualInputHandler.bind(this);
+ this._unmaskedInputHandler = this._unmaskedInputHandler.bind(this);
+ this.refresh();
+ }
+ /**
+ * Initialize the component and wrap the input elements for masking in case
+ * they are not wrapped yet
+ */
+
+
+ _createClass(NumberInput, [{
+ key: "refresh",
+ value: function refresh() {
+ var elements = typeof this.options.elements === 'string' ? this.options.doc.querySelectorAll(this.options.elements) : this.options.elements;
+ var input, parentClass;
+
+ for (var i = 0; i < elements.length; i++) {
+ input = elements[i];
+
+ if (input instanceof HTMLInputElement) {
+ parentClass = input.parentNode.getAttribute('class');
+
+ if (!input.getAttribute('id')) {
+ console.warn("BBjMasking: Input has no ID. Without an ID the input cannot be masked", input);
+ continue;
+ } // we don't initialize the input's wrap twice
+
+
+ var isWrapped = parentClass && parentClass.indexOf('numberInputMask__wrap') > -1;
+
+ this._wrap(input, isWrapped);
+ } else {
+ console.warn("BBjMasking: Invalid input element. The element will be ignored", input);
+ }
+ }
+ }
+ /**
+ * Unwrap the input elements and remove attached listeners
+ */
+
+ }, {
+ key: "destroy",
+ value: function destroy() {
+ var elements = typeof this.options.elements === 'string' ? this.options.doc.querySelectorAll(this.options.elements) : this.options.elements;
+ var input, parent, parentClass;
+
+ for (var i = 0; i < elements.length; i++) {
+ input = elements[i];
+ parent = input.parentNode;
+ parentClass = parent.getAttribute('class');
+
+ if (parentClass && parentClass.indexOf('numberInputMask__wrap') > -1) {
+ this._unwrap(parent);
+ }
+ }
+ }
+ /**
+ * Create the number masking input wrapper
+ *
+ * @param {HTMLInputElement} actualInput the input element
+ * @param {Boolean} isWrapped when true the input is already wrapped and we need to add what is
+ * missing only
+ *
+ * @returns {HTMLSpanElement} wrapper instance
+ *
+ * @protected
+ */
+
+ }, {
+ key: "_wrap",
+ value: function _wrap(actualInput, isWrapped) {
+ var actualInputId = actualInput.getAttribute('id'),
+ actualInputName = actualInput.getAttribute('name'),
+ actualInputStep = actualInput.dataset.step || null,
+ actualInputMax = actualInput.dataset.max || null,
+ actualInputMin = actualInput.dataset.min || null,
+ actualInputGroupingSeparator = actualInput.dataset.groupingSeparator || ',',
+ actualInputDecimalSeparator = actualInput.dataset.decimalSeparator || '.',
+ actualInputForceTrailingZeros = actualInput.dataset.forceTrailingZeros || null,
+ actualInputMask = actualInput.dataset.mask || '',
+ actualInputClasses = actualInput.getAttribute('class'),
+ actualInputRequired = actualInput.getAttribute('required') || null;
+ var wrap = null,
+ unmaskedInput = null;
+
+ if (!isWrapped) {
+ wrap = this.options.doc.createElement('span');
+ unmaskedInput = this.options.doc.createElement('input'); // hidden input with the unmasked values for forms
+ } else {
+ wrap = actualInput.parentNode;
+ unmaskedInput = wrap.querySelector('.numberInputMask__unmaskedInput');
+ } // configure the actual input
+ // -----------------------------------------------------
+
+
+ if (!isWrapped) {
+ actualInput.parentNode.insertBefore(wrap, actualInput); // move the input outside the wrapper
+
+ if (!(actualInput.hasAttribute('readonly') || actualInput.hasAttribute('disabled'))) {
+ actualInput.addEventListener('click', this._actualInputHandler);
+ actualInput.addEventListener('focusin', this._actualInputHandler);
+ }
+ }
+
+ actualInput.dataset.valueUnmasked = actualInput.value || 0;
+ actualInput.dataset.groupingSeparator = actualInputGroupingSeparator;
+ actualInput.dataset.decimalSeparator = actualInputDecimalSeparator;
+ actualInput.dataset.forceTrailingZeros = actualInputForceTrailingZeros;
+ actualInput.value = __WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_NumberMask___default.a.mask(actualInput.dataset.valueUnmasked, actualInputMask, actualInputGroupingSeparator, actualInputDecimalSeparator, actualInputForceTrailingZeros).trim();
+ actualInput.classList.add('numberInputMask__textInput', this.options.cssClassSuccess); // configure the unmasked input
+ // ----------------------------------------------------
+
+ unmaskedInput.value = actualInput.dataset.valueUnmasked;
+ unmaskedInput.setAttribute('aria-hidden', 'true');
+ unmaskedInput.setAttribute('type', 'hidden');
+ unmaskedInput.setAttribute('class', actualInputClasses);
+ if (actualInputId) unmaskedInput.setAttribute('id', "".concat(actualInputId, "-unmasked"));
+ if (actualInputName) unmaskedInput.setAttribute('name', "".concat(actualInputName, "-unmasked"));
+ if (actualInputRequired) unmaskedInput.setAttribute('required', 'required');
+ if (actualInputStep) unmaskedInput.setAttribute('step', actualInputStep);else {
+ var decimals = countDecimals(unmaskedInput.value);
+ var step = '1';
+
+ if (decimals > 0) {
+ step = ".".concat(Array(decimals).join('0'), "1");
+ }
+
+ unmaskedInput.setAttribute('step', step);
+ }
+ if (actualInputMin) unmaskedInput.setAttribute('min', actualInputMin);
+ if (actualInputMax) unmaskedInput.setAttribute('max', actualInputMax);
+ unmaskedInput.dataset.inputId = actualInputId;
+ unmaskedInput.dataset.mask = actualInputMask;
+ unmaskedInput.dataset.groupingSeparator = actualInputGroupingSeparator;
+ unmaskedInput.dataset.decimalSeparator = actualInputDecimalSeparator;
+ if (actualInputForceTrailingZeros) unmaskedInput.dataset.forceTrailingZeros = actualInputForceTrailingZeros;
+
+ if (!isWrapped) {
+ unmaskedInput.classList.add('numberInputMask__unmaskedInput');
+ unmaskedInput.addEventListener('keydown', this._unmaskedInputHandler);
+ unmaskedInput.addEventListener('keyup', this._unmaskedInputHandler);
+ unmaskedInput.addEventListener('focusout', this._unmaskedInputHandler); // configure the wrapper
+
+ wrap.setAttribute('class', 'numberInputMask__wrap');
+ wrap.appendChild(unmaskedInput);
+ wrap.appendChild(actualInput);
+ }
+
+ if (!isNaN(Number(actualInput.dataset.valueUnmasked))) {
+ if (this._validateInput(unmaskedInput, actualInput)) {
+ this.__fireOnUpdate(actualInput.value, actualInput.dataset.valueUnmasked, actualInput);
+ }
+ } else {
+ actualInput.classList.add(this.options.cssClassError);
+ }
+
+ return wrap;
+ }
+ /**
+ * Unwrap the masked input and remove the value changed listener
+ *
+ * @param {HTMLSpanElement} wrapper the wrapper span instance
+ *
+ * @protected
+ */
+
+ }, {
+ key: "_unwrap",
+ value: function _unwrap(wrapper) {
+ var actualInput = wrapper.querySelector('.numberInputMask__textInput'),
+ actualInputId = actualInput.id,
+ unmaskedInput = wrapper.querySelector("#".concat(actualInputId, "-unmasked"));
+ unmaskedInput.removeEventListener('keyup', this._unmaskedInputHandler);
+ unmaskedInput.removeEventListener('keypress', this._unmaskedInputHandler);
+ unmaskedInput.removeEventListener('focusout', this._unmaskedInputHandler);
+ wrapper.removeChild(unmaskedInput);
+ actualInput.removeEventListener('click', this._actualInputHandler);
+ actualInput.removeEventListener('focusin', this._actualInputHandler);
+ actualInput.classList.remove('numberInputMask__textInput');
+ actualInput.classList.remove(this.options.cssClassError);
+ actualInput.classList.remove(this.options.cssClassSuccess);
+ delete actualInput.dataset.valueUnmasked;
+ wrapper.parentNode.insertBefore(actualInput, wrapper);
+ wrapper.parentNode.removeChild(wrapper);
+ }
+ /**
+ * Listen to click and focusin event on the actual input and toggle the number input
+ *
+ * @param {Event} e
+ *
+ * @protected
+ */
+
+ }, {
+ key: "_actualInputHandler",
+ value: function _actualInputHandler(e) {
+ var actualInput = e.target,
+ actualInputId = actualInput.id,
+ unmaskedInput = this.options.doc.querySelector("#".concat(actualInputId, "-unmasked"));
+ actualInput.setAttribute('aria-hidden', 'true');
+ actualInput.setAttribute('type', 'hidden');
+ unmaskedInput.removeAttribute('aria-hidden');
+ unmaskedInput.setAttribute('type', 'number');
+
+ this._validateInput(unmaskedInput, actualInput);
+
+ setTimeout(function () {
+ unmaskedInput.focus();
+ var length = String(unmaskedInput.value).length;
+ unmaskedInput.type = 'text';
+ unmaskedInput.setSelectionRange(length, length);
+ unmaskedInput.type = 'number';
+ }, 0);
+ }
+ /**
+ * Listen to the unmasked input keydown and focusout events and check
+ * if the input value can be masked or not
+ *
+ * @param {Event} e
+ *
+ * @protected
+ */
+
+ }, {
+ key: "_unmaskedInputHandler",
+ value: function _unmaskedInputHandler(e) {
+ var unmaskedInput = e.target,
+ keyCode = e.keyCode,
+ mask = unmaskedInput.dataset.mask,
+ groupingSeparator = unmaskedInput.dataset.groupingSeparator,
+ decimalSeparator = unmaskedInput.dataset.decimalSeparator,
+ forceTrailingZeros = unmaskedInput.dataset.forceTrailingZeros,
+ actualInputId = unmaskedInput.dataset.inputId,
+ actualInput = this.options.doc.querySelector("#".concat(actualInputId));
+
+ var restore = false,
+ apply = false,
+ maskedValue = false,
+ isValid = this._validateInput(unmaskedInput, actualInput);
+
+ try {
+ maskedValue = __WEBPACK_IMPORTED_MODULE_0_bbj_masks_src_NumberMask___default.a.mask(unmaskedInput.value || 0, mask, groupingSeparator, decimalSeparator, forceTrailingZeros, false).trim();
+ } catch (e) {
+ maskedValue = false;
+
+ this.__applyCssClassState(unmaskedInput, actualInput, 'error');
+
+ this.__fireOnInvalid(e, actualInput);
+ }
+
+ restore = [13, 27].indexOf(keyCode) > -1 || e.type === 'focusout';
+ apply = maskedValue && isValid;
+
+ if (restore) {
+ unmaskedInput.classList.remove(this.options.cssClassError);
+ unmaskedInput.classList.remove(this.options.cssClassSuccess);
+ unmaskedInput.setAttribute('aria-hidden', 'true');
+ unmaskedInput.setAttribute('type', 'hidden');
+ actualInput.removeAttribute('aria-hidden');
+ actualInput.setAttribute('type', 'text');
+ actualInput.classList.add(this.options.cssClassSuccess);
+
+ if (apply) {
+ actualInput.value = maskedValue;
+ actualInput.dataset.valueUnmasked = unmaskedInput.value;
+
+ this.__fireOnUpdate(maskedValue, unmaskedInput.value, actualInput);
+ } else {
+ unmaskedInput.value = actualInput.dataset.valueUnmasked;
+
+ this.__applyCssClassState(unmaskedInput, actualInput, 'success');
+ }
+ }
+ }
+ /**
+ * Trigger `checkValidity` on the input
+ *
+ * @param {HTMLInputElement} unmaskedInput
+ * @param {HTMLInputElement} actualInput
+ *
+ * @returns {Boolean} true when valid , false otherwise
+ *
+ * @protected
+ */
+
+ }, {
+ key: "_validateInput",
+ value: function _validateInput(unmaskedInput, actualInput) {
+ var isValid = true;
+ var value = Number(unmaskedInput.value);
+
+ if (unmaskedInput.getAttribute('type') === 'hidden' && !isNaN(value)) {
+ var max = unmaskedInput.getAttribute('max');
+ var min = unmaskedInput.getAttribute('min');
+ var step = unmaskedInput.getAttribute('step');
+ if (min) isValid = isValid && value >= Number(min);
+ if (max) isValid = isValid && value <= Number(max);
+ if (step) isValid = isValid && countDecimals(step) === countDecimals(unmaskedInput.value);
+ } else isValid = unmaskedInput.checkValidity();
+
+ if (isValid) {
+ this.__applyCssClassState(unmaskedInput, actualInput, 'success');
+ } else {
+ this.__applyCssClassState(unmaskedInput, actualInput, 'error');
+
+ this.__fireOnInvalid(unmaskedInput.validationMessage || 'Validity check fails', actualInput);
+ }
+
+ return isValid;
+ }
+ /**
+ * @param {String} valueMasked masked value
+ * @param {Number} valueUnmasked original value
+ * @param {HTMLInputElement} input the actual input instance
+ *
+ * @private
+ */
+
+ }, {
+ key: "__fireOnUpdate",
+ value: function __fireOnUpdate(valueMasked, valueUnmasked, input) {
+ if (this.options.onUpdate) {
+ this.options.onUpdate(valueMasked, valueUnmasked, input);
+ }
+ }
+ /**
+ * @param {String|Object} error last occurred error. could be mask error or validation error
+ * @param {HTMLInputElement} input the actual input instance
+ *
+ * @private
+ */
+
+ }, {
+ key: "__fireOnInvalid",
+ value: function __fireOnInvalid(error, input) {
+ if (this.options.onInvalid) {
+ this.options.onInvalid(error, input);
+ }
+ }
+ /**
+ * @private
+ */
+
+ }, {
+ key: "__applyCssClassState",
+ value: function __applyCssClassState(unmaskedInput, actualInput, state) {
+ if (actualInput.hasAttribute('readonly') || actualInput.hasAttribute('disabled')) {
+ actualInput.classList.remove(this.options.cssClassError);
+ actualInput.classList.remove(this.options.cssClassSuccess);
+ unmaskedInput.classList.remove(this.options.cssClassError);
+ unmaskedInput.classList.remove(this.options.cssClassSuccess);
+ } else {
+ if (state === 'success') {
+ actualInput.classList.remove(this.options.cssClassError);
+ actualInput.classList.add(this.options.cssClassSuccess);
+ unmaskedInput.classList.remove(this.options.cssClassError);
+ unmaskedInput.classList.add(this.options.cssClassSuccess);
+ }
+
+ if (state === 'error') {
+ actualInput.classList.add(this.options.cssClassError);
+ actualInput.classList.remove(this.options.cssClassSuccess);
+ unmaskedInput.classList.add(this.options.cssClassError);
+ unmaskedInput.classList.remove(this.options.cssClassSuccess);
+ }
+ }
+ }
+ }]);
+
+ return NumberInput;
+ }();
+ /* harmony default export */
+
+
+ __webpack_exports__["a"] = NumberInput;
+ /***/
+ },
+ /* 7 */
+
+ /***/
+ function (module, exports) {
+ module.exports = __WEBPACK_EXTERNAL_MODULE_7__;
+ /***/
+ }
+ /******/
+ ])
+ );
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../BBjGridExWidget/client/node_modules/webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
+
+/***/ }),
+
+/***/ "./node_modules/babel-loader/lib/index.js?!../../bbj-masks/dist/bbj-masks.js":
+/*!*****************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib??ref--4!/mnt/d/Github/bbj-masks/dist/bbj-masks.js ***!
+ \*****************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
+
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+(function webpackUniversalModuleDefinition(root, factory) {
+ if (( false ? undefined : _typeof(exports)) === 'object' && ( false ? undefined : _typeof(module)) === 'object') module.exports = factory();else if (true) !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
+ (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else {}
+})(typeof self !== 'undefined' ? self : void 0, function () {
+ return (
+ /******/
+ function (modules) {
+ // webpackBootstrap
+
+ /******/
+ // The module cache
+
+ /******/
+ var installedModules = {};
+ /******/
+
+ /******/
+ // The require function
+
+ /******/
+
+ function __webpack_require__(moduleId) {
+ /******/
+
+ /******/
+ // Check if module is in cache
+
+ /******/
+ if (installedModules[moduleId]) {
+ /******/
+ return installedModules[moduleId].exports;
+ /******/
+ }
+ /******/
+ // Create a new module (and put it into the cache)
+
+ /******/
+
+
+ var module = installedModules[moduleId] = {
+ /******/
+ i: moduleId,
+
+ /******/
+ l: false,
+
+ /******/
+ exports: {}
+ /******/
+
+ };
+ /******/
+
+ /******/
+ // Execute the module function
+
+ /******/
+
+ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+ /******/
+
+ /******/
+ // Flag the module as loaded
+
+ /******/
+
+ module.l = true;
+ /******/
+
+ /******/
+ // Return the exports of the module
+
+ /******/
+
+ return module.exports;
+ /******/
+ }
+ /******/
+
+ /******/
+
+ /******/
+ // expose the modules object (__webpack_modules__)
+
+ /******/
+
+
+ __webpack_require__.m = modules;
+ /******/
+
+ /******/
+ // expose the module cache
+
+ /******/
+
+ __webpack_require__.c = installedModules;
+ /******/
+
+ /******/
+ // define getter function for harmony exports
+
+ /******/
+
+ __webpack_require__.d = function (exports, name, getter) {
+ /******/
+ if (!__webpack_require__.o(exports, name)) {
+ /******/
+ Object.defineProperty(exports, name, {
+ /******/
+ configurable: false,
+
+ /******/
+ enumerable: true,
+
+ /******/
+ get: getter
+ /******/
+
+ });
+ /******/
+ }
+ /******/
+
+ };
+ /******/
+
+ /******/
+ // getDefaultExport function for compatibility with non-harmony modules
+
+ /******/
+
+
+ __webpack_require__.n = function (module) {
+ /******/
+ var getter = module && module.__esModule ?
+ /******/
+ function getDefault() {
+ return module['default'];
+ } :
+ /******/
+ function getModuleExports() {
+ return module;
+ };
+ /******/
+
+ __webpack_require__.d(getter, 'a', getter);
+ /******/
+
+
+ return getter;
+ /******/
+ };
+ /******/
+
+ /******/
+ // Object.prototype.hasOwnProperty.call
+
+ /******/
+
+
+ __webpack_require__.o = function (object, property) {
+ return Object.prototype.hasOwnProperty.call(object, property);
+ };
+ /******/
+
+ /******/
+ // __webpack_public_path__
+
+ /******/
+
+
+ __webpack_require__.p = "";
+ /******/
+
+ /******/
+ // Load entry module and return exports
+
+ /******/
+
+ return __webpack_require__(__webpack_require__.s = 5);
+ /******/
+ }(
+ /************************************************************************/
+
+ /******/
+ [
+ /* 0 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony export (immutable) */
+
+ __webpack_exports__["a"] = toInteger;
+
+ function toInteger(dirtyNumber) {
+ if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {
+ return NaN;
+ }
+
+ var number = Number(dirtyNumber);
+
+ if (isNaN(number)) {
+ return number;
+ }
+
+ return number < 0 ? Math.ceil(number) : Math.floor(number);
+ }
+ /***/
+
+ },
+ /* 1 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0__NumberMask__ = __webpack_require__(6);
+ /*
+ * This file is part of bbj-masks lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+ /* harmony default export */
+
+
+ __webpack_exports__["a"] = __WEBPACK_IMPORTED_MODULE_0__NumberMask__["a"
+ /* default */
+ ];
+ /***/
+ },
+ /* 2 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0__DateMask__ = __webpack_require__(7);
+ /* harmony reexport (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "e", function () {
+ return __WEBPACK_IMPORTED_MODULE_0__DateMask__["e"];
+ });
+ /* harmony reexport (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "g", function () {
+ return __WEBPACK_IMPORTED_MODULE_0__DateMask__["g"];
+ });
+ /* harmony reexport (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "h", function () {
+ return __WEBPACK_IMPORTED_MODULE_0__DateMask__["h"];
+ });
+ /* harmony reexport (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "a", function () {
+ return __WEBPACK_IMPORTED_MODULE_0__DateMask__["a"];
+ });
+ /* harmony reexport (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "b", function () {
+ return __WEBPACK_IMPORTED_MODULE_0__DateMask__["b"];
+ });
+ /* harmony reexport (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "d", function () {
+ return __WEBPACK_IMPORTED_MODULE_0__DateMask__["d"];
+ });
+ /* harmony reexport (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "f", function () {
+ return __WEBPACK_IMPORTED_MODULE_0__DateMask__["f"];
+ });
+ /*
+ * This file is part of bbj-masks lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+ /* harmony default export */
+
+
+ __webpack_exports__["c"] = __WEBPACK_IMPORTED_MODULE_0__DateMask__["c"
+ /* default */
+ ];
+ /***/
+ },
+ /* 3 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony export (immutable) */
+
+ __webpack_exports__["a"] = tzParseTimezone;
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0__tzTokenizeDate_index_js__ = __webpack_require__(9);
+
+ var MILLISECONDS_IN_HOUR = 3600000;
+ var MILLISECONDS_IN_MINUTE = 60000;
+ var patterns = {
+ timezone: /([Z+-].*)$/,
+ timezoneZ: /^(Z)$/,
+ timezoneHH: /^([+-])(\d{2})$/,
+ timezoneHHMM: /^([+-])(\d{2}):?(\d{2})$/,
+ timezoneIANA: /(UTC|(?:[a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?))$/
+ }; // Parse various time zone offset formats to an offset in milliseconds
+
+ function tzParseTimezone(timezoneString, date) {
+ var token;
+ var absoluteOffset; // Z
+
+ token = patterns.timezoneZ.exec(timezoneString);
+
+ if (token) {
+ return 0;
+ }
+
+ var hours; // ±hh
+
+ token = patterns.timezoneHH.exec(timezoneString);
+
+ if (token) {
+ hours = parseInt(token[2], 10);
+
+ if (!validateTimezone(hours)) {
+ return NaN;
+ }
+
+ absoluteOffset = hours * MILLISECONDS_IN_HOUR;
+ return token[1] === '+' ? -absoluteOffset : absoluteOffset;
+ } // ±hh:mm or ±hhmm
+
+
+ token = patterns.timezoneHHMM.exec(timezoneString);
+
+ if (token) {
+ hours = parseInt(token[2], 10);
+ var minutes = parseInt(token[3], 10);
+
+ if (!validateTimezone(hours, minutes)) {
+ return NaN;
+ }
+
+ absoluteOffset = hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;
+ return token[1] === '+' ? -absoluteOffset : absoluteOffset;
+ } // IANA time zone
+
+
+ token = patterns.timezoneIANA.exec(timezoneString);
+
+ if (token) {
+ // var [fYear, fMonth, fDay, fHour, fMinute, fSecond] = tzTokenizeDate(date, timezoneString)
+ var tokens = Object(__WEBPACK_IMPORTED_MODULE_0__tzTokenizeDate_index_js__["a"
+ /* default */
+ ])(date, timezoneString);
+ var asUTC = Date.UTC(tokens[0], tokens[1] - 1, tokens[2], tokens[3], tokens[4], tokens[5]);
+ var timestampWithMsZeroed = date.getTime() - date.getTime() % 1000;
+ return -(asUTC - timestampWithMsZeroed);
+ }
+
+ return 0;
+ }
+
+ function validateTimezone(hours, minutes) {
+ if (minutes != null && (minutes < 0 || minutes > 59)) {
+ return false;
+ }
+
+ return true;
+ }
+ /***/
+
+ },
+ /* 4 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0__StringMask__ = __webpack_require__(19);
+ /*
+ * This file is part of bbj-masks lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+ /* harmony default export */
+
+
+ __webpack_exports__["a"] = __WEBPACK_IMPORTED_MODULE_0__StringMask__["a"
+ /* default */
+ ];
+ /***/
+ },
+ /* 5 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+
+ Object.defineProperty(__webpack_exports__, "__esModule", {
+ value: true
+ });
+ /* harmony export (binding) */
+
+ __webpack_require__.d(__webpack_exports__, "Utils", function () {
+ return Utils;
+ });
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_0__NumberMask__ = __webpack_require__(1);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_1__DateMask__ = __webpack_require__(2);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_2__StringMask__ = __webpack_require__(4);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_3__Types__ = __webpack_require__(20);
+ /* harmony reexport (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "Types", function () {
+ return __WEBPACK_IMPORTED_MODULE_3__Types__["a"];
+ });
+ /* harmony reexport (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "NumberMask", function () {
+ return __WEBPACK_IMPORTED_MODULE_0__NumberMask__["a"];
+ });
+ /* harmony reexport (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "DateMask", function () {
+ return __WEBPACK_IMPORTED_MODULE_1__DateMask__["c"];
+ });
+ /* harmony reexport (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "StringMask", function () {
+ return __WEBPACK_IMPORTED_MODULE_2__StringMask__["a"];
+ });
+ /*
+ * This file is part of bbj-masks lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+
+ var Utils = {
+ Dates: {
+ getDayOfYear: __WEBPACK_IMPORTED_MODULE_1__DateMask__["e"
+ /* getDayOfYear */
+ ],
+ getWeekNumber: __WEBPACK_IMPORTED_MODULE_1__DateMask__["g"
+ /* getWeekNumber */
+ ],
+ getWeekStartByLocale: __WEBPACK_IMPORTED_MODULE_1__DateMask__["h"
+ /* getWeekStartByLocale */
+ ],
+ IS_DATE_REGEX: __WEBPACK_IMPORTED_MODULE_1__DateMask__["a"
+ /* IS_DATE_REGEX */
+ ],
+ IS_TIME_REGEX: __WEBPACK_IMPORTED_MODULE_1__DateMask__["b"
+ /* IS_TIME_REGEX */
+ ],
+ fixShortISO: __WEBPACK_IMPORTED_MODULE_1__DateMask__["d"
+ /* fixShortISO */
+ ],
+ getTimezoneOrOffset: __WEBPACK_IMPORTED_MODULE_1__DateMask__["f"
+ /* getTimezoneOrOffset */
+ ]
+ }
+ };
+ /* harmony default export */
+
+ __webpack_exports__["default"] = __WEBPACK_IMPORTED_MODULE_3__Types__["a"
+ /* default */
+ ];
+ /***/
+ },
+ /* 6 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+ /*
+ * This file is part of bbj-masks lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+ /**
+ * NumberMask
+ *
+ * A javascript implementation for BBj numbers masking
+ *
+ * @author Hyyan Abo Fakher
+ */
+
+
+ var NumberMask = /*#__PURE__*/function () {
+ function NumberMask() {
+ _classCallCheck(this, NumberMask);
+ }
+
+ _createClass(NumberMask, null, [{
+ key: "mask",
+
+ /**
+ * Mask the given number with the given mask according to BBj rules
+ *
+ * @param {Number} number the number to format
+ * @param {String} mask the mask to use for formatting
+ * @param {String} [groupingSeparator=,] - a char which will be used as a grouping separator
+ * @param {String} [decimalSeparator=.] - a char which will be used as a decimal separator
+ * @param {Boolean} [forceTrailingZeros=false] - Affects the output by switching the way a mask with "#" characters in the trailing positions is filled.
+ * for example, the function `NumberMask.mask(.10:"#.##")` returns ` .10` instead of ` .1 `
+ * @param {Boolean} [loose=true] when true , errors will be ignored and the method will try at apply the mask
+ * anyway , otherwise it will stop at first error and throw it.
+ *
+ * @throws {MaskError} only if loose is disabled
+ *
+ * @returns {String} the masked number
+ */
+ value: function mask(number, _mask) {
+ var groupingSeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ',';
+ var decimalSeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';
+ var forceTrailingZeros = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
+ var loose = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
+ var maskLen = _mask.length;
+
+ if (0 === maskLen) {
+ if (loose) return str; // friendly silent fail
+ else throw {
+ name: 'MaskError',
+ message: "MaskError: Mask is empty"
+ };
+ } // Get magnitude and precision of MASK
+
+
+ var maskBeforeDecimal = 0;
+ var maskAfterDecimal = 0;
+ var foundDecimal = false;
+
+ for (var i = 0; i < maskLen; ++i) {
+ var m = _mask.charAt(i);
+
+ if (m == '0' || m == '#') {
+ if (foundDecimal) ++maskAfterDecimal;else ++maskBeforeDecimal;
+ } else if (m == '.') foundDecimal = true;
+ }
+
+ var num = NumberMask._round(number, maskAfterDecimal);
+
+ var bytes = NumberMask._toCharArray(num); // Get magnitude and precision of NUMBER
+
+
+ var inLen = bytes.length;
+ var numBeforeDecimal = 0;
+ var numAfterDecimal = 0;
+ foundDecimal = false;
+
+ for (var _i = 0; _i < inLen; ++_i) {
+ if (bytes[_i] == '.') foundDecimal = true;else {
+ if (foundDecimal) ++numAfterDecimal;else ++numBeforeDecimal;
+ }
+ } // always ignore mask overflow
+
+
+ if (numBeforeDecimal > maskBeforeDecimal) {
+ if (loose) return number.toString(); // friendly silent fail
+ else throw {
+ name: 'MaskError',
+ message: "MaskError: Number is too large for mask"
+ };
+ } // round if mask is for a lower precision number
+
+
+ if (numAfterDecimal > maskAfterDecimal) {
+ num = NumberMask._round(num, maskAfterDecimal);
+ bytes = NumberMask._toCharArray(num);
+ inLen = bytes.length; // Get new magnitude and precision of NUMBER
+
+ numBeforeDecimal = 0;
+ numAfterDecimal = 0;
+ foundDecimal = false;
+
+ for (var _i2 = 0; _i2 < inLen; ++_i2) {
+ if (bytes[_i2] == '.') foundDecimal = true;else {
+ if (foundDecimal) ++numAfterDecimal;else ++numBeforeDecimal;
+ }
+ } // always ignore mask overflow
+
+
+ if (numBeforeDecimal > maskBeforeDecimal) {
+ if (loose) return number.toString(); // friendly silent fail
+ else throw {
+ name: 'MaskError',
+ message: "MaskError: Number is too large for mask"
+ };
+ }
+ }
+
+ var fillByte = ' ',
+ floatByte = ' ';
+ var inPos = 0,
+ outPos = 0,
+ floatPos = 0;
+ if (_mask.charAt(0) == '*') fillByte = '*';
+ var fillInit = fillByte;
+ var isNegative = NumberMask._getSign(num) < 0;
+ var emitDecimal = inLen > 0 || _mask.indexOf('0') >= 0;
+ var foundZero = false;
+ var foundDigit = false;
+ var currency = false;
+ foundDecimal = false;
+ var ret = new Array(maskLen);
+
+ for (var maskPos = 0; maskPos < maskLen; ++maskPos) {
+ var _m = _mask.charAt(maskPos);
+
+ switch (_m) {
+ case '0':
+ --maskBeforeDecimal;
+
+ if (maskBeforeDecimal < numBeforeDecimal && inPos < inLen) {
+ ret[outPos] = bytes[inPos];
+ ++inPos;
+ foundDigit = true;
+ } else {
+ ret[outPos] = '0';
+ foundZero = true;
+ }
+
+ ++outPos;
+ break;
+
+ case '#':
+ --maskBeforeDecimal;
+
+ if (maskBeforeDecimal < numBeforeDecimal && inPos < inLen) {
+ ret[outPos] = bytes[inPos];
+ ++inPos;
+ foundDigit = true;
+ } else {
+ ret[outPos] = foundDecimal && forceTrailingZeros && NumberMask._getSign(num) != 0 ? '0' : fillByte;
+ if (!foundDecimal) floatPos = maskPos;
+ }
+
+ ++outPos;
+ break;
+
+ case ',':
+ if (foundZero || inPos > 0) ret[outPos] = groupingSeparator;else {
+ ret[outPos] = fillByte;
+ if (!foundDecimal) floatPos = maskPos;
+ }
+ ++outPos;
+ break;
+
+ case '-':
+ if (!foundDigit && floatByte == ' ') {
+ if (isNegative) floatByte = '-';
+ ret[outPos] = fillByte;
+ floatPos = foundDecimal ? -1 : maskPos;
+ } else ret[outPos] = isNegative ? '-' : fillByte;
+
+ ++outPos;
+ break;
+
+ case '+':
+ if (!foundDigit && floatByte == ' ') {
+ floatByte = isNegative ? '-' : '+';
+ ret[outPos] = fillByte;
+ floatPos = foundDecimal ? -1 : maskPos;
+ } else ret[outPos] = isNegative ? '-' : '+';
+
+ ++outPos;
+ break;
+
+ case '$':
+ if (!foundDigit && floatByte == ' ') {
+ floatByte = '$';
+ ret[outPos] = fillByte;
+ floatPos = foundDecimal ? -1 : maskPos;
+ } else {
+ ret[outPos] = '$';
+ }
+
+ ++outPos;
+ break;
+ // case '&':
+ // currency = true
+ // if (!foundDigit && floatByte == ' ') {
+ // floatByte = '&'
+ // ret[outPos] = fillByte
+ // floatPos = foundDecimal ? -1 : maskPos
+ // } else {
+ // ret[outPos] = '&'
+ // }
+ // ++outPos
+ // break
+ // case '@':
+ // currency = true
+ // if (!foundDigit && floatByte == ' ') {
+ // floatByte = '@'
+ // ret[outPos] = fillByte
+ // floatPos = foundDecimal ? -1 : maskPos
+ // } else {
+ // ret[outPos] = '@'
+ // }
+ // ++outPos
+ // break
+
+ case '(':
+ if (!foundDigit && floatByte == ' ') {
+ if (isNegative) floatByte = '(';
+ ret[outPos] = fillByte;
+ floatPos = foundDecimal ? -1 : maskPos;
+ } else {
+ if (isNegative) {
+ ret[outPos] = '(';
+ } else {
+ ret[outPos] = foundDecimal ? ' ' : fillByte;
+ }
+ }
+
+ ++outPos;
+ break;
+
+ case ')':
+ if (isNegative) {
+ ret[outPos] = ')';
+ } else {
+ ret[outPos] = foundDecimal ? ' ' : fillByte;
+ }
+
+ ++outPos;
+ break;
+
+ case 'C':
+ if (maskPos < maskLen - 1 && _mask.charAt(maskPos + 1) == 'R') {
+ if (isNegative) {
+ ret[outPos] = 'C';
+ ret[outPos + 1] = 'R';
+ } else {
+ ret[outPos] = ' ';
+ ret[outPos + 1] = ' ';
+ }
+
+ outPos += 2;
+ ++maskPos;
+ } else {
+ ret[outPos] = 'C';
+ ++outPos;
+ }
+
+ break;
+
+ case 'D':
+ if (maskPos < maskLen - 1 && _mask.charAt(maskPos + 1) == 'R') {
+ if (isNegative) {
+ ret[outPos] = 'C';
+ ret[outPos + 1] = 'R';
+ } else {
+ ret[outPos] = 'D';
+ ret[outPos + 1] = 'R';
+ }
+
+ outPos += 2;
+ ++maskPos;
+ } else {
+ ret[outPos] = 'D';
+ ++outPos;
+ }
+
+ break;
+
+ case '*':
+ ret[outPos] = '*';
+ ++outPos;
+ break;
+
+ case '.':
+ ret[outPos] = emitDecimal ? decimalSeparator : fillByte;
+ fillByte = ' ';
+ foundDecimal = true;
+ ++inPos;
+ ++outPos;
+ break;
+
+ case 'B':
+ ret[outPos] = ' ';
+ ++outPos;
+ break;
+
+ default:
+ ret[outPos] = _m;
+ ++outPos;
+ break;
+ }
+ }
+
+ if (floatByte != ' ') {
+ if (floatPos < 0) floatPos = outPos;
+
+ while (floatPos >= maskLen) {
+ --floatPos;
+ }
+
+ if (ret[floatPos] == fillInit) ret[floatPos] = floatByte;
+ }
+
+ return ret.join('');
+ }
+ }, {
+ key: "_shift",
+ value: function _shift(number, precision, reverseShift) {
+ if (reverseShift) precision = -precision;
+ var numArray = ('' + number).split('e');
+ return +(numArray[0] + 'e' + (numArray[1] ? +numArray[1] + precision : precision));
+ }
+ }, {
+ key: "_round",
+ value: function _round(number, precision) {
+ return NumberMask._shift(Math.round(NumberMask._shift(number, precision, false)), precision, true);
+ }
+ }, {
+ key: "_toCharArray",
+ value: function _toCharArray(number) {
+ var signum = NumberMask._getSign(number);
+
+ var chars = [];
+
+ if (signum !== 0) {
+ var string = signum < 0 ? "".concat(-1 * number.toString()) : number.toString();
+ if (string.length > 1 && string.charAt(0) == '0') string = string.substring(1); // The string contains only [0-9] and '.'
+
+ chars = string.split('');
+ }
+
+ return chars;
+ }
+ /**
+ * Returns the sign of a number
+ *
+ * @param {Number} x number
+ * @returns {Number} A number representing the sign of the given argument.
+ * If the argument is a positive number, negative number, positive zero
+ * or negative zero, the function will return 1, -1, 0 or -0 respectively.
+ * Otherwise, NaN is returned.
+ */
+
+ }, {
+ key: "_getSign",
+ value: function _getSign(x) {
+ return (x > 0) - (x < 0) || +x;
+ }
+ }]);
+
+ return NumberMask;
+ }();
+ /* harmony default export */
+
+
+ __webpack_exports__["a"] = NumberMask;
+ /***/
+ },
+ /* 7 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony export (binding) */
+
+ __webpack_require__.d(__webpack_exports__, "b", function () {
+ return IS_TIME_REGEX;
+ });
+ /* harmony export (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "a", function () {
+ return IS_DATE_REGEX;
+ });
+ /* harmony export (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "h", function () {
+ return getWeekStartByLocale;
+ });
+ /* harmony export (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "e", function () {
+ return getDayOfYear;
+ });
+ /* harmony export (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "d", function () {
+ return fixShortISO;
+ });
+ /* harmony export (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "f", function () {
+ return getTimezoneOrOffset;
+ });
+ /* harmony export (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "g", function () {
+ return getWeekNumber;
+ });
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_0_date_fns_tz_utcToZonedTime__ = __webpack_require__(8);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_1_weekstart__ = __webpack_require__(15);
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+ /*
+ * This file is part of bbj-masks lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+
+ var IS_TIME_REGEX = /^(2[0-3]|[01][0-9]):?([0-5][0-9]):?([0-5][0-9])(Z|[+-](?:2[0-3]|[01][0-9])(?::?(?:[0-5][0-9]))?)$/;
+ var IS_DATE_REGEX = /^(([12]\d{3})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(Z|[+-](?:2[0-3]|[01][0-9])(?::?(?:[0-5][0-9]))?))$/;
+ /**
+ * Find out when the first day of the week based on the passed locale
+ *
+ * @param {locale} locale
+ *
+ * @return {Number} a number 0 = sunday , 1 = monday , ....
+ */
+
+ var getWeekStartByLocale = function getWeekStartByLocale(locale) {
+ return Object(__WEBPACK_IMPORTED_MODULE_1_weekstart__["a"
+ /* getWeekStartByLocale */
+ ])(locale);
+ };
+ /**
+ * Get day number in the year of the passed date
+ *
+ * @param {Date} date
+ *
+ * @return {Number} day number
+ */
+
+
+ var getDayOfYear = function getDayOfYear(date) {
+ var start = new Date(date.getFullYear(), 0, 0);
+ var diff = date - start + (start.getTimezoneOffset() - date.getTimezoneOffset()) * 60 * 1000;
+ var oneDay = 1000 * 60 * 60 * 24;
+ var day = Math.floor(diff / oneDay);
+ return day;
+ };
+ /**
+ * Takes incomplete iso string and return a complete one
+ *
+ * @param {String} date incomplete iso string
+ *
+ * @return {String} complete iso string
+ */
+
+
+ var fixShortISO = function fixShortISO(date) {
+ var value = date;
+ var offset = (value.match(/z$|[+\-]\d\d:\d\d$/i) || [])[0];
+
+ if (!offset) {
+ offset = 'Z';
+ value += offset;
+ }
+
+ if (IS_TIME_REGEX.test(value)) {
+ value = "1970-01-01T".concat(value);
+ } else if (IS_DATE_REGEX.test(value)) {
+ value = "".concat(value.split(offset)[0], "T00:00:00").concat(offset);
+ }
+
+ return value;
+ };
+ /**
+ * Get the browser timezone name , if not supported then the browser
+ * timezone offset formatted
+ *
+ * @return {String} timezone of offset
+ */
+
+
+ var getTimezoneOrOffset = function getTimezoneOrOffset() {
+ var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
+
+ if (!timezone) {
+ var pad = function pad(number, length) {
+ var str = '' + number;
+
+ while (str.length < length) {
+ str = '0' + str;
+ }
+
+ return str;
+ };
+
+ var offset = new Date().getTimezoneOffset();
+ offset = (offset < 0 ? '+' : '-') + // Note the reversed sign!
+ pad(parseInt(Math.abs(offset / 60)), 2) + pad(Math.abs(offset % 60), 2);
+ return offset;
+ }
+
+ return timezone;
+ };
+ /**
+ * Get the Week Number in the passed date
+ *
+ * @param {Date} date - Date object
+ * @param {Number} weekStart A number which defines the first day of the week (0 = sunday , 1 = monday , ...)
+ *
+ * @returns {Number} the week number
+ */
+
+
+ var getWeekNumber = function getWeekNumber(date, weekStart) {
+ var d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
+ var dayNum = d.getUTCDay() - (weekStart - 1) || 7;
+ d.setUTCDate(d.getUTCDate() + 4 - dayNum);
+ var yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
+ return Math.ceil(((d - yearStart) / 86400000 + 1) / 7);
+ };
+ /**
+ * DateMask
+ *
+ * A javascript implementation for BBj dates masking
+ *
+ * @author Hyyan Abo Fakher
+ */
+
+
+ var DateMask = /*#__PURE__*/function () {
+ function DateMask() {
+ _classCallCheck(this, DateMask);
+ }
+
+ _createClass(DateMask, null, [{
+ key: "mask",
+
+ /**
+ * Mask date
+ *
+ * Mask the passed date with the passed mask
+ *
+ * @param {String} date date as a string
+ * @param {String} mask mask as a string
+ * @param {String} [locale=Browser's locale] the language to use ex(en-US). default is to the system language
+ * @param {String} [timezone=System timezone] the time zone descriptor (e.g. America/Los_Angeles). default to the system
+ * timezone
+ *
+ * @return {String} a date masked with the given mask
+ */
+ value: function mask(date, _mask, locale, timezone) {
+ if (!date) return '';
+ if (!_mask) return date;
+ timezone = timezone || getTimezoneOrOffset();
+ locale = locale || Intl.DateTimeFormat().resolvedOptions().locale || 'en-US'; // make sure we have a complete iso string
+
+ date = date instanceof Date ? date : fixShortISO(date);
+ var dateObject = Object(__WEBPACK_IMPORTED_MODULE_0_date_fns_tz_utcToZonedTime__["a"
+ /* default */
+ ])(date, timezone);
+
+ var translation = DateMask._buildTranslation({
+ year: dateObject.getFullYear(),
+ month: dateObject.getMonth() + 1,
+ monthShort: new Intl.DateTimeFormat([locale], {
+ month: 'short'
+ }).format(dateObject),
+ monthLong: new Intl.DateTimeFormat([locale], {
+ month: 'long'
+ }).format(dateObject),
+ day: dateObject.getDate(),
+ dayShort: new Intl.DateTimeFormat([locale], {
+ weekday: 'short'
+ }).format(dateObject),
+ dayLong: new Intl.DateTimeFormat([locale], {
+ weekday: 'long'
+ }).format(dateObject),
+ minutes: dateObject.getMinutes(),
+ seconds: dateObject.getSeconds(),
+
+ get hours24() {
+ return dateObject.getHours();
+ },
+
+ get hours12() {
+ return this.hours24 % 12 || 12;
+ },
+
+ dayOfYear: getDayOfYear(dateObject),
+ dayOfWeek: dateObject.getDay() + 1,
+ // Sunday = 1 in BBj but Sunday = 0 in JS
+ weekNumber: getWeekNumber(dateObject, getWeekStartByLocale(locale)),
+ locale: locale,
+ timezone: timezone
+ });
+
+ var result = _mask;
+
+ for (var k in translation) {
+ result = result.replace(new RegExp('(%' + k + ')', 'g'), translation[k]);
+ }
+
+ return result;
+ }
+ /**
+ * Get a map object which contains all possible forms of masks
+ *
+ * @param {Object} dateDetails date
+ *
+ * @return {Object} forms masks
+ */
+
+ }, {
+ key: "_buildTranslation",
+ value: function _buildTranslation(dateDetails) {
+ return {
+ // year
+ Yz: dateDetails.year.toString().substr(-2),
+ Ys: dateDetails.year,
+ Yl: dateDetails.year,
+ Yp: String.fromCharCode(dateDetails.year),
+ Yd: dateDetails.year,
+ Y: dateDetails.year,
+ // month
+ Mz: String(dateDetails.month).length == 1 ? '0' + dateDetails.month : dateDetails.month,
+ Ms: dateDetails.monthShort,
+ Ml: dateDetails.monthLong,
+ Mp: String.fromCharCode(dateDetails.month),
+ Md: dateDetails.month,
+ M: dateDetails.month,
+ // day
+ Dz: String(dateDetails.day).length == 1 ? '0' + dateDetails.day : dateDetails.day,
+ Ds: dateDetails.dayShort,
+ Dl: dateDetails.dayLong,
+ Dp: String.fromCharCode(dateDetails.day),
+ Dd: dateDetails.day,
+ D: dateDetails.day,
+ // hour 24
+ Hz: String(dateDetails.hours24).length == 1 ? '0' + dateDetails.hours24 : dateDetails.hours24,
+ Hs: dateDetails.hours24,
+ Hl: dateDetails.hours24,
+ Hp: String.fromCharCode(dateDetails.hours24),
+ Hd: dateDetails.hours24,
+ H: dateDetails.hours24,
+ // hour 12
+ hz: String(dateDetails.hours12).length == 1 ? '0' + dateDetails.hours12 : dateDetails.hours12,
+ hs: dateDetails.hours12,
+ hl: dateDetails.hours12,
+ hp: String.fromCharCode(dateDetails.hours12),
+ hd: dateDetails.hours12,
+ h: dateDetails.hours12,
+ // minutes
+ mz: String(dateDetails.minutes).length == 1 ? '0' + dateDetails.minutes : dateDetails.minutes,
+ ms: dateDetails.minutes,
+ ml: dateDetails.minutes,
+ mp: String.fromCharCode(dateDetails.minutes),
+ md: dateDetails.minutes,
+ m: dateDetails.minutes,
+ // seconds
+ sz: String(dateDetails.seconds).length == 1 ? '0' + dateDetails.seconds : dateDetails.seconds,
+ ss: dateDetails.seconds,
+ sl: dateDetails.seconds,
+ sp: String.fromCharCode(dateDetails.seconds),
+ sd: dateDetails.seconds,
+ s: dateDetails.seconds,
+ // AM , PM
+ PP: dateDetails.hours24 > 12 ? 'PM' : 'PM',
+ P: dateDetails.hours24 > 12 ? 'PM' : 'AM',
+ pp: dateDetails.hours24 > 12 ? 'pm' : 'am',
+ p: dateDetails.hours24 > 12 ? 'pm' : 'am',
+ // Day of Year
+ Jz: String(dateDetails.dayOfYear).length == 1 ? '0' + dateDetails.dayOfYear : dateDetails.dayOfYear,
+ Js: dateDetails.dayOfYear,
+ Jl: dateDetails.dayOfYear,
+ Jd: dateDetails.dayOfYear,
+ J: dateDetails.dayOfYear,
+ // Day Of Week
+ Wz: String(dateDetails.dayOfWeek).length == 1 ? '0' + dateDetails.dayOfWeek : dateDetails.dayOfWeek,
+ Ws: dateDetails.dayOfWeek,
+ Wl: dateDetails.dayOfWeek,
+ Wp: String.fromCharCode(dateDetails.dayOfWeek),
+ Wd: dateDetails.dayOfWeek,
+ W: dateDetails.dayOfWeek,
+ // week number
+ wz: String(dateDetails.weekNumber).length == 1 ? '0' + dateDetails.weekNumber : dateDetails.weekNumber,
+ ws: dateDetails.weekNumber,
+ wl: dateDetails.weekNumber,
+ wp: String.fromCharCode(dateDetails.weekNumber),
+ wd: dateDetails.weekNumber,
+ w: dateDetails.weekNumber
+ };
+ }
+ }]);
+
+ return DateMask;
+ }();
+ /* harmony default export */
+
+
+ __webpack_exports__["c"] = DateMask;
+ /***/
+ },
+ /* 8 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony export (immutable) */
+
+ __webpack_exports__["a"] = utcToZonedTime;
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0__lib_tzParseTimezone__ = __webpack_require__(3);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_1_date_fns_esm_subMilliseconds__ = __webpack_require__(10);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_2__toDate__ = __webpack_require__(13);
+ /**
+ * @name utcToZonedTime
+ * @category Time Zone Helpers
+ * @summary Get a date/time representing local time in a given time zone from the UTC date
+ *
+ * @description
+ * Returns a date instance with values representing the local time in the time zone
+ * specified of the UTC time from the date provided. In other words, when the new date
+ * is formatted it will show the equivalent hours in the target time zone regardless
+ * of the current system time zone.
+ *
+ * @param {Date|String|Number} date - the date with the relevant UTC time
+ * @param {String} timeZone - the time zone to get local time for, can be an offset or IANA time zone
+ * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}
+ * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}
+ * @returns {Date} the new date with the equivalent time in the time zone
+ * @throws {TypeError} 2 arguments required
+ * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2
+ *
+ * @example
+ * // In June 10am UTC is 6am in New York (-04:00)
+ * const result = utcToZonedTime('2014-06-25T10:00:00.000Z', 'America/New_York')
+ * //=> Jun 25 2014 06:00:00
+ */
+
+
+ function utcToZonedTime(dirtyDate, timeZone, options) {
+ var date = Object(__WEBPACK_IMPORTED_MODULE_2__toDate__["a"
+ /* default */
+ ])(dirtyDate, options); // This date has the UTC time values of the input date at the system time zone
+
+ var utcDate = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds()); // We just need to apply the offset indicated by the time zone to this localized date
+
+ var offsetMilliseconds = Object(__WEBPACK_IMPORTED_MODULE_0__lib_tzParseTimezone__["a"
+ /* default */
+ ])(timeZone, date);
+ return offsetMilliseconds ? Object(__WEBPACK_IMPORTED_MODULE_1_date_fns_esm_subMilliseconds__["a"
+ /* default */
+ ])(utcDate, offsetMilliseconds) : utcDate;
+ }
+ /***/
+
+ },
+ /* 9 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony export (immutable) */
+
+ __webpack_exports__["a"] = tzTokenizeDate;
+ /**
+ * Returns the [year, month, day, hour, minute, seconds] tokens of the provided
+ * `date` as it will be rendered in the `timeZone`.
+ */
+
+ function tzTokenizeDate(date, timeZone) {
+ var dtf = getDateTimeFormat(timeZone);
+ return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date);
+ }
+
+ var typeToPos = {
+ year: 0,
+ month: 1,
+ day: 2,
+ hour: 3,
+ minute: 4,
+ second: 5
+ };
+
+ function partsOffset(dtf, date) {
+ var formatted = dtf.formatToParts(date);
+ var filled = [];
+
+ for (var i = 0; i < formatted.length; i++) {
+ var pos = typeToPos[formatted[i].type];
+
+ if (pos >= 0) {
+ filled[pos] = parseInt(formatted[i].value, 10);
+ }
+ }
+
+ return filled;
+ }
+
+ function hackyOffset(dtf, date) {
+ var formatted = dtf.format(date).replace(/\u200E/g, '');
+ var parsed = /(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(formatted); // var [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed
+ // return [fYear, fMonth, fDay, fHour, fMinute, fSecond]
+
+ return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]];
+ } // Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used
+ // to get deterministic local date/time output according to the `en-US` locale which
+ // can be used to extract local time parts as necessary.
+
+
+ var dtfCache = {};
+
+ function getDateTimeFormat(timeZone) {
+ if (!dtfCache[timeZone]) {
+ // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`
+ var testDateFormatted = new Intl.DateTimeFormat('en-US', {
+ hour12: false,
+ timeZone: 'America/New_York',
+ year: 'numeric',
+ month: '2-digit',
+ day: '2-digit',
+ hour: '2-digit',
+ minute: '2-digit',
+ second: '2-digit'
+ }).format(new Date('2014-06-25T04:00:00.123Z'));
+ var hourCycleSupported = testDateFormatted === '06/25/2014, 00:00:00' || testDateFormatted === '06/25/2014 00:00:00';
+ dtfCache[timeZone] = hourCycleSupported ? new Intl.DateTimeFormat('en-US', {
+ hour12: false,
+ timeZone: timeZone,
+ year: 'numeric',
+ month: '2-digit',
+ day: '2-digit',
+ hour: '2-digit',
+ minute: '2-digit',
+ second: '2-digit'
+ }) : new Intl.DateTimeFormat('en-US', {
+ hourCycle: 'h23',
+ timeZone: timeZone,
+ year: 'numeric',
+ month: '2-digit',
+ day: '2-digit',
+ hour: '2-digit',
+ minute: '2-digit',
+ second: '2-digit'
+ });
+ }
+
+ return dtfCache[timeZone];
+ }
+ /***/
+
+ },
+ /* 10 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony export (immutable) */
+
+ __webpack_exports__["a"] = subMilliseconds;
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0__lib_toInteger_index_js__ = __webpack_require__(0);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_1__addMilliseconds_index_js__ = __webpack_require__(11);
+ /**
+ * @name subMilliseconds
+ * @category Millisecond Helpers
+ * @summary Subtract the specified number of milliseconds from the given date.
+ *
+ * @description
+ * Subtract the specified number of milliseconds from the given date.
+ *
+ * ### v2.0.0 breaking changes:
+ *
+ * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).
+ *
+ * @param {Date|Number} date - the date to be changed
+ * @param {Number} amount - the amount of milliseconds to be subtracted
+ * @returns {Date} the new date with the milliseconds subtracted
+ * @throws {TypeError} 2 arguments required
+ *
+ * @example
+ * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:
+ * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)
+ * //=> Thu Jul 10 2014 12:45:29.250
+ */
+
+
+ function subMilliseconds(dirtyDate, dirtyAmount) {
+ if (arguments.length < 2) {
+ throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');
+ }
+
+ var amount = Object(__WEBPACK_IMPORTED_MODULE_0__lib_toInteger_index_js__["a"
+ /* default */
+ ])(dirtyAmount);
+ return Object(__WEBPACK_IMPORTED_MODULE_1__addMilliseconds_index_js__["a"
+ /* default */
+ ])(dirtyDate, -amount);
+ }
+ /***/
+
+ },
+ /* 11 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony export (immutable) */
+
+ __webpack_exports__["a"] = addMilliseconds;
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0__lib_toInteger_index_js__ = __webpack_require__(0);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_1__toDate_index_js__ = __webpack_require__(12);
+ /**
+ * @name addMilliseconds
+ * @category Millisecond Helpers
+ * @summary Add the specified number of milliseconds to the given date.
+ *
+ * @description
+ * Add the specified number of milliseconds to the given date.
+ *
+ * ### v2.0.0 breaking changes:
+ *
+ * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).
+ *
+ * @param {Date|Number} date - the date to be changed
+ * @param {Number} amount - the amount of milliseconds to be added
+ * @returns {Date} the new date with the milliseconds added
+ * @throws {TypeError} 2 arguments required
+ *
+ * @example
+ * // Add 750 milliseconds to 10 July 2014 12:45:30.000:
+ * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)
+ * //=> Thu Jul 10 2014 12:45:30.750
+ */
+
+
+ function addMilliseconds(dirtyDate, dirtyAmount) {
+ if (arguments.length < 2) {
+ throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');
+ }
+
+ var timestamp = Object(__WEBPACK_IMPORTED_MODULE_1__toDate_index_js__["a"
+ /* default */
+ ])(dirtyDate).getTime();
+ var amount = Object(__WEBPACK_IMPORTED_MODULE_0__lib_toInteger_index_js__["a"
+ /* default */
+ ])(dirtyAmount);
+ return new Date(timestamp + amount);
+ }
+ /***/
+
+ },
+ /* 12 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony export (immutable) */
+
+ __webpack_exports__["a"] = toDate;
+ /**
+ * @name toDate
+ * @category Common Helpers
+ * @summary Convert the given argument to an instance of Date.
+ *
+ * @description
+ * Convert the given argument to an instance of Date.
+ *
+ * If the argument is an instance of Date, the function returns its clone.
+ *
+ * If the argument is a number, it is treated as a timestamp.
+ *
+ * If the argument is none of the above, the function returns Invalid Date.
+ *
+ * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
+ *
+ * @param {Date|Number} argument - the value to convert
+ * @returns {Date} the parsed date in the local time zone
+ * @throws {TypeError} 1 argument required
+ *
+ * @example
+ * // Clone the date:
+ * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
+ * //=> Tue Feb 11 2014 11:30:30
+ *
+ * @example
+ * // Convert the timestamp to date:
+ * const result = toDate(1392098430000)
+ * //=> Tue Feb 11 2014 11:30:30
+ */
+
+ function toDate(argument) {
+ if (arguments.length < 1) {
+ throw new TypeError('1 argument required, but only ' + arguments.length + ' present');
+ }
+
+ var argStr = Object.prototype.toString.call(argument); // Clone the date
+
+ if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {
+ // Prevent the date to lose the milliseconds when passed to new Date() in IE10
+ return new Date(argument.getTime());
+ } else if (typeof argument === 'number' || argStr === '[object Number]') {
+ return new Date(argument);
+ } else {
+ if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {
+ // eslint-disable-next-line no-console
+ console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"); // eslint-disable-next-line no-console
+
+ console.warn(new Error().stack);
+ }
+
+ return new Date(NaN);
+ }
+ }
+ /***/
+
+ },
+ /* 13 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony export (immutable) */
+
+ __webpack_exports__["a"] = toDate;
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0_date_fns_esm_lib_toInteger_index_js__ = __webpack_require__(0);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_1_date_fns_esm_lib_getTimezoneOffsetInMilliseconds_index_js__ = __webpack_require__(14);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_2__lib_tzParseTimezone__ = __webpack_require__(3);
+
+ var MILLISECONDS_IN_HOUR = 3600000;
+ var MILLISECONDS_IN_MINUTE = 60000;
+ var DEFAULT_ADDITIONAL_DIGITS = 2;
+ var patterns = {
+ dateTimeDelimeter: /[T ]/,
+ plainTime: /:/,
+ timeZoneDelimeter: /[Z ]/i,
+ // year tokens
+ YY: /^(\d{2})$/,
+ YYY: [/^([+-]\d{2})$/, // 0 additional digits
+ /^([+-]\d{3})$/, // 1 additional digit
+ /^([+-]\d{4})$/ // 2 additional digits
+ ],
+ YYYY: /^(\d{4})/,
+ YYYYY: [/^([+-]\d{4})/, // 0 additional digits
+ /^([+-]\d{5})/, // 1 additional digit
+ /^([+-]\d{6})/ // 2 additional digits
+ ],
+ // date tokens
+ MM: /^-(\d{2})$/,
+ DDD: /^-?(\d{3})$/,
+ MMDD: /^-?(\d{2})-?(\d{2})$/,
+ Www: /^-?W(\d{2})$/,
+ WwwD: /^-?W(\d{2})-?(\d{1})$/,
+ HH: /^(\d{2}([.,]\d*)?)$/,
+ HHMM: /^(\d{2}):?(\d{2}([.,]\d*)?)$/,
+ HHMMSS: /^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,
+ // timezone tokens (to identify the presence of a tz)
+ timezone: /([Z+-].*| UTC|(?:[a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?))$/
+ };
+ /**
+ * @name toDate
+ * @category Common Helpers
+ * @summary Convert the given argument to an instance of Date.
+ *
+ * @description
+ * Convert the given argument to an instance of Date.
+ *
+ * If the argument is an instance of Date, the function returns its clone.
+ *
+ * If the argument is a number, it is treated as a timestamp.
+ *
+ * If an argument is a string, the function tries to parse it.
+ * Function accepts complete ISO 8601 formats as well as partial implementations.
+ * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601
+ * If the function cannot parse the string or the values are invalid, it returns Invalid Date.
+ *
+ * If the argument is none of the above, the function returns Invalid Date.
+ *
+ * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
+ * All *date-fns* functions will throw `RangeError` if `options.additionalDigits` is not 0, 1, 2 or undefined.
+ *
+ * @param {Date|String|Number} argument - the value to convert
+ * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}
+ * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format
+ * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.
+ * @returns {Date} the parsed date in the local time zone
+ * @throws {TypeError} 1 argument required
+ * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2
+ *
+ * @example
+ * // Convert string '2014-02-11T11:30:30' to date:
+ * var result = toDate('2014-02-11T11:30:30')
+ * //=> Tue Feb 11 2014 11:30:30
+ *
+ * @example
+ * // Convert string '+02014101' to date,
+ * // if the additional number of digits in the extended year format is 1:
+ * var result = toDate('+02014101', {additionalDigits: 1})
+ * //=> Fri Apr 11 2014 00:00:00
+ */
+
+ function toDate(argument, dirtyOptions) {
+ if (arguments.length < 1) {
+ throw new TypeError('1 argument required, but only ' + arguments.length + ' present');
+ }
+
+ if (argument === null) {
+ return new Date(NaN);
+ }
+
+ var options = dirtyOptions || {};
+ var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : Object(__WEBPACK_IMPORTED_MODULE_0_date_fns_esm_lib_toInteger_index_js__["a"
+ /* default */
+ ])(options.additionalDigits);
+
+ if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {
+ throw new RangeError('additionalDigits must be 0, 1 or 2');
+ } // Clone the date
+
+
+ if (argument instanceof Date || _typeof(argument) === 'object' && Object.prototype.toString.call(argument) === '[object Date]') {
+ // Prevent the date to lose the milliseconds when passed to new Date() in IE10
+ return new Date(argument.getTime());
+ } else if (typeof argument === 'number' || Object.prototype.toString.call(argument) === '[object Number]') {
+ return new Date(argument);
+ } else if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {
+ return new Date(NaN);
+ }
+
+ var dateStrings = splitDateString(argument);
+ var parseYearResult = parseYear(dateStrings.date, additionalDigits);
+ var year = parseYearResult.year;
+ var restDateString = parseYearResult.restDateString;
+ var date = parseDate(restDateString, year);
+
+ if (isNaN(date)) {
+ return new Date(NaN);
+ }
+
+ if (date) {
+ var timestamp = date.getTime();
+ var time = 0;
+ var offset;
+
+ if (dateStrings.time) {
+ time = parseTime(dateStrings.time);
+
+ if (isNaN(time)) {
+ return new Date(NaN);
+ }
+ }
+
+ if (dateStrings.timezone || options.timeZone) {
+ offset = Object(__WEBPACK_IMPORTED_MODULE_2__lib_tzParseTimezone__["a"
+ /* default */
+ ])(dateStrings.timezone || options.timeZone, new Date(timestamp + time));
+
+ if (isNaN(offset)) {
+ return new Date(NaN);
+ }
+ } else {
+ // get offset accurate to hour in timezones that change offset
+ offset = Object(__WEBPACK_IMPORTED_MODULE_1_date_fns_esm_lib_getTimezoneOffsetInMilliseconds_index_js__["a"
+ /* default */
+ ])(new Date(timestamp + time));
+ offset = Object(__WEBPACK_IMPORTED_MODULE_1_date_fns_esm_lib_getTimezoneOffsetInMilliseconds_index_js__["a"
+ /* default */
+ ])(new Date(timestamp + time + offset));
+ }
+
+ return new Date(timestamp + time + offset);
+ } else {
+ return new Date(NaN);
+ }
+ }
+
+ function splitDateString(dateString) {
+ var dateStrings = {};
+ var array = dateString.split(patterns.dateTimeDelimeter);
+ var timeString;
+
+ if (patterns.plainTime.test(array[0])) {
+ dateStrings.date = null;
+ timeString = array[0];
+ } else {
+ dateStrings.date = array[0];
+ timeString = array[1];
+ dateStrings.timezone = array[2];
+
+ if (patterns.timeZoneDelimeter.test(dateStrings.date)) {
+ dateStrings.date = dateString.split(patterns.timeZoneDelimeter)[0];
+ timeString = dateString.substr(dateStrings.date.length, dateString.length);
+ }
+ }
+
+ if (timeString) {
+ var token = patterns.timezone.exec(timeString);
+
+ if (token) {
+ dateStrings.time = timeString.replace(token[1], '');
+ dateStrings.timezone = token[1];
+ } else {
+ dateStrings.time = timeString;
+ }
+ }
+
+ return dateStrings;
+ }
+
+ function parseYear(dateString, additionalDigits) {
+ var patternYYY = patterns.YYY[additionalDigits];
+ var patternYYYYY = patterns.YYYYY[additionalDigits];
+ var token; // YYYY or ±YYYYY
+
+ token = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString);
+
+ if (token) {
+ var yearString = token[1];
+ return {
+ year: parseInt(yearString, 10),
+ restDateString: dateString.slice(yearString.length)
+ };
+ } // YY or ±YYY
+
+
+ token = patterns.YY.exec(dateString) || patternYYY.exec(dateString);
+
+ if (token) {
+ var centuryString = token[1];
+ return {
+ year: parseInt(centuryString, 10) * 100,
+ restDateString: dateString.slice(centuryString.length)
+ };
+ } // Invalid ISO-formatted year
+
+
+ return {
+ year: null
+ };
+ }
+
+ function parseDate(dateString, year) {
+ // Invalid ISO-formatted year
+ if (year === null) {
+ return null;
+ }
+
+ var token;
+ var date;
+ var month;
+ var week; // YYYY
+
+ if (dateString.length === 0) {
+ date = new Date(0);
+ date.setUTCFullYear(year);
+ return date;
+ } // YYYY-MM
+
+
+ token = patterns.MM.exec(dateString);
+
+ if (token) {
+ date = new Date(0);
+ month = parseInt(token[1], 10) - 1;
+
+ if (!validateDate(year, month)) {
+ return new Date(NaN);
+ }
+
+ date.setUTCFullYear(year, month);
+ return date;
+ } // YYYY-DDD or YYYYDDD
+
+
+ token = patterns.DDD.exec(dateString);
+
+ if (token) {
+ date = new Date(0);
+ var dayOfYear = parseInt(token[1], 10);
+
+ if (!validateDayOfYearDate(year, dayOfYear)) {
+ return new Date(NaN);
+ }
+
+ date.setUTCFullYear(year, 0, dayOfYear);
+ return date;
+ } // yyyy-MM-dd or YYYYMMDD
+
+
+ token = patterns.MMDD.exec(dateString);
+
+ if (token) {
+ date = new Date(0);
+ month = parseInt(token[1], 10) - 1;
+ var day = parseInt(token[2], 10);
+
+ if (!validateDate(year, month, day)) {
+ return new Date(NaN);
+ }
+
+ date.setUTCFullYear(year, month, day);
+ return date;
+ } // YYYY-Www or YYYYWww
+
+
+ token = patterns.Www.exec(dateString);
+
+ if (token) {
+ week = parseInt(token[1], 10) - 1;
+
+ if (!validateWeekDate(year, week)) {
+ return new Date(NaN);
+ }
+
+ return dayOfISOWeekYear(year, week);
+ } // YYYY-Www-D or YYYYWwwD
+
+
+ token = patterns.WwwD.exec(dateString);
+
+ if (token) {
+ week = parseInt(token[1], 10) - 1;
+ var dayOfWeek = parseInt(token[2], 10) - 1;
+
+ if (!validateWeekDate(year, week, dayOfWeek)) {
+ return new Date(NaN);
+ }
+
+ return dayOfISOWeekYear(year, week, dayOfWeek);
+ } // Invalid ISO-formatted date
+
+
+ return null;
+ }
+
+ function parseTime(timeString) {
+ var token;
+ var hours;
+ var minutes; // hh
+
+ token = patterns.HH.exec(timeString);
+
+ if (token) {
+ hours = parseFloat(token[1].replace(',', '.'));
+
+ if (!validateTime(hours)) {
+ return NaN;
+ }
+
+ return hours % 24 * MILLISECONDS_IN_HOUR;
+ } // hh:mm or hhmm
+
+
+ token = patterns.HHMM.exec(timeString);
+
+ if (token) {
+ hours = parseInt(token[1], 10);
+ minutes = parseFloat(token[2].replace(',', '.'));
+
+ if (!validateTime(hours, minutes)) {
+ return NaN;
+ }
+
+ return hours % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;
+ } // hh:mm:ss or hhmmss
+
+
+ token = patterns.HHMMSS.exec(timeString);
+
+ if (token) {
+ hours = parseInt(token[1], 10);
+ minutes = parseInt(token[2], 10);
+ var seconds = parseFloat(token[3].replace(',', '.'));
+
+ if (!validateTime(hours, minutes, seconds)) {
+ return NaN;
+ }
+
+ return hours % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000;
+ } // Invalid ISO-formatted time
+
+
+ return null;
+ }
+
+ function dayOfISOWeekYear(isoWeekYear, week, day) {
+ week = week || 0;
+ day = day || 0;
+ var date = new Date(0);
+ date.setUTCFullYear(isoWeekYear, 0, 4);
+ var fourthOfJanuaryDay = date.getUTCDay() || 7;
+ var diff = week * 7 + day + 1 - fourthOfJanuaryDay;
+ date.setUTCDate(date.getUTCDate() + diff);
+ return date;
+ } // Validation functions
+
+
+ var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
+ var DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
+
+ function isLeapYearIndex(year) {
+ return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
+ }
+
+ function validateDate(year, month, date) {
+ if (month < 0 || month > 11) {
+ return false;
+ }
+
+ if (date != null) {
+ if (date < 1) {
+ return false;
+ }
+
+ var isLeapYear = isLeapYearIndex(year);
+
+ if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {
+ return false;
+ }
+
+ if (!isLeapYear && date > DAYS_IN_MONTH[month]) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ function validateDayOfYearDate(year, dayOfYear) {
+ if (dayOfYear < 1) {
+ return false;
+ }
+
+ var isLeapYear = isLeapYearIndex(year);
+
+ if (isLeapYear && dayOfYear > 366) {
+ return false;
+ }
+
+ if (!isLeapYear && dayOfYear > 365) {
+ return false;
+ }
+
+ return true;
+ }
+
+ function validateWeekDate(year, week, day) {
+ if (week < 0 || week > 52) {
+ return false;
+ }
+
+ if (day != null && (day < 0 || day > 6)) {
+ return false;
+ }
+
+ return true;
+ }
+
+ function validateTime(hours, minutes, seconds) {
+ if (hours != null && (hours < 0 || hours >= 25)) {
+ return false;
+ }
+
+ if (minutes != null && (minutes < 0 || minutes >= 60)) {
+ return false;
+ }
+
+ if (seconds != null && (seconds < 0 || seconds >= 60)) {
+ return false;
+ }
+
+ return true;
+ }
+ /***/
+
+ },
+ /* 14 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony export (immutable) */
+
+ __webpack_exports__["a"] = getTimezoneOffsetInMilliseconds;
+ var MILLISECONDS_IN_MINUTE = 60000;
+ /**
+ * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.
+ * They usually appear for dates that denote time before the timezones were introduced
+ * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891
+ * and GMT+01:00:00 after that date)
+ *
+ * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,
+ * which would lead to incorrect calculations.
+ *
+ * This function returns the timezone offset in milliseconds that takes seconds in account.
+ */
+
+ function getTimezoneOffsetInMilliseconds(dirtyDate) {
+ var date = new Date(dirtyDate.getTime());
+ var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());
+ date.setSeconds(0, 0);
+ var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE;
+ return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;
+ }
+ /***/
+
+ },
+ /* 15 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* unused harmony export getWeekStartByRegion */
+
+ /* harmony export (binding) */
+
+ __webpack_require__.d(__webpack_exports__, "a", function () {
+ return getWeekStartByLocale$1;
+ });
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_0__api_js__ = __webpack_require__(16);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_1__langRegionMap_js__ = __webpack_require__(17);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_2__regionDayMap_js__ = __webpack_require__(18);
+
+ function getWeekStartByRegion$1(regionCode) {
+ return Object(__WEBPACK_IMPORTED_MODULE_0__api_js__["b"
+ /* getWeekStartByRegion */
+ ])(regionCode, __WEBPACK_IMPORTED_MODULE_2__regionDayMap_js__["a"
+ /* default */
+ ]);
+ }
+
+ function getWeekStartByLocale$1(locale) {
+ return Object(__WEBPACK_IMPORTED_MODULE_0__api_js__["a"
+ /* getWeekStartByLocale */
+ ])(locale, __WEBPACK_IMPORTED_MODULE_1__langRegionMap_js__["a"
+ /* default */
+ ], __WEBPACK_IMPORTED_MODULE_2__regionDayMap_js__["a"
+ /* default */
+ ]);
+ }
+ /***/
+
+ },
+ /* 16 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony export (binding) */
+
+ __webpack_require__.d(__webpack_exports__, "b", function () {
+ return getWeekStartByRegion;
+ });
+ /* harmony export (binding) */
+
+
+ __webpack_require__.d(__webpack_exports__, "a", function () {
+ return getWeekStartByLocale;
+ });
+
+ function getWeekStartByRegion(regionCode, regionDayMap) {
+ var code = regionDayMap[typeof regionCode === 'string' ? regionCode.toUpperCase() : regionCode];
+ return typeof code === 'number' ? code : 1;
+ }
+
+ function getWeekStartByLocale(locale, langRegionMap, regionDayMap) {
+ if (locale) {
+ var data = locale.toLowerCase().split(/[-_]/);
+ var language = data[0];
+ var country;
+
+ if (data[1] && data[1].length === 4) {
+ language += "_" + data[1];
+ country = data[2];
+ } else {
+ country = data[1];
+ }
+
+ if (!country) {
+ country = langRegionMap[language];
+ }
+
+ if (country) {
+ return getWeekStartByRegion(country.match(/^\d+$/) ? Number(country) : country, regionDayMap);
+ }
+ }
+
+ return 1;
+ }
+ /***/
+
+ },
+ /* 17 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+
+ var langRegionMap = {
+ en: 'US',
+ zh: 'CN',
+ zh_hans: 'CN',
+ hans: 'CN',
+ wuu: 'CN',
+ hsn: 'CN',
+ hak: 'CN',
+ nan: 'CN',
+ gan: 'CN',
+ hi: 'IN',
+ te: 'IN',
+ mr: 'IN',
+ ta: 'IN',
+ gu: 'IN',
+ kn: 'IN',
+ or: 'IN',
+ ml: 'IN',
+ pa_guru: 'IN',
+ bho: 'IN',
+ awa: 'IN',
+ as: 'IN',
+ mwr: 'IN',
+ mai: 'IN',
+ mag: 'IN',
+ bgc: 'IN',
+ hne: 'IN',
+ dcc: 'IN',
+ dz: 'BT',
+ tn: 'BW',
+ am: 'ET',
+ om: 'ET',
+ quc: 'GT',
+ id: 'ID',
+ jv: 'ID',
+ su: 'ID',
+ mad: 'ID',
+ ms_arab: 'ID',
+ ga: 'IE',
+ he: 'IL',
+ jam: 'JM',
+ ja: 'JP',
+ km: 'KH',
+ ko: 'KR',
+ lo: 'LA',
+ mh: 'MH',
+ my: 'MM',
+ mt: 'MT',
+ ne: 'NP',
+ fil: 'PH',
+ ceb: 'PH',
+ ilo: 'PH',
+ ur: 'PK',
+ pa: 'PK',
+ pa_arab: 'PK',
+ arab: 'PK',
+ lah: 'PK',
+ ps: 'PK',
+ sd: 'PK',
+ sd_arab: 'PK',
+ skr: 'PK',
+ gn: 'PY',
+ th: 'TH',
+ tts: 'TH',
+ aeb: 'TN',
+ zh_hant: 'TW',
+ hant: 'TW',
+ sm: 'WS',
+ zu: 'ZA',
+ sn: 'ZW',
+ arq: 'DZ',
+ ar: 'EG',
+ arz: 'EG',
+ fa: 'IR',
+ az_arab: 'IR',
+ ary: 'MA',
+ bn: 'BD',
+ rkt: 'BD',
+ dv: 'MV'
+ };
+ /* harmony default export */
+
+ __webpack_exports__["a"] = langRegionMap;
+ /***/
+ },
+ /* 18 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+
+ var regionDayMap = {
+ AG: 0,
+ ATG: 0,
+ 28: 0,
+ AR: 0,
+ ARG: 0,
+ 32: 0,
+ AS: 0,
+ ASM: 0,
+ 16: 0,
+ AU: 0,
+ AUS: 0,
+ 36: 0,
+ BR: 0,
+ BRA: 0,
+ 76: 0,
+ BS: 0,
+ BHS: 0,
+ 44: 0,
+ BT: 0,
+ BTN: 0,
+ 64: 0,
+ BW: 0,
+ BWA: 0,
+ 72: 0,
+ BZ: 0,
+ BLZ: 0,
+ 84: 0,
+ CA: 0,
+ CAN: 0,
+ 124: 0,
+ CN: 0,
+ CHN: 0,
+ 156: 0,
+ CO: 0,
+ COL: 0,
+ 170: 0,
+ DM: 0,
+ DMA: 0,
+ 212: 0,
+ DO: 0,
+ DOM: 0,
+ 214: 0,
+ ET: 0,
+ ETH: 0,
+ 231: 0,
+ GT: 0,
+ GTM: 0,
+ 320: 0,
+ GU: 0,
+ GUM: 0,
+ 316: 0,
+ HK: 0,
+ HKG: 0,
+ 344: 0,
+ HN: 0,
+ HND: 0,
+ 340: 0,
+ ID: 0,
+ IDN: 0,
+ 360: 0,
+ IE: 0,
+ IRL: 0,
+ 372: 0,
+ IL: 0,
+ ISR: 0,
+ 376: 0,
+ IN: 0,
+ IND: 0,
+ 356: 0,
+ JM: 0,
+ JAM: 0,
+ 388: 0,
+ JP: 0,
+ JPN: 0,
+ 392: 0,
+ KE: 0,
+ KEN: 0,
+ 404: 0,
+ KH: 0,
+ KHM: 0,
+ 116: 0,
+ KR: 0,
+ KOR: 0,
+ 410: 0,
+ LA: 0,
+ LA0: 0,
+ 418: 0,
+ MH: 0,
+ MHL: 0,
+ 584: 0,
+ MM: 0,
+ MMR: 0,
+ 104: 0,
+ MO: 0,
+ MAC: 0,
+ 446: 0,
+ MT: 0,
+ MLT: 0,
+ 470: 0,
+ MX: 0,
+ MEX: 0,
+ 484: 0,
+ MZ: 0,
+ MOZ: 0,
+ 508: 0,
+ NI: 0,
+ NIC: 0,
+ 558: 0,
+ NP: 0,
+ NPL: 0,
+ 524: 0,
+ NZ: 0,
+ NZL: 0,
+ 554: 0,
+ PA: 0,
+ PAN: 0,
+ 591: 0,
+ PE: 0,
+ PER: 0,
+ 604: 0,
+ PH: 0,
+ PHL: 0,
+ 608: 0,
+ PK: 0,
+ PAK: 0,
+ 586: 0,
+ PR: 0,
+ PRI: 0,
+ 630: 0,
+ PY: 0,
+ PRY: 0,
+ 600: 0,
+ SA: 0,
+ SAU: 0,
+ 682: 0,
+ SG: 0,
+ SGP: 0,
+ 702: 0,
+ SV: 0,
+ SLV: 0,
+ 222: 0,
+ TH: 0,
+ THA: 0,
+ 764: 0,
+ TN: 0,
+ TUN: 0,
+ 788: 0,
+ TT: 0,
+ TTO: 0,
+ 780: 0,
+ TW: 0,
+ TWN: 0,
+ 158: 0,
+ UM: 0,
+ UMI: 0,
+ 581: 0,
+ US: 0,
+ USA: 0,
+ 840: 0,
+ VE: 0,
+ VEN: 0,
+ 862: 0,
+ VI: 0,
+ VIR: 0,
+ 850: 0,
+ WS: 0,
+ WSM: 0,
+ 882: 0,
+ YE: 0,
+ YEM: 0,
+ 887: 0,
+ ZA: 0,
+ ZAF: 0,
+ 710: 0,
+ ZW: 0,
+ ZWE: 0,
+ 716: 0,
+ AE: 6,
+ ARE: 6,
+ 784: 6,
+ AF: 6,
+ AFG: 6,
+ 4: 6,
+ BH: 6,
+ BHR: 6,
+ 48: 6,
+ DJ: 6,
+ DJI: 6,
+ 262: 6,
+ DZ: 6,
+ DZA: 6,
+ 12: 6,
+ EG: 6,
+ EGY: 6,
+ 818: 6,
+ IQ: 6,
+ IRQ: 6,
+ 368: 6,
+ IR: 6,
+ IRN: 6,
+ 364: 6,
+ JO: 6,
+ JOR: 6,
+ 400: 6,
+ KW: 6,
+ KWT: 6,
+ 414: 6,
+ LY: 6,
+ LBY: 6,
+ 434: 6,
+ MA: 6,
+ MAR: 6,
+ 504: 6,
+ OM: 6,
+ OMN: 6,
+ 512: 6,
+ QA: 6,
+ QAT: 6,
+ 634: 6,
+ SD: 6,
+ SDN: 6,
+ 729: 6,
+ SY: 6,
+ SYR: 6,
+ 760: 6,
+ BD: 5,
+ BGD: 5,
+ 50: 5,
+ MV: 5,
+ MDV: 5,
+ 462: 5
+ };
+ /* harmony default export */
+
+ __webpack_exports__["a"] = regionDayMap;
+ /***/
+ },
+ /* 19 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+ /*
+ * This file is part of bbj-masks lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+
+ var isNumberRegex = /^\d+$/;
+ var isWhitespaceRegex = /\s/;
+ var punctuationList = '!"#$%&\'()*+,-./:;<=>?@[]^_`{|}~';
+ /**
+ * Check if the given string is in lower case
+ *
+ * @param {String} str
+ */
+
+ var isLowerCase = function isLowerCase(str) {
+ return str == str.toLowerCase() && str != str.toUpperCase();
+ };
+ /**
+ * Check if the given string is in upper case
+ *
+ * @param {String} str
+ */
+
+
+ var isUpperCase = function isUpperCase(str) {
+ return str == str.toUpperCase() && str != str.toLowerCase();
+ };
+
+ var passOrThrowError = function passOrThrowError(loose, ret, i, str) {
+ if (!loose) {
+ var _char = str.charAt(i);
+
+ var pos = i + 1;
+ throw {
+ name: 'StringMaskError',
+ message: "StringMaskError: error applying mask at position \"".concat(pos, "\" , char \"").concat(_char, "\""),
+ pos: pos,
+ "char": _char
+ };
+ } else ret[i] = ' ';
+ };
+ /**
+ * NumberMask
+ *
+ * A javascript implementation for BBj numbers masking
+ *
+ * @author Hyyan Abo Fakher
+ */
+
+
+ var StringMask = /*#__PURE__*/function () {
+ function StringMask() {
+ _classCallCheck(this, StringMask);
+ }
+
+ _createClass(StringMask, null, [{
+ key: "mask",
+
+ /**
+ * Mask the given string with the given mask according to BBj rules
+ *
+ * @param {String} str the string to mask
+ * @param {String} mask the mask to use for formatting
+ * @param {Boolean} [loose=true] when true , errors will be ignored and the method will try at apply the mask
+ * anyway , otherwise it will stop at first error and throw it.
+ *
+ * @throws {MaskIsTooShortError}
+ * @throws {StringMaskError}
+ * @throws {MaskError}
+ *
+ * @returns {String} the masked string
+ */
+ value: function mask(str, _mask) {
+ var loose = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
+ str = String(str);
+ _mask = String(_mask);
+ var maskLen = _mask.length;
+ var strLen = str.length;
+
+ if (strLen > maskLen) {
+ if (loose) return str; // friendly silent fail
+ else throw {
+ name: 'MaskIsTooShortError',
+ message: "MaskIsTooShortError: Mask is shorter than the passed string"
+ };
+ }
+
+ var ret = new Array(maskLen);
+ var pos = 0; // to keep track of the current position in the str
+
+ var maskByte = '';
+
+ for (var i = 0; i < maskLen; i++) {
+ maskByte = _mask.charAt(i);
+
+ switch (maskByte) {
+ case 'X':
+ // match any character
+ ret[i] = pos < strLen ? str.charAt(pos) : ' ';
+ ++pos;
+ break;
+
+ case 'A':
+ // match letter; force upper case
+ if (pos < strLen) {
+ var _byte = str.charAt(pos);
+
+ if (isUpperCase(_byte)) ret[i] = _byte;else if (isLowerCase(_byte)) ret[i] = _byte.toUpperCase();else passOrThrowError(loose, ret, i, str);
+ } else ret[i] = ' ';
+
+ ++pos;
+ break;
+
+ case 'a':
+ // match letter
+ if (pos < strLen) {
+ var _byte2 = str.charAt(pos);
+
+ if (isUpperCase(_byte2) || isLowerCase(_byte2)) ret[i] = _byte2;else passOrThrowError(loose, ret, i, str);
+ } else ret[i] = ' ';
+
+ ++pos;
+ break;
+
+ case '0':
+ // match digit
+ if (pos < strLen) {
+ var _byte3 = str.charAt(pos);
+
+ if (isNumberRegex.test(_byte3)) ret[i] = _byte3;else passOrThrowError(loose, ret, i, str);
+ } else ret[i] = ' ';
+
+ ++pos;
+ break;
+
+ case 'Z':
+ // match letter or digit; force upper case
+ if (pos < strLen) {
+ var _byte4 = str.charAt(pos);
+
+ if (isUpperCase(_byte4) || isNumberRegex.test(_byte4)) ret[i] = _byte4;else if (isLowerCase(_byte4)) ret[i] = _byte4.toUpperCase();else passOrThrowError(loose, ret, i, str);
+ } else ret[i] = ' ';
+
+ ++pos;
+ break;
+
+ case 'z':
+ // match letter or digit
+ if (pos < strLen) {
+ var _byte5 = str.charAt(pos);
+
+ if (isUpperCase(_byte5) || isLowerCase(_byte5) || isNumberRegex.test(_byte5)) ret[i] = _byte5;else passOrThrowError(loose, ret, i, str);
+ } else ret[i] = ' ';
+
+ ++pos;
+ break;
+ break;
+
+ case 'U':
+ // match letter (force upper case), digit, whitespace or punctuation.
+ if (pos < strLen) {
+ var _byte6 = str.charAt(pos);
+
+ if (isLowerCase(_byte6)) ret[i] = _byte6.toUpperCase();else if (isUpperCase(_byte6) || isNumberRegex.test(_byte6) || isWhitespaceRegex.test(_byte6) || punctuationList.indexOf(_byte6) > -1) ret[i] = _byte6;else passOrThrowError(loose, ret, i, str);
+ } else ret[i] = ' ';
+
+ ++pos;
+ break;
+
+ default:
+ ret[i] = maskByte;
+ break;
+ }
+ }
+
+ if (pos < strLen) {
+ if (!loose) {
+ throw {
+ name: 'MaskError',
+ message: 'Mask cannot be applied'
+ };
+ }
+ }
+
+ return ret.join('');
+ }
+ }]);
+
+ return StringMask;
+ }();
+ /* harmony default export */
+
+
+ __webpack_exports__["a"] = StringMask;
+ /***/
+ },
+ /* 20 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0__Types__ = __webpack_require__(21);
+ /*
+ * This file is part of bbj-masks lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+ /* harmony default export */
+
+
+ __webpack_exports__["a"] = __WEBPACK_IMPORTED_MODULE_0__Types__["a"
+ /* default */
+ ];
+ /***/
+ },
+ /* 21 */
+
+ /***/
+ function (module, __webpack_exports__, __webpack_require__) {
+ "use strict";
+ /* harmony import */
+
+ var __WEBPACK_IMPORTED_MODULE_0__NumberMask__ = __webpack_require__(1);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_1__DateMask__ = __webpack_require__(2);
+ /* harmony import */
+
+
+ var __WEBPACK_IMPORTED_MODULE_2__StringMask__ = __webpack_require__(4);
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+ /*
+ * This file is part of bbj-masks lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+ /**
+ * Types
+ *
+ * BBj masks factory
+ *
+ * @author Hyyan Abo Fakher
+ */
+
+
+ var Types = /*#__PURE__*/function () {
+ function Types() {
+ _classCallCheck(this, Types);
+ }
+
+ _createClass(Types, null, [{
+ key: "number",
+
+ /**
+ * Mask the given number with the given mask according to BBj rules
+ *
+ * @param {Number} number the number to format
+ * @param {String} mask the mask to use for formatting
+ * @param {String} [groupingSeparator=,] - a char which will be used as a grouping separator
+ * @param {String} [decimalSeparator=.] - a char which will be used as a decimal separator
+ * @param {Boolean} [forceTrailingZeros=false] - Affects the output by switching the way a mask with "#" characters in the trailing positions is filled.
+ * for example, the function `NumberMask.mask(.10:"#.##")` returns ` .10` instead of ` .1 `
+ * @param {Boolean} [loose=true] when true , errors will be ignored and the method will try at apply the mask
+ * anyway , otherwise it will stop at first error and throw it.
+ *
+ * @returns {String} the masked number
+ */
+ value: function number(_number, mask) {
+ var groupingSeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ',';
+ var decimalSeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';
+ var forceTrailingZeros = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
+ var loose = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
+ return __WEBPACK_IMPORTED_MODULE_0__NumberMask__["a"
+ /* default */
+ ].mask(_number, mask, groupingSeparator, decimalSeparator, forceTrailingZeros, loose);
+ }
+ /**
+ * Mask a date according to bbj masking rules
+ *
+ * @param {String} date date as a string
+ * @param {String} mask mask as a string
+ * @param {String} [locale=Browser's locale] the language to use ex(en-US). default is to the system language
+ * @param {String} [timezone=System timezone] the time zone descriptor (e.g. America/Los_Angeles). default to the system
+ * timezone
+ *
+ * @return {String} number masked with the given mask
+ */
+
+ }, {
+ key: "date",
+ value: function date(_date, mask, locale, timezone) {
+ return __WEBPACK_IMPORTED_MODULE_1__DateMask__["c"
+ /* default */
+ ].mask(_date, mask, locale, timezone);
+ }
+ /**
+ * Mask the given string with the given mask according to BBj rules
+ *
+ * @param {String} str the string to mask
+ * @param {String} mask the mask to use for formatting
+ * @param {Boolean} [loose=true] when true , errors will be ignored and the method will try at apply the mask
+ * anyway , otherwise it will stop at first error and throw it.
+ *
+ * @throws {MaskIsTooShortError}
+ * @throws {StringMaskError}
+ * @throws {MaskError}
+ *
+ * @returns {String} the masked string
+ */
+
+ }, {
+ key: "string",
+ value: function string(str, mask) {
+ var loose = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
+ return __WEBPACK_IMPORTED_MODULE_2__StringMask__["a"
+ /* default */
+ ].mask(str, mask, loose);
+ }
+ }]);
+
+ return Types;
+ }();
+ /* harmony default export */
+
+
+ __webpack_exports__["a"] = Types;
+ /***/
+ }
+ /******/
+ ])
+ );
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../BBjGridExWidget/client/node_modules/webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
+
+/***/ }),
+
+/***/ "./node_modules/basis-aggrid-components/dist/basis-aggrid-components.js":
+/*!******************************************************************************!*\
+ !*** ./node_modules/basis-aggrid-components/dist/basis-aggrid-components.js ***!
+ \******************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(true)
+ module.exports = factory();
+ else {}
+})(typeof self !== 'undefined' ? self : this, function() {
+return /******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = 42);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Component__ = __webpack_require__(45);
+/*
+ * This file is part of basis-aggrid-components lib.
+ * (c) Basis Europe
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__Component__["a" /* default */]);
+
+/***/ }),
+/* 1 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (immutable) */ __webpack_exports__["a"] = autobind;
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__private_utils__ = __webpack_require__(7);
+function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
+
+function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
+
+function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
+
+function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
+
+
+var defineProperty = Object.defineProperty,
+ getPrototypeOf = Object.getPrototypeOf;
+var mapStore;
+
+function getBoundSuper(obj, fn) {
+ if (typeof WeakMap === 'undefined') {
+ throw new Error("Using @autobind on ".concat(fn.name, "() requires WeakMap support due to its use of super.").concat(fn.name, "()\n See https://github.com/jayphelps/core-decorators.js/issues/20"));
+ }
+
+ if (!mapStore) {
+ mapStore = new WeakMap();
+ }
+
+ if (mapStore.has(obj) === false) {
+ mapStore.set(obj, new WeakMap());
+ }
+
+ var superStore = mapStore.get(obj);
+
+ if (superStore.has(fn) === false) {
+ superStore.set(fn, Object(__WEBPACK_IMPORTED_MODULE_0__private_utils__["a" /* bind */])(fn, obj));
+ }
+
+ return superStore.get(fn);
+}
+
+function autobindClass(klass) {
+ var descs = Object(__WEBPACK_IMPORTED_MODULE_0__private_utils__["e" /* getOwnPropertyDescriptors */])(klass.prototype);
+ var keys = Object(__WEBPACK_IMPORTED_MODULE_0__private_utils__["d" /* getOwnKeys */])(descs);
+
+ for (var i = 0, l = keys.length; i < l; i++) {
+ var key = keys[i];
+ var desc = descs[key];
+
+ if (typeof desc.value !== 'function' || key === 'constructor') {
+ continue;
+ }
+
+ defineProperty(klass.prototype, key, autobindMethod(klass.prototype, key, desc));
+ }
+}
+
+function autobindMethod(target, key, _ref) {
+ var fn = _ref.value,
+ configurable = _ref.configurable,
+ enumerable = _ref.enumerable;
+
+ if (typeof fn !== 'function') {
+ throw new SyntaxError("@autobind can only be used on functions, not: ".concat(fn));
+ }
+
+ var constructor = target.constructor;
+ return {
+ configurable: configurable,
+ enumerable: enumerable,
+ get: function get() {
+ // Class.prototype.key lookup
+ // Someone accesses the property directly on the prototype on which it is
+ // actually defined on, i.e. Class.prototype.hasOwnProperty(key)
+ if (this === target) {
+ return fn;
+ } // Class.prototype.key lookup
+ // Someone accesses the property directly on a prototype but it was found
+ // up the chain, not defined directly on it
+ // i.e. Class.prototype.hasOwnProperty(key) == false && key in Class.prototype
+
+
+ if (this.constructor !== constructor && getPrototypeOf(this).constructor === constructor) {
+ return fn;
+ } // Autobound method calling super.sameMethod() which is also autobound and so on.
+
+
+ if (this.constructor !== constructor && key in this.constructor.prototype) {
+ return getBoundSuper(this, fn);
+ }
+
+ var boundFn = Object(__WEBPACK_IMPORTED_MODULE_0__private_utils__["a" /* bind */])(fn, this);
+ defineProperty(this, key, {
+ configurable: true,
+ writable: true,
+ // NOT enumerable when it's a bound method
+ enumerable: false,
+ value: boundFn
+ });
+ return boundFn;
+ },
+ set: Object(__WEBPACK_IMPORTED_MODULE_0__private_utils__["b" /* createDefaultSetter */])(key)
+ };
+}
+
+function handle(args) {
+ if (args.length === 1) {
+ return autobindClass.apply(void 0, _toConsumableArray(args));
+ } else {
+ return autobindMethod.apply(void 0, _toConsumableArray(args));
+ }
+}
+
+function autobind() {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ if (args.length === 0) {
+ return function () {
+ return handle(arguments);
+ };
+ } else {
+ return handle(args);
+ }
+}
+
+/***/ }),
+/* 2 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (immutable) */ __webpack_exports__["a"] = override;
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__private_utils__ = __webpack_require__(7);
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
+
+
+var GENERIC_FUNCTION_ERROR = '{child} does not properly override {parent}';
+var FUNCTION_REGEXP = /^function ([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?(\([^\)]*\))[\s\S]+$/;
+
+var SyntaxErrorReporter = /*#__PURE__*/function () {
+ _createClass(SyntaxErrorReporter, [{
+ key: "_getTopic",
+ value: function _getTopic(descriptor) {
+ if (descriptor === undefined) {
+ return null;
+ }
+
+ if ('value' in descriptor) {
+ return descriptor.value;
+ }
+
+ if ('get' in descriptor) {
+ return descriptor.get;
+ }
+
+ if ('set' in descriptor) {
+ return descriptor.set;
+ }
+ }
+ }, {
+ key: "_extractTopicSignature",
+ value: function _extractTopicSignature(topic) {
+ switch (_typeof(topic)) {
+ case 'function':
+ return this._extractFunctionSignature(topic);
+
+ default:
+ return this.key;
+ }
+ }
+ }, {
+ key: "_extractFunctionSignature",
+ value: function _extractFunctionSignature(fn) {
+ var _this = this;
+
+ return fn.toString().replace(FUNCTION_REGEXP, function (match) {
+ var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _this.key;
+ var params = arguments.length > 2 ? arguments[2] : undefined;
+ return name + params;
+ });
+ }
+ }, {
+ key: "key",
+ get: function get() {
+ return this.childDescriptor.key;
+ }
+ }, {
+ key: "parentNotation",
+ get: function get() {
+ return "".concat(this.parentKlass.constructor.name, "#").concat(this.parentPropertySignature);
+ }
+ }, {
+ key: "childNotation",
+ get: function get() {
+ return "".concat(this.childKlass.constructor.name, "#").concat(this.childPropertySignature);
+ }
+ }, {
+ key: "parentTopic",
+ get: function get() {
+ return this._getTopic(this.parentDescriptor);
+ }
+ }, {
+ key: "childTopic",
+ get: function get() {
+ return this._getTopic(this.childDescriptor);
+ }
+ }, {
+ key: "parentPropertySignature",
+ get: function get() {
+ return this._extractTopicSignature(this.parentTopic);
+ }
+ }, {
+ key: "childPropertySignature",
+ get: function get() {
+ return this._extractTopicSignature(this.childTopic);
+ }
+ }]);
+
+ function SyntaxErrorReporter(parentKlass, childKlass, parentDescriptor, childDescriptor) {
+ _classCallCheck(this, SyntaxErrorReporter);
+
+ this.parentKlass = void 0;
+ this.childKlass = void 0;
+ this.parentDescriptor = void 0;
+ this.childDescriptor = void 0;
+ this.parentKlass = parentKlass;
+ this.childKlass = childKlass;
+ this.parentDescriptor = parentDescriptor;
+ this.childDescriptor = childDescriptor;
+ }
+
+ _createClass(SyntaxErrorReporter, [{
+ key: "assert",
+ value: function assert(condition) {
+ var msg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
+
+ if (condition !== true) {
+ this.error(GENERIC_FUNCTION_ERROR + msg);
+ }
+ }
+ }, {
+ key: "error",
+ value: function error(msg) {
+ var _this2 = this;
+
+ msg = msg // Replace lazily, because they actually might not
+ // be available in all cases
+ .replace('{parent}', function (m) {
+ return _this2.parentNotation;
+ }).replace('{child}', function (m) {
+ return _this2.childNotation;
+ });
+ throw new SyntaxError(msg);
+ }
+ }]);
+
+ return SyntaxErrorReporter;
+}();
+
+function getDescriptorType(descriptor) {
+ if (descriptor.hasOwnProperty('value')) {
+ return 'data';
+ }
+
+ if (descriptor.hasOwnProperty('get') || descriptor.hasOwnProperty('set')) {
+ return 'accessor';
+ } // If none of them exist, browsers treat it as
+ // a data descriptor with a value of `undefined`
+
+
+ return 'data';
+}
+
+function checkFunctionSignatures(parent, child, reporter) {
+ reporter.assert(parent.length === child.length);
+}
+
+function checkDataDescriptors(parent, child, reporter) {
+ var parentValueType = _typeof(parent.value);
+
+ var childValueType = _typeof(child.value);
+
+ if (parentValueType === 'undefined' && childValueType === 'undefined') {
+ // class properties can be any expression, which isn't ran until the
+ // the instance is created, so we can't reliably get type information
+ // for them yet (per spec). Perhaps when Babel includes flow-type info
+ // in runtime? Tried regex solutions, but super hacky and only feasible
+ // on primitives, which is confusing for usage...
+ reporter.error("descriptor values are both undefined. (class properties are are not currently supported)'");
+ }
+
+ if (parentValueType !== childValueType) {
+ var isFunctionOverUndefined = childValueType === 'function' && parentValueType === undefined; // Even though we don't support class properties, this
+ // will still handle more than just functions, just in case.
+ // Shadowing an undefined value is an error if the inherited
+ // value was undefined (usually a class property, not a method)
+
+ if (isFunctionOverUndefined || parentValueType !== undefined) {
+ reporter.error("value types do not match. {parent} is \"".concat(parentValueType, "\", {child} is \"").concat(childValueType, "\""));
+ }
+ } // Switch, in preparation for supporting more types
+
+
+ switch (childValueType) {
+ case 'function':
+ checkFunctionSignatures(parent.value, child.value, reporter);
+ break;
+
+ default:
+ reporter.error("Unexpected error. Please file a bug with: {parent} is \"".concat(parentValueType, "\", {child} is \"").concat(childValueType, "\""));
+ break;
+ }
+}
+
+function checkAccessorDescriptors(parent, child, reporter) {
+ var parentHasGetter = typeof parent.get === 'function';
+ var childHasGetter = typeof child.get === 'function';
+ var parentHasSetter = typeof parent.set === 'function';
+ var childHasSetter = typeof child.set === 'function';
+
+ if (parentHasGetter || childHasGetter) {
+ if (!parentHasGetter && parentHasSetter) {
+ reporter.error("{parent} is setter but {child} is getter");
+ }
+
+ if (!childHasGetter && childHasSetter) {
+ reporter.error("{parent} is getter but {child} is setter");
+ }
+
+ checkFunctionSignatures(parent.get, child.get, reporter);
+ }
+
+ if (parentHasSetter || childHasSetter) {
+ if (!parentHasSetter && parentHasGetter) {
+ reporter.error("{parent} is getter but {child} is setter");
+ }
+
+ if (!childHasSetter && childHasGetter) {
+ reporter.error("{parent} is setter but {child} is getter");
+ }
+
+ checkFunctionSignatures(parent.set, child.set, reporter);
+ }
+}
+
+function checkDescriptors(parent, child, reporter) {
+ var parentType = getDescriptorType(parent);
+ var childType = getDescriptorType(child);
+
+ if (parentType !== childType) {
+ reporter.error("descriptor types do not match. {parent} is \"".concat(parentType, "\", {child} is \"").concat(childType, "\""));
+ }
+
+ switch (childType) {
+ case 'data':
+ checkDataDescriptors(parent, child, reporter);
+ break;
+
+ case 'accessor':
+ checkAccessorDescriptors(parent, child, reporter);
+ break;
+ }
+}
+
+var suggestionTransforms = [function (key) {
+ return key.toLowerCase();
+}, function (key) {
+ return key.toUpperCase();
+}, function (key) {
+ return key + 's';
+}, function (key) {
+ return key.slice(0, -1);
+}, function (key) {
+ return key.slice(1, key.length);
+}];
+
+function findPossibleAlternatives(superKlass, key) {
+ for (var i = 0, l = suggestionTransforms.length; i < l; i++) {
+ var fn = suggestionTransforms[i];
+ var suggestion = fn(key);
+
+ if (suggestion in superKlass) {
+ return suggestion;
+ }
+ }
+
+ return null;
+}
+
+function handleDescriptor(target, key, descriptor) {
+ descriptor.key = key;
+ var superKlass = Object.getPrototypeOf(target);
+ var superDescriptor = Object.getOwnPropertyDescriptor(superKlass, key);
+ var reporter = new SyntaxErrorReporter(superKlass, target, superDescriptor, descriptor);
+
+ if (superDescriptor === undefined) {
+ var suggestedKey = findPossibleAlternatives(superKlass, key);
+ var suggestion = suggestedKey ? "\n\n Did you mean \"".concat(suggestedKey, "\"?") : '';
+ reporter.error("No descriptor matching {child} was found on the prototype chain.".concat(suggestion));
+ }
+
+ checkDescriptors(superDescriptor, descriptor, reporter);
+ return descriptor;
+}
+
+function override() {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ return Object(__WEBPACK_IMPORTED_MODULE_0__private_utils__["c" /* decorate */])(handleDescriptor, args);
+}
+
+/***/ }),
+/* 3 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Symbol_js__ = __webpack_require__(9);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__getRawTag_js__ = __webpack_require__(72);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__objectToString_js__ = __webpack_require__(73);
+
+
+
+/** `Object#toString` result references. */
+
+var nullTag = '[object Null]',
+ undefinedTag = '[object Undefined]';
+/** Built-in value references. */
+
+var symToStringTag = __WEBPACK_IMPORTED_MODULE_0__Symbol_js__["a" /* default */] ? __WEBPACK_IMPORTED_MODULE_0__Symbol_js__["a" /* default */].toStringTag : undefined;
+/**
+ * The base implementation of `getTag` without fallbacks for buggy environments.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the `toStringTag`.
+ */
+
+function baseGetTag(value) {
+ if (value == null) {
+ return value === undefined ? undefinedTag : nullTag;
+ }
+
+ return symToStringTag && symToStringTag in Object(value) ? Object(__WEBPACK_IMPORTED_MODULE_1__getRawTag_js__["a" /* default */])(value) : Object(__WEBPACK_IMPORTED_MODULE_2__objectToString_js__["a" /* default */])(value);
+}
+
+/* harmony default export */ __webpack_exports__["a"] = (baseGetTag);
+
+/***/ }),
+/* 4 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return value != null && _typeof(value) == 'object';
+}
+
+/* harmony default export */ __webpack_exports__["a"] = (isObjectLike);
+
+/***/ }),
+/* 5 */
+/***/ (function(module, exports) {
+
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+// css base code, injected by the css-loader
+module.exports = function (useSourceMap) {
+ var list = []; // return the list of modules as css string
+
+ list.toString = function toString() {
+ return this.map(function (item) {
+ var content = cssWithMappingToString(item, useSourceMap);
+
+ if (item[2]) {
+ return "@media " + item[2] + "{" + content + "}";
+ } else {
+ return content;
+ }
+ }).join("");
+ }; // import a list of modules into the list
+
+
+ list.i = function (modules, mediaQuery) {
+ if (typeof modules === "string") modules = [[null, modules, ""]];
+ var alreadyImportedModules = {};
+
+ for (var i = 0; i < this.length; i++) {
+ var id = this[i][0];
+ if (typeof id === "number") alreadyImportedModules[id] = true;
+ }
+
+ for (i = 0; i < modules.length; i++) {
+ var item = modules[i]; // skip already imported module
+ // this implementation is not 100% perfect for weird media query combinations
+ // when a module is imported multiple times with different media queries.
+ // I hope this will never occur (Hey this way we have smaller bundles)
+
+ if (typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
+ if (mediaQuery && !item[2]) {
+ item[2] = mediaQuery;
+ } else if (mediaQuery) {
+ item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
+ }
+
+ list.push(item);
+ }
+ }
+ };
+
+ return list;
+};
+
+function cssWithMappingToString(item, useSourceMap) {
+ var content = item[1] || '';
+ var cssMapping = item[3];
+
+ if (!cssMapping) {
+ return content;
+ }
+
+ if (useSourceMap && typeof btoa === 'function') {
+ var sourceMapping = toComment(cssMapping);
+ var sourceURLs = cssMapping.sources.map(function (source) {
+ return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';
+ });
+ return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
+ }
+
+ return [content].join('\n');
+} // Adapted from convert-source-map (MIT)
+
+
+function toComment(sourceMap) {
+ // eslint-disable-next-line no-undef
+ var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
+ var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
+ return '/*# ' + data + ' */';
+}
+
+/***/ }),
+/* 6 */
+/***/ (function(module, exports, __webpack_require__) {
+
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+
+var stylesInDom = {};
+
+var memoize = function (fn) {
+ var memo;
+
+ return function () {
+ if (typeof memo === "undefined") memo = fn.apply(this, arguments);
+ return memo;
+ };
+};
+
+var isOldIE = memoize(function () {
+ // Test for IE <= 9 as proposed by Browserhacks
+ // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
+ // Tests for existence of standard globals is to allow style-loader
+ // to operate correctly into non-standard environments
+ // @see https://github.com/webpack-contrib/style-loader/issues/177
+ return window && document && document.all && !window.atob;
+});
+
+var getTarget = function (target) {
+ return document.querySelector(target);
+};
+
+var getElement = (function (fn) {
+ var memo = {};
+
+ return function(target) {
+ // If passing function in options, then use it for resolve "head" element.
+ // Useful for Shadow Root style i.e
+ // {
+ // insertInto: function () { return document.querySelector("#foo").shadowRoot }
+ // }
+ if (typeof target === 'function') {
+ return target();
+ }
+ if (typeof memo[target] === "undefined") {
+ var styleTarget = getTarget.call(this, target);
+ // Special case to return head of iframe instead of iframe itself
+ if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
+ try {
+ // This will throw an exception if access to iframe is blocked
+ // due to cross-origin restrictions
+ styleTarget = styleTarget.contentDocument.head;
+ } catch(e) {
+ styleTarget = null;
+ }
+ }
+ memo[target] = styleTarget;
+ }
+ return memo[target]
+ };
+})();
+
+var singleton = null;
+var singletonCounter = 0;
+var stylesInsertedAtTop = [];
+
+var fixUrls = __webpack_require__(50);
+
+module.exports = function(list, options) {
+ if (typeof DEBUG !== "undefined" && DEBUG) {
+ if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
+ }
+
+ options = options || {};
+
+ options.attrs = typeof options.attrs === "object" ? options.attrs : {};
+
+ // Force single-tag solution on IE6-9, which has a hard limit on the # of