squirrels 0.3.0__py3-none-any.whl → 0.3.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of squirrels might be problematic. Click here for more details.

squirrels/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = '0.3.0'
1
+ __version__ = '0.3.1'
2
2
 
3
3
  from .arguments.init_time_args import ConnectionsArgs, ParametersArgs
4
4
  from .arguments.run_time_args import AuthArgs, ContextArgs, ModelDepsArgs, ModelArgs
squirrels/_api_server.py CHANGED
@@ -266,6 +266,12 @@ class ApiServer:
266
266
  curr_parameters_path = parameters_path.format(dataset=dataset_normalized)
267
267
  curr_results_path = results_path.format(dataset=dataset_normalized)
268
268
 
269
+ for param in dataset_cfg.parameters:
270
+ if param not in param_fields:
271
+ all_params = list(param_fields.keys())
272
+ raise u.ConfigurationError(f"Dataset '{dataset_name}' use parameter '{param}' which doesn't exist. Available parameters are:"
273
+ f"\n {all_params}")
274
+
269
275
  QueryModelGet = make_dataclass("QueryParams", [
270
276
  param_fields[param].as_query_info() for param in dataset_cfg.parameters
271
277
  ])
@@ -39,7 +39,8 @@ class ConnectionSet:
39
39
  Disposes of all the engines in this ConnectionSet
40
40
  """
41
41
  for pool in self._engines.values():
42
- pool.dispose()
42
+ if isinstance(pool, Engine):
43
+ pool.dispose()
43
44
 
44
45
 
45
46
  class ConnectionSetIO:
squirrels/_constants.py CHANGED
@@ -79,13 +79,14 @@ ASSETS_FOLDER = 'assets'
79
79
  TEMPLATES_FOLDER = 'templates'
80
80
 
81
81
  ENVIRON_CONFIG_FILE = 'environcfg.yml'
82
+ ENV_CONFIG_FILE = 'env.yml'
82
83
  MANIFEST_JINJA_FILE = 'squirrels.yml.j2'
83
84
  CONNECTIONS_YML_FILE = 'connections.yml'
84
85
  PARAMETERS_YML_FILE = 'parameters.yml'
85
86
  MANIFEST_FILE = 'squirrels.yml'
86
87
  LU_DATA_FILE = 'lu_data.xlsx'
87
88
 
88
- DATABASE_FOLDER = 'database'
89
+ DATABASE_FOLDER = 'assets'
89
90
  PACKAGES_FOLDER = 'sqrl_packages'
90
91
 
91
92
  MODELS_FOLDER = 'models'
squirrels/_environcfg.py CHANGED
@@ -5,7 +5,8 @@ import os, yaml
5
5
  from . import _constants as c, _utils as u
6
6
  from ._timer import timer, time
7
7
 
8
- _GLOBAL_SQUIRRELS_CFG_FILE = u.join_paths(os.path.expanduser('~'), '.squirrels', c.ENVIRON_CONFIG_FILE)
8
+ _GLOBAL_SQUIRRELS_CFG_FILE1 = u.join_paths(os.path.expanduser('~'), '.squirrels', c.ENVIRON_CONFIG_FILE)
9
+ _GLOBAL_SQUIRRELS_CFG_FILE2 = u.join_paths(os.path.expanduser('~'), '.squirrels', c.ENV_CONFIG_FILE)
9
10
 
10
11
 
11
12
  @dataclass
@@ -61,17 +62,20 @@ class EnvironConfigIO:
61
62
  except FileNotFoundError:
62
63
  return {}
63
64
 
64
- config1 = load_yaml(_GLOBAL_SQUIRRELS_CFG_FILE)
65
- config2 = load_yaml(c.ENVIRON_CONFIG_FILE)
65
+ master_env_config1 = load_yaml(_GLOBAL_SQUIRRELS_CFG_FILE1)
66
+ master_env_config2 = load_yaml(_GLOBAL_SQUIRRELS_CFG_FILE2)
67
+ proj_env_config1 = load_yaml(c.ENVIRON_CONFIG_FILE)
68
+ proj_env_config2 = load_yaml(c.ENV_CONFIG_FILE)
66
69
 
67
- for key in config2:
68
- config1.setdefault(key, {})
69
- config1[key].update(config2[key])
70
+ for project_config in [master_env_config2, proj_env_config1, proj_env_config2]:
71
+ for key in project_config:
72
+ master_env_config1.setdefault(key, {})
73
+ master_env_config1[key].update(project_config[key])
70
74
 
71
- users = config1.get(c.USERS_KEY, {})
72
- env_vars = config1.get(c.ENV_VARS_KEY, {})
73
- credentials = config1.get(c.CREDENTIALS_KEY, {})
74
- secrets = config1.get(c.SECRETS_KEY, {})
75
+ users = master_env_config1.get(c.USERS_KEY, {})
76
+ env_vars = master_env_config1.get(c.ENV_VARS_KEY, {})
77
+ credentials = master_env_config1.get(c.CREDENTIALS_KEY, {})
78
+ secrets = master_env_config1.get(c.SECRETS_KEY, {})
75
79
 
76
80
  cls.obj = _EnvironConfig(users, env_vars, credentials, secrets)
77
- timer.add_activity_time(f"loading {c.ENVIRON_CONFIG_FILE} file", start)
81
+ timer.add_activity_time(f"loading {c.ENV_CONFIG_FILE} file", start)
squirrels/_initializer.py CHANGED
@@ -72,7 +72,7 @@ class Initializer:
72
72
 
73
73
  remaining_questions = [
74
74
  inquirer.Confirm(AUTH,
75
- message=f"Do you want to add the '{c.AUTH_FILE}' file?" ,
75
+ message=f"Do you want to add the '{c.AUTH_FILE}' file to enable custom API authentication?" ,
76
76
  default=False),
77
77
  inquirer.List(SAMPLE_DB,
78
78
  message="What sample sqlite database do you wish to use (if any)?",
@@ -154,7 +154,7 @@ class Initializer:
154
154
  raise NotImplementedError(f"Format '{parameters_format}' not supported for configuring widget parameters")
155
155
 
156
156
  self._copy_pyconfig_file(c.CONTEXT_FILE)
157
- self._copy_file(c.ENVIRON_CONFIG_FILE)
157
+ self._copy_file(c.ENV_CONFIG_FILE)
158
158
  self._copy_seed_file(c.CATEGORY_SEED_FILE)
159
159
  self._copy_seed_file(c.SUBCATEGORY_SEED_FILE)
160
160
 
squirrels/_manifest.py CHANGED
@@ -149,7 +149,7 @@ class DatasetsConfig(ManifestComponentConfig):
149
149
  label: str
150
150
  model: str
151
151
  scope: DatasetScope
152
- parameters: Optional[list[str]]
152
+ parameters: list[str]
153
153
  traits: dict
154
154
  default_test_set: Optional[str]
155
155
 
@@ -166,7 +166,7 @@ class DatasetsConfig(ManifestComponentConfig):
166
166
  scope_list = [scope.name.lower() for scope in DatasetScope]
167
167
  raise u.ConfigurationError(f'Scope not found for dataset "{name}". Scope must be one of {scope_list}') from e
168
168
 
169
- parameters = kwargs.get(c.DATASET_PARAMETERS_KEY)
169
+ parameters = kwargs.get(c.DATASET_PARAMETERS_KEY, [])
170
170
  traits = kwargs.get(c.DATASET_TRAITS_KEY, {})
171
171
  default_test_set = kwargs.get(c.DATASET_DEFAULT_TEST_SET_KEY)
172
172
  return cls(name, label, model, scope, parameters, traits, default_test_set)
squirrels/_models.py CHANGED
@@ -38,6 +38,24 @@ class _SqlModelConfig:
38
38
 
39
39
  ## Applicable for federated models
40
40
  materialized: Materialization
41
+
42
+ def set_attribute(self, **kwargs) -> str:
43
+ connection_name = kwargs.get(c.DBVIEW_CONN_KEY)
44
+ if connection_name is not None:
45
+ if not isinstance(connection_name, str):
46
+ raise u.ConfigurationError("The 'connection_name' argument of 'config' macro must be a string")
47
+ self.connection_name = connection_name
48
+
49
+ materialized: str = kwargs.get(c.MATERIALIZED_KEY)
50
+ if materialized is not None:
51
+ if not isinstance(materialized, str):
52
+ raise u.ConfigurationError("The 'materialized' argument of 'config' macro must be a string")
53
+ try:
54
+ self.materialized = Materialization[materialized.upper()]
55
+ except KeyError as e:
56
+ valid_options = [x.name for x in Materialization]
57
+ raise u.ConfigurationError(f"The 'materialized' argument value '{materialized}' is not valid. Must be one of: {valid_options}") from e
58
+ return ""
41
59
 
42
60
  def get_sql_for_create(self, model_name: str, select_query: str) -> str:
43
61
  if self.materialized == Materialization.TABLE:
@@ -48,15 +66,6 @@ class _SqlModelConfig:
48
66
  raise NotImplementedError(f"Materialization option not supported: {self.materialized}")
49
67
 
50
68
  return create_prefix + select_query
51
-
52
- def set_attribute(self, **kwargs) -> str:
53
- connection_name = kwargs.get(c.DBVIEW_CONN_KEY)
54
- materialized = kwargs.get(c.MATERIALIZED_KEY)
55
- if isinstance(connection_name, str):
56
- self.connection_name = connection_name
57
- if isinstance(materialized, str):
58
- self.materialized = Materialization[materialized.upper()]
59
- return ""
60
69
 
61
70
 
62
71
  ContextFunc = Callable[[dict[str, Any], ContextArgs], None]
@@ -220,7 +229,7 @@ class _Model(_Referable):
220
229
  connection_name = self._get_dbview_conn_name()
221
230
  materialized = self._get_materialized()
222
231
  configuration = _SqlModelConfig(connection_name, materialized)
223
- is_placeholder = lambda x: x in placeholders
232
+ is_placeholder = lambda placeholder: placeholder in placeholders
224
233
  kwargs = {
225
234
  "proj_vars": ctx_args.proj_vars, "env_vars": ctx_args.env_vars, "user": ctx_args.user, "prms": ctx_args.prms,
226
235
  "traits": ctx_args.traits, "ctx": ctx, "is_placeholder": is_placeholder, "set_placeholder": ctx_args.set_placeholder,
@@ -256,7 +265,7 @@ class _Model(_Referable):
256
265
 
257
266
  dbview_conn_name = self._get_dbview_conn_name()
258
267
  connections = ConnectionSetIO.obj.get_engines_as_dict()
259
- ref = lambda x: self.upstreams[x].result
268
+ ref = lambda model: self.upstreams[model].result
260
269
  sqrl_args = ModelArgs(
261
270
  ctx_args.proj_vars, ctx_args.env_vars, ctx_args.user, ctx_args.prms, ctx_args.traits, placeholders, ctx,
262
271
  dbview_conn_name, connections, dependencies, ref
@@ -496,7 +505,7 @@ class ModelsIO:
496
505
  if extension == '.py':
497
506
  query_type = QueryType.PYTHON
498
507
  module = pm.PyModule(filepath)
499
- dependencies_func = module.get_func_or_class(c.DEP_FUNC, default_attr=lambda x: [])
508
+ dependencies_func = module.get_func_or_class(c.DEP_FUNC, default_attr=lambda sqrl: [])
500
509
  raw_query = _RawPyQuery(module.get_func_or_class(c.MAIN_FUNC), dependencies_func)
501
510
  elif extension == '.sql':
502
511
  query_type = QueryType.SQL
@@ -520,7 +529,7 @@ class ModelsIO:
520
529
  populate_raw_queries_for_type(federates_path, ModelType.FEDERATE)
521
530
 
522
531
  context_path = u.join_paths(c.PYCONFIGS_FOLDER, c.CONTEXT_FILE)
523
- cls.context_func = pm.PyModule(context_path).get_func_or_class(c.MAIN_FUNC, default_attr=lambda x, y: None)
532
+ cls.context_func = pm.PyModule(context_path).get_func_or_class(c.MAIN_FUNC, default_attr=lambda ctx, sqrl: None)
524
533
 
525
534
  timer.add_activity_time("loading files for models and context.py", start)
526
535
 
@@ -44,6 +44,6 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
44
44
  Copyright (c) 2018 Jed Watson.
45
45
  Licensed under the MIT License (MIT), see
46
46
  http://jedwatson.github.io/classnames
47
- */(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var l="",o=0;o<arguments.length;o++){var i=arguments[o];i&&(l=a(l,r(i)))}return l}function r(l){if(typeof l=="string"||typeof l=="number")return l;if(typeof l!="object")return"";if(Array.isArray(l))return n.apply(null,l);if(l.toString!==Object.prototype.toString&&!l.toString.toString().includes("[native code]"))return l.toString();var o="";for(var i in l)t.call(l,i)&&l[i]&&(o=a(o,i));return o}function a(l,o){return o?l?l+" "+o:l+o:l}e.exports?(n.default=n,e.exports=n):window.classNames=n})()})(xm);var yS=xm.exports;const or=Po(yS);function nd(e){var t=g.useRef();t.current=e;var n=g.useCallback(function(){for(var r,a=arguments.length,l=new Array(a),o=0;o<a;o++)l[o]=arguments[o];return(r=t.current)===null||r===void 0?void 0:r.call.apply(r,[t].concat(l))},[]);return n}function gS(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var rd=gS()?g.useLayoutEffect:g.useEffect,wS=function(t,n){var r=g.useRef(!0);rd(function(){return t(r.current)},n),rd(function(){return r.current=!1,function(){r.current=!0}},[])},ad=function(t,n){wS(function(r){if(!r)return t()},n)};function ld(e){var t=g.useRef(!1),n=g.useState(e),r=wt(n,2),a=r[0],l=r[1];g.useEffect(function(){return t.current=!1,function(){t.current=!0}},[]);function o(i,u){u&&t.current||l(i)}return[a,o]}function Fi(e){return e!==void 0}function SS(e,t){var n=t||{},r=n.defaultValue,a=n.value,l=n.onChange,o=n.postState,i=ld(function(){return Fi(a)?a:Fi(r)?typeof r=="function"?r():r:typeof e=="function"?e():e}),u=wt(i,2),s=u[0],d=u[1],v=a!==void 0?a:s,p=o?o(v):v,h=nd(l),y=ld([v]),w=wt(y,2),k=w[0],f=w[1];ad(function(){var m=k[0];s!==m&&h(s,m)},[k]),ad(function(){Fi(a)||d(a)},[a]);var c=nd(function(m,E){d(m,E),f([v],E)});return[p,c]}var Xu={},ES=function(t){};function xS(e,t){}function kS(e,t){}function CS(){Xu={}}function km(e,t,n){!t&&!Xu[n]&&(e(!1,n),Xu[n]=!0)}function cl(e,t){km(xS,e,t)}function _S(e,t){km(kS,e,t)}cl.preMessage=ES;cl.resetWarned=CS;cl.noteOnce=_S;function OS(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=new Set;function a(l,o){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,u=r.has(l);if(cl(!u,"Warning: There may be circular references"),u)return!1;if(l===o)return!0;if(n&&i>1)return!1;r.add(l);var s=i+1;if(Array.isArray(l)){if(!Array.isArray(o)||l.length!==o.length)return!1;for(var d=0;d<l.length;d++)if(!a(l[d],o[d],s))return!1;return!0}if(l&&o&&In(l)==="object"&&In(o)==="object"){var v=Object.keys(l);return v.length!==Object.keys(o).length?!1:v.every(function(p){return a(l[p],o[p],s)})}return!1}return a(e,t)}var dr=g.createContext({min:0,max:0,direction:"ltr",step:1,includedStart:0,includedEnd:0,tabIndex:0,keyboard:!0,styles:{},classNames:{}});function No(){return No=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},No.apply(this,arguments)}function DS(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,l;for(l=0;l<r.length;l++)a=r[l],!(t.indexOf(a)>=0)&&(n[a]=e[a]);return n}function Cm(e,t){if(e==null)return{};var n=DS(e,t),r,a;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var I={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(t){var n=t.keyCode;if(t.altKey&&!t.ctrlKey||t.metaKey||n>=I.F1&&n<=I.F12)return!1;switch(n){case I.ALT:case I.CAPS_LOCK:case I.CONTEXT_MENU:case I.CTRL:case I.DOWN:case I.END:case I.ESC:case I.HOME:case I.INSERT:case I.LEFT:case I.MAC_FF_META:case I.META:case I.NUMLOCK:case I.NUM_CENTER:case I.PAGE_DOWN:case I.PAGE_UP:case I.PAUSE:case I.PRINT_SCREEN:case I.RIGHT:case I.SHIFT:case I.UP:case I.WIN_KEY:case I.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(t){if(t>=I.ZERO&&t<=I.NINE||t>=I.NUM_ZERO&&t<=I.NUM_MULTIPLY||t>=I.A&&t<=I.Z||window.navigator.userAgent.indexOf("WebKit")!==-1&&t===0)return!0;switch(t){case I.SPACE:case I.QUESTION_MARK:case I.NUM_PLUS:case I.NUM_MINUS:case I.NUM_PERIOD:case I.NUM_DIVISION:case I.SEMICOLON:case I.DASH:case I.EQUALS:case I.COMMA:case I.PERIOD:case I.SLASH:case I.APOSTROPHE:case I.SINGLE_QUOTE:case I.OPEN_SQUARE_BRACKET:case I.BACKSLASH:case I.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}};function Zu(e,t,n){return(e-t)/(n-t)}function dc(e,t,n,r){var a=Zu(t,n,r),l={};switch(e){case"rtl":l.right="".concat(a*100,"%"),l.transform="translateX(50%)";break;case"btt":l.bottom="".concat(a*100,"%"),l.transform="translateY(50%)";break;case"ttb":l.top="".concat(a*100,"%"),l.transform="translateY(-50%)";break;default:l.left="".concat(a*100,"%"),l.transform="translateX(-50%)";break}return l}function Fr(e,t){return Array.isArray(e)?e[t]:e}var NS=["prefixCls","value","valueIndex","onStartMove","style","render","dragging","onOffsetChange","onChangeComplete"],PS=g.forwardRef(function(e,t){var n,r,a=e.prefixCls,l=e.value,o=e.valueIndex,i=e.onStartMove,u=e.style,s=e.render,d=e.dragging,v=e.onOffsetChange,p=e.onChangeComplete,h=Cm(e,NS),y=g.useContext(dr),w=y.min,k=y.max,f=y.direction,c=y.disabled,m=y.keyboard,E=y.range,C=y.tabIndex,O=y.ariaLabelForHandle,D=y.ariaLabelledByForHandle,N=y.ariaValueTextFormatterForHandle,R=y.styles,M=y.classNames,H="".concat(a,"-handle"),F=function(_){c||i(_,o)},$=function(_){if(!c&&m){var L=null;switch(_.which||_.keyCode){case I.LEFT:L=f==="ltr"||f==="btt"?-1:1;break;case I.RIGHT:L=f==="ltr"||f==="btt"?1:-1;break;case I.UP:L=f!=="ttb"?1:-1;break;case I.DOWN:L=f!=="ttb"?-1:1;break;case I.HOME:L="min";break;case I.END:L="max";break;case I.PAGE_UP:L=2;break;case I.PAGE_DOWN:L=-2;break}L!==null&&(_.preventDefault(),v(L,o))}},q=function(_){switch(_.which||_.keyCode){case I.LEFT:case I.RIGHT:case I.UP:case I.DOWN:case I.HOME:case I.END:case I.PAGE_UP:case I.PAGE_DOWN:p==null||p();break}},J=dc(f,l,w,k),K=g.createElement("div",No({ref:t,className:or(H,(n={},Ut(n,"".concat(H,"-").concat(o+1),E),Ut(n,"".concat(H,"-dragging"),d),n),M.handle),style:rt(rt(rt({},J),u),R.handle),onMouseDown:F,onTouchStart:F,onKeyDown:$,onKeyUp:q,tabIndex:c?null:Fr(C,o),role:"slider","aria-valuemin":w,"aria-valuemax":k,"aria-valuenow":l,"aria-disabled":c,"aria-label":Fr(O,o),"aria-labelledby":Fr(D,o),"aria-valuetext":(r=Fr(N,o))===null||r===void 0?void 0:r(l),"aria-orientation":f==="ltr"||f==="rtl"?"horizontal":"vertical"},h));return s&&(K=s(K,{index:o,prefixCls:a,value:l,dragging:d})),K}),TS=["prefixCls","style","onStartMove","onOffsetChange","values","handleRender","draggingIndex"],LS=g.forwardRef(function(e,t){var n=e.prefixCls,r=e.style,a=e.onStartMove,l=e.onOffsetChange,o=e.values,i=e.handleRender,u=e.draggingIndex,s=Cm(e,TS),d=g.useRef({});return g.useImperativeHandle(t,function(){return{focus:function(p){var h;(h=d.current[p])===null||h===void 0||h.focus()}}}),g.createElement(g.Fragment,null,o.map(function(v,p){return g.createElement(PS,No({ref:function(y){y?d.current[p]=y:delete d.current[p]},dragging:u===p,prefixCls:n,style:Fr(r,p),key:p,value:v,valueIndex:p,onStartMove:a,onOffsetChange:l,render:i},s))}))});function od(e){var t="touches"in e?e.touches[0]:e;return{pageX:t.pageX,pageY:t.pageY}}function MS(e,t,n,r,a,l,o,i,u){var s=g.useState(null),d=wt(s,2),v=d[0],p=d[1],h=g.useState(-1),y=wt(h,2),w=y[0],k=y[1],f=g.useState(n),c=wt(f,2),m=c[0],E=c[1],C=g.useState(n),O=wt(C,2),D=O[0],N=O[1],R=g.useRef(null),M=g.useRef(null);g.useEffect(function(){w===-1&&E(n)},[n,w]),g.useEffect(function(){return function(){document.removeEventListener("mousemove",R.current),document.removeEventListener("mouseup",M.current),document.removeEventListener("touchmove",R.current),document.removeEventListener("touchend",M.current)}},[]);var H=function(G,_){m.some(function(L,A){return L!==G[A]})&&(_!==void 0&&p(_),E(G),o(G))},F=function(G,_){if(G===-1){var L=D[0],A=D[D.length-1],Y=r-L,Q=a-A,ae=_*(a-r);ae=Math.max(ae,Y),ae=Math.min(ae,Q);var pe=l(L+ae);ae=pe-L;var b=D.map(function(Pe){return Pe+ae});H(b)}else{var X=(a-r)*_,re=Cn(m);re[G]=D[G];var ie=u(re,X,G,"dist");H(ie.values,ie.value)}},$=g.useRef(F);$.current=F;var q=function(G,_,L){G.stopPropagation();var A=L||n,Y=A[_];k(_),p(Y),N(A);var Q=od(G),ae=Q.pageX,pe=Q.pageY,b=function(ie){ie.preventDefault();var Pe=od(ie),At=Pe.pageX,mt=Pe.pageY,Qe=At-ae,Te=mt-pe,ue=e.current.getBoundingClientRect(),Ue=ue.width,xe=ue.height,Ae;switch(t){case"btt":Ae=-Te/xe;break;case"ttb":Ae=Te/xe;break;case"rtl":Ae=-Qe/Ue;break;default:Ae=Qe/Ue}$.current(_,Ae)},X=function re(ie){ie.preventDefault(),document.removeEventListener("mouseup",re),document.removeEventListener("mousemove",b),document.removeEventListener("touchend",re),document.removeEventListener("touchmove",b),R.current=null,M.current=null,k(-1),i()};document.addEventListener("mouseup",X),document.addEventListener("mousemove",b),document.addEventListener("touchend",X),document.addEventListener("touchmove",b),R.current=b,M.current=X},J=g.useMemo(function(){var K=Cn(n).sort(function(_,L){return _-L}),G=Cn(m).sort(function(_,L){return _-L});return K.every(function(_,L){return _===G[L]})?m:n},[n,m]);return[w,v,J,q]}function AS(e,t,n,r,a,l){var o=g.useCallback(function(h){var y=isFinite(h)?h:e;return y=Math.min(t,h),y=Math.max(e,y),y},[e,t]),i=g.useCallback(function(h){if(n!==null){var y=e+Math.round((o(h)-e)/n)*n,w=function(m){return(String(m).split(".")[1]||"").length},k=Math.max(w(n),w(t),w(e)),f=Number(y.toFixed(k));return e<=f&&f<=t?f:null}return null},[n,e,t,o]),u=g.useCallback(function(h){var y=o(h),w=r.map(function(c){return c.value});n!==null&&w.push(i(h)),w.push(e,t);var k=w[0],f=t-e;return w.forEach(function(c){var m=Math.abs(y-c);m<=f&&(k=c,f=m)}),k},[e,t,r,n,o,i]),s=function h(y,w,k){var f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"unit";if(typeof w=="number"){var c,m=y[k],E=m+w,C=[];r.forEach(function(M){C.push(M.value)}),C.push(e,t),C.push(i(m));var O=w>0?1:-1;f==="unit"?C.push(i(m+O*n)):C.push(i(E)),C=C.filter(function(M){return M!==null}).filter(function(M){return w<0?M<=m:M>=m}),f==="unit"&&(C=C.filter(function(M){return M!==m}));var D=f==="unit"?m:E;c=C[0];var N=Math.abs(c-D);if(C.forEach(function(M){var H=Math.abs(M-D);H<N&&(c=M,N=H)}),c===void 0)return w<0?e:t;if(f==="dist")return c;if(Math.abs(w)>1){var R=Cn(y);return R[k]=c,h(R,w-O,k,f)}return c}else{if(w==="min")return e;if(w==="max")return t}},d=function(y,w,k){var f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"unit",c=y[k],m=s(y,w,k,f);return{value:m,changed:m!==c}},v=function(y){return l===null&&y===0||typeof l=="number"&&y<l},p=function(y,w,k){var f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"unit",c=y.map(u),m=c[k],E=s(c,w,k,f);if(c[k]=E,a===!1){var C=l||0;k>0&&c[k-1]!==m&&(c[k]=Math.max(c[k],c[k-1]+C)),k<c.length-1&&c[k+1]!==m&&(c[k]=Math.min(c[k],c[k+1]-C))}else if(typeof l=="number"||l===null){for(var O=k+1;O<c.length;O+=1)for(var D=!0;v(c[O]-c[O-1])&&D;){var N=d(c,1,O);c[O]=N.value,D=N.changed}for(var R=k;R>0;R-=1)for(var M=!0;v(c[R]-c[R-1])&&M;){var H=d(c,-1,R-1);c[R-1]=H.value,M=H.changed}for(var F=c.length-1;F>0;F-=1)for(var $=!0;v(c[F]-c[F-1])&&$;){var q=d(c,-1,F-1);c[F-1]=q.value,$=q.changed}for(var J=0;J<c.length-1;J+=1)for(var K=!0;v(c[J+1]-c[J])&&K;){var G=d(c,1,J+1);c[J+1]=G.value,K=G.changed}}return{value:c[k],values:c}};return[u,p]}function RS(e){var t=e.prefixCls,n=e.style,r=e.children,a=e.value,l=e.onClick,o=g.useContext(dr),i=o.min,u=o.max,s=o.direction,d=o.includedStart,v=o.includedEnd,p=o.included,h="".concat(t,"-text"),y=dc(s,a,i,u);return g.createElement("span",{className:or(h,Ut({},"".concat(h,"-active"),p&&d<=a&&a<=v)),style:rt(rt({},y),n),onMouseDown:function(k){k.stopPropagation()},onClick:function(){l(a)}},r)}function jS(e){var t=e.prefixCls,n=e.marks,r=e.onClick,a="".concat(t,"-mark");return n.length?g.createElement("div",{className:a},n.map(function(l){var o=l.value,i=l.style,u=l.label;return g.createElement(RS,{key:o,prefixCls:a,style:i,value:o,onClick:r},u)})):null}function bS(e){var t=e.prefixCls,n=e.value,r=e.style,a=e.activeStyle,l=g.useContext(dr),o=l.min,i=l.max,u=l.direction,s=l.included,d=l.includedStart,v=l.includedEnd,p="".concat(t,"-dot"),h=s&&d<=n&&n<=v,y=rt(rt({},dc(u,n,o,i)),typeof r=="function"?r(n):r);return h&&(y=rt(rt({},y),typeof a=="function"?a(n):a)),g.createElement("span",{className:or(p,Ut({},"".concat(p,"-active"),h)),style:y})}function IS(e){var t=e.prefixCls,n=e.marks,r=e.dots,a=e.style,l=e.activeStyle,o=g.useContext(dr),i=o.min,u=o.max,s=o.step,d=g.useMemo(function(){var v=new Set;if(n.forEach(function(h){v.add(h.value)}),r&&s!==null)for(var p=i;p<=u;)v.add(p),p+=s;return Array.from(v)},[i,u,s,r,n]);return g.createElement("div",{className:"".concat(t,"-step")},d.map(function(v){return g.createElement(bS,{prefixCls:t,key:v,value:v,style:a,activeStyle:l})}))}function id(e){var t,n=e.prefixCls,r=e.style,a=e.start,l=e.end,o=e.index,i=e.onStartMove,u=e.replaceCls,s=g.useContext(dr),d=s.direction,v=s.min,p=s.max,h=s.disabled,y=s.range,w=s.classNames,k="".concat(n,"-track"),f=Zu(a,v,p),c=Zu(l,v,p),m=function(D){!h&&i&&i(D,-1)},E={};switch(d){case"rtl":E.right="".concat(f*100,"%"),E.width="".concat(c*100-f*100,"%");break;case"btt":E.bottom="".concat(f*100,"%"),E.height="".concat(c*100-f*100,"%");break;case"ttb":E.top="".concat(f*100,"%"),E.height="".concat(c*100-f*100,"%");break;default:E.left="".concat(f*100,"%"),E.width="".concat(c*100-f*100,"%")}var C=u||or(k,(t={},Ut(t,"".concat(k,"-").concat(o+1),o!==null&&y),Ut(t,"".concat(n,"-track-draggable"),i),t),w.track);return g.createElement("div",{className:C,style:rt(rt({},E),r),onMouseDown:m,onTouchStart:m})}function FS(e){var t=e.prefixCls,n=e.style,r=e.values,a=e.startPoint,l=e.onStartMove,o=g.useContext(dr),i=o.included,u=o.range,s=o.min,d=o.styles,v=o.classNames,p=g.useMemo(function(){if(!u){if(r.length===0)return[];var y=a??s,w=r[0];return[{start:Math.min(y,w),end:Math.max(y,w)}]}for(var k=[],f=0;f<r.length-1;f+=1)k.push({start:r[f],end:r[f+1]});return k},[r,u,a,s]),h=null;return(v.tracks||d.tracks)&&(h=g.createElement(id,{index:null,prefixCls:t,start:p[0].start,end:p[p.length-1].end,replaceCls:or(v.tracks,"".concat(t,"-tracks")),style:d.tracks})),i?g.createElement(g.Fragment,null,h,p.map(function(y,w){var k=y.start,f=y.end;return g.createElement(id,{index:w,prefixCls:t,style:rt(rt({},Fr(n,w)),d.track),start:k,end:f,key:w,onStartMove:l})})):null}var _m=g.forwardRef(function(e,t){var n,r=e.prefixCls,a=r===void 0?"rc-slider":r,l=e.className,o=e.style,i=e.classNames,u=e.styles,s=e.disabled,d=s===void 0?!1:s,v=e.keyboard,p=v===void 0?!0:v,h=e.autoFocus,y=e.onFocus,w=e.onBlur,k=e.min,f=k===void 0?0:k,c=e.max,m=c===void 0?100:c,E=e.step,C=E===void 0?1:E,O=e.value,D=e.defaultValue,N=e.range,R=e.count,M=e.onChange,H=e.onBeforeChange,F=e.onAfterChange,$=e.onChangeComplete,q=e.allowCross,J=q===void 0?!0:q,K=e.pushable,G=K===void 0?!1:K,_=e.draggableTrack,L=e.reverse,A=e.vertical,Y=e.included,Q=Y===void 0?!0:Y,ae=e.startPoint,pe=e.trackStyle,b=e.handleStyle,X=e.railStyle,re=e.dotStyle,ie=e.activeDotStyle,Pe=e.marks,At=e.dots,mt=e.handleRender,Qe=e.tabIndex,Te=Qe===void 0?0:Qe,ue=e.ariaLabelForHandle,Ue=e.ariaLabelledByForHandle,xe=e.ariaValueTextFormatterForHandle,Ae=g.useRef(),Ge=g.useRef(),Rt=g.useMemo(function(){return A?L?"ttb":"btt":L?"rtl":"ltr"},[L,A]),Re=g.useMemo(function(){return isFinite(f)?f:0},[f]),ht=g.useMemo(function(){return isFinite(m)?m:100},[m]),yt=g.useMemo(function(){return C!==null&&C<=0?1:C},[C]),Bt=g.useMemo(function(){return typeof G=="boolean"?G?yt:!1:G>=0?G:!1},[G,yt]),_t=g.useMemo(function(){var W=Object.keys(Pe||{});return W.map(function(B){var U=Pe[B],fe={value:Number(B)};return U&&In(U)==="object"&&!g.isValidElement(U)&&("label"in U||"style"in U)?(fe.style=U.style,fe.label=U.label):fe.label=U,fe}).filter(function(B){var U=B.label;return U||typeof U=="number"}).sort(function(B,U){return B.value-U.value})},[Pe]),Hn=AS(Re,ht,yt,_t,J,Bt),Jt=wt(Hn,2),it=Jt[0],jt=Jt[1],z=SS(D,{value:O}),te=wt(z,2),ee=te[0],V=te[1],Z=g.useMemo(function(){var W=ee==null?[]:Array.isArray(ee)?ee:[ee],B=wt(W,1),U=B[0],fe=U===void 0?Re:U,se=ee===null?[]:[fe];if(N){if(se=Cn(W),R||ee===void 0){var ut=R>=0?R+1:2;for(se=se.slice(0,ut);se.length<ut;){var en;se.push((en=se[se.length-1])!==null&&en!==void 0?en:Re)}}se.sort(function(tn,mn){return tn-mn})}return se.forEach(function(tn,mn){se[mn]=it(tn)}),se},[ee,N,Re,R,it]),de=g.useRef(Z);de.current=Z;var ce=function(B){return N?B:B[0]},me=function(B){var U=Cn(B).sort(function(fe,se){return fe-se});M&&!OS(U,de.current,!0)&&M(ce(U)),V(U)},he=function(){F==null||F(ce(de.current)),cl(!F,"[rc-slider] `onAfterChange` is deprecated. Please use `onChangeComplete` instead."),$==null||$(ce(de.current))},Fe=MS(Ge,Rt,Z,Re,ht,it,me,he,jt),je=wt(Fe,4),Ce=je[0],Le=je[1],_e=je[2],Bn=je[3],ye=function(B,U){if(!d){var fe=0,se=ht-Re;Z.forEach(function(en,tn){var mn=Math.abs(B-en);mn<=se&&(se=mn,fe=tn)});var ut=Cn(Z);ut[fe]=B,N&&!Z.length&&R===void 0&&ut.push(B),H==null||H(ce(ut)),me(ut),U&&Bn(U,fe,ut)}},Ot=function(B){B.preventDefault();var U=Ge.current.getBoundingClientRect(),fe=U.width,se=U.height,ut=U.left,en=U.top,tn=U.bottom,mn=U.right,vc=B.clientX,pc=B.clientY,ua;switch(Rt){case"btt":ua=(tn-pc)/se;break;case"ttb":ua=(pc-en)/se;break;case"rtl":ua=(mn-vc)/fe;break;default:ua=(vc-ut)/fe}var Om=Re+ua*(ht-Re);ye(it(Om),B)},ri=g.useState(null),pr=wt(ri,2),mr=pr[0],la=pr[1],oa=function(B,U){if(!d){var fe=jt(Z,B,U);H==null||H(ce(Z)),me(fe.values),la(fe.value)}};g.useEffect(function(){if(mr!==null){var W=Z.indexOf(mr);W>=0&&Ae.current.focus(W)}la(null)},[mr]);var hr=g.useMemo(function(){return _&&yt===null?!1:_},[_,yt]),yr=function(B,U){Bn(B,U),H==null||H(ce(de.current))},gr=Ce!==-1;g.useEffect(function(){if(!gr){var W=Z.lastIndexOf(Le);Ae.current.focus(W)}},[gr]);var Yt=g.useMemo(function(){return Cn(_e).sort(function(W,B){return W-B})},[_e]),ai=g.useMemo(function(){return N?[Yt[0],Yt[Yt.length-1]]:[Re,Yt[0]]},[Yt,N,Re]),wr=wt(ai,2),ia=wr[0],fl=wr[1];g.useImperativeHandle(t,function(){return{focus:function(){Ae.current.focus(0)},blur:function(){var B=document,U=B.activeElement;Ge.current.contains(U)&&(U==null||U.blur())}}}),g.useEffect(function(){h&&Ae.current.focus(0)},[]);var li=g.useMemo(function(){return{min:Re,max:ht,direction:Rt,disabled:d,keyboard:p,step:yt,included:Q,includedStart:ia,includedEnd:fl,range:N,tabIndex:Te,ariaLabelForHandle:ue,ariaLabelledByForHandle:Ue,ariaValueTextFormatterForHandle:xe,styles:u||{},classNames:i||{}}},[Re,ht,Rt,d,p,yt,Q,ia,fl,N,Te,ue,Ue,xe,u,i]);return g.createElement(dr.Provider,{value:li},g.createElement("div",{ref:Ge,className:or(a,l,(n={},Ut(n,"".concat(a,"-disabled"),d),Ut(n,"".concat(a,"-vertical"),A),Ut(n,"".concat(a,"-horizontal"),!A),Ut(n,"".concat(a,"-with-marks"),_t.length),n)),style:o,onMouseDown:Ot},g.createElement("div",{className:or("".concat(a,"-rail"),i==null?void 0:i.rail),style:rt(rt({},X),u==null?void 0:u.rail)}),g.createElement(FS,{prefixCls:a,style:pe,values:Yt,startPoint:ae,onStartMove:hr?yr:null}),g.createElement(IS,{prefixCls:a,marks:_t,dots:At,style:re,activeStyle:ie}),g.createElement(LS,{ref:Ae,prefixCls:a,style:b,values:_e,draggingIndex:Ce,onStartMove:yr,onOffsetChange:oa,onFocus:y,onBlur:w,handleRender:mt,onChangeComplete:he}),g.createElement(jS,{prefixCls:a,marks:_t,onClick:ye})))});function $S(e,t){return x.jsx("option",{value:e,children:t},e)}function vr(e,t,n=""){return x.jsxs("div",{children:[x.jsxs("label",{children:[e.label,n]}),t]})}function zS({obj:e,handleChange:t,refreshWidgetStates:n}){const r=e,a=r.options.map(u=>$S(u.id,u.label)),[l,o]=g.useState("");g.useMemo(()=>{o(r.selected_id)},[r]),g.useEffect(()=>t([l]),[l]);const i=u=>{o(u.target.value),r.trigger_refresh&&n(r.name,[u.target.value])};return vr(r,x.jsx("select",{id:r.name,className:"single-select padded widget",value:l,onChange:i,children:a}))}function US({obj:e,handleChange:t,refreshWidgetStates:n}){const r=e,a=v=>({label:v.label,value:v.id}),l=()=>r.options.map(v=>a(v)),o=v=>v.length>0?v.map(p=>p.value):[""],[i,u]=g.useState([]);g.useMemo(()=>{const v=r.selected_ids.map(p=>{const h=r.options.find(y=>y.id==p);return a(h||{label:"",id:""})});u(v)},[r]),g.useEffect(()=>t(o(i)),[i]);const s=v=>{u(v),r.trigger_refresh&&n(r.name,o(v))},d=r.order_matters?" (order matters)":"";return vr(r,x.jsx(Eg,{options:l(),labelledBy:r.name,className:"multi-select widget",value:i,onChange:s,hasSelectAll:r.show_select_all}),d)}function WS({obj:e,handleChange:t}){const n=e,[r,a]=g.useState("");return g.useMemo(()=>{a(n.selected_date)},[n]),g.useEffect(()=>t([r]),[r]),vr(n,x.jsx("input",{type:"date",id:n.name,className:"date padded widget",value:r,onChange:l=>a(l.target.value)}))}function VS({obj:e,handleChange:t}){const n=e,r=u=>new Date(u.replace(/-/g,"/")),[a,l]=g.useState(null);g.useMemo(()=>{l([r(n.selected_start_date),r(n.selected_end_date)])},[n]);const[o,i]=g.useState(null);return g.useEffect(()=>{if(Array.isArray(a)){const[u,s]=a;if(u!==null&&s!==null){const d=u.toISOString().split("T")[0],v=s.toISOString().split("T")[0];return i([d,v]),t([d,v])}}if(o!==null)return t(o)},[a]),vr(n,x.jsx(uS,{className:"widget",value:a,onChange:l,format:"y/MM/dd"}))}function HS({obj:e,handleChange:t}){const n=e,[r,a]=g.useState(0);return g.useMemo(()=>{a(parseFloat(n.selected_value))},[n]),g.useEffect(()=>t([r.toString()]),[r]),vr(n,x.jsxs(x.Fragment,{children:[x.jsx("div",{className:"slider-wrapper",children:x.jsx(_m,{min:parseFloat(n.min_value),max:parseFloat(n.max_value),step:parseFloat(n.increment),value:r,onChange:l=>a(l)})}),x.jsx("div",{className:"slider-value",children:x.jsxs("span",{children:["Value: ",r]})})]}))}function BS({obj:e,handleChange:t}){const n=e,[r,a]=g.useState([0,0]);return g.useMemo(()=>{a([parseFloat(n.selected_lower_value),parseFloat(n.selected_upper_value)])},[n]),g.useEffect(()=>{const[l,o]=r.map(i=>i.toString());return t([l,o])},[r]),vr(n,x.jsxs(x.Fragment,{children:[x.jsx("div",{className:"slider-wrapper",children:x.jsx(_m,{range:!0,min:parseFloat(n.min_value),max:parseFloat(n.max_value),step:parseFloat(n.increment),value:r,onChange:l=>a(l)})}),x.jsxs("div",{className:"slider-value",children:[x.jsxs("span",{children:["Lower: ",r[0]]}),x.jsxs("span",{children:["Upper: ",r[1]]})]})]}))}function YS({obj:e,handleChange:t}){const n=e,[r,a]=g.useState("");g.useMemo(()=>{a(n.entered_text)},[n]),g.useEffect(()=>t([r]),[r]);const l=i=>{a(i.target.value)},o=n.is_textarea?x.jsx("textarea",{value:r,className:"textbox padded widget",onChange:l}):x.jsx("input",{type:"text",value:r,className:"textbox padded widget",onChange:l});return vr(n,o)}function KS({obj:e,paramSelections:t,refreshWidgetStates:n}){function r(){t.current.delete(e.name),_f("removed: ",e.name)}function a(o){return t.current.set(e.name,o),_f("added: ",e.name),r}let l=x.jsx(x.Fragment,{});switch(e.widget_type){case"single_select":l=x.jsx(zS,{obj:e,handleChange:a,refreshWidgetStates:n});break;case"multi_select":l=x.jsx(US,{obj:e,handleChange:a,refreshWidgetStates:n});break;case"date":l=x.jsx(WS,{obj:e,handleChange:a});break;case"date_range":l=x.jsx(VS,{obj:e,handleChange:a});break;case"number":l=x.jsx(HS,{obj:e,handleChange:a});break;case"number_range":l=x.jsx(BS,{obj:e,handleChange:a});break;case"text":l=x.jsx(YS,{obj:e,handleChange:a});break}return x.jsx(x.Fragment,{children:l})}function QS({paramData:e,refreshWidgetStates:t,updateTableData:n}){const r=g.useRef(new Map);if(e===null)return x.jsx("div",{});const a=e.map(l=>x.jsx(KS,{obj:l,paramSelections:r,refreshWidgetStates:t},l.name));return x.jsxs("div",{children:[a,x.jsx("input",{type:"submit",value:"Apply",className:"blue-button padded widget",onClick:()=>n(r.current)})]})}function GS({username:e,setIsLoginMode:t,submitLogout:n}){let r,a;return e===""?(r=x.jsx("span",{}),a=x.jsx("button",{className:"white-button",onClick:()=>t(!0),children:"Authenticate"})):(r=x.jsxs("span",{children:['Logged in as "',e,'"']}),a=x.jsx("button",{className:"white-button",onClick:n,children:"Logout"})),x.jsxs("div",{className:"horizontal-container",children:[r,a]})}function XS({isLoginMode:e,setIsLoginMode:t,submitLogin:n}){const r={username:"",password:""},[a,l]=g.useState(r),[o,i]=g.useState(!1);function u(h){const{name:y,value:w}=h.target;l(k=>({...k,[y]:w}))}function s(){i(!1),l(r),t(!1)}function d(h){h.preventDefault();const y=new FormData;y.append("username",a.username),y.append("password",a.password),n(y,()=>{s()},()=>{i(!0)})}const v=o?x.jsx("div",{children:"Incorrect username or password. Please try again"}):x.jsx("div",{}),p=x.jsxs("form",{className:"modal-content",style:{width:"400px"},onClick:h=>h.stopPropagation(),onSubmit:d,onReset:s,children:[x.jsx("label",{htmlFor:"username",children:x.jsx("b",{children:"Username"})}),x.jsx("input",{type:"text",required:!0,className:"padded widget",placeholder:"Enter Username",name:"username",value:a.username,onChange:u}),x.jsx("label",{htmlFor:"password",children:x.jsx("b",{children:"Password"})}),x.jsx("input",{type:"password",required:!0,className:"padded widget",placeholder:"Enter Password",name:"password",value:a.password,onChange:u}),v,x.jsxs("div",{style:{marginTop:"20px",display:"grid",gridAutoFlow:"column",columnGap:"10px"},children:[x.jsx("button",{type:"submit",className:"blue-button",children:"Login"}),x.jsx("button",{type:"reset",className:"blue-button",children:"Cancel"})]})]});return e?x.jsx("div",{className:"modal-background",onClick:s,children:p}):x.jsx("div",{})}async function ZS(e){if(e===null)return;let t="";const n=e.schema.fields;for(let r=0;r<n.length;r++)r!==0&&(t+=" "),t+=n[r].name;t+=`
47
+ */(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var l="",o=0;o<arguments.length;o++){var i=arguments[o];i&&(l=a(l,r(i)))}return l}function r(l){if(typeof l=="string"||typeof l=="number")return l;if(typeof l!="object")return"";if(Array.isArray(l))return n.apply(null,l);if(l.toString!==Object.prototype.toString&&!l.toString.toString().includes("[native code]"))return l.toString();var o="";for(var i in l)t.call(l,i)&&l[i]&&(o=a(o,i));return o}function a(l,o){return o?l?l+" "+o:l+o:l}e.exports?(n.default=n,e.exports=n):window.classNames=n})()})(xm);var yS=xm.exports;const or=Po(yS);function nd(e){var t=g.useRef();t.current=e;var n=g.useCallback(function(){for(var r,a=arguments.length,l=new Array(a),o=0;o<a;o++)l[o]=arguments[o];return(r=t.current)===null||r===void 0?void 0:r.call.apply(r,[t].concat(l))},[]);return n}function gS(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var rd=gS()?g.useLayoutEffect:g.useEffect,wS=function(t,n){var r=g.useRef(!0);rd(function(){return t(r.current)},n),rd(function(){return r.current=!1,function(){r.current=!0}},[])},ad=function(t,n){wS(function(r){if(!r)return t()},n)};function ld(e){var t=g.useRef(!1),n=g.useState(e),r=wt(n,2),a=r[0],l=r[1];g.useEffect(function(){return t.current=!1,function(){t.current=!0}},[]);function o(i,u){u&&t.current||l(i)}return[a,o]}function Fi(e){return e!==void 0}function SS(e,t){var n=t||{},r=n.defaultValue,a=n.value,l=n.onChange,o=n.postState,i=ld(function(){return Fi(a)?a:Fi(r)?typeof r=="function"?r():r:typeof e=="function"?e():e}),u=wt(i,2),s=u[0],d=u[1],v=a!==void 0?a:s,p=o?o(v):v,h=nd(l),y=ld([v]),w=wt(y,2),k=w[0],f=w[1];ad(function(){var m=k[0];s!==m&&h(s,m)},[k]),ad(function(){Fi(a)||d(a)},[a]);var c=nd(function(m,E){d(m,E),f([v],E)});return[p,c]}var Xu={},ES=function(t){};function xS(e,t){}function kS(e,t){}function CS(){Xu={}}function km(e,t,n){!t&&!Xu[n]&&(e(!1,n),Xu[n]=!0)}function cl(e,t){km(xS,e,t)}function _S(e,t){km(kS,e,t)}cl.preMessage=ES;cl.resetWarned=CS;cl.noteOnce=_S;function OS(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=new Set;function a(l,o){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,u=r.has(l);if(cl(!u,"Warning: There may be circular references"),u)return!1;if(l===o)return!0;if(n&&i>1)return!1;r.add(l);var s=i+1;if(Array.isArray(l)){if(!Array.isArray(o)||l.length!==o.length)return!1;for(var d=0;d<l.length;d++)if(!a(l[d],o[d],s))return!1;return!0}if(l&&o&&In(l)==="object"&&In(o)==="object"){var v=Object.keys(l);return v.length!==Object.keys(o).length?!1:v.every(function(p){return a(l[p],o[p],s)})}return!1}return a(e,t)}var dr=g.createContext({min:0,max:0,direction:"ltr",step:1,includedStart:0,includedEnd:0,tabIndex:0,keyboard:!0,styles:{},classNames:{}});function No(){return No=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},No.apply(this,arguments)}function DS(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,l;for(l=0;l<r.length;l++)a=r[l],!(t.indexOf(a)>=0)&&(n[a]=e[a]);return n}function Cm(e,t){if(e==null)return{};var n=DS(e,t),r,a;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var I={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(t){var n=t.keyCode;if(t.altKey&&!t.ctrlKey||t.metaKey||n>=I.F1&&n<=I.F12)return!1;switch(n){case I.ALT:case I.CAPS_LOCK:case I.CONTEXT_MENU:case I.CTRL:case I.DOWN:case I.END:case I.ESC:case I.HOME:case I.INSERT:case I.LEFT:case I.MAC_FF_META:case I.META:case I.NUMLOCK:case I.NUM_CENTER:case I.PAGE_DOWN:case I.PAGE_UP:case I.PAUSE:case I.PRINT_SCREEN:case I.RIGHT:case I.SHIFT:case I.UP:case I.WIN_KEY:case I.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(t){if(t>=I.ZERO&&t<=I.NINE||t>=I.NUM_ZERO&&t<=I.NUM_MULTIPLY||t>=I.A&&t<=I.Z||window.navigator.userAgent.indexOf("WebKit")!==-1&&t===0)return!0;switch(t){case I.SPACE:case I.QUESTION_MARK:case I.NUM_PLUS:case I.NUM_MINUS:case I.NUM_PERIOD:case I.NUM_DIVISION:case I.SEMICOLON:case I.DASH:case I.EQUALS:case I.COMMA:case I.PERIOD:case I.SLASH:case I.APOSTROPHE:case I.SINGLE_QUOTE:case I.OPEN_SQUARE_BRACKET:case I.BACKSLASH:case I.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}};function Zu(e,t,n){return(e-t)/(n-t)}function dc(e,t,n,r){var a=Zu(t,n,r),l={};switch(e){case"rtl":l.right="".concat(a*100,"%"),l.transform="translateX(50%)";break;case"btt":l.bottom="".concat(a*100,"%"),l.transform="translateY(50%)";break;case"ttb":l.top="".concat(a*100,"%"),l.transform="translateY(-50%)";break;default:l.left="".concat(a*100,"%"),l.transform="translateX(-50%)";break}return l}function Fr(e,t){return Array.isArray(e)?e[t]:e}var NS=["prefixCls","value","valueIndex","onStartMove","style","render","dragging","onOffsetChange","onChangeComplete"],PS=g.forwardRef(function(e,t){var n,r,a=e.prefixCls,l=e.value,o=e.valueIndex,i=e.onStartMove,u=e.style,s=e.render,d=e.dragging,v=e.onOffsetChange,p=e.onChangeComplete,h=Cm(e,NS),y=g.useContext(dr),w=y.min,k=y.max,f=y.direction,c=y.disabled,m=y.keyboard,E=y.range,C=y.tabIndex,O=y.ariaLabelForHandle,D=y.ariaLabelledByForHandle,N=y.ariaValueTextFormatterForHandle,R=y.styles,M=y.classNames,H="".concat(a,"-handle"),F=function(_){c||i(_,o)},$=function(_){if(!c&&m){var L=null;switch(_.which||_.keyCode){case I.LEFT:L=f==="ltr"||f==="btt"?-1:1;break;case I.RIGHT:L=f==="ltr"||f==="btt"?1:-1;break;case I.UP:L=f!=="ttb"?1:-1;break;case I.DOWN:L=f!=="ttb"?-1:1;break;case I.HOME:L="min";break;case I.END:L="max";break;case I.PAGE_UP:L=2;break;case I.PAGE_DOWN:L=-2;break}L!==null&&(_.preventDefault(),v(L,o))}},q=function(_){switch(_.which||_.keyCode){case I.LEFT:case I.RIGHT:case I.UP:case I.DOWN:case I.HOME:case I.END:case I.PAGE_UP:case I.PAGE_DOWN:p==null||p();break}},J=dc(f,l,w,k),K=g.createElement("div",No({ref:t,className:or(H,(n={},Ut(n,"".concat(H,"-").concat(o+1),E),Ut(n,"".concat(H,"-dragging"),d),n),M.handle),style:rt(rt(rt({},J),u),R.handle),onMouseDown:F,onTouchStart:F,onKeyDown:$,onKeyUp:q,tabIndex:c?null:Fr(C,o),role:"slider","aria-valuemin":w,"aria-valuemax":k,"aria-valuenow":l,"aria-disabled":c,"aria-label":Fr(O,o),"aria-labelledby":Fr(D,o),"aria-valuetext":(r=Fr(N,o))===null||r===void 0?void 0:r(l),"aria-orientation":f==="ltr"||f==="rtl"?"horizontal":"vertical"},h));return s&&(K=s(K,{index:o,prefixCls:a,value:l,dragging:d})),K}),TS=["prefixCls","style","onStartMove","onOffsetChange","values","handleRender","draggingIndex"],LS=g.forwardRef(function(e,t){var n=e.prefixCls,r=e.style,a=e.onStartMove,l=e.onOffsetChange,o=e.values,i=e.handleRender,u=e.draggingIndex,s=Cm(e,TS),d=g.useRef({});return g.useImperativeHandle(t,function(){return{focus:function(p){var h;(h=d.current[p])===null||h===void 0||h.focus()}}}),g.createElement(g.Fragment,null,o.map(function(v,p){return g.createElement(PS,No({ref:function(y){y?d.current[p]=y:delete d.current[p]},dragging:u===p,prefixCls:n,style:Fr(r,p),key:p,value:v,valueIndex:p,onStartMove:a,onOffsetChange:l,render:i},s))}))});function od(e){var t="touches"in e?e.touches[0]:e;return{pageX:t.pageX,pageY:t.pageY}}function MS(e,t,n,r,a,l,o,i,u){var s=g.useState(null),d=wt(s,2),v=d[0],p=d[1],h=g.useState(-1),y=wt(h,2),w=y[0],k=y[1],f=g.useState(n),c=wt(f,2),m=c[0],E=c[1],C=g.useState(n),O=wt(C,2),D=O[0],N=O[1],R=g.useRef(null),M=g.useRef(null);g.useEffect(function(){w===-1&&E(n)},[n,w]),g.useEffect(function(){return function(){document.removeEventListener("mousemove",R.current),document.removeEventListener("mouseup",M.current),document.removeEventListener("touchmove",R.current),document.removeEventListener("touchend",M.current)}},[]);var H=function(G,_){m.some(function(L,A){return L!==G[A]})&&(_!==void 0&&p(_),E(G),o(G))},F=function(G,_){if(G===-1){var L=D[0],A=D[D.length-1],Y=r-L,Q=a-A,ae=_*(a-r);ae=Math.max(ae,Y),ae=Math.min(ae,Q);var pe=l(L+ae);ae=pe-L;var b=D.map(function(Pe){return Pe+ae});H(b)}else{var X=(a-r)*_,re=Cn(m);re[G]=D[G];var ie=u(re,X,G,"dist");H(ie.values,ie.value)}},$=g.useRef(F);$.current=F;var q=function(G,_,L){G.stopPropagation();var A=L||n,Y=A[_];k(_),p(Y),N(A);var Q=od(G),ae=Q.pageX,pe=Q.pageY,b=function(ie){ie.preventDefault();var Pe=od(ie),At=Pe.pageX,mt=Pe.pageY,Qe=At-ae,Te=mt-pe,ue=e.current.getBoundingClientRect(),Ue=ue.width,xe=ue.height,Ae;switch(t){case"btt":Ae=-Te/xe;break;case"ttb":Ae=Te/xe;break;case"rtl":Ae=-Qe/Ue;break;default:Ae=Qe/Ue}$.current(_,Ae)},X=function re(ie){ie.preventDefault(),document.removeEventListener("mouseup",re),document.removeEventListener("mousemove",b),document.removeEventListener("touchend",re),document.removeEventListener("touchmove",b),R.current=null,M.current=null,k(-1),i()};document.addEventListener("mouseup",X),document.addEventListener("mousemove",b),document.addEventListener("touchend",X),document.addEventListener("touchmove",b),R.current=b,M.current=X},J=g.useMemo(function(){var K=Cn(n).sort(function(_,L){return _-L}),G=Cn(m).sort(function(_,L){return _-L});return K.every(function(_,L){return _===G[L]})?m:n},[n,m]);return[w,v,J,q]}function AS(e,t,n,r,a,l){var o=g.useCallback(function(h){var y=isFinite(h)?h:e;return y=Math.min(t,h),y=Math.max(e,y),y},[e,t]),i=g.useCallback(function(h){if(n!==null){var y=e+Math.round((o(h)-e)/n)*n,w=function(m){return(String(m).split(".")[1]||"").length},k=Math.max(w(n),w(t),w(e)),f=Number(y.toFixed(k));return e<=f&&f<=t?f:null}return null},[n,e,t,o]),u=g.useCallback(function(h){var y=o(h),w=r.map(function(c){return c.value});n!==null&&w.push(i(h)),w.push(e,t);var k=w[0],f=t-e;return w.forEach(function(c){var m=Math.abs(y-c);m<=f&&(k=c,f=m)}),k},[e,t,r,n,o,i]),s=function h(y,w,k){var f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"unit";if(typeof w=="number"){var c,m=y[k],E=m+w,C=[];r.forEach(function(M){C.push(M.value)}),C.push(e,t),C.push(i(m));var O=w>0?1:-1;f==="unit"?C.push(i(m+O*n)):C.push(i(E)),C=C.filter(function(M){return M!==null}).filter(function(M){return w<0?M<=m:M>=m}),f==="unit"&&(C=C.filter(function(M){return M!==m}));var D=f==="unit"?m:E;c=C[0];var N=Math.abs(c-D);if(C.forEach(function(M){var H=Math.abs(M-D);H<N&&(c=M,N=H)}),c===void 0)return w<0?e:t;if(f==="dist")return c;if(Math.abs(w)>1){var R=Cn(y);return R[k]=c,h(R,w-O,k,f)}return c}else{if(w==="min")return e;if(w==="max")return t}},d=function(y,w,k){var f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"unit",c=y[k],m=s(y,w,k,f);return{value:m,changed:m!==c}},v=function(y){return l===null&&y===0||typeof l=="number"&&y<l},p=function(y,w,k){var f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"unit",c=y.map(u),m=c[k],E=s(c,w,k,f);if(c[k]=E,a===!1){var C=l||0;k>0&&c[k-1]!==m&&(c[k]=Math.max(c[k],c[k-1]+C)),k<c.length-1&&c[k+1]!==m&&(c[k]=Math.min(c[k],c[k+1]-C))}else if(typeof l=="number"||l===null){for(var O=k+1;O<c.length;O+=1)for(var D=!0;v(c[O]-c[O-1])&&D;){var N=d(c,1,O);c[O]=N.value,D=N.changed}for(var R=k;R>0;R-=1)for(var M=!0;v(c[R]-c[R-1])&&M;){var H=d(c,-1,R-1);c[R-1]=H.value,M=H.changed}for(var F=c.length-1;F>0;F-=1)for(var $=!0;v(c[F]-c[F-1])&&$;){var q=d(c,-1,F-1);c[F-1]=q.value,$=q.changed}for(var J=0;J<c.length-1;J+=1)for(var K=!0;v(c[J+1]-c[J])&&K;){var G=d(c,1,J+1);c[J+1]=G.value,K=G.changed}}return{value:c[k],values:c}};return[u,p]}function RS(e){var t=e.prefixCls,n=e.style,r=e.children,a=e.value,l=e.onClick,o=g.useContext(dr),i=o.min,u=o.max,s=o.direction,d=o.includedStart,v=o.includedEnd,p=o.included,h="".concat(t,"-text"),y=dc(s,a,i,u);return g.createElement("span",{className:or(h,Ut({},"".concat(h,"-active"),p&&d<=a&&a<=v)),style:rt(rt({},y),n),onMouseDown:function(k){k.stopPropagation()},onClick:function(){l(a)}},r)}function jS(e){var t=e.prefixCls,n=e.marks,r=e.onClick,a="".concat(t,"-mark");return n.length?g.createElement("div",{className:a},n.map(function(l){var o=l.value,i=l.style,u=l.label;return g.createElement(RS,{key:o,prefixCls:a,style:i,value:o,onClick:r},u)})):null}function bS(e){var t=e.prefixCls,n=e.value,r=e.style,a=e.activeStyle,l=g.useContext(dr),o=l.min,i=l.max,u=l.direction,s=l.included,d=l.includedStart,v=l.includedEnd,p="".concat(t,"-dot"),h=s&&d<=n&&n<=v,y=rt(rt({},dc(u,n,o,i)),typeof r=="function"?r(n):r);return h&&(y=rt(rt({},y),typeof a=="function"?a(n):a)),g.createElement("span",{className:or(p,Ut({},"".concat(p,"-active"),h)),style:y})}function IS(e){var t=e.prefixCls,n=e.marks,r=e.dots,a=e.style,l=e.activeStyle,o=g.useContext(dr),i=o.min,u=o.max,s=o.step,d=g.useMemo(function(){var v=new Set;if(n.forEach(function(h){v.add(h.value)}),r&&s!==null)for(var p=i;p<=u;)v.add(p),p+=s;return Array.from(v)},[i,u,s,r,n]);return g.createElement("div",{className:"".concat(t,"-step")},d.map(function(v){return g.createElement(bS,{prefixCls:t,key:v,value:v,style:a,activeStyle:l})}))}function id(e){var t,n=e.prefixCls,r=e.style,a=e.start,l=e.end,o=e.index,i=e.onStartMove,u=e.replaceCls,s=g.useContext(dr),d=s.direction,v=s.min,p=s.max,h=s.disabled,y=s.range,w=s.classNames,k="".concat(n,"-track"),f=Zu(a,v,p),c=Zu(l,v,p),m=function(D){!h&&i&&i(D,-1)},E={};switch(d){case"rtl":E.right="".concat(f*100,"%"),E.width="".concat(c*100-f*100,"%");break;case"btt":E.bottom="".concat(f*100,"%"),E.height="".concat(c*100-f*100,"%");break;case"ttb":E.top="".concat(f*100,"%"),E.height="".concat(c*100-f*100,"%");break;default:E.left="".concat(f*100,"%"),E.width="".concat(c*100-f*100,"%")}var C=u||or(k,(t={},Ut(t,"".concat(k,"-").concat(o+1),o!==null&&y),Ut(t,"".concat(n,"-track-draggable"),i),t),w.track);return g.createElement("div",{className:C,style:rt(rt({},E),r),onMouseDown:m,onTouchStart:m})}function FS(e){var t=e.prefixCls,n=e.style,r=e.values,a=e.startPoint,l=e.onStartMove,o=g.useContext(dr),i=o.included,u=o.range,s=o.min,d=o.styles,v=o.classNames,p=g.useMemo(function(){if(!u){if(r.length===0)return[];var y=a??s,w=r[0];return[{start:Math.min(y,w),end:Math.max(y,w)}]}for(var k=[],f=0;f<r.length-1;f+=1)k.push({start:r[f],end:r[f+1]});return k},[r,u,a,s]),h=null;return(v.tracks||d.tracks)&&(h=g.createElement(id,{index:null,prefixCls:t,start:p[0].start,end:p[p.length-1].end,replaceCls:or(v.tracks,"".concat(t,"-tracks")),style:d.tracks})),i?g.createElement(g.Fragment,null,h,p.map(function(y,w){var k=y.start,f=y.end;return g.createElement(id,{index:w,prefixCls:t,style:rt(rt({},Fr(n,w)),d.track),start:k,end:f,key:w,onStartMove:l})})):null}var _m=g.forwardRef(function(e,t){var n,r=e.prefixCls,a=r===void 0?"rc-slider":r,l=e.className,o=e.style,i=e.classNames,u=e.styles,s=e.disabled,d=s===void 0?!1:s,v=e.keyboard,p=v===void 0?!0:v,h=e.autoFocus,y=e.onFocus,w=e.onBlur,k=e.min,f=k===void 0?0:k,c=e.max,m=c===void 0?100:c,E=e.step,C=E===void 0?1:E,O=e.value,D=e.defaultValue,N=e.range,R=e.count,M=e.onChange,H=e.onBeforeChange,F=e.onAfterChange,$=e.onChangeComplete,q=e.allowCross,J=q===void 0?!0:q,K=e.pushable,G=K===void 0?!1:K,_=e.draggableTrack,L=e.reverse,A=e.vertical,Y=e.included,Q=Y===void 0?!0:Y,ae=e.startPoint,pe=e.trackStyle,b=e.handleStyle,X=e.railStyle,re=e.dotStyle,ie=e.activeDotStyle,Pe=e.marks,At=e.dots,mt=e.handleRender,Qe=e.tabIndex,Te=Qe===void 0?0:Qe,ue=e.ariaLabelForHandle,Ue=e.ariaLabelledByForHandle,xe=e.ariaValueTextFormatterForHandle,Ae=g.useRef(),Ge=g.useRef(),Rt=g.useMemo(function(){return A?L?"ttb":"btt":L?"rtl":"ltr"},[L,A]),Re=g.useMemo(function(){return isFinite(f)?f:0},[f]),ht=g.useMemo(function(){return isFinite(m)?m:100},[m]),yt=g.useMemo(function(){return C!==null&&C<=0?1:C},[C]),Bt=g.useMemo(function(){return typeof G=="boolean"?G?yt:!1:G>=0?G:!1},[G,yt]),_t=g.useMemo(function(){var W=Object.keys(Pe||{});return W.map(function(B){var U=Pe[B],fe={value:Number(B)};return U&&In(U)==="object"&&!g.isValidElement(U)&&("label"in U||"style"in U)?(fe.style=U.style,fe.label=U.label):fe.label=U,fe}).filter(function(B){var U=B.label;return U||typeof U=="number"}).sort(function(B,U){return B.value-U.value})},[Pe]),Hn=AS(Re,ht,yt,_t,J,Bt),Jt=wt(Hn,2),it=Jt[0],jt=Jt[1],z=SS(D,{value:O}),te=wt(z,2),ee=te[0],V=te[1],Z=g.useMemo(function(){var W=ee==null?[]:Array.isArray(ee)?ee:[ee],B=wt(W,1),U=B[0],fe=U===void 0?Re:U,se=ee===null?[]:[fe];if(N){if(se=Cn(W),R||ee===void 0){var ut=R>=0?R+1:2;for(se=se.slice(0,ut);se.length<ut;){var en;se.push((en=se[se.length-1])!==null&&en!==void 0?en:Re)}}se.sort(function(tn,mn){return tn-mn})}return se.forEach(function(tn,mn){se[mn]=it(tn)}),se},[ee,N,Re,R,it]),de=g.useRef(Z);de.current=Z;var ce=function(B){return N?B:B[0]},me=function(B){var U=Cn(B).sort(function(fe,se){return fe-se});M&&!OS(U,de.current,!0)&&M(ce(U)),V(U)},he=function(){F==null||F(ce(de.current)),cl(!F,"[rc-slider] `onAfterChange` is deprecated. Please use `onChangeComplete` instead."),$==null||$(ce(de.current))},Fe=MS(Ge,Rt,Z,Re,ht,it,me,he,jt),je=wt(Fe,4),Ce=je[0],Le=je[1],_e=je[2],Bn=je[3],ye=function(B,U){if(!d){var fe=0,se=ht-Re;Z.forEach(function(en,tn){var mn=Math.abs(B-en);mn<=se&&(se=mn,fe=tn)});var ut=Cn(Z);ut[fe]=B,N&&!Z.length&&R===void 0&&ut.push(B),H==null||H(ce(ut)),me(ut),U&&Bn(U,fe,ut)}},Ot=function(B){B.preventDefault();var U=Ge.current.getBoundingClientRect(),fe=U.width,se=U.height,ut=U.left,en=U.top,tn=U.bottom,mn=U.right,vc=B.clientX,pc=B.clientY,ua;switch(Rt){case"btt":ua=(tn-pc)/se;break;case"ttb":ua=(pc-en)/se;break;case"rtl":ua=(mn-vc)/fe;break;default:ua=(vc-ut)/fe}var Om=Re+ua*(ht-Re);ye(it(Om),B)},ri=g.useState(null),pr=wt(ri,2),mr=pr[0],la=pr[1],oa=function(B,U){if(!d){var fe=jt(Z,B,U);H==null||H(ce(Z)),me(fe.values),la(fe.value)}};g.useEffect(function(){if(mr!==null){var W=Z.indexOf(mr);W>=0&&Ae.current.focus(W)}la(null)},[mr]);var hr=g.useMemo(function(){return _&&yt===null?!1:_},[_,yt]),yr=function(B,U){Bn(B,U),H==null||H(ce(de.current))},gr=Ce!==-1;g.useEffect(function(){if(!gr){var W=Z.lastIndexOf(Le);Ae.current.focus(W)}},[gr]);var Yt=g.useMemo(function(){return Cn(_e).sort(function(W,B){return W-B})},[_e]),ai=g.useMemo(function(){return N?[Yt[0],Yt[Yt.length-1]]:[Re,Yt[0]]},[Yt,N,Re]),wr=wt(ai,2),ia=wr[0],fl=wr[1];g.useImperativeHandle(t,function(){return{focus:function(){Ae.current.focus(0)},blur:function(){var B=document,U=B.activeElement;Ge.current.contains(U)&&(U==null||U.blur())}}}),g.useEffect(function(){h&&Ae.current.focus(0)},[]);var li=g.useMemo(function(){return{min:Re,max:ht,direction:Rt,disabled:d,keyboard:p,step:yt,included:Q,includedStart:ia,includedEnd:fl,range:N,tabIndex:Te,ariaLabelForHandle:ue,ariaLabelledByForHandle:Ue,ariaValueTextFormatterForHandle:xe,styles:u||{},classNames:i||{}}},[Re,ht,Rt,d,p,yt,Q,ia,fl,N,Te,ue,Ue,xe,u,i]);return g.createElement(dr.Provider,{value:li},g.createElement("div",{ref:Ge,className:or(a,l,(n={},Ut(n,"".concat(a,"-disabled"),d),Ut(n,"".concat(a,"-vertical"),A),Ut(n,"".concat(a,"-horizontal"),!A),Ut(n,"".concat(a,"-with-marks"),_t.length),n)),style:o,onMouseDown:Ot},g.createElement("div",{className:or("".concat(a,"-rail"),i==null?void 0:i.rail),style:rt(rt({},X),u==null?void 0:u.rail)}),g.createElement(FS,{prefixCls:a,style:pe,values:Yt,startPoint:ae,onStartMove:hr?yr:null}),g.createElement(IS,{prefixCls:a,marks:_t,dots:At,style:re,activeStyle:ie}),g.createElement(LS,{ref:Ae,prefixCls:a,style:b,values:_e,draggingIndex:Ce,onStartMove:yr,onOffsetChange:oa,onFocus:y,onBlur:w,handleRender:mt,onChangeComplete:he}),g.createElement(jS,{prefixCls:a,marks:_t,onClick:ye})))});function $S(e,t){return x.jsx("option",{value:e,children:t},e)}function vr(e,t,n=""){return x.jsxs("div",{children:[x.jsxs("label",{children:[e.label,n]}),t]})}function zS({obj:e,handleChange:t,refreshWidgetStates:n}){const r=e,a=r.options.map(u=>$S(u.id,u.label)),[l,o]=g.useState("");g.useMemo(()=>{o(r.selected_id)},[r]),g.useEffect(()=>t([l]),[l]);const i=u=>{o(u.target.value),r.trigger_refresh&&n(r.name,[u.target.value])};return vr(r,x.jsx("select",{id:r.name,className:"single-select padded widget",value:l,onChange:i,children:a}))}function US({obj:e,handleChange:t,refreshWidgetStates:n}){const r=e,a=v=>({label:v.label,value:v.id}),l=()=>r.options.map(v=>a(v)),o=v=>v.length>0?v.map(p=>p.value):[""],[i,u]=g.useState([]);g.useMemo(()=>{const v=r.selected_ids.map(p=>{const h=r.options.find(y=>y.id==p);return a(h||{label:"",id:""})});u(v)},[r]),g.useEffect(()=>t(o(i)),[i]);const s=v=>{u(v),r.trigger_refresh&&n(r.name,o(v))},d=r.order_matters?" (order matters)":"";return vr(r,x.jsx(Eg,{options:l(),labelledBy:r.name,className:"multi-select widget",value:i,onChange:s,hasSelectAll:r.show_select_all}),d)}function WS({obj:e,handleChange:t}){const n=e,[r,a]=g.useState("");return g.useMemo(()=>{a(n.selected_date)},[n]),g.useEffect(()=>t([r]),[r]),vr(n,x.jsx("input",{type:"date",id:n.name,className:"date padded widget",value:r,onChange:l=>a(l.target.value)}))}function VS({obj:e,handleChange:t}){const n=e,r=u=>new Date(u.replace(/-/g,"/")),[a,l]=g.useState(null);g.useMemo(()=>{l([r(n.selected_start_date),r(n.selected_end_date)])},[n]);const[o,i]=g.useState(null);return g.useEffect(()=>{if(Array.isArray(a)){const[u,s]=a;if(u!==null&&s!==null){const d=u.toLocaleDateString("en-CA"),v=s.toLocaleDateString("en-CA");return i([d,v]),t([d,v])}}if(o!==null)return t(o)},[a]),vr(n,x.jsx(uS,{className:"widget",value:a,onChange:l,format:"y/MM/dd"}))}function HS({obj:e,handleChange:t}){const n=e,[r,a]=g.useState(0);return g.useMemo(()=>{a(parseFloat(n.selected_value))},[n]),g.useEffect(()=>t([r.toString()]),[r]),vr(n,x.jsxs(x.Fragment,{children:[x.jsx("div",{className:"slider-wrapper",children:x.jsx(_m,{min:parseFloat(n.min_value),max:parseFloat(n.max_value),step:parseFloat(n.increment),value:r,onChange:l=>a(l)})}),x.jsx("div",{className:"slider-value",children:x.jsxs("span",{children:["Value: ",r]})})]}))}function BS({obj:e,handleChange:t}){const n=e,[r,a]=g.useState([0,0]);return g.useMemo(()=>{a([parseFloat(n.selected_lower_value),parseFloat(n.selected_upper_value)])},[n]),g.useEffect(()=>{const[l,o]=r.map(i=>i.toString());return t([l,o])},[r]),vr(n,x.jsxs(x.Fragment,{children:[x.jsx("div",{className:"slider-wrapper",children:x.jsx(_m,{range:!0,min:parseFloat(n.min_value),max:parseFloat(n.max_value),step:parseFloat(n.increment),value:r,onChange:l=>a(l)})}),x.jsxs("div",{className:"slider-value",children:[x.jsxs("span",{children:["Lower: ",r[0]]}),x.jsxs("span",{children:["Upper: ",r[1]]})]})]}))}function YS({obj:e,handleChange:t}){const n=e,[r,a]=g.useState("");g.useMemo(()=>{a(n.entered_text)},[n]),g.useEffect(()=>t([r]),[r]);const l=i=>{a(i.target.value)},o=n.is_textarea?x.jsx("textarea",{value:r,className:"textbox padded widget",onChange:l}):x.jsx("input",{type:"text",value:r,className:"textbox padded widget",onChange:l});return vr(n,o)}function KS({obj:e,paramSelections:t,refreshWidgetStates:n}){function r(){t.current.delete(e.name),_f("removed: ",e.name)}function a(o){return t.current.set(e.name,o),_f("added: ",e.name),r}let l=x.jsx(x.Fragment,{});switch(e.widget_type){case"single_select":l=x.jsx(zS,{obj:e,handleChange:a,refreshWidgetStates:n});break;case"multi_select":l=x.jsx(US,{obj:e,handleChange:a,refreshWidgetStates:n});break;case"date":l=x.jsx(WS,{obj:e,handleChange:a});break;case"date_range":l=x.jsx(VS,{obj:e,handleChange:a});break;case"number":l=x.jsx(HS,{obj:e,handleChange:a});break;case"number_range":l=x.jsx(BS,{obj:e,handleChange:a});break;case"text":l=x.jsx(YS,{obj:e,handleChange:a});break}return x.jsx(x.Fragment,{children:l})}function QS({paramData:e,refreshWidgetStates:t,updateTableData:n}){const r=g.useRef(new Map);if(e===null)return x.jsx("div",{});const a=e.map(l=>x.jsx(KS,{obj:l,paramSelections:r,refreshWidgetStates:t},l.name));return x.jsxs("div",{children:[a,x.jsx("input",{type:"submit",value:"Apply",className:"blue-button padded widget",onClick:()=>n(r.current)})]})}function GS({username:e,setIsLoginMode:t,submitLogout:n}){let r,a;return e===""?(r=x.jsx("span",{}),a=x.jsx("button",{className:"white-button",onClick:()=>t(!0),children:"Authenticate"})):(r=x.jsxs("span",{children:['Logged in as "',e,'"']}),a=x.jsx("button",{className:"white-button",onClick:n,children:"Logout"})),x.jsxs("div",{className:"horizontal-container",children:[r,a]})}function XS({isLoginMode:e,setIsLoginMode:t,submitLogin:n}){const r={username:"",password:""},[a,l]=g.useState(r),[o,i]=g.useState(!1);function u(h){const{name:y,value:w}=h.target;l(k=>({...k,[y]:w}))}function s(){i(!1),l(r),t(!1)}function d(h){h.preventDefault();const y=new FormData;y.append("username",a.username),y.append("password",a.password),n(y,()=>{s()},()=>{i(!0)})}const v=o?x.jsx("div",{children:"Incorrect username or password. Please try again"}):x.jsx("div",{}),p=x.jsxs("form",{className:"modal-content",style:{width:"400px"},onClick:h=>h.stopPropagation(),onSubmit:d,onReset:s,children:[x.jsx("label",{htmlFor:"username",children:x.jsx("b",{children:"Username"})}),x.jsx("input",{type:"text",required:!0,className:"padded widget",placeholder:"Enter Username",name:"username",value:a.username,onChange:u}),x.jsx("label",{htmlFor:"password",children:x.jsx("b",{children:"Password"})}),x.jsx("input",{type:"password",required:!0,className:"padded widget",placeholder:"Enter Password",name:"password",value:a.password,onChange:u}),v,x.jsxs("div",{style:{marginTop:"20px",display:"grid",gridAutoFlow:"column",columnGap:"10px"},children:[x.jsx("button",{type:"submit",className:"blue-button",children:"Login"}),x.jsx("button",{type:"reset",className:"blue-button",children:"Cancel"})]})]});return e?x.jsx("div",{className:"modal-background",onClick:s,children:p}):x.jsx("div",{})}async function ZS(e){if(e===null)return;let t="";const n=e.schema.fields;for(let r=0;r<n.length;r++)r!==0&&(t+=" "),t+=n[r].name;t+=`
48
48
  `;for(let r=0;r<e.data.length;r++){const a=e.data[r];for(let l=0;l<n.length;l++)l!==0&&(t+=" "),t+=a[n[l].name];t+=`
49
49
  `}navigator.clipboard.writeText(t).then(()=>{alert("Table copied to clipboard!")},()=>{alert("ERROR: Table failed to copy")})}async function qS(e,t,n,r,a,l){a(!0);const o=await fetch(hostname+e,{headers:{Authorization:`Bearer ${t.current}`}}),i=o.headers.get("Applied-Username"),u=await o.json();(i!==null||o.status===401)&&n!==""&&i!==n?(alert("User session was invalidated by the server... Logging out."),l()):o.status===200?r(u):o.status===401?alert(u.detail):alert(u.message),a(!1)}function JS(){const[e,t]=g.useState(!1),[n,r]=g.useState(!1),a=g.useRef(""),l=g.useRef(""),o=g.useRef(""),i=g.useRef(0),u=g.useRef(""),s=g.useRef(""),d=g.useRef(""),[v,p]=g.useState(null),[h,y]=g.useState(null),[w,k]=g.useState(null),f=async(F,$)=>await qS(F,s,u.current,$,r,E),c=()=>{u.current="",s.current="",d.current=""},m=F=>{u.current=F.username,s.current=F.access_token,d.current=F.expiry_time},E=async()=>{c(),clearTimeout(i.current),await f(catalogURL,p)},C=()=>{const F=d.current;if(F!==""){const $=new Date(F).getTime()-new Date().getTime();$>0?i.current=setTimeout(()=>{E(),alert("User session expired")},$):c()}},O=async(F,$,q)=>{const J=await fetch(hostname+a.current,{method:"POST",body:F});if(J.status===200){$();const K=await J.json();m(K),C(),await f(catalogURL,p)}else J.status===401?q():alert(`Unexpected response status: ${J.status}`)},D=F=>{const $=new URLSearchParams;for(const[q,J]of F)for(const K of J)$.append(q,K);return $},N=(F,$)=>{const q=D(new Map([[F,$]])),J=l.current+"?"+q;f(J,K=>y(G=>{const _=G.slice();return K.parameters.forEach(L=>{const A=_.findIndex(Y=>Y.name===L.name);A!==-1&&(_[A]=L)}),_}))},R=()=>k(null),M=F=>{const $=D(F),q=o.current+"?"+$;f(q,J=>k(J))};g.useEffect(()=>{f(catalogURL,p)},[]);const H=w===null?x.jsx(x.Fragment,{}):x.jsx("button",{className:"white-button",onClick:()=>ZS(w),children:"Copy Table"});return x.jsxs(x.Fragment,{children:[x.jsxs("div",{id:"main-container",className:"horizontal-container",children:[x.jsxs("div",{id:"left-container",children:[x.jsx(qy,{catalogData:v,tokenURL:a,parametersURL:l,datasetURL:o,fetch2:f,setParamData:y,clearTableData:R}),x.jsx("br",{}),x.jsx("hr",{}),x.jsx("br",{}),x.jsx(QS,{paramData:h,refreshWidgetStates:N,updateTableData:M})]}),x.jsxs("div",{id:"right-container",children:[x.jsxs("div",{id:"header-container",children:[x.jsx("div",{className:"horizontal-container",children:H}),x.jsx(GS,{username:u.current,setIsLoginMode:t,submitLogout:E})]}),x.jsx("div",{id:"table-container",children:x.jsx(Jy,{tableDataObj:w})})]})]}),x.jsx(XS,{isLoginMode:e,setIsLoginMode:t,submitLogin:O}),x.jsx(Zy,{isLoading:n})]})}$i.createRoot(document.getElementById("root")).render(x.jsx(P.StrictMode,{children:x.jsx(JS,{})}));
@@ -7,5 +7,6 @@ venv/
7
7
 
8
8
  # squirrels files to ignore
9
9
  environcfg.yml
10
+ env.yml
10
11
  target/
11
12
  sqrl_packages/
@@ -16,7 +16,7 @@ users:
16
16
 
17
17
  ## Custom environment variables / secrets
18
18
  env_vars:
19
- sqlite_conn_str: sqlite://{username}:{password}@/database/expenses.db
19
+ sqlite_conn_str: sqlite://{username}:{password}@/./assets/expenses.db
20
20
 
21
21
  ## Database credentials
22
22
  credentials:
@@ -11,11 +11,10 @@ transactions_with_masked_id AS (
11
11
  SELECT {{ ctx.select_dim_cols }}
12
12
  , sum(-amount) as total_amount
13
13
  FROM transactions_with_masked_id
14
- WHERE true
15
- {% if is_placeholder("start_date") -%} AND date >= :start_date {%- endif %}
16
- {% if is_placeholder("end_date") -%} AND date <= :end_date {%- endif %}
17
- {% if is_placeholder("min_amount") -%} AND -amount >= :min_amount {%- endif %}
18
- {% if is_placeholder("max_amount") -%} AND -amount <= :max_amount {%- endif %}
14
+ WHERE date >= :start_date
15
+ AND date <= :end_date
16
+ AND -amount >= :min_amount
17
+ AND -amount <= :max_amount
19
18
  {% if is_placeholder("desc_pattern") -%} AND description LIKE :desc_pattern {%- endif %}
20
19
  {% if ctx.has_categories -%} AND category IN ({{ ctx.categories }}) {%- endif %}
21
20
  {% if ctx.has_subcategories -%} AND subcategory IN ({{ ctx.subcategories }}) {%- endif %}
@@ -8,7 +8,7 @@ def main(connections: dict[str, Engine], sqrl: ConnectionsArgs) -> None:
8
8
  """
9
9
 
10
10
  ## SQLAlchemy URL for a connection engine
11
- conn_str = 'sqlite:///database/expenses.db'
11
+ conn_str = 'sqlite:///./assets/expenses.db'
12
12
 
13
13
  ## Can also leverage environment variables and credentials in the environcfg.yml file for connection details
14
14
  # conn_str_raw: str = sqrl.env_vars["sqlite_conn_str"]
@@ -51,7 +51,7 @@ selection_test_sets:
51
51
  - name: no_auth_test1
52
52
  datasets: ## optional section - if not provided, then test set is applicable for any dataset
53
53
  - dataset_example
54
- parameters: ## optional section - for unspecified parameters, default value is used
54
+ parameters: ## optional section - if not provided, then assumes no parameters. For unspecified parameters, default value is used
55
55
  start_date: 2023-07-01 ## this parameter only exists for dataset 'dataset_example'
56
56
 
57
57
  - name: auth_test1
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: squirrels
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: Squirrels - API Framework for Data Analytics
5
5
  Home-page: https://squirrels-analytics.github.io
6
- License: MIT
6
+ License: Apache-2.0
7
7
  Author: Tim Huang
8
8
  Author-email: tim.yuting@hotmail.com
9
9
  Requires-Python: >=3.9,<4.0
10
10
  Classifier: Intended Audience :: Developers
11
- Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: License :: OSI Approved :: Apache Software License
12
12
  Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.9
14
14
  Classifier: Programming Language :: Python :: 3.10
@@ -1,14 +1,14 @@
1
- squirrels/__init__.py,sha256=aycHryN95OA-n7FJ-WaDVMGNwLwXIxSjFFutfaEBe-c,816
1
+ squirrels/__init__.py,sha256=kWJ2zI7Gwooa59i65oDrczA4sMIkF0o3bWOc1FlvDOU,816
2
2
  squirrels/_api_response_models.py,sha256=dnxEsct43omtopCmjqxCAuYng0zaBB4DQHPf_QWzP9A,3909
3
- squirrels/_api_server.py,sha256=Sn4m5lGZJOdpaGN9H_TrDL_wGAXaP6cvRdtU-g-RGKs,19138
3
+ squirrels/_api_server.py,sha256=JlyTdDBR5XgxscjdrsKYTAzPGPiLabVYmSIFe5rxqu0,19507
4
4
  squirrels/_authenticator.py,sha256=BAa7JHE5WISaApf5PODQXD2GCH4s4WCtgC_w0GS5eTM,3876
5
5
  squirrels/_command_line.py,sha256=CyOejIrSdRUAq7wuA5__T-n0fbsKPKZNuS0ZwmbZbO4,5955
6
- squirrels/_connection_set.py,sha256=Bk14m63vrMbHwEMeHang4mdaCB1nJ76mqzhiLdlID9s,2609
7
- squirrels/_constants.py,sha256=Y9a-TFdz6DQKvF22VbgmzlekWTui05wn6Gp21AIZmPE,4129
8
- squirrels/_environcfg.py,sha256=0zCRxcJ_r1JA_0J-F79341_ezZsbGGdpfdNxTgsoMK4,2761
9
- squirrels/_initializer.py,sha256=dZ0QlmgVjT9Q3tsr93Guu1PiwO70IU26mR0PkA0YN1U,8108
10
- squirrels/_manifest.py,sha256=T4tQeuUqIMfeYIMbdITYpDqFPgfWN2u5UGIS2xx-hpE,9334
11
- squirrels/_models.py,sha256=83MW5bM8iDilMjUjSyaU3KILaJuGROqK87JixW3YUnE,28832
6
+ squirrels/_connection_set.py,sha256=NdTm_ux-Oo4B_k1pk1Rg3GQYNTfay1hlsHZBI6fVaIY,2654
7
+ squirrels/_constants.py,sha256=nPZxeb_KXsBf8pxs7Eulv9ztrdk8CXLYdl9Sqa2-_so,4155
8
+ squirrels/_environcfg.py,sha256=k1t58aQU-L1tb6VspKm_69Ss2StVpv5NyutJBvTb9M8,3184
9
+ squirrels/_initializer.py,sha256=3xIAzqW3tUWFA8ty96fwWH_c3W7KqVf1N8HVDaVhklc,8140
10
+ squirrels/_manifest.py,sha256=8wgvloJsGS7CvWgP9RVb22K5pzw5lOsKqc0q7aLLrtc,9328
11
+ squirrels/_models.py,sha256=c86UPx2ANMkzjM3w7u2Q5Aa5Zt-ma803UizhW6SizWc,29469
12
12
  squirrels/_package_loader.py,sha256=-EZ8qsmp6QEdZyHUKYi5e4OPOx3EnL2rxr1IYe1NwEI,1020
13
13
  squirrels/_parameter_configs.py,sha256=GGpinpd8nS2wIB-rZUb1jed5kkPnGbXEpi-wojqYA2I,23211
14
14
  squirrels/_parameter_sets.py,sha256=NDiyJRpD9xld2UyUJdlMockt9QXVGAaPAK6SKtg5U7U,8823
@@ -23,34 +23,34 @@ squirrels/data_sources.py,sha256=MFaQtBuPaBIwyv4jqRxerlcBsJdrxtrHkMLDi4j9wxY,307
23
23
  squirrels/dateutils.py,sha256=aAdUeiBCIN13xvYddE-BLjKCbL0mh2vSgR7PW11syCk,16496
24
24
  squirrels/package_data/assets/favicon.ico,sha256=FZx26dn50cp0rgYdyBptJJob2TTVNiY0NZ-MeeL_uY0,61022
25
25
  squirrels/package_data/assets/index.css,sha256=btE9XnSZP2ydCSKG7y0_Sm_9Mdp4RVpI41ht1SsZrUc,11572
26
- squirrels/package_data/assets/index.js,sha256=kvAX7TQmb7Xcsez5JObujveUQrNzIY2RLVO-JidJj38,260555
27
- squirrels/package_data/base_project/.gitignore,sha256=OD3TgclEDFD7tI-SR3yoloYu3EOwdZksUNHEjm9TTJg,134
26
+ squirrels/package_data/assets/index.js,sha256=im1Vi9JMBaCKGA733QzAa41TYSHn22RToYVMV9E_tWA,260555
27
+ squirrels/package_data/base_project/.gitignore,sha256=zfhneLPCfKkmpQy5Bn6vR7OsHiPavWgQgpo-cRm7kYY,142
28
+ squirrels/package_data/base_project/assets/expenses.db,sha256=47ichjBqC25th7B0G5rz_yYJ4V3uQeF3cnttekQYa68,28672
29
+ squirrels/package_data/base_project/assets/weather.db,sha256=dsHPO36gQdZ4ULAA726Hg3jp8a1dCdig1DhrGg8wTeg,86016
28
30
  squirrels/package_data/base_project/connections.yml,sha256=f7xAUF9QmiRZ7GnMEaqElzHrcs8QpNpGUKPB77t4brE,266
29
- squirrels/package_data/base_project/database/expenses.db,sha256=47ichjBqC25th7B0G5rz_yYJ4V3uQeF3cnttekQYa68,28672
30
- squirrels/package_data/base_project/database/weather.db,sha256=PldWB7PLY_ltY-OWxN9ALcFEdiVDaP3Kef0I2k7WPso,188416
31
31
  squirrels/package_data/base_project/docker/.dockerignore,sha256=sY6T-_UtTVw1jFBOfiMQ8XFS9191YqEotxYPCEsdNJ4,90
32
32
  squirrels/package_data/base_project/docker/Dockerfile,sha256=VpanaF8xjeQrSmOyW1ZlbAzfCzvmGjFtgqy5-7ssNMg,484
33
33
  squirrels/package_data/base_project/docker/compose.yml,sha256=UbChIXPuBm9p_lCiYEE_0t-gCZ_k1WhF7scDv6iEMZ8,125
34
- squirrels/package_data/base_project/environcfg.yml,sha256=EkTKiDpiqeuIYJXMlVz2ISs4cRYBOoXCDorT0Vic7Ls,931
34
+ squirrels/package_data/base_project/env.yml,sha256=qwQ287AedvH9oNMO9QDeqFl4iFy9F1-bNNqgeMAgAC0,931
35
35
  squirrels/package_data/base_project/models/dbviews/database_view1.py,sha256=vsXNwXkg1rBkMsaMQAReOTkaNKg-aKy4CK-qQkwdO08,1986
36
- squirrels/package_data/base_project/models/dbviews/database_view1.sql,sha256=kHzFQDnI1n-Ykm7TtYMMRj_BvkL27M252thw7lCvtRw,924
36
+ squirrels/package_data/base_project/models/dbviews/database_view1.sql,sha256=8ZvEGgBZfT0Gxh35x1G1NmtC2fTW_AfdjxYew5LMWJ0,705
37
37
  squirrels/package_data/base_project/models/federates/dataset_example.py,sha256=tGMKw2gawxiUdWlJ2ICwapImpNR2V1uNvUz6cORA_GY,710
38
38
  squirrels/package_data/base_project/models/federates/dataset_example.sql,sha256=eD6-9nbF-AHg0RqYOx8AwT8K9vPQOs--9U-on3MD3zs,75
39
39
  squirrels/package_data/base_project/parameters.yml,sha256=p38XUhPkcmFY4Xe8osUl2vyfqT0utR-L_EuaQEBQipk,6224
40
40
  squirrels/package_data/base_project/pyconfigs/auth.py,sha256=rDfOE6Srdwf18Tt6jv_-lGhCNC-JCcDbH4-4J8W9JHM,1560
41
- squirrels/package_data/base_project/pyconfigs/connections.py,sha256=4QFD02YIOFSIvqNe8Zf5KN3xnwks0X--Xw15MyBs6nc,760
41
+ squirrels/package_data/base_project/pyconfigs/connections.py,sha256=XqhNnCkZ4af2BOv1DikraCMYoETAhT0o2Og-43ff22U,760
42
42
  squirrels/package_data/base_project/pyconfigs/context.py,sha256=i9qGd6i3T9RuI3TW6kuhs3jVdP6Tl-hgKxKbBaJyy14,3440
43
43
  squirrels/package_data/base_project/pyconfigs/parameters.py,sha256=rvKeQY1M9CB81f82aAC20q6Bb7CG89Qt9ANlEzQomZA,4292
44
44
  squirrels/package_data/base_project/seeds/seed_categories.csv,sha256=jppjf1nOIxy7-bi5lJn5CVqmnLfJHHq0ABgp6UqbXnw,104
45
45
  squirrels/package_data/base_project/seeds/seed_subcategories.csv,sha256=aZkBJ6KioyYjEwRunYiA8ec0X1ygiEmLRVicJecFzfY,327
46
- squirrels/package_data/base_project/squirrels.yml.j2,sha256=yZfsZ7yrh5mZMVkppXZ6MlyDDoDzppGLN4HM3LZ85jI,2819
46
+ squirrels/package_data/base_project/squirrels.yml.j2,sha256=50RiV7wi6Im_6pmfO7ZZOmbLKM8gTwGDjTWZvQy9hUo,2864
47
47
  squirrels/package_data/base_project/tmp/.gitignore,sha256=XImoqcWvJY0C0L_TWCx1ljvqU7qh9fUTJmK4ACCmNFI,13
48
48
  squirrels/package_data/templates/index.html,sha256=zMiM1w77Rs6xcYXiGwgh_WksOXlMBmEjpcAbAfhAyDA,572
49
49
  squirrels/parameter_options.py,sha256=bO6M_55ZDl-A6yUkWdxVPniSL-VrwlLgsWLbVeq-EsU,16581
50
50
  squirrels/parameters.py,sha256=XkTLkBS1bxBB0Rb1Ze8dtcpYhWIb7Pr8GGiRWrU_Wqc,41552
51
51
  squirrels/user_base.py,sha256=WbhLBldOe1CNthAR2Gyvuz_XT0wSslDEuHdw1NzOlyo,1395
52
- squirrels-0.3.0.dist-info/LICENSE,sha256=CItkBKs5m4J5jhkjXoW7IAnFyOC86x4hyOATpczUMmM,11338
53
- squirrels-0.3.0.dist-info/METADATA,sha256=OQxvuUHx8EvOeW859k7u9m4QTQ55qKM7jnZQ0OMWtDw,5205
54
- squirrels-0.3.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
55
- squirrels-0.3.0.dist-info/entry_points.txt,sha256=mYQRuGxbg8X82hjNRJuWiON4S6kE5CPvmXmxNPtYTbg,92
56
- squirrels-0.3.0.dist-info/RECORD,,
52
+ squirrels-0.3.1.dist-info/LICENSE,sha256=CItkBKs5m4J5jhkjXoW7IAnFyOC86x4hyOATpczUMmM,11338
53
+ squirrels-0.3.1.dist-info/METADATA,sha256=ObocpErr6vKtJZNuvi_fwAG6QVSsQyQaozWu8uZopc4,5224
54
+ squirrels-0.3.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
55
+ squirrels-0.3.1.dist-info/entry_points.txt,sha256=mYQRuGxbg8X82hjNRJuWiON4S6kE5CPvmXmxNPtYTbg,92
56
+ squirrels-0.3.1.dist-info/RECORD,,