domql 1.5.85 → 1.5.86

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.
@@ -940,6 +940,7 @@ parcelHelpers.export(exports, "clone", ()=>clone);
940
940
  parcelHelpers.export(exports, "deepClone", ()=>deepClone);
941
941
  parcelHelpers.export(exports, "isEqualDeep", ()=>isEqualDeep);
942
942
  parcelHelpers.export(exports, "overwrite", ()=>overwrite);
943
+ parcelHelpers.export(exports, "overwriteShallow", ()=>overwriteShallow);
943
944
  parcelHelpers.export(exports, "overwriteDeep", ()=>overwriteDeep);
944
945
  parcelHelpers.export(exports, "mergeIfExisted", ()=>mergeIfExisted);
945
946
  parcelHelpers.export(exports, "mergeArray", ()=>mergeArray);
@@ -1078,6 +1079,16 @@ const overwrite = (element, params, options)=>{
1078
1079
  }
1079
1080
  return changes;
1080
1081
  };
1082
+ const overwriteShallow = (obj, params, excluding = [
1083
+ "node",
1084
+ "__root"
1085
+ ])=>{
1086
+ for(const e in params){
1087
+ if (excluding.indexOf(e) > -1) continue;
1088
+ obj[e] = params[e];
1089
+ }
1090
+ return obj;
1091
+ };
1081
1092
  const overwriteDeep = (obj, params, excluding = [
1082
1093
  "node",
1083
1094
  "__root"
@@ -1693,6 +1704,7 @@ exports.default = (0, _rootDefault.default);
1693
1704
  },{"./root":"4gAnc","@parcel/transformer-js/src/esmodule-helpers.js":"gkKU3"}],"jopQA":[function(require,module,exports) {
1694
1705
  var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
1695
1706
  parcelHelpers.defineInteropFlag(exports);
1707
+ parcelHelpers.export(exports, "detectTag", ()=>detectTag);
1696
1708
  var _globals = require("@domql/globals");
1697
1709
  var _event = require("../event");
1698
1710
  var _utils = require("../utils");
@@ -1913,8 +1925,12 @@ const ENV = "development";
1913
1925
  }
1914
1926
  };
1915
1927
  }
1916
- if (options.components) {
1917
- const { components } = options;
1928
+ // assign context
1929
+ if (options.context && !(0, _rootDefault.default).context) (0, _rootDefault.default).context = options.context;
1930
+ element.context = (0, _rootDefault.default).context;
1931
+ const { context } = element;
1932
+ if (context && context.components) {
1933
+ const { components } = context;
1918
1934
  const { extend: extend1 } = element;
1919
1935
  const execExtend = (0, _utils.exec)(extend1, element);
1920
1936
  if ((0, _utils.isString)(execExtend)) {
@@ -1928,16 +1944,17 @@ const ENV = "development";
1928
1944
  }
1929
1945
  }
1930
1946
  }
1931
- // assign context
1932
- if (options.context && !(0, _rootDefault.default).context) (0, _rootDefault.default).context = options.context;
1933
- element.context = (0, _rootDefault.default).context;
1934
1947
  // Only resolve extends, skip everything else
1935
1948
  if (options.onlyResolveExtends) {
1936
1949
  (0, _extend.applyExtend)(element, parent, options);
1950
+ element.key = assignedKey;
1951
+ element.tag = (0, _cache.detectTag)(element);
1937
1952
  if (!element.__exec) element.__exec = {};
1938
1953
  if (!element.__attr) element.__attr = {};
1939
1954
  if (!element.__ifFalsy) (0, _propsDefault.default)(element, parent);
1940
- element.key = assignedKey;
1955
+ element.state = (0, _stateDefault.default)(element, parent, {
1956
+ skip: true
1957
+ });
1941
1958
  (0, _iterate.throughInitialExec)(element);
1942
1959
  for(const param in element){
1943
1960
  const prop = element[param];
@@ -1945,16 +1962,21 @@ const ENV = "development";
1945
1962
  const hasDefined = element.define && element.define[param];
1946
1963
  const ourParam = (0, _mixins.registry)[param];
1947
1964
  const hasOptionsDefine = options.define && options.define[param];
1948
- if (ourParam && !hasOptionsDefine) continue; //if (isFunction(ourParam)) ourParam(prop, element, element.node, options)
1965
+ if (ourParam && !hasOptionsDefine) continue; // if (isFunction(ourParam)) ourParam(prop, element, element.node, options)
1949
1966
  else if (element[param] && !hasDefined && !hasOptionsDefine) create((0, _utils.exec)(prop, element), element, param, options);
1950
1967
  }
1951
1968
  // createNode(element, options)
1952
1969
  delete element.parent;
1970
+ delete element.update;
1953
1971
  delete element.__element;
1972
+ // added by createProps
1954
1973
  delete element.__props;
1955
1974
  delete element.props.__element;
1956
1975
  delete element.props.update;
1957
- delete element.update;
1976
+ // added by createState
1977
+ delete element.state.__element;
1978
+ delete element.state.__element;
1979
+ delete element.__hasRootState;
1958
1980
  return element;
1959
1981
  }
1960
1982
  // create EXTEND inheritance
@@ -1981,8 +2003,8 @@ const ENV = "development";
1981
2003
  // enable CHANGES storing
1982
2004
  if (!element.__children) element.__children = [];
1983
2005
  // Add _root element property
1984
- const hasRoot = parent.parent && parent.parent.key === ":root";
1985
- if (!element.__root) element.__root = hasRoot ? parent : parent.__root;
2006
+ const hasRoot = parent && parent.key === ":root";
2007
+ if (!element.__root) element.__root = hasRoot ? element : parent.__root;
1986
2008
  // set the PATH array
1987
2009
  if (ENV === "test" || ENV === "development") {
1988
2010
  if (!parent.path) parent.path = [];
@@ -2093,12 +2115,11 @@ const createNode = (element, options)=>{
2093
2115
  const prop = element[param];
2094
2116
  if ((0, _methods.isMethod)(param) || (0, _utils.isObject)((0, _mixins.registry)[param]) || prop === undefined) continue;
2095
2117
  const hasDefined = element.define && element.define[param];
2096
- const ourParam = (0, _mixins.registry)[param];
2118
+ const DOMQLProperty = (0, _mixins.registry)[param];
2097
2119
  const hasOptionsDefine = options.define && options.define[param];
2098
- options.define;
2099
- if (ourParam && !hasOptionsDefine) // Check if param is in our method registry
2120
+ if (DOMQLProperty && !hasOptionsDefine) // Check if param is in our method registry
2100
2121
  {
2101
- if ((0, _utils.isFunction)(ourParam)) ourParam(prop, element, node, options);
2122
+ if ((0, _utils.isFunction)(DOMQLProperty)) DOMQLProperty(prop, element, node, options);
2102
2123
  } else if (element[param] && !hasDefined && !hasOptionsDefine) (0, _createDefault.default)((0, _utils.exec)(prop, element), element, param, options); // Create element
2103
2124
  }
2104
2125
  }
@@ -2618,7 +2639,8 @@ const IGNORE_STATE_PARAMS = [
2618
2639
  "__components",
2619
2640
  "__projectSystem",
2620
2641
  "__projectState",
2621
- "__projectLibrary",
2642
+ "__projectComponents",
2643
+ "__projectPages",
2622
2644
  "projectStateUpdate",
2623
2645
  "projectSystemUpdate"
2624
2646
  ];
@@ -2675,7 +2697,8 @@ const updateState = function(obj, options = {}) {
2675
2697
  }, options);
2676
2698
  }
2677
2699
  }
2678
- } else (0, _utils.overwriteDeep)(state, obj, IGNORE_STATE_PARAMS);
2700
+ } else if (opts.shallow) (0, _utils.overwriteShallow)(state, obj, IGNORE_STATE_PARAMS);
2701
+ else (0, _utils.overwriteDeep)(state, obj, IGNORE_STATE_PARAMS);
2679
2702
  // TODO: try debounce
2680
2703
  if (!options.preventUpdate) element.update({}, options);
2681
2704
  else if (options.preventUpdate === "recursive") element.update({}, {
@@ -2688,7 +2711,8 @@ const updateState = function(obj, options = {}) {
2688
2711
  }
2689
2712
  if (!options.preventUpdateListener && element.on && (0, _utils1.isFunction)(element.on.stateUpdated)) (0, _event.on).stateUpdated(element.on.stateUpdated, element, state, obj);
2690
2713
  };
2691
- const createState = function(element, parent) {
2714
+ const createState = function(element, parent, opts1) {
2715
+ const skip = opts1 && opts1.skip ? opts1.skip : false;
2692
2716
  let { state , __root } = element;
2693
2717
  if ((0, _utils1.isFunction)(state)) state = (0, _utils.exec)(state, element);
2694
2718
  if ((0, _utils1.is)(state)("string", "number")) {
@@ -2742,6 +2766,8 @@ const createState = function(element, parent) {
2742
2766
  };
2743
2767
  } else state = (0, _utils.deepClone)(state, IGNORE_STATE_PARAMS);
2744
2768
  element.state = state;
2769
+ // NOTE: Only true when 'onlyResolveExtends' option is set to true
2770
+ if (skip) return state;
2745
2771
  state.clean = cleanState;
2746
2772
  state.parse = parseState;
2747
2773
  state.update = updateState;
@@ -2755,7 +2781,8 @@ const createState = function(element, parent) {
2755
2781
  state.__components = (state.__root || state).COMPONENTS;
2756
2782
  state.__projectSystem = (state.__root || state).PROJECT_SYSTEM;
2757
2783
  state.__projectState = (state.__root || state).PROJECT_STATE;
2758
- state.__projectLibrary = (state.__root || state).PROJECT_LIBRARY;
2784
+ state.__projectComponents = (state.__root || state).PROJECT_COMPONENTS;
2785
+ state.__projectPages = (state.__root || state).PROJECT_PAGES;
2759
2786
  // run `on.stateCreated`
2760
2787
  if (element.on && (0, _utils1.isFunction)(element.on.stateCreated)) (0, _event.on).stateCreated(element.on.stateCreated, element, state);
2761
2788
  return state;
@@ -2875,8 +2902,9 @@ var _utils = require("../utils");
2875
2902
  const ENV = "development";
2876
2903
  const applyExtend = (element, parent, options = {})=>{
2877
2904
  if ((0, _utils.isFunction)(element)) element = (0, _utils.exec)(element, parent);
2878
- let { extend , props } = element;
2879
- if ((0, _utils.isString)(extend)) extend = options.components[extend];
2905
+ let { extend , props , context } = element;
2906
+ const COMPONENTS = context && context.components || options.components;
2907
+ if ((0, _utils.isString)(extend)) extend = COMPONENTS[extend];
2880
2908
  const extendStack = (0, _utils.getExtendStack)(extend);
2881
2909
  if (ENV !== "test" || ENV !== "development") delete element.extend;
2882
2910
  let childExtendStack = [];
@@ -2907,8 +2935,8 @@ const applyExtend = (element, parent, options = {})=>{
2907
2935
  element.__extend = stack;
2908
2936
  let mergedExtend = (0, _utils.cloneAndMergeArrayExtend)(stack);
2909
2937
  const component = (0, _utils.exec)(element.component || mergedExtend.component, element);
2910
- if (component && options.components && options.components[component]) {
2911
- const componentExtend = (0, _utils.cloneAndMergeArrayExtend)((0, _utils.getExtendStack)(options.components[component]));
2938
+ if (component && COMPONENTS && COMPONENTS[component]) {
2939
+ const componentExtend = (0, _utils.cloneAndMergeArrayExtend)((0, _utils.getExtendStack)(COMPONENTS[component]));
2912
2940
  mergedExtend = (0, _utils.deepMergeExtend)(componentExtend, mergedExtend);
2913
2941
  }
2914
2942
  return (0, _utils.deepMergeExtend)(element, mergedExtend);
@@ -1 +1 @@
1
- {"mappings":"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AA,GAAAA,eAAM,AAANA;AAZF,8CAaEG,CAAAA,GAAAA,iBAAQ,AAARA;AAbF,yCAcEf,CAAAA,GAAAA,mBAAG,AAAHA;AAdF,yCAeEc,CAAAA,GAAAA,YAAG,AAAHA;AAfF,yCAgBEhB,CAAAA,GAAAA,YAAG,AAAHA;AAhBF,0CAiBEkB,CAAAA,GAAAA,aAAI,AAAJA;AA/BF;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;AACA;;AACA;;AACA;;AACA;;AAEA;AAdA;;;ACAA;;AAAA;kBAEe;IACbtB,MAAM;QACJ;QACA;KACD;IAEDuB,MAAM;QACJ;QACA;QACA;QACA;KACD;IAEDC,MAAM;QACJ;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QAEA,MAAA;QACA;QACA;KADA;AAGJ;;;AC5IA;;AAEA;AACA;AAHA;AAKA,MAAMxB,OAAO;IACX2B,KAAK;IACLC,MAAMH,CAAAA,GAAAA,iBAAQ,AAARA,IAAWA,CAAAA,GAAAA,iBAAQ,AAARA,EAASD,IAAI,GAAGE,CAAAA,GAAAA,aAAM,AAANA,EAAO,sBAAsBD,CAAAA,GAAAA,iBAAQ,AAARA,EAA9DG;AACF;kBAEe5B;;;ACVf;;AAEA;AAAA,wBAAA;AACA;AAAA,wBAAA;AACA;AAAA,wBAAA;AACA;AAAA,wBAAA;AALA;;;ACAA;;4CAEa6B;4CAiDAH;AAnDb;AAEO,MAAMG,SAAS;IACpBC,IAAI;QACFC,oBAAoB;YAClBC,OAAO;YACPC,aAAa;QACf;QACAC,oBAAoB;YAClBF,OAAO;YACPC,aAAa;QACf;QACAE,mBAAmB;YACjBH,OAAO;YACPC,aAAa;QACf;QACAG,gCAAgC;YAC9BJ,OAAO;YACPC,aAAa;QACf;QACAI,eAAe;YACbL,OAAO;YACPC,aAAa;QACf;QACAK,uBAAuB;YACrBN,OAAO;YACPC,aAAa;QACf;QACAM,gBAAgB;YACdP,OAAO;YACPC,aAAa;QACf;QACAO,iBAAiB;YACfR,OAAO;YACPC,aAAa;QACf;QACAQ,iBAAiB;YACfT,OAAO;YACPC,aAAa;QACf;QACAS,mBAAmB;YACjBV,OAAO;YACPC,aAAa;QACf;QACAU,iBAAiB;YACfX,OAAO;YACPC,aAAa;QACf;IACF;AACF;AAEO,MAAMP,SAAS,CAACkB,KAAKC,KAAKC,UAAY;IAC3C,MAAMC,cAAc;IACpB,IAAIC;IACJ,IAAIJ,OAAO,OAAOA,QAAQ,UAAUI,SAASnB,MAAM,CAACkB,YAAY,CAACH,IAAI;IAErE,OAAO,IAAIK,MACR,CAAA,CAAA,EAAGL,IAAI,IAAA,EAAMC,IAAI,KAAA,CAAM,EACvB,CAAA,EAAEG,OAAOf,WAAY,CAAA,CAAC,EACvBa,UAAW,CAAA,IAAA,EAAMA,QAAQ,CAAC,GAAG,EAAE;AAEnC;;;AC7DA;;6CAKaI;8CAcAK;qDAQAO;8CAEAE;8CAKAG;8CAEAC;gDAEAC;6CAEAC;kDAEAE;4CAMAC;mDAQAK;+CAQAE;0CAUAC;yCAKAG;2CAMAG;+CAWAI;2CAiBAE;+CAYAG;iDAkBAG;+CAoBAG;mDAuBAQ;oDAiBAC;gDAQAb;0DAOAmB;sDAOAC;AA/Nb;AACA;;AAHA;AAKO,MAAMpE,UAAWC,CAAAA,KAAO;IAC7B,MAAMrC,QAAQ,CAAC;IACf,OAAO,CAAC,GAAGsC,OAAS;QAClB,MAAMC,IAAID,IAAI,CAAC,EAAE;QACjB,IAAIC,KAAKvC,OACP,OAAOA,KAAK,CAACuC,EAAE;aACV;YACL,MAAMC,SAASH,GAAGE;YAClBvC,KAAK,CAACuC,EAAE,GAAGC;YACX,OAAOA;QACT,CAAA;IACF;AACF;AAEO,MAAMC,WAAW,CAACT,SAASU,MAAMC,UAAU,GAAG,GAAK;IACxD,IAAIC;IACJ,OAAO,CAAC,GAAGN,OAAS;QAClBO,aAAaD;QACbA,QAAQE,WAAW,IAAM;YAAEJ,KAAKK,KAAK,CAACf,SAASM;QAAM,GAAGK;IAC1D;AACF;AAEO,MAAMK,kBAAkBjB,CAAAA,MAAOhC,CAAAA,GAAAA,qBAAK,AAALA,EAAMW,IAAI,CAACuC,OAAO,CAAClB;AAElD,MAAMmB,WAAWnB,CAAAA,MAAO;IAC7B,IAAIA,QAAQ,IAAI,EAAE,OAAO,KAAK;IAC9B,OAAQ,OAAOA,QAAQ,YAAcA,IAAIoB,WAAW,KAAKC;AAC3D;AAEO,MAAMC,WAAWtB,CAAAA,MAAO,OAAOA,QAAQ;AAEvC,MAAMuB,WAAWvB,CAAAA,MAAO,OAAOA,QAAQ;AAEvC,MAAMwB,aAAaxB,CAAAA,MAAO,OAAOA,QAAQ;AAEzC,MAAMyB,UAAUzB,CAAAA,MAAO0B,MAAMD,OAAO,CAACzB;AAErC,MAAM2B,eAAe3B,CAAAA,MAAO;IACjC,IAAIA,QAAQ,IAAI,EAAE,OAAO,KAAK;IAC9B,iCAAA;IACA,OAAQ,OAAOA,QAAQ;AACzB;AAEO,MAAM4B,SAASC,CAAAA,MAAO;IAC3B,OACE,OAAOrG,CAAAA,GAAAA,eAAM,AAANA,EAAOsG,IAAI,KAAK,WACnBD,eAAerG,CAAAA,GAAAA,eAAM,AAANA,EAAOsG,IAAI,GAC1BD,OAAO,OAAOA,QAAQ,YAAY,OAAOA,IAAIE,QAAQ,KAAK,YAAY,OAAOF,IAAIG,QAAQ,KAAK,QAAQ;AAE9G;AAEO,MAAMC,gBAAgBJ,CAAAA,MAAO;IAClC,OACE,OAAOrG,CAAAA,GAAAA,eAAM,AAANA,EAAO0G,WAAW,KAAK,WAC1BL,eAAerG,CAAAA,GAAAA,eAAM,AAANA,EAAO0G,WAAW,CAAC,OAFxC;OAGML,OAAO,OAAOA,QAAQ,YAAYA,QAAQ,IAAI,IAAIA,IAAIE,QAAQ,KAAK,KAAK,OAAOF,IAAIG,QAAQ,KAAK,QAAQ;AAEhH;AAEO,MAAMG,YAAYnC,CAAAA,MAAO;IAC9B,OAAOmB,SAASnB,QACd2B,aAAa3B,QACbsB,SAAStB,QACTuB,SAASvB,QACTwB,WAAWxB,QACXyB,QAAQzB,QACR2B,aAAa3B;AACjB;AAEO,MAAMoC,OAAO,CAACC,OAAOpC,SAASqC,QAAU;IAC7C,IAAId,WAAWa,QAAQ,OAAOA,MAAMpC,SAASqC,SAASrC,QAAQqC,KAAK;IACnE,OAAOD;AACT;AAEO,MAAME,MAAM,CAACV,KAAKW,WAAWvC,UAAY;IAC9C,IAAK,MAAMwC,KAAKD,UACdX,GAAG,CAACY,EAAE,GAAGL,KAAKI,SAAS,CAACC,EAAE,EAAExC;AAEhC;AAEO,MAAMyC,QAAQ,CAACzC,SAAS4B,MAAQ;IACrC,IAAK,MAAMY,KAAKZ,IAAK;QACnB,MAAMc,cAAc1C,OAAO,CAACwC,EAAE;QAC9B,MAAMG,UAAUf,GAAG,CAACY,EAAE;QACtB,IAAIE,gBAAgBE,WAClB5C,OAAO,CAACwC,EAAE,GAAGG;IAEjB;IACA,OAAO3C;AACT;AAEO,MAAM6C,YAAY,CAAC7C,SAASnE,SAAW;IAC5C,uCAAA;IACA,IAAK,MAAM2G,KAAK3G,OAAQ;QACtB,MAAM6G,cAAc1C,OAAO,CAACwC,EAAE;QAC9B,MAAMM,aAAajH,MAAM,CAAC2G,EAAE;QAC5B,kCAAA;QACA,IAAIA,MAAM,YAAYA,MAAM,WAAWA,MAAM,SAAS,QAAtD;QACA,IAAIE,gBAAgBE,WAClB5C,OAAO,CAACwC,EAAE,GAAGM;aACR,IAAIpB,aAAagB,gBAAgBxB,SAAS4B,aAC/CD,UAAUH,aAAaI;IAE3B;IACA,iCAAA;IACA,OAAO9C;AACT;AAEO,MAAM+C,QAAQnB,CAAAA,MAAO;IAC1B,MAAMoB,IAAI,CAAC;IACX,IAAK,MAAMC,QAAQrB,IAAK;QACtB,IAAIqB,SAAS,QAAQ,QAArB;QACAD,CAAC,CAACC,KAAK,GAAGrB,GAAG,CAACqB,KAAK;IACrB;IACA,OAAOD;AACT;AAKO,MAAME,YAAY,CAACtB,KAAKuB,YAAY;IAAC;IAAU;IAAQ;IAAa;IAAS;IAAU;CAAU,GAAK;IAC3G,MAAMH,IAAIxB,QAAQI,OAAO,EAAE,GAAG,CAAC,CAAC;IAChC,IAAK,MAAMqB,QAAQrB,IAAK;QACtB,IAAIuB,UAAUlC,OAAO,CAACgC,QAAQ,IAAI,QAAlC;QACA,IAAIN,UAAUf,GAAG,CAACqB,KAAK;QACvB,IAAIA,SAAS,YAAYzB,QAAQmB,UAC/BA,UAAUS,WAAWT;QAEvB,IAAIjB,aAAaiB,UACfK,CAAC,CAACC,KAAK,GAAGC,UAAUP;aACfK,CAAC,CAACC,KAAK,GAAGN;IACnB;IACA,OAAOK;AACT;AAKO,MAAMK,cAAc,CAACjB,OAAOpC,UAAY;IAC7C,IAAIoC,UAAUpC,SAAS,OAAO,IAAI;IAClC,IAAI,CAACoC,SAAS,CAACpC,SAAS,OAAO,KAAK;IACpC,IAAK,MAAMiD,QAAQb,MAAO;QACxB,MAAMkB,YAAYlB,KAAK,CAACa,KAAK;QAC7B,MAAMP,cAAc1C,OAAO,CAACiD,KAAK;QACjC,IAAIvB,aAAa4B,YAAY;YAC3B,MAAMC,UAAUF,YAAYC,WAAWZ;YACvC,IAAI,CAACa,SAAS,OAAO,KAAK;QAC5B,OAAO;YACL,MAAMA,WAAUD,cAAcZ;YAC9B,IAAI,CAACa,UAAS,OAAO,KAAK;QAC5B,CAAA;IACF;IACA,OAAO,IAAI;AACb;AAKO,MAAMC,YAAY,CAACxD,SAASyD,QAAQC,UAAY;IACrD,MAAMC,UAAU,CAAC;IAEjB,IAAK,MAAMnB,KAAKiB,OAAQ;QACtB,IAAIjB,MAAM,WAAWA,MAAM,SAAS,QAApC;QAEA,MAAME,cAAc1C,OAAO,CAACwC,EAAE;QAC9B,MAAMoB,aAAaH,MAAM,CAACjB,EAAE;QAE5B,IAAIoB,eAAehB,WAAW;YAC5B5C,QAAQ6D,QAAQ,CAACrB,EAAE,GAAGmB,OAAO,CAACnB,EAAE,GAAGE;YACnC1C,OAAO,CAACwC,EAAE,GAAGoB;QACf,CAAA;QAEA,IAAIF,QAAQI,SAAS,EAAE,OAAO9D,QAAQ+D,MAAM,CAACvB,EAAE;IACjD;IAEA,OAAOmB;AACT;AAKO,MAAMK,gBAAgB,CAACpC,KAAK6B,QAAQN,YAAY;IAAC;IAAQ;CAAS,GAAK;IAC5E,IAAK,MAAMX,KAAKiB,OAAQ;QACtB,IAAIN,UAAUlC,OAAO,CAACuB,KAAK,IAAI,QAA/B;QACA,MAAMG,UAAUf,GAAG,CAACY,EAAE;QACtB,MAAMoB,aAAaH,MAAM,CAACjB,EAAE;QAC5B,IAAId,aAAaiB,YAAYjB,aAAakC,aACxCI,cAAcrB,SAASiB;aAClB,IAAIA,eAAehB,WACxBhB,GAAG,CAACY,EAAE,GAAGoB;IAEb;IACA,OAAOhC;AACT;AAKO,MAAMqC,iBAAiB,CAACC,GAAGC,IAAM;IACtC,IAAIzC,aAAawC,MAAMxC,aAAayC,IAAI,OAAOtB,UAAUqB,GAAGC;IAC5D,OAAOD,KAAKC;AACd;AAKO,MAAMf,aAAcgB,CAAAA,MAAQ;IACjC,OAAOA,IAAIC,MAAM,CAAC,CAACH,GAAGI,IAAMzB,UAAUqB,GAAGhB,UAAUoB,KAAK,CAAC;AAC3D;AAKO,MAAMC,uBAAuB3C,CAAAA,MAAO;IACzC,OAAOJ,QAAQI,OAAOwB,WAAWxB,OAAOsB,UAAUtB,IAAI;AACxD;AAKO,MAAM4C,mBAAmB,CAACpC,OAAOa,MAAMwB,QAAQ,EAAE,GAAK;IAC3D,MAAMC,aAAaH,qBAAqBnC;IACxCqC,MAAME,IAAI,CAACD;IAEX,MAAME,iBAAiBF,UAAU,CAACzB,KAAK;IACvC,IAAI2B,gBAAgBJ,iBAAiBI,gBAAgB3B,MAAMwB;IAE3D,OAAOC,UAAU,CAACzB,KAAK;IAEvB,OAAOwB;AACT;;;AC3OA;;8CAEaI;sDAWAG;AAbb;AAEO,MAAMH,WAAY,WAAY;IACnC,IAAIC,QAAQ;IAEZ,SAASC,QAAS;QAChBD;QACA,OAAOA;IACT;IAEA,OAAOC;AACT;AAEO,MAAMC,mBAAmBH;;;ACbhC;;kDAIaI;yDAGAG;0DACAC;qDAEAC;qDAIAE;4DAOAE;wDAMAE;gDAKAI;mDAQAD;qDASAG;qDAcAE;8DAqBAC;iDAOAC;oDASAI;qDAOAC;AAzGb;AAFA;AAIO,MAAM1B,eAAe,IAAM3I,KAAKC,MAAM,GAAG2I,QAAQ,CAAC,IAAIC,SAAS,CAAC;AAGhE,MAAMC,sBAAsB,CAAC;AAC7B,MAAMC,uBAAuB,CAAC;AAE9B,MAAMC,kBAAkBzJ,CAAAA,SAAU;IACvC,OAAOuJ,mBAAmB,CAACvJ,OAAO0J,MAAM,CAAC;AAC3C;AAEO,MAAMC,kBAAkB,CAAC3J,QAAQ4I,QAAU;IAChD,MAAMgB,OAAOR;IACbpJ,OAAO0J,MAAM,GAAGE;IAChBL,mBAAmB,CAACK,KAAK,GAAGhB;IAC5B,OAAOA;AACT;AAEO,MAAMiB,yBAAyB,CAAC7J,QAAQ4I,QAAU;IACvD,IAAI5I,OAAO0J,MAAM,EAAI,OAAOd,MAAMkB,MAAM,CAACL,gBAAgBzJ;IACzD,OAAO2J,gBAAgB3J,QAAQ4I,QAAO,8BAAtC;AACF;AAGO,MAAMmB,qBAAqB,CAAC/J,QAAQ4I,QAAU;IACnD5I,OAAOgK,OAAO,CAACC,CAAAA,OAAQC,cAAcD,MAAMrB;IAC3C,OAAOA;AACT;AAEO,MAAMuB,aAAa,CAACnK,QAAQ4I,QAAU;IAC3C,MAAMwB,uBAAuBpK,OAAOA,MAAM;IAC1C,IAAIoK,sBACFF,cAAcE,sBAAsBxB;IAEtC,OAAOA;AACT;AAEO,MAAMsB,gBAAgB,CAAClK,QAAQ4I,QAAU;IAC9C,IAAI,CAAC5I,QAAQ,OAAO4I;IACpB,IAAIjD,CAAAA,GAAAA,cAAO,AAAPA,EAAQ3F,SAAS,OAAO+J,mBAAmB/J,QAAQ4I;IACvDA,MAAME,IAAI,CAAC9I;IACX,IAAIA,OAAOA,MAAM,EAAEmK,WAAWnK,QAAQ4I;IACtC,OAAOA;AACT;AAGO,MAAMyB,kBAAkBtE,CAAAA,MAAO;IACpC,MAAMoB,IAAI,CAAC;IACX,IAAK,MAAMC,QAAQrB,IAAK;QACtB,IAAI;YAAC;YAAU;YAAQ;YAAa;YAAU;SAAQ,CAACX,OAAO,CAACgC,QAAQ,IAAI,QAA3E;QACA,MAAMN,UAAUf,GAAG,CAACqB,KAAK;QACzB,IAAI/B,CAAAA,GAAAA,eAAQ,AAARA,EAASyB,UACXK,CAAC,CAACC,KAAK,GAAGiD,gBAAgBvD;aACrB,IAAInB,CAAAA,GAAAA,cAAO,AAAPA,EAAQmB,UACjBK,CAAC,CAACC,KAAK,GAAGN,QAAQL,GAAG,CAAC6D,CAAAA,IAAKA;aACtBnD,CAAC,CAACC,KAAK,GAAGN;IACnB;IACA,OAAOK;AACT;AAEO,MAAMoD,kBAAkB,CAACpG,SAASnE,SAAW;IAClD,IAAK,MAAM2G,KAAK3G,OAAQ;QACtB,IAAI;YAAC;YAAU;YAAQ;YAAa;YAAU;SAAQ,CAACoF,OAAO,CAACuB,KAAK,IAAI,QAAxE;QACA,MAAME,cAAc1C,OAAO,CAACwC,EAAE;QAC9B,MAAMM,aAAajH,MAAM,CAAC2G,EAAE;QAC5B,IAAIE,gBAAgBE,WAClB5C,OAAO,CAACwC,EAAE,GAAGM;aACR,IAAI5B,CAAAA,GAAAA,eAAQ,AAARA,EAASwB,gBAAgBxB,CAAAA,GAAAA,eAAQ,AAARA,EAAS4B,aAC3CsD,gBAAgB1D,aAAaI;aACxB,IAAItB,CAAAA,GAAAA,cAAO,AAAPA,EAAQkB,gBAAgBlB,CAAAA,GAAAA,cAAO,AAAPA,EAAQsB,aACzC9C,OAAO,CAACwC,EAAE,GAAGE,YAAYiD,MAAM,CAAC7C;aAC3B,IAAItB,CAAAA,GAAAA,cAAO,AAAPA,EAAQkB,gBAAgBxB,CAAAA,GAAAA,eAAQ,AAARA,EAAS4B,aAAa;YACvD,MAAMlB,MAAMwE,gBAAgB,CAAC,GAAG1D;YAChC1C,OAAO,CAACwC,EAAE,GAAG4D,gBAAgBxE,KAAKkB;QACpC,OAAO,IAAIJ,gBAAgBE,aAAarB,CAAAA,GAAAA,iBAAU,AAAVA,EAAWuB,aACjD9C,OAAO,CAACwC,EAAE,GAAGM;IAEjB;IACA,OAAO9C;AACT;AAEO,MAAMqG,2BAA2B5B,CAAAA,QAAS;IAC/C,OAAOA,MAAMJ,MAAM,CAAC,CAACH,GAAGI,IAAM;QAC5B,OAAO8B,gBAAgBlC,GAAGgC,gBAAgB5B;IAC5C,GAAG,CAAC;AACN;AAGO,MAAMgC,cAAc,CAACC,aAAaC,mBAAqB;IAC5D,OAAO,EAAE,CACNb,MAAM,CAACY,YAAYE,KAAK,CAAC,GAAG,IAC5Bd,MAAM,CAACa,iBAAiBC,KAAK,CAAC,GAAG,IACjCd,MAAM,CAACY,YAAYE,KAAK,CAAC,IACzBd,MAAM,CAACa,iBAAiBC,KAAK,CAAC;AACnC;AAGO,MAAMC,iBAAiB7K,CAAAA,SAAU;IACtC,IAAI,CAACA,QAAQ,OAAO,EAAE;IACtB,IAAIA,OAAO0J,MAAM,EAAE,OAAOD,gBAAgBzJ,WAAW,EAAE;IACvD,MAAM4I,QAAQsB,cAAclK,QAAQ,EAAE;IACtC,OAAO6J,uBAAuB7J,QAAQ4I;AACxC;AAEO,MAAMkC,kBAAkB9K,CAAAA,SAAU;IACvC,MAAM4I,QAAQiC,eAAe7K;IAC7B,OAAOwK,yBAAyB5B;AAClC;;;AC9GA;;AAEA;AAAA,wBAAA;AACA;AAAA,wBAAA;AACA;AAAA,wBAAA;AACA;AAAA,wBAAA;AACA;AAAA,wBAAA;AACA;AAAA,wBAAA;AAPA;;;ACAA;;oDAKa;8CAEA;8CAKA;8CAEA;gDAEA;+CAEA;4CAEA;6CAEA;kDAEA;4CAMA;mDAQA;+CAQA;iDAYA;2CAIA;wCAcA;2CAMA;AAhFb;AACA;AAHA;AAKO,MAAM,iBAAiB,CAAA,MAAO,CAAA,GAAA,eAAS,AAAD,EAAE,IAAI,CAAC,OAAO,CAAC;AAErD,MAAM,WAAW,CAAA,MAAO;IAC7B,IAAI,QAAQ,IAAI,EAAE,OAAO,KAAK;IAC9B,OAAO,AAAC,OAAO,QAAQ,YAAc,IAAI,WAAW,KAAK;AAC3D;AAEO,MAAM,WAAW,CAAA,MAAO,OAAO,QAAQ;AAEvC,MAAM,WAAW,CAAA,MAAO,OAAO,QAAQ;AAEvC,MAAM,aAAa,CAAA,MAAO,OAAO,QAAQ;AAEzC,MAAM,YAAY,CAAA,MAAO,QAAQ,IAAI,IAAI,QAAQ,KAAK;AAEtD,MAAM,SAAS,CAAA,MAAO,QAAQ,IAAI;AAElC,MAAM,UAAU,CAAA,MAAO,MAAM,OAAO,CAAC;AAErC,MAAM,eAAe,CAAA,MAAO;IACjC,IAAI,QAAQ,IAAI,EAAE,OAAO,KAAK;IAC9B,iCAAiC;IACjC,OAAQ,OAAO,QAAQ;AACzB;AAEO,MAAM,SAAS,CAAA,MAAO;IAC3B,OACE,OAAO,CAAA,GAAA,eAAM,AAAD,EAAE,IAAI,KAAK,WACnB,eAAe,CAAA,GAAA,eAAM,AAAD,EAAE,IAAI,GAC1B,OAAO,OAAO,QAAQ,YAAY,OAAO,IAAI,QAAQ,KAAK,YAAY,OAAO,IAAI,QAAQ,KAAK,QAAQ;AAE9G;AAEO,MAAM,gBAAgB,CAAA,MAAO;IAClC,OACE,OAAO,CAAA,GAAA,eAAM,AAAD,EAAE,WAAW,KAAK,WAC1B,eAAe,CAAA,GAAA,eAAM,AAAD,EAAE,WAAW,CAAC,OAAO;OACzC,OAAO,OAAO,QAAQ,YAAY,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ;AAEhH;AAEO,MAAM,YAAY,CAAA,MAAO;IAC9B,OAAO,SAAS,QACd,aAAa,QACb,SAAS,QACT,SAAS,QACT,WAAW,QACX,QAAQ,QACR,aAAa,QACb,UAAU,QACV,OAAO;AACX;AAEO,MAAM,cAAc,CAAA,MAAO;IAChC,OAAO,QAAQ;AACjB;AAEO,MAAM,QAAQ;IACnB,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,UAAU;IACV,YAAY;IACZ,MAAM;IACN,aAAa;IACb,SAAS;AACX;AAEO,MAAM,KAAK,CAAC,MAAQ;IACzB,OAAO,CAAC,GAAG,OAAS;QAClB,OAAO,KAAK,GAAG,CAAC,CAAA,MAAO,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,CAAA,IAAK,GAAG,MAAM,GAAG;IAClE;AACF;AAEO,MAAM,QAAQ,CAAC,MAAQ;IAC5B,OAAO,CAAC,GAAG,OAAS;QAClB,OAAO,KAAK,GAAG,CAAC,CAAA,MAAO,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,CAAA,IAAK,GAAG,MAAM,KAAK;IACpE;AACF;;;ACtFA;;AAEA;AAAA,wBAAA;AAFA;;;ACAA;;+CAEa;AAFb;AAEO,MAAM,YAAY;IACvB,MAAM;QACJ;QACA;KACD;IAED,MAAM;QACJ;QACA;QACA;QACA;KACD;IAED,MAAM;QACJ;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QAEA,MAAM;QACN;QACA;KACD;AACH;;;AC1IA;;0CAIa;yCAKA;2CAMA;+CAWA;2CAiBA;+CAYA;+CAsBA;0CAmBA;kDAmBA;mDAkBA;oDAgBA;gDAQA;0DAOA;sDAOA;iDAYA;AArLb;AAFA;AAIO,MAAM,OAAO,CAAC,OAAO,SAAS,QAAU;IAC7C,IAAI,CAAA,GAAA,iBAAU,AAAD,EAAE,QAAQ,OAAO,MAAM,SAAS,SAAS,QAAQ,KAAK;IACnE,OAAO;AACT;AAEO,MAAM,MAAM,CAAC,KAAK,WAAW,UAAY;IAC9C,IAAK,MAAM,KAAK,UACd,GAAG,CAAC,EAAE,GAAG,KAAK,SAAS,CAAC,EAAE,EAAE;AAEhC;AAEO,MAAM,QAAQ,CAAC,SAAS,MAAQ;IACrC,IAAK,MAAM,KAAK,IAAK;QACnB,MAAM,cAAc,OAAO,CAAC,EAAE;QAC9B,MAAM,UAAU,GAAG,CAAC,EAAE;QACtB,IAAI,gBAAgB,WAClB,OAAO,CAAC,EAAE,GAAG;IAEjB;IACA,OAAO;AACT;AAEO,MAAM,YAAY,CAAC,SAAS,SAAW;IAC5C,uCAAuC;IACvC,IAAK,MAAM,KAAK,OAAQ;QACtB,MAAM,cAAc,OAAO,CAAC,EAAE;QAC9B,MAAM,aAAa,MAAM,CAAC,EAAE;QAC5B,kCAAkC;QAClC,IAAI,MAAM,YAAY,MAAM,SAAS,QAAQ;QAC7C,IAAI,gBAAgB,WAClB,OAAO,CAAC,EAAE,GAAG;aACR,IAAI,CAAA,GAAA,mBAAY,AAAD,EAAE,gBAAgB,CAAA,GAAA,eAAQ,AAAD,EAAE,aAC/C,UAAU,aAAa;IAE3B;IACA,iCAAiC;IACjC,OAAO;AACT;AAEO,MAAM,QAAQ,CAAA,MAAO;IAC1B,MAAM,IAAI,CAAC;IACX,IAAK,MAAM,QAAQ,IAAK;QACtB,IAAI,SAAS,QAAQ,QAAQ;QAC7B,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;IACrB;IACA,OAAO;AACT;AAKO,MAAM,YAAY,CAAC,MAAQ;IAChC,IAAI,CAAA,GAAA,cAAO,AAAD,EAAE,MACV,OAAO,IAAI,GAAG,CAAC;IAEjB,MAAM,IAAI,CAAC;IACX,IAAK,MAAM,QAAQ,IAAK;QACtB,IAAI,UAAU,GAAG,CAAC,KAAK;QACvB,IAAI,SAAS,YAAY,CAAA,GAAA,cAAO,AAAD,EAAE,UAC/B,UAAU,WAAW;QAEvB,IAAI,CAAA,GAAA,cAAO,AAAD,EAAE,UACV,CAAC,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC;aACjB,IAAI,CAAA,GAAA,eAAQ,AAAD,EAAE,UAClB,CAAC,CAAC,KAAK,GAAG,UAAU;aACf,CAAC,CAAC,KAAK,GAAG;IACnB;IACA,OAAO;AACT;AAKO,MAAM,YAAY,CAAC,SAAS,QAAQ,UAAY;IACrD,MAAM,EAAE,IAAG,EAAE,GAAG;IAChB,MAAM,UAAU,CAAC;IAEjB,IAAK,MAAM,KAAK,OAAQ;QACtB,IAAI,MAAM,SAAS,QAAQ;QAE3B,MAAM,cAAc,OAAO,CAAC,EAAE;QAC9B,MAAM,aAAa,MAAM,CAAC,EAAE;QAE5B,IAAI,YAAY;YACd,IAAI,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG;YAC9B,GAAG,CAAC,EAAE,GAAG;QACX,CAAC;IACH;IAEA,OAAO;AACT;AAEO,MAAM,OAAO,CAAC,KAAK,UAAU,QAAU;IAC5C,MAAM,UAAU,SAAS,CAAC;IAC1B,IAAK,MAAM,KAAK,IAAK;QACnB,IAAI,MAAM,OAAO,QAAQ;QACzB,MAAM,eAAe,QAAQ,CAAC,EAAE;QAChC,MAAM,UAAU,GAAG,CAAC,EAAE;QACtB,IAAI,CAAA,GAAA,mBAAY,AAAD,EAAE,iBAAiB,CAAA,GAAA,mBAAY,AAAD,EAAE,UAAU;YACvD,OAAO,CAAC,EAAE,GAAG,CAAC;YACd,KAAK,cAAc,SAAS,OAAO,CAAC,EAAE;QACxC,OAAO,IAAI,YAAY,WACrB,OAAO,CAAC,EAAE,GAAG;IAEjB;IACA,OAAO;AACT;AAKO,MAAM,eAAe,CAAC,QAAQ,MAAQ;IAC3C,MAAM,UAAU,CAAC;IAEjB,IAAK,MAAM,KAAK,OAAQ;QACtB,MAAM,UAAU,GAAG,CAAC,EAAE;QACtB,MAAM,aAAa,MAAM,CAAC,EAAE;QAE5B,IAAI,YACF,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG;IAE1B;IAEA,OAAO;AACT;AAKO,MAAM,gBAAgB,CAAC,QAAQ,MAAQ;IAC5C,IAAK,MAAM,KAAK,OAAQ;QACtB,MAAM,UAAU,GAAG,CAAC,EAAE;QACtB,MAAM,aAAa,MAAM,CAAC,EAAE;QAC5B,IAAI,CAAA,GAAA,mBAAY,AAAD,EAAE,YAAY,CAAA,GAAA,mBAAY,AAAD,EAAE,aACxC,cAAc,SAAS;aAClB,IAAI,eAAe,WACxB,GAAG,CAAC,EAAE,GAAG;IAEb;IACA,OAAO;AACT;AAKO,MAAM,iBAAiB,CAAC,GAAG,IAAM;IACtC,IAAI,CAAA,GAAA,mBAAY,AAAD,EAAE,MAAM,CAAA,GAAA,mBAAY,AAAD,EAAE,IAAI,OAAO,UAAU,GAAG;IAC5D,OAAO,KAAK;AACd;AAKO,MAAM,aAAa,CAAC,MAAQ;IACjC,OAAO,IAAI,MAAM,CAAC,CAAC,GAAG,IAAM,UAAU,GAAG,UAAU,KAAK,CAAC;AAC3D;AAKO,MAAM,uBAAuB,CAAA,MAAO;IACzC,OAAO,CAAA,GAAA,cAAO,AAAD,EAAE,OAAO,WAAW,OAAO,UAAU,IAAI;AACxD;AAKO,MAAM,mBAAmB,CAAC,OAAO,MAAM,QAAQ,EAAE,GAAK;IAC3D,MAAM,aAAa,qBAAqB;IACxC,MAAM,IAAI,CAAC;IAEX,MAAM,iBAAiB,UAAU,CAAC,KAAK;IACvC,IAAI,gBAAgB,iBAAiB,gBAAgB,MAAM;IAE3D,OAAO,UAAU,CAAC,KAAK;IAEvB,OAAO;AACT;AAEO,MAAM,cAAc,CAAC,OAAO,UAAY;IAC7C,IAAI,UAAU,SAAS,OAAO,IAAI;IAClC,IAAI,CAAC,SAAS,CAAC,SAAS,OAAO,KAAK;IACpC,IAAK,MAAM,QAAQ,MAAO;QACxB,MAAM,YAAY,KAAK,CAAC,KAAK;QAC7B,MAAM,cAAc,OAAO,CAAC,KAAK;QACjC,IAAI,CAAA,GAAA,mBAAY,AAAD,EAAE,YAAY;YAC3B,MAAM,UAAU,YAAY,WAAW;YACvC,IAAI,CAAC,SAAS,OAAO,KAAK;QAC5B,OAAO;YACL,MAAM,WAAU,cAAc;YAC9B,IAAI,CAAC,UAAS,OAAO,KAAK;QAC5B,CAAC;IACH;IACA,OAAO,IAAI;AACb;;;ACtMA;;8CAEa;6CAQA;AAVb;AAEO,MAAM,WAAW,CAAC,SAAS,MAAM,UAAU,GAAG,GAAK;IACxD,IAAI;IACJ,OAAO,CAAC,GAAG,OAAS;QAClB,aAAa;QACb,QAAQ,WAAW,IAAM;YAAE,KAAK,KAAK,CAAC,SAAS;QAAM,GAAG;IAC1D;AACF;AAEO,MAAM,UAAU,CAAC,KAAO;IAC7B,MAAM,QAAQ,CAAC;IACf,OAAO,CAAC,GAAG,OAAS;QAClB,MAAM,IAAI,IAAI,CAAC,EAAE;QACjB,IAAI,KAAK,OACP,OAAO,KAAK,CAAC,EAAE;aACV;YACL,MAAM,SAAS,GAAG;YAClB,KAAK,CAAC,EAAE,GAAG;YACX,OAAO;QACT,CAAC;IACH;AACF;;;ACtBA;;;ACAA;;mDAEa;8CAEA;AAJb;AAEO,MAAM,gBAAgB,CAAA,SAAU,CAAA,OAAO,OAAO,IAAI,AAAD,KAAK;AAEtD,MAAM,WAAY,YAAc;IACrC,IAAI,QAAQ;IACZ,MAAO,QAAQ,QAAQ,EACrB,MAAM;AAEV;;;ACTA;;2CAEa;gDACA;AAHb;AAEO,MAAM,QAAQ,CAAC,MAAM,GAAG,MAAQ;IAAE,IAAI,MAAM,IAAI,GAAG,CAAC,CAAA,IAAK,QAAQ,GAAG,CAAC;AAAI;AACzE,MAAM,aAAa,CAAC,MAAM,KAAK,GAAG,MAAQ;IAC/C,IAAI,MAAM;QACR,QAAQ,KAAK,CAAC;QACd,IAAI,GAAG,CAAC,CAAA,IAAK,QAAQ,GAAG,CAAC;QACzB,QAAQ,QAAQ,CAAC;IACnB,CAAC;AACH;;;ACTA;;AAEA;;AAFA;kBAIevH,CAAAA,GAAAA,oBAAI,AAAJA;;;ACJf;;AAEA;AACA;AACA;AAJA;AAMA,MAAM2J,iBAAiB,CAAC;AAExB,MAAM5I,aAAc+B,CAAAA,UAAY;IAC9B,MAAM,EAAExD,IAAAA,EAAK,GAAGwD;IAChB,IAAIxD,KAAK;QACP,IAAIA,QAAQ,UAAU,OAAOmC,CAAAA,GAAAA,iBAAQ,AAARA,EAASmI,cAAc,CAAC9G,QAAQ5D,IAAI;aAC5D,IAAII,QAAQ,YACf,OAAOmC,CAAAA,GAAAA,iBAAQ,AAARA,EAASoI,sBAAsB;aACjC,IAAIvK,QAAQ,SAASA,QAAQ,QAAU,cAAA;QAC5C,OAAOmC,CAAAA,GAAAA,iBAAQ,AAARA,EAASqI,eAAe,CAAC,8BAA8BxK;aACzD,OAAOmC,CAAAA,GAAAA,iBAAQ,AAARA,EAASsI,aAAa,CAACzK;IACvC,OACE,OAAOmC,CAAAA,GAAAA,iBAAQ,AAARA,EAASsI,aAAa,CAAC;AAElC;AAEA,MAAMC,YAAYlH,CAAAA,UAAW;IAC3B,IAAI,EAAExD,IAAG,EAAEqC,IAAAA,EAAK,GAAGmB;IACnBxD,MAAM2F,CAAAA,GAAAA,WAAI,AAAJA,EAAK3F,KAAKwD;IAEhB,IAAIxD,QAAQ,IAAI,EAAEA,MAAMqC;IAExB,IAAIwC,CAAAA,GAAAA,eAAQ,AAARA,EAAS7E,MAAM;QACjB,MAAM2K,YAAYnG,CAAAA,GAAAA,sBAAe,AAAfA,EAAgBxE,OAAO;QACzC,IAAI2K,WAAW,OAAO3K;IACxB,OAAO;QACL,MAAM4K,YAAYpG,CAAAA,GAAAA,sBAAe,AAAfA,EAAgBnC,OAAO;QACzC,IAAIuI,WAAW,OAAOvI;IACxB,CAAA;IAEA,OAAO;AACT;kBAEgBmB,CAAAA,UAAY;IAC1B,MAAMxD,MAAMwD,QAAQxD,GAAG,GAAG0K,UAAUlH;IAEpC,IAAI,CAAC4G,CAAAA,GAAAA,UAAG,AAAHA,EAAIS,MAAM,CAACrH,UACd,OAAOpB,CAAAA,GAAAA,aAAM,AAANA,EAAO;IAGhB,IAAI0I,YAAYT,cAAc,CAACrK,IAAI;IACnC,IAAI,CAAC8K,WAAWA,YAAYT,cAAc,CAACrK,IAAI,GAAGyB,WAAW+B;IAE7D,MAAMuH,aAAaD,UAAUE,SAAS,CAAC,IAAI;IAC3C,IAAIhL,QAAQ,UAAU+K,WAAWE,SAAS,GAAGzH,QAAQ5D,IAAI;IACzD,OAAOmL;AACT;;;ACpDA;;AAMA,wCACEG;AADF,yCAEEd;AAFF,wCAGEe;AAPF;AACA;AACA;AAJA;;;ACAA;;uDAEaC;0CAIAC;4CAIAR;gDAIAS;gDAIAC;+CAIAC;kDAIAC;sDAIAC;kDAIAC;4CAIAhK;AAtCb;AAEO,MAAMyJ,oBAAoB,CAACxF,OAAOpC,SAASqC,QAAU;IAC1D,OAAOD,MAAMpC,SAASqC;AACxB;AAEO,MAAMwF,OAAO,CAACzF,OAAOpC,SAASqC,QAAU;IAC7C,OAAOD,MAAMpC,SAASqC;AACxB;AAEO,MAAMgF,SAAS,CAACjF,OAAOpC,SAASqC,QAAU;IAC/C,OAAOD,MAAMpC,SAASqC;AACxB;AAEO,MAAMyF,aAAa,CAAC1F,OAAOpC,SAASqC,QAAU;IACnD,OAAOD,MAAMpC,SAASqC;AACxB;AAEO,MAAM0F,aAAa,CAAC3F,OAAOpC,SAASqC,QAAU;IACnD,OAAOD,MAAMpC,SAASqC;AACxB;AAEO,MAAM2F,YAAY,CAAC5F,OAAOpC,SAASqC,QAAU;IAClD,OAAOD,MAAMpC,SAASqC;AACxB;AAEO,MAAM4F,eAAe,CAAC7F,OAAOpC,SAASqC,QAAU;IACrD,OAAOD,MAAMpC,SAASqC;AACxB;AAEO,MAAM6F,mBAAmB,CAAC9F,OAAOpC,SAASqC,OAAOsB,UAAY;IAClE,OAAOvB,MAAMpC,SAASqC,OAAOsB;AAC/B;AAEO,MAAMwE,eAAe,CAAC/F,OAAOpC,SAASqC,OAAOsB,UAAY;IAC9D,OAAOvB,MAAMpC,SAASqC,OAAOsB;AAC/B;AAEO,MAAMxF,SAAS,CAACiE,OAAOpC,SAASqC,QAAU;IAC/C,OAAOD,MAAMpC,SAASqC;AACxB;;;ACxCA;;4CAKagF;AAHb;AACA;AAHA;AAKO,MAAMA,SAAUrH,CAAAA,UAAY;IACjC,MAAMxD,MAAMwD,QAAQxD,GAAG,IAAI;IAC3B,MAAM4L,UAAUrK,CAAAA,GAAAA,cAAK,AAALA,EAAMW,IAAI,CAACuC,OAAO,CAACzE,OAAO;IAC1C,OAAO4L,WAAWxJ,CAAAA,GAAAA,aAAM,AAANA,EAAO;AAC3B;;;ACTA;;0CAIaE;AAFb;AAFA;AAIO,MAAMA,OAAQA,CAAAA,OAAS;IAC5B,MAAM,EAAE+C,KAAAA,EAAM,GAAGtG,CAAAA,GAAAA,eAAM,AAANA;IACjB,OACE,OAAOsG,SAAS,aACZ/C,gBAAgB+C,OAChB/C,QACA,OAAOA,SAAS,YAChB,OAAOA,KAAKgD,QAAQ,KAAK,YACzB,OAAOhD,KAAKtC,GAAG,KAAK,QAAQ;AAEpC;;;ACdA;;oDAwQauN;AAtQb;;AACA;;AACA;AACA;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;AAlBA;AAmBA,2DAAA;AAEA,MAAMpM;AAEN;;CAEA,GACA,MAAMR,SAAS,CAAC6C,SAASqJ,QAAQxK,KAAK6E,UAAU0F,CAAAA,GAAAA,uBAAO,AAAPA,EAAQjM,MAAM,IAAI,CAAC,CAAC,GAAK;IACvE,IAAIuG,WAAW,CAAC0F,CAAAA,GAAAA,uBAAO,AAAPA,EAAQjM,MAAM,EAAEiM,CAAAA,GAAAA,uBAAO,AAAPA,EAAQjM,MAAM,GAAGuG;IAEjD,0BAAA;IACA,IAAI1D,YAAY4C,WAAW;QACzB,IAAIjF,QAAQ,UAAUA,QAAQ,eAAiBN,QAAQiM,IAAI,CAACzK,KAAK,2BAA2BwK,UAAUA,OAAOE,IAAI;QACjHvJ,UAAU,CAAC;IACb,CAAA;IACA,IAAIA,YAAY,IAAI,EAAE;IACtB,IAAIA,YAAY,IAAI,EAAEA,UAAU;QAAE5D,MAAM,IAANA;IAAW;IAE7C,uBAAA;IACA,IAAI4D,QAAQuF,MAAM,EAChBvF,UAAU;QAAEnE,QAAQmE;IAAQ;IAG9B,yBAAA;IACA,IAAI,CAACqJ,QAAQA,SAASnM,CAAAA,GAAAA,oBAAI,AAAJA;IACtB,IAAIyE,CAAAA,GAAAA,aAAM,AAANA,EAAO0H,SAASA,SAASnM,CAAAA,GAAAA,oBAAI,AAAJA,CAAI,CAAE,CAAA,EAAE2B,IAAI,OAAA,CAAQ,CAAC,GAAG;QAAEA,KAAK;QAASC,MAAMuK;IAAO;IAElF,uBAAA;IACA,IAAIhI,CAAAA,GAAAA,eAAQ,AAARA,EAASrB,YAAYsB,CAAAA,GAAAA,eAAQ,AAARA,EAAStB,UAAU;QAC1C,MAAMwJ,YAAYxJ,QAAQnE,MAAM,IAAImE,QAAQnE,MAAM,CAACW,GAAG;QACtD,MAAMiN,iBAAiBJ,OAAOK,WAAW,IAAIL,OAAOK,WAAW,CAAClN,GAAG;QACnE,MAAMmN,oBAAsB5L,CAAAA,GAAAA,qBAAK,AAALA,EAAMW,IAAI,CAACuC,OAAO,CAACpC,OAAO,MAAOA;QAC7DmB,UAAU;YACR5D,MAAM4D;YACNxD,KAAKgN,aAAaC,kBAAkBE,qBAAqB;QAC3D;IACF,CAAA;IAEA,aAAA;IACA,MAAMC,cAAc,AAAC5J,CAAAA,QAAQnB,GAAG,IAAIA,OAAOgG,CAAAA,GAAAA,eAAQ,AAARA,GAAQ,EAAIK,QAAQ;IAE/D,MAAM,EAAErJ,OAAM,EAAEgO,MAAK,EAAExH,MAAK,EAAEqH,YAAW,EAAEI,WAAAA,EAAY,GAAG9J;IAE1D,IAAI+J,eAAeH,cAAc;QAC/B,MAAMI,oBAAoBnO,UAAU6N,eAAeG,SAASxH,SAASrC,QAAQ0H,EAAE;QAC/E,MAAMuC,eAAeL,YAAYM,KAAK,CAAC,IAAI,CAAC,EAAE;QAC9C,IAAI,CAACF,qBAAqBF,YACxBT,MAAM,CAACO,YAAY,GAAG5J,UAAU;YAC9BnE,QAAQoO,gBAAgBL;YACxBC,OAAO;gBAAE,GAAG7J,OAAH;YAAW;QACtB;aACK,IAAI,CAACnE,UAAUA,WAAW,IAAI,EACnCwN,MAAM,CAACO,YAAY,GAAG5J,UAAU;YAC9B,GAAGA,OAAO;YACVnE,QAAQoO,gBAAgBL;QAC1B;IAEJ,CAAA;IAEA,uBAAA;IACA,8BAAA;IACA,IAAIA,YAAYnD,KAAK,CAAC,GAAG,OAAO;QAC9B,IAAIoD,OAAO;YACTA,MAAMM,OAAO,GAAG;YAChB,IAAIN,KAAK,CAACD,YAAY,EAAEC,KAAK,CAACD,YAAY,CAACO,OAAO,GAAGN,MAAMM,OAAO;iBAC7DN,KAAK,CAACD,YAAY,GAAG;gBAAEO,SAASN,MAAMM,OAAO,IAAI;YAAQ;QAChE,OACEd,MAAM,CAACO,YAAY,GAAG5J,UAAU;YAC9B,GAAGA,OAAO;YACV6J,OAAO;gBACLM,SAAS;gBACT,CAACP,YAAW,EAAG;oBAAEO,SAAS;gBAAQ;YACpC;QACF;KAEJ;IAEA,IAAIzG,QAAQ0G,UAAU,EAAE;QACtB,MAAM,EAAEA,WAAAA,EAAY,GAAG1G;QACvB,MAAM,EAAE7H,QAAAA,QAAAA,EAAQ,GAAGmE;QACnB,MAAMqK,aAAalI,CAAAA,GAAAA,WAAI,AAAJA,EAAKtG,SAAQmE;QAChC,IAAIqB,CAAAA,GAAAA,eAAQ,AAARA,EAASgJ;YACX,IAAID,UAAU,CAACC,WAAW,EAAErK,QAAQnE,MAAM,GAAGuO,UAAU,CAACC,WAAW;iBAC9D;gBACH,IAAI1M,QAAQ,UAAUA,QAAQ,eAAe;oBAC3CN,QAAQiM,IAAI,CAACe,YAAY,qBAAqBD,YAAYpK;oBAC1D3C,QAAQiM,IAAI,CAAC,mBAAmB,CAAC;gBACnC,CAAA;gBACAtJ,QAAQnE,MAAM,GAAG,CAAC;YACpB,CAAA;SACF;IACF,CAAA;IAEA,iBAAA;IACA,IAAI6H,QAAQ4G,OAAO,IAAI,CAACpN,CAAAA,GAAAA,oBAAI,AAAJA,EAAKoN,OAAO,EAAEpN,CAAAA,GAAAA,oBAAI,AAAJA,EAAKoN,OAAO,GAAG5G,QAAQ4G,OAAO;IACpEtK,QAAQsK,OAAO,GAAGpN,CAAAA,GAAAA,oBAAI,AAAJA,EAAKoN,OAAO;IAE9B,6CAAA;IACA,IAAI5G,QAAQ6G,kBAAkB,EAAE;QAC9BhC,CAAAA,GAAAA,mBAAW,AAAXA,EAAYvI,SAASqJ,QAAQ3F;QAE7B,IAAI,CAAC1D,QAAQ+D,MAAM,EAAE/D,QAAQ+D,MAAM,GAAG,CAAC;QACvC,IAAI,CAAC/D,QAAQwK,MAAM,EAAExK,QAAQwK,MAAM,GAAG,CAAC;QACvC,IAAI,CAACxK,QAAQyK,SAAS,EAAE/B,CAAAA,GAAAA,qBAAW,AAAXA,EAAY1I,SAASqJ;QAC7CrJ,QAAQnB,GAAG,GAAG+K;QAEdT,CAAAA,GAAAA,2BAAkB,AAAlBA,EAAmBnJ;QAEnB,IAAK,MAAMoC,SAASpC,QAAS;YAC3B,MAAMiD,OAAOjD,OAAO,CAACoC,MAAM;YAC3B,IAAI4G,CAAAA,GAAAA,iBAAQ,AAARA,EAAS5G,UAAUlB,CAAAA,GAAAA,eAAQ,AAARA,EAASgI,CAAAA,GAAAA,gBAAQ,AAARA,CAAQ,CAAC9G,MAAM,KAAKa,SAASL,WAAW,QAAxE;YAEA,MAAM8H,aAAa1K,QAAQvC,MAAM,IAAIuC,QAAQvC,MAAM,CAAC2E,MAAM;YAC1D,MAAMuI,WAAWzB,CAAAA,GAAAA,gBAAQ,AAARA,CAAQ,CAAC9G,MAAM;YAChC,MAAMwI,mBAAmBlH,QAAQjG,MAAM,IAAIiG,QAAQjG,MAAM,CAAC2E,MAAM;YAChE,IAAIuI,YAAY,CAACC,kBACf,QAAQ,EAAC,0EAAT;iBACK,IAAI5K,OAAO,CAACoC,MAAM,IAAI,CAACsI,cAAc,CAACE,kBAC3CzN,OAAOgF,CAAAA,GAAAA,WAAI,AAAJA,EAAKc,MAAMjD,UAAUA,SAASoC,OAAOsB;QAEhD;QAEA,+BAAA;QACA,OAAO1D,QAAQqJ,MAAM;QACrB,OAAOrJ,QAAQ6K,SAAS;QACxB,OAAO7K,QAAQ8K,OAAO;QACtB,OAAO9K,QAAQ6J,KAAK,CAACgB,SAAS;QAC9B,OAAO7K,QAAQ6J,KAAK,CAAC1L,MAAM;QAC3B,OAAO6B,QAAQ7B,MAAM;QACrB,OAAO6B;IACT,CAAA;IAEA,4BAAA;IACAuI,CAAAA,GAAAA,mBAAW,AAAXA,EAAYvI,SAASqJ,QAAQ3F;IAE7B,IAAItC,OAAO5C,IAAI,CAACkF,SAASqH,MAAM,EAAE;QAC/B7B,CAAAA,GAAAA,gBAAQ,AAARA,EAAS8B,cAAc,GAAGtH;QAC1B,IAAIA,QAAQuH,iBAAiB,EAAE,OAAOvH,QAAQuH,iBAAiB;IACjE,CAAA;IAEA,0BAAA;IACAjL,QAAQnB,GAAG,GAAG+K;IAEd,2BAAA;IACA,IAAI,CAAC5J,QAAQkL,SAAS,EAAElL,QAAQkL,SAAS,GAAG,CAAC;IAE7C,iBAAA;IACA,IAAI,CAAClL,QAAQ6D,QAAQ,EAAE7D,QAAQ6D,QAAQ,GAAG,CAAC;IAE3C,cAAA;IACA,IAAI,CAAC7D,QAAQ+D,MAAM,EAAE/D,QAAQ+D,MAAM,GAAG,CAAC;IAEvC,uBAAA;IACA,IAAI,CAAC/D,QAAQmL,OAAO,EAAEnL,QAAQmL,OAAO,GAAG,CAAC;IACzC,IAAI,CAACnL,QAAQoL,YAAY,EAAEpL,QAAQoL,YAAY,GAAG,CAAC;IAEnD,uBAAA;IACA,IAAI,CAACpL,QAAQwK,MAAM,EAAExK,QAAQwK,MAAM,GAAG,CAAC;IAEvC,yBAAA;IACA,IAAI,CAACxK,QAAQqL,SAAS,EAAErL,QAAQqL,SAAS,GAAG,EAAE;IAE9C,yBAAA;IACA,IAAI,CAACrL,QAAQsL,UAAU,EAAEtL,QAAQsL,UAAU,GAAG,EAAE;IAEhD,6BAAA;IACA,MAAMC,UAAUlC,OAAOA,MAAM,IAAIA,OAAOA,MAAM,CAACxK,GAAG,KAAK;IACvD,IAAI,CAACmB,QAAQwL,MAAM,EAAExL,QAAQwL,MAAM,GAAGD,UAAUlC,SAASA,OAAOmC,MAAM;IAEtE,qBAAA;IACA,IAAI7N,QAAQ,UAAUA,QAAQ,eAAe;QAC3C,IAAI,CAAC0L,OAAOE,IAAI,EAAEF,OAAOE,IAAI,GAAG,EAAE;QAClCvJ,QAAQuJ,IAAI,GAAGF,OAAOE,IAAI,CAAC5D,MAAM,CAACiE;IACpC,CAAA;IAEA,iBAAA;IACA5J,QAAQxC,GAAG,GAAGA,CAAAA,GAAAA,mBAAG,AAAHA;IACdwC,QAAQ7B,MAAM,GAAGA,CAAAA,GAAAA,sBAAM,AAANA;IACjB6B,QAAQ3B,MAAM,GAAGA,CAAAA,GAAAA,eAAM,AAANA;IACjB2B,QAAQyL,aAAa,GAAGjD,CAAAA,GAAAA,yBAAoB,AAApBA;IACxBxI,QAAQzB,QAAQ,GAAGA,CAAAA,GAAAA,iBAAQ,AAARA;IACnByB,QAAQ5B,MAAM,GAAGA,CAAAA,GAAAA,eAAM,AAANA;IACjB4B,QAAQ6I,UAAU,GAAGA,CAAAA,GAAAA,mBAAU,AAAVA;IACrB7I,QAAQzC,KAAK,GAAGA,CAAAA,GAAAA,cAAK,AAALA;IAChByC,QAAQ4I,SAAS,GAAGA,CAAAA,GAAAA,kBAAS,AAATA;IACpB5I,QAAQxB,IAAI,GAAGA,CAAAA,GAAAA,aAAI,AAAJA;IACfwB,QAAQ8I,WAAW,GAAGA,CAAAA,GAAAA,oBAAW,AAAXA;IACtB9I,QAAQ+I,eAAe,GAAGA,CAAAA,GAAAA,wBAAe,AAAfA;IAC1B,IAAIpL,QAAQ,UAAUA,QAAQ,eAC5BqC,QAAQ1C,GAAG,GAAGA,CAAAA,GAAAA,YAAG,AAAHA;IAGhB,eAAA;IACA0C,QAAQqC,KAAK,GAAGoG,CAAAA,GAAAA,qBAAW,AAAXA,EAAYzI,SAASqJ;IAErC,+BAAA;IACA,IAAI9H,CAAAA,GAAAA,iBAAU,AAAVA,EAAWvB,QAAQ0L,EAAE,GACvB,yBAAA;IACA;QAAA,IAAI,CAAC1L,QAAQ0L,EAAE,CAAC1L,SAASA,QAAQqC,KAAK,GAAG;YACvC,MAAMsJ,aAAa1C,CAAAA,GAAAA,qBAAS,AAATA,EAAU;gBAAEzM,KAAK;YAAW;YAC/CwD,QAAQ4L,YAAY,GAAGvD,CAAAA,GAAAA,kBAAU,AAAVA,EAAWsD,YAAYtC,OAAOvK,IAAI;YACzDkB,QAAQyK,SAAS,GAAG,IAAI;QAC1B,CAAA;IAAA,CACF;IAEA,2BAAA;IACA,IAAIzK,QAAQlB,IAAI,IAAI,CAACkB,QAAQyK,SAAS,EAAI,oBAAA;IACxC,OAAOnC,CAAAA,GAAAA,kBAAU,AAAVA,EAAWtI,SAASqJ,QAAQO;IAGrC,uBAAA;IACA,IAAI,CAAC5J,QAAQyK,SAAS,EAAE/B,CAAAA,GAAAA,qBAAW,AAAXA,EAAY1I,SAASqJ;IAE7C,gBAAA;IACA,IAAIrJ,QAAQ0H,EAAE,IAAInG,CAAAA,GAAAA,iBAAU,AAAVA,EAAWvB,QAAQ0H,EAAE,CAACG,IAAI,GAC1CH,CAAAA,GAAAA,SAAE,AAAFA,EAAGG,IAAI,CAAC7H,QAAQ0H,EAAE,CAACG,IAAI,EAAE7H,SAASA,QAAQqC,KAAK;IAGjD,6BAAA;IACA,IAAIrC,QAAQ0H,EAAE,IAAInG,CAAAA,GAAAA,iBAAU,AAAVA,EAAWvB,QAAQ0H,EAAE,CAACE,iBAAiB,GACvDF,CAAAA,GAAAA,SAAE,AAAFA,EAAGE,iBAAiB,CAAC5H,QAAQ0H,EAAE,CAACE,iBAAiB,EAAE5H,SAASA,QAAQqC,KAAK;IAG3E,wBAAA;IACAsG,CAAAA,GAAAA,sBAAW,AAAXA,EAAY3I;IAEZ,qBAAA;IACA/B,CAAAA,GAAAA,oBAAU,AAAVA,EAAW+B,SAAS0D;IAEpB,IAAI1D,QAAQyK,SAAS,EAAE,OAAOzK;IAE9B,cAAA;IACAsI,CAAAA,GAAAA,kBAAU,AAAVA,EAAWtI,SAASqJ,QAAQxK;IAE5B,kBAAA;IACA,IAAImB,QAAQ0H,EAAE,IAAInG,CAAAA,GAAAA,iBAAU,AAAVA,EAAWvB,QAAQ0H,EAAE,CAACL,MAAM,GAC5CK,CAAAA,GAAAA,SAAE,AAAFA,EAAGL,MAAM,CAACrH,QAAQ0H,EAAE,CAACL,MAAM,EAAErH,SAASA,QAAQqC,KAAK;IAGrD,IAAIgH,OAAOiC,UAAU,EAAEjC,OAAOiC,UAAU,CAAC3G,IAAI,CAAC3E,QAAQnB,GAAG;IACzD,gCAAA;IAEA,OAAOmB;AACT;AAEO,MAAM+J,iBAAkBlL,CAAAA,MAAQ;IACrC,MAAMgN,mBAAmBxK,CAAAA,GAAAA,eAAQ,AAARA,EAASxC;IAClC,IAAI,CAACgN,kBAAkB;IAEvB,MAAMC,eAAejN,IAAI4H,KAAK,CAAC,GAAG;IAElC,OAAO,WAAWsF,IAAI,CAACD;AACzB;kBAEe3O;;;ACjRf;;gDA8Bac;AA5Bb;;AACA;;AACA;AAEA;AACA;AAKA;AACA;AAbA;AAcA,2CAAA;AAEA,MAAMN;AAcC,MAAMM,aAAa,CAAC+B,SAAS0D,UAAY;IAC9C,2BAAA;IACA,IAAI,EAAE5E,KAAI,EAAEtC,IAAAA,EAAK,GAAGwD;IAEpB,IAAIkM;IAEJ,IAAI,CAACpN,MAAM;QACToN,YAAY,IAAI;QAEhB,IAAIlM,QAAQyK,SAAS,EAAE,OAAOzK;QAE9B,IAAIxD,QAAQ,UACVsC,OAAOkB,QAAQlB,IAAI,GAAGkB,QAAQqJ,MAAM,CAACvK,IAAI,CAACqN,YAAY,CAAC;YAAEC,MAAM;QAAO;aACjEtN,OAAOkB,QAAQlB,IAAI,GAAGmK,CAAAA,GAAAA,qBAAS,AAATA,EAAUjJ;QAEvC,sBAAA;QACA,IAAIA,QAAQ0H,EAAE,IAAInG,CAAAA,GAAAA,iBAAU,AAAVA,EAAWvB,QAAQ0H,EAAE,CAACK,UAAU,GAChDL,IAAGK,UAAU,CAAC/H,QAAQ0H,EAAE,CAACK,UAAU,EAAE/H,SAASA,QAAQqC,KAAK;IAE/D,CAAA;IAEA,qCAAA;IAEA,IAAI1E,QAAQ,UAAUA,QAAQ,eAAe;QAC3CmB,KAAKuN,GAAG,GAAGrM;QACX,IAAIuB,CAAAA,GAAAA,iBAAU,AAAVA,EAAWzC,KAAKwN,YAAY,GAAGxN,KAAKwN,YAAY,CAAC,OAAOtM,QAAQnB,GAAG;IACzE,CAAA;IAEA,IAAImB,QAAQyK,SAAS,EAAE,OAAOzK;IAE9B,mCAAA;IACA,IAAIA,QAAQxD,GAAG,KAAK,YAAYwD,QAAQxD,GAAG,KAAK,YAAY;QAC1D,yBAAA;QACAwP,CAAAA,GAAAA,6BAAoB,AAApBA,EAAqBhM,SAAS0D;QAE9B,uBAAA;QACAyF,CAAAA,GAAAA,2BAAkB,AAAlBA,EAAmBnJ;QAEnB,eAAA;QACA,IAAIkM,aAAahL,CAAAA,GAAAA,eAAQ,AAARA,EAASlB,QAAQ0H,EAAE,GAAGuE,CAAAA,GAAAA,oBAAW,AAAXA,EAAYjM;QAEnD,IAAK,MAAMoC,SAASpC,QAAS;YAC3B,MAAMiD,OAAOjD,OAAO,CAACoC,MAAM;YAE3B,IAAI4G,CAAAA,GAAAA,iBAAQ,AAARA,EAAS5G,UAAUlB,CAAAA,GAAAA,eAAQ,AAARA,EAASgI,CAAAA,GAAAA,gBAAQ,AAARA,CAAQ,CAAC9G,MAAM,KAAKa,SAASL,WAAW,QAAxE;YAEA,MAAM8H,aAAa1K,QAAQvC,MAAM,IAAIuC,QAAQvC,MAAM,CAAC2E,MAAM;YAC1D,MAAMuI,WAAWzB,CAAAA,GAAAA,gBAAQ,AAARA,CAAQ,CAAC9G,MAAM;YAChC,MAAMwI,mBAAmBlH,QAAQjG,MAAM,IAAIiG,QAAQjG,MAAM,CAAC2E,MAAM;YAE5DsB,QAAQjG,MAAM;YAOlB,IAAIkN,YAAY,CAACC,kBAAoB,2CAAA;YACnC;gBAAA,IAAIrJ,CAAAA,GAAAA,iBAAU,AAAVA,EAAWoJ,WAAWA,SAAS1H,MAAMjD,SAASlB,MAAM4E;YAAQ,OAC3D,IAAI1D,OAAO,CAACoC,MAAM,IAAI,CAACsI,cAAc,CAACE,kBAC3CzN,CAAAA,GAAAA,sBAAM,AAANA,EAAOgF,CAAAA,GAAAA,WAAI,AAAJA,EAAKc,MAAMjD,UAAUA,SAASoC,OAAOsB,UAAS,iBAArDvG;QAEJ;IACF,CAAA;IAEA,yBAAA;IACA,OAAO6C;AACT;kBAEe/B;;;ACnGf;;iDAKagO;wDAkBA9C;wDAUAuD;0DAoBAV;0DA2BAY;AA9Eb;AACA;AAHA;AAKO,MAAMX,cAAcjM,CAAAA,UAAW;IACpC,MAAM,EAAElB,KAAI,EAAE4I,GAAAA,EAAI,GAAG1H;IACrB,IAAK,MAAMoC,SAASsF,GAAI;QACtB,IACEtF,UAAU,UACVA,UAAU,YACVA,UAAU,UACV,QAJF;QAMA,MAAMmK,kBAAkBvM,QAAQ0H,EAAE,CAACtF,MAAM;QACzC,IAAIb,CAAAA,GAAAA,iBAAU,AAAVA,EAAWgL,kBACbzN,KAAK0N,gBAAgB,CAACpK,OAAOqK,CAAAA,QAC3BF,gBAAgBE,OAAOzM,SAASA,QAAQqC,KAAK,GAC/C,IAAI;IAER;AACF;AAEO,MAAM8G,qBAAqBnJ,CAAAA,UAAW;IAC3C,IAAK,MAAMoC,SAASpC,QAAS;QAC3B,MAAMiD,OAAOjD,OAAO,CAACoC,MAAM;QAC3B,IAAIb,CAAAA,GAAAA,iBAAU,AAAVA,EAAW0B,SAAS,CAAC+F,CAAAA,GAAAA,iBAAQ,AAARA,EAAS5G,QAAQ;YACxCpC,QAAQ+D,MAAM,CAAC3B,MAAM,GAAGa;YACxBjD,OAAO,CAACoC,MAAM,GAAGa,KAAKjD,SAASA,QAAQqC,KAAK;QAC9C,CAAA;IACF;AACF;AAEO,MAAMqK,qBAAqB,CAAC1M,SAAS0D,UAAY;IACtD,MAAM,EAAEK,OAAAA,EAAQ,GAAG/D;IACnB,MAAM2D,UAAU,CAAC;IAEjB,IAAK,MAAMvB,SAAS2B,OAAQ;QAC1B,MAAMd,OAAOjD,OAAO,CAACoC,MAAM;QAC3B,MAAMuK,UAAU5I,MAAM,CAAC3B,MAAM,CAACpC,SAASA,QAAQqC,KAAK;QAEpD,uBAAA;QACA,IAAIY,QAAQA,KAAKnE,IAAI,IAAKuC,CAAAA,CAAAA,GAAAA,eAAQ,AAARA,EAASsL,YAAYrL,CAAAA,GAAAA,eAAQ,AAARA,EAASqL,QAAO,GAC7DnJ,CAAAA,GAAAA,gBAAS,AAATA,EAAUP,MAAM;YAAE7G,MAAMuQ;QAAQ,GAAGjJ;aAC9B,IAAIiJ,YAAY1J,MAAM;YAC3BjD,QAAQ6D,QAAQ,CAACzB,MAAM,GAAGuB,OAAO,CAACvB,MAAM,GAAGa;YAC3CjD,OAAO,CAACoC,MAAM,GAAGuK;QACnB,CAAA;IACF;IAEA,OAAOhJ;AACT;AAEO,MAAMqI,uBAAuB,CAAChM,SAAS0D,UAAY;IACxD,MAAM,EAAEjG,OAAAA,EAAQ,GAAGuC;IACnB,IAAI4B,MAAM,CAAC;IAEX,IAAIV,CAAAA,GAAAA,eAAQ,AAARA,EAASzD,SACXmE,MAAM;QAAE,GAAGnE,MAAH;IAAU;IAEpB,IAAIyD,CAAAA,GAAAA,eAAQ,AAARA,EAASwC,QAAQjG,MAAM,GACzB,gCAAA;IACA,8BAAA;IACAmE,MAAM;QAAE,GAAGA,GAAG;QAAE,GAAG8B,QAAQjG,MAAX;IAAkB;IAGpC,IAAK,MAAM2E,SAASR,IAAK;QACvB,IAAIqB,OAAOjD,OAAO,CAACoC,MAAM;QAEzB,IAAIb,CAAAA,GAAAA,iBAAU,AAAVA,EAAW0B,SAAS,CAAC+F,CAAAA,GAAAA,iBAAQ,AAARA,EAAS5G,QAAQ;YACxCpC,QAAQ+D,MAAM,CAAC3B,MAAM,GAAGa;YACxBjD,OAAO,CAACoC,MAAM,GAAGa,OAAOd,CAAAA,GAAAA,WAAI,AAAJA,EAAKc,MAAMjD;QACrC,CAAA;QAEAA,QAAQ6D,QAAQ,CAACzB,MAAM,GAAGa;QAC1BjD,OAAO,CAACoC,MAAM,GAAGR,GAAG,CAACQ,MAAM,CAACa,MAAMjD,SAASA,QAAQqC,KAAK;IAC1D;IACA,OAAOrC;AACT;AAEO,MAAM4M,uBAAuB,CAAC5M,SAAS0D,UAAY;IACxD,MAAM,EAAEjG,OAAM,EAAEsG,OAAAA,EAAQ,GAAG/D;IAC3B,MAAM2D,UAAU,CAAC;IACjB,IAAI/B,MAAM,CAAC;IAEX,IAAIV,CAAAA,GAAAA,eAAQ,AAARA,EAASzD,SACXmE,MAAM;QAAE,GAAGnE,MAAH;IAAU;IAEpB,IAAIyD,CAAAA,GAAAA,eAAQ,AAARA,EAASwC,QAAQjG,MAAM,GACzBmE,MAAM;QAAE,GAAGA,GAAG;QAAE,GAAG8B,QAAQjG,MAAX;IAAkB;IAGpC,IAAK,MAAM2E,SAASR,IAAK;QACvB,MAAMiL,YAAY9I,MAAM,CAAC3B,MAAM;QAC/B,IAAIyK,WAAW7M,QAAQ6D,QAAQ,CAACzB,MAAM,GAAGyK,UAAU7M,SAASA,QAAQqC,KAAK;QACzE,MAAMyK,SAAS3K,CAAAA,GAAAA,WAAI,AAAJA,EAAKnC,QAAQ6D,QAAQ,CAACzB,MAAM,EAAEpC;QAC7CA,OAAO,CAACoC,MAAM,GAAGR,GAAG,CAACQ,MAAM,CAAC0K,QAAQ9M,SAASA,QAAQqC,KAAK;IAC5D;IACA,OAAOsB;AACT;;;ACnGA;;4CASavF;gDAcAyK;4CAiBAxK;yCAUAC;yCAKAd;4CAGAW;8CAGAI;kDAOA2O;0CAGA1O;2CAWAjB;+CAQAqL;yCASAtL;8CAcA0L;iDAiBAF;qDAYAC;AA5Ib;AACA;AACA;;AAJA;AAMA,MAAMpL;AAGC,MAAMS,SAAS,SAAUS,GAAG,EAAE;IACnC,MAAMmB,UAAU,IAAI;IACpB,IAAI,EAAEqJ,OAAAA,EAAQ,GAAGrJ;IAEjB,MAAOqJ,OAAOxK,GAAG,KAAKA,IAAK;QACzB,IAAIwK,MAAM,CAACxK,IAAI,EAAE,OAAOwK,MAAM,CAACxK,IAAI;QACnCwK,SAASA,OAAOA,MAAM;QACtB,IAAI,CAACA,QAAQ;IACf;IAEA,OAAOA;AACT;AAGO,MAAMR,aAAa,SAAUU,IAAI,EAAE;IACxC,MAAMvJ,UAAU,IAAI;IACpB,MAAMoE,MAAM,EAAE,CAACuB,MAAM,CAAC4D;IACtB,IAAIyD,SAAS9P,CAAAA,GAAAA,oBAAI,AAAJA,CAAI,CAACkH,GAAG,CAAC,EAAE,CAAC;IAEzB,IAAI,CAACA,OAAO,CAACA,IAAI2G,MAAM,EAAE,OAAO1N,QAAQC,GAAG,CAAC8G,KAAK,MAAMpE,QAAQnB,GAAG,EAAE;IAEpE,MAAOmO,OAAOnO,GAAG,KAAKuF,GAAG,CAAC,EAAE,CAAE;QAC5BA,IAAI6I,KAAK;QACT,IAAI,CAAC7I,IAAI2G,MAAM,EAAE,KAAjB;QACAiC,SAASA,MAAM,CAAC5I,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC4I,QAAQ;IACf;IAEA,OAAOA;AACT;AAEO,MAAM3O,SAAS,SAAUoF,MAAM,EAAE;IACtC,MAAMzD,UAAU,IAAI;IACpB,IAAIuB,CAAAA,GAAAA,iBAAU,AAAVA,EAAWvB,QAAQlB,IAAI,CAACT,MAAM,GAAG2B,QAAQlB,IAAI,CAACT,MAAM;SACnD,IAAIV,QAAQ,UAAUA,QAAQ,eAAe;QAChDN,QAAQiM,IAAI,CAAC;QACbtJ,QAAQ1C,GAAG;IACb,CAAA;IACA,OAAO0C,QAAQqJ,MAAM,CAACrJ,QAAQnB,GAAG,CAAC;AACpC;AAEO,MAAMP,MAAM,SAAU8D,KAAK,EAAE;IAClC,MAAMpC,UAAU,IAAI;IACpB,OAAOA,OAAO,CAACoC,MAAM;AACvB;AAEO,MAAM5E,MAAM,WAAY,CAC/B;AAEO,MAAMW,SAAS,WAAY,CAClC;AAEO,MAAMI,WAAW,SAAU6D,KAAK,EAAEsB,OAAO,EAAE;IAChD,MAAM1D,UAAU,IAAI;IACpB,IAAI,CAACoC,SAAS,CAACpC,QAAQ6J,KAAK,EAAE;IAC9B7J,QAAQ7B,MAAM,CAAC;QAAE0L,OAAOzH;IAAM,GAAGsB;IACjC,OAAO1D,QAAQ6J,KAAK;AACtB;AAEO,MAAMqD,eAAe,CAAClN,SAASnB,KAAKP,KAAKd,MAC9C4D,OAAO+L,cAAc,CAACnN,SAASnB,KAAK;QAAEP;QAAKd;IAAI;AAE1C,MAAMgB,OAAO,WAAY;IAC9B,MAAMwB,UAAU,IAAI;IACpB,MAAMxB,OAAO,EAAE;IACf,IAAK,MAAM4D,SAASpC,QAAS;QAC3B,IAAIkJ,CAAAA,GAAAA,gBAAQ,AAARA,CAAQ,CAAC9G,MAAM,IAAI,CAAC2K,CAAAA,GAAAA,oBAAY,AAAZA,EAAaK,WAAW,CAACC,QAAQ,CAACjL,QACxD,QADF;QAEA5D,KAAKmG,IAAI,CAACvC;IACZ;IACA,OAAO5D;AACT;AAEO,MAAMjB,QAAQ,WAAY;IAC/B,MAAMyC,UAAU,IAAI;IACpB,MAAM4B,MAAM,CAAC;IACb,MAAM0L,UAAU9O,KAAK+O,IAAI,CAACvN;IAC1BsN,QAAQzH,OAAO,CAAC2H,CAAAA,IAAM5L,GAAG,CAAC4L,EAAE,GAAGxN,OAAO,CAACwN,EAAG;IAC1C,OAAO5L;AACT;AAEO,MAAMgH,YAAY,WAAY;IACnC,MAAM5I,UAAU,IAAI;IACpB,MAAM4B,MAAMrE,MAAMgQ,IAAI,CAACvN;IACvB,IAAK,MAAMyN,KAAK7L,IACd,IAAIF,CAAAA,GAAAA,mBAAY,AAAZA,EAAaE,GAAG,CAAC6L,EAAE,GAAK7L,GAAG,CAAC6L,EAAE,GAAG7E,UAAU2E,IAAI,CAAC3L,GAAG,CAAC6L,EAAE;IAE5D,OAAO7L;AACT;AAEO,MAAMtE,MAAM,SAAU,GAAGgD,IAAI,EAAE;IACpC,MAAMN,UAAU,IAAI;IACpB3C,QAAQqQ,KAAK,CAAC1N,QAAQnB,GAAG;IACzB,IAAIyB,KAAKyK,MAAM,EACbzK,KAAKuF,OAAO,CAAC2H,CAAAA,IAAKnQ,QAAQC,GAAG,CAAE,CAAA,EAAA,EAAIkQ,EAAE,GAAA,CAAI,EAAE,qBAAqBxN,OAAO,CAACwN,EAAE;SACrE;QACLnQ,QAAQC,GAAG,CAAC0C,QAAQuJ,IAAI;QACxB,MAAM/K,OAAOwB,QAAQxB,IAAI;QACzBA,KAAKqH,OAAO,CAAC2H,CAAAA,IAAKnQ,QAAQC,GAAG,CAAE,CAAA,EAAA,EAAIkQ,EAAE,GAAA,CAAI,EAAE,qBAAqBxN,OAAO,CAACwN,EAAE;IAC5E,CAAA;IACAnQ,QAAQsQ,QAAQ,CAAC3N,QAAQnB,GAAG;IAC5B,OAAOmB;AACT;AAEO,MAAMgJ,WAAW,SAAU5G,KAAK,EAAE;IACvC,OAAOA,UAAU,SACfA,UAAU,YACVA,UAAU,YACVA,UAAU,mBACVA,UAAU,YACVA,UAAU,gBACVA,UAAU,UACVA,UAAU,WACVA,UAAU,cACVA,UAAU,eACVA,UAAU,QACVA,UAAU,SACVA,UAAU,iBACVA,UAAU;AACd;AAEO,MAAM0G,cAAc,WAAY;IACrC,MAAM9I,UAAU,IAAI;IACpB,MAAM,EAAEnB,IAAG,EAAEwK,OAAAA,EAAQ,GAAGrJ;IACxB,MAAM,EAAEsL,WAAAA,EAAY,GAAGjC;IAEvB,MAAMuE,eAAetC,WAAWrK,OAAO,CAACpC;IACxC,MAAMgP,YAAYvC,UAAU,CAACsC,eAAe,EAAE;IAC9CvQ,QAAQC,GAAG,CAACuQ;IAEZ,OAAOxE,MAAM,CAACwE,UAAU;AAC1B;AAEO,MAAM9E,kBAAkB,SAAU+E,EAAE,EAAE;IAC3C,MAAM9N,UAAU8N,MAAM,IAAI;IAC1B,MAAM,EAAEjP,IAAG,EAAEwK,OAAAA,EAAQ,GAAGrJ;IACxB,MAAM,EAAEsL,WAAAA,EAAY,GAAGjC;IAEvB,IAAI,CAACiC,YAAY;IAEjB,MAAMsC,eAAetC,WAAWrK,OAAO,CAACpC;IACxC,OAAOwK,MAAM,CAACiC,UAAU,CAACsC,eAAe,EAAE,CAAC;AAC7C;;;ACvJA;;AAWA,0CACEnR,CAAAA,GAAAA,oBAAI,AAAJA;AADF,+CAEEsR,CAAAA,GAAAA,yBAAS,AAATA;AAFF,6CAGEC,CAAAA,GAAAA,uBAAO,AAAPA;AAHF,0CAIEC,CAAAA,GAAAA,oBAAI,AAAJA;AAJF,2CAKEtR,CAAAA,GAAAA,qBAAK,AAALA;AALF,0CAMEP,CAAAA,GAAAA,oBAAI,AAAJA;AANF,0CAOE8R,CAAAA,GAAAA,oBAAI,AAAJA;AAPF,2CAQE7L,CAAAA,GAAAA,qBAAK,AAALA;AARF,8CASE6G,CAAAA,GAAAA,wBAAQ,AAARA;AAlBF;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAYA,wBAAA;AAtBA;;;ACAA;;AAEA;AACA;AAHA;AAKA;;CAEA,qBACe,CAACzF,QAAQzD,SAASlB,OAAS;IACxC,MAAM,EAAE0L,OAAAA,EAAQ,GAAGxK;IACnB,IAAImO,CAAAA,GAAAA,YAAK,AAALA,EAAM,WAAWvP,CAAAA,GAAAA,cAAM,AAANA,EAAO,mBAAmB6E;IAC/C,IAAIA,QACF,IAAK,MAAMhH,QAAQgH,OAAQ;QACzB,MAAM2K,MAAMjM,CAAAA,GAAAA,YAAI,AAAJA,EAAKsB,MAAM,CAAChH,KAAK,EAAEuD;QAC/B,mCAAA;QACA,IAAIoO,OAAOtP,KAAKwN,YAAY,EAAExN,KAAKwN,YAAY,CAAC7P,MAAM2R;aACjD,IAAItP,KAAKuP,eAAe,EAAEvP,KAAKuP,eAAe,CAAC5R;QACpD+N,MAAM,CAAC/N,KAAK,GAAG2R;IACjB;IAEF/Q,QAAQsQ,QAAQ,CAAClK,QAAQ+G;AAC3B;;;ACrBA;;iDAIa7B;8CASA6F;AAXb;AAFA;AAIO,MAAM7F,cAAe3I,CAAAA,UAAY;IACtC,MAAM,EAAEnB,IAAAA,EAAK,GAAGmB;IAChB,IAAIA,QAAQsO,KAAK,KAAK,IAAI,EAAEtO,QAAQsO,KAAK,GAAGzP;SACvC,IAAI,CAACmB,QAAQsO,KAAK,IAAI,OAAOzP,QAAQ,YAAYA,IAAI0P,MAAM,CAAC,OAAO,OAAO1P,IAAI0P,MAAM,CAAC,OAAO,KAC/FvO,QAAQsO,KAAK,GAAGzP,IAAI4H,KAAK,CAAC;AAE9B;AAGO,MAAM+H,WAAW,CAAC5M,KAAK5B,UAAY;IACxC,IAAIyO,YAAY;IAChB,IAAK,MAAMC,QAAQ9M,IAAK;QACtB,MAAMQ,QAAQR,GAAG,CAAC8M,KAAK;QACvB,IAAI,OAAOtM,UAAU,aAAaA,OAAOqM,aAAc,CAAA,CAAA,EAAGC,KAAK,CAAC;aAC3D,IAAI,OAAOtM,UAAU,UAAUqM,aAAc,CAAA,CAAA,EAAGrM,MAAM,CAAC;aACvD,IAAI,OAAOA,UAAU,YACxBqM,aAAc,CAAA,CAAA,EAAGtM,CAAAA,GAAAA,WAAI,AAAJA,EAAKC,OAAOpC,SAAS,CAAC;IAE3C;IACA,OAAOyO;AACT;kBAEe,CAAChL,QAAQzD,SAASlB,MAAM6P,OAAS;IAC9C,IAAI,CAAClL,QAAQ;IACb,MAAM,EAAE5E,IAAG,EAAE+P,YAAAA,EAAa,GAAG5O,SAAQ,sBAAZ;IACzB,IAAIyD,WAAW,IAAI,EAAEA,SAASzD,QAAQsO,KAAK,GAAG;QAAEzP;IAAI;IACpD,IAAIwC,CAAAA,GAAAA,eAAQ,AAARA,EAASoC,SAASA,SAASzD,QAAQsO,KAAK,GAAG;QAAEO,SAASpL;IAAO;IACjE,IAAIvC,CAAAA,GAAAA,eAAQ,AAARA,EAASuC,SAASA,SAAS+K,SAAS/K,QAAQzD;IAChD,wBAAA;IACA,MAAMyO,YAAYhL,OAAOqL,OAAO,CAAC,QAAQ,KAAKC,IAAI;IAClDjQ,KAAKiP,SAAS,GAAGU;IACjB,yEAAA;IACA,kCAAA;IACA,OAAOA;AACT;;;ACtCA;;AAEA;;AACA;AAHA;AAKA;;;CAGA,qBACe,CAACrM,OAAOpC,SAASlB,MAAM4E,UAAY;IAChD,IAAItB,SAASpC;QACX,IAAIoC,MAAMmD,MAAM,KAAKvF,QAAQgO,OAAO,CAACzI,MAAM,IAAIvF,QAAQgO,OAAO,CAAC7P,MAAM,EAAE;YACrE,MAAM,EAAEV,OAAAA,EAAQ,GAAGuC;YACnBA,QAAQgO,OAAO,CAAC7P,MAAM,CAACiE;QACzB,OACE5E,CAAAA,GAAAA,mBAAG,AAAHA,EAAI+P,IAAI,CAACvN,SAASoC,OAAOsB;KAE7B;AACF;;;AClBA;;0DAOa8E;AALb;;AACA;AACA;AACA;;AALA;AAOO,MAAMA,uBAAuB,SAAUsF,EAAE,EAAE;IAChD,MAAM9N,UAAU8N,MAAM,IAAI;IAC1B,IAAI9N,QAAQgO,OAAO,EAAE;QACnB,IAAIhO,QAAQgO,OAAO,CAAClP,IAAI;YACtB,IAAIkB,QAAQgO,OAAO,CAACxR,GAAG,KAAK,YAAYwD,QAAQlB,IAAI,CAACkQ,SAAS,GAAG;iBAC5DhP,QAAQlB,IAAI,CAACmQ,WAAW,CAACjP,QAAQgO,OAAO,CAAClP,IAAI;SACpD;QAEA,MAAM,EAAE+E,SAAAA,EAAU,GAAG7D;QACrB,IAAI6D,YAAYA,SAASmK,OAAO,EAAE;YAChC,IAAInK,SAASmK,OAAO,CAACxR,GAAG,KAAK,YAAYqH,SAASmK,OAAO,CAAC3E,MAAM,CAACvK,IAAI,CAACkQ,SAAS,GAAG;iBAC7E,IAAInL,SAASmK,OAAO,IAAIzM,CAAAA,GAAAA,iBAAU,AAAVA,EAAWsC,SAASmK,OAAO,CAAC3P,MAAM,GAAGwF,SAASmK,OAAO,CAAC3P,MAAM;QAC3F,CAAA;QAEA,OAAO2B,QAAQgO,OAAO;IACxB,CAAA;AACF;AAEA,MAAMxQ,MAAM,SAAUiG,MAAM,EAAEC,OAAO,EAAEoK,EAAE,EAAE;IACzC,MAAM9N,UAAU8N,MAAM,IAAI;IAE1B,MAAMvK,UAAUF,CAAAA,GAAAA,kBAAW,AAAXA,EAAYI,QAAQzD,QAAQgO,OAAO;IACnD,wBAAA;IACA,IAAIzK,WAAWvD,QAAQgO,OAAO,CAACnK,QAAQ,EAAE,OAAO7D;IAChDwI,qBAAqBxI;IAErB,IAAIyD,QAAQ;QACV,MAAM,EAAEiG,YAAAA,EAAa,GAAGjG;QACxB,IAAI,CAACiG,eAAe1J,QAAQ0J,WAAW,EAAEjG,OAAOiG,WAAW,GAAG1J,QAAQ0J,WAAW;QACjFvM,CAAAA,GAAAA,sBAAM,AAANA,EAAOsG,QAAQzD,SAAS,WAAW;YACjCiL,mBAAmB,IAAI;YACvB,GAAG/B,CAAAA,GAAAA,gBAAQ,AAARA,EAAS8B,cAAc;YAC1B,GAAG5B,CAAAA,GAAAA,uBAAO,AAAPA,EAAQjM,MAAX;QACF;IACF,CAAA;IAEA,OAAO6C;AACT;kBAEexC;;;AC9Cf;;AAAA;kBAEe,CAAC;;;ACFhB;;AAEA;AACA;AAHA;AAKA;;;CAGA,qBACe,CAACiG,QAAQzD,SAASlB,OAAS;IACxC,IAAI2E,UAAUA,OAAOyL,UAAU,EAAE;QAC/B,IAAI,CAAChO,CAAAA,GAAAA,eAAQ,AAARA,EAASuC,SAAS7E,CAAAA,GAAAA,cAAM,AAANA,EAAO,mBAAmB6E;QAEjD,4BAAA;QACA,IAAK,MAAM0L,WAAW1L,OACpB,IAAI0L,YAAY,cACdrQ,KAAKqQ,OAAO,CAACA,QAAQ,GAAGhN,CAAAA,GAAAA,WAAI,AAAJA,EAAKsB,MAAM,CAAC0L,QAAQ,EAAEnP;IAGpD,CAAA;AACF;;;ACpBA;;AAEA;AAFA;AAIA;;;CAGA,qBACe,CAACoC,OAAOpC,SAASlB,OAAS;IACvC,MAAMmE,OAAOd,CAAAA,GAAAA,WAAI,AAAJA,EAAKC,OAAOpC;IACzB,IAAIiD,SAASjD,QAAQoP,MAAM,EAAE;QAC3B,wCAAA;QACA,qDAAA;QACA,IAAItQ,KAAKiD,QAAQ,KAAK,OAAOjD,KAAKuQ,WAAW,GAAGpM;aAC3CnE,KAAKkQ,SAAS,GAAG/L;QAEtBjD,QAAQoP,MAAM,GAAGnM;IACnB,CAAA;AACF;;;AClBA;;AAEA;AACA;AAHA;AAKA;;CAEA,qBACe,CAACQ,QAAQzD,SAASlB,OAAS;IACxC,IAAI2E;QACF,IAAIvC,CAAAA,GAAAA,eAAQ,AAARA,EAASuC,SAASnB,CAAAA,GAAAA,UAAG,AAAHA,EAAIxD,KAAKnC,KAAK,EAAE8G,QAAQzD;aACzCpB,CAAAA,GAAAA,cAAM,AAANA,EAAO,qBAAqB6E;KACnC;AACF;;;ACbA;;yCASa6L;AAPb;AACA;AAHA;AASO,MAAMA,MAAM,CAAClN,OAAOpC,SAASlB,OAAS;IAC3C,MAAMmE,OAAOd,CAAAA,GAAAA,WAAI,AAAJA,EAAKC,OAAOpC;IACzB,IAAIA,QAAQxD,GAAG,KAAK,UAClBsC,KAAK2I,SAAS,GAAGxE;SAEd,IAAIb,UAAUQ,aAAaR,UAAU,IAAI,EAAE;QAC9C,IAAIpC,QAAQuP,MAAM,IAAIvP,QAAQuP,MAAM,CAACnT,IAAI,KAAK6G,MAAM;QACpDjD,QAAQuP,MAAM,CAACnT,IAAI,GAAG6G;QACtB,IAAIjD,QAAQuP,MAAM,CAACzQ,IAAI,EAAEkB,QAAQuP,MAAM,CAACzQ,IAAI,CAAC2I,SAAS,GAAGxE;aACpD9F,CAAAA,GAAAA,QAAM,AAANA,EAAO;YAAEX,KAAK;YAAUJ,MAAM6G;QAAK,GAAGjD,SAAS;IACtD,CAAA;AACF;kBAEe,CAACoC,OAAOpC,SAASlB,OAAS;IACvC,MAAMmE,OAAOd,CAAAA,GAAAA,WAAI,AAAJA,EAAKC,OAAOpC;IACzB,IAAIA,QAAQxD,GAAG,KAAK,UAAU;QAC5B,IAAIwD,QAAQ5D,IAAI,KAAK6G,MAAM;QAC3BnE,KAAK2I,SAAS,GAAGxE;IACnB,OACK,IAAIb,UAAUQ,aAAaR,UAAU,IAAI;QAC5C,IAAIpC,QAAQuP,MAAM,EAAE;YAClB,IAAIvP,QAAQuP,MAAM,CAACnT,IAAI,KAAK6G,MAAM;YAClCjD,QAAQuP,MAAM,CAACnT,IAAI,GAAG6G;YACtB,IAAIjD,QAAQuP,MAAM,CAACzQ,IAAI,EAAEkB,QAAQuP,MAAM,CAACzQ,IAAI,CAAC2I,SAAS,GAAGxE;QAC3D,OAAO9F,CAAAA,GAAAA,QAAM,AAANA,EAAO;YAAEX,KAAK;YAAUJ,MAAM6G;QAAK,GAAGjD,SAAS;KACxD;AACF;;;ACnCA;;AAEA;AACA;AAHA;kBAKe,CAACyD,QAAQzD,SAASlB,OAAS;IACxC,MAAMuD,QAAQF,CAAAA,GAAAA,WAAI,AAAJA,EAAKsB,QAAQzD;IAE3B,IAAIkB,CAAAA,GAAAA,eAAQ,AAARA,EAASmB,QACX,IAAK,MAAMD,SAASC,MAAO;QACzB,IAAImN,CAAAA,GAAAA,0BAAmB,AAAnBA,EAAoBnC,QAAQ,CAACjL,QAAQ,QAAzC;QACApC,QAAQqC,KAAK,CAACD,MAAM,GAAGD,CAAAA,GAAAA,WAAI,AAAJA,EAAKE,KAAK,CAACD,MAAM,EAAEpC;IAC5C;IAGF,OAAOA;AACT;;;AChBA;;yDAMawP;gDAMAE;gDAWAC;yDAUAC;wDAQAG;iDAQAE;iDA4CAxH;AA3Fb;AACA;AACA;AAJA;AAMO,MAAM+G,sBAAsB;IACjC;IAAU;IAAS;IAAS;IAAU;IAAU;IAAa;IAAa;IAAS;IACnF;IAAgB;IAAmB;IAAkB;IACrD;IAAsB;CACvB;AAEM,MAAME,aAAa,WAAY;IACpC,MAAMrN,QAAQ,IAAI;IAClB,MAAMqN,aAAa,CAAC;IACpB,IAAK,MAAMtN,SAASC,MAClB,IAAI,CAACmN,oBAAoBnC,QAAQ,CAACjL,QAChCsN,UAAU,CAACtN,MAAM,GAAGC,KAAK,CAACD,MAAM;IAGpC,OAAOsN;AACT;AAEO,MAAMC,aAAa,WAAY;IACpC,MAAMtN,QAAQ,IAAI;IAClB,IAAK,MAAMD,SAASC,MAClB,IAAI,CAACmN,oBAAoBnC,QAAQ,CAACjL,QAChC,OAAOC,KAAK,CAACD,MAAM;IAGvB,OAAOC;AACT;AAEO,MAAMuN,sBAAsB,SAAUhO,GAAG,EAAE8B,UAAU,CAAC,CAAC,EAAE;IAC9D,MAAMrB,QAAQ,IAAI;IAClB,IAAI,CAACA,OAAO;IACZ,MAAMwN,YAAY,AAACxN,CAAAA,MAAMwI,SAAS,CAACW,MAAM,IAAInJ,MAAMwI,SAAS,AAATA,EAAWxI,KAAK;IACnEwN,UAAU1R,MAAM,CAAC;QAAE2R,gBAAgBlO;IAAI,GAAG8B;IAC1C,OAAOrB;AACT;AAEO,MAAM0N,qBAAqB,SAAUnO,GAAG,EAAE8B,UAAU,CAAC,CAAC,EAAE;IAC7D,MAAMrB,QAAQ,IAAI;IAClB,IAAI,CAACA,OAAO;IACZ,MAAMwN,YAAY,AAACxN,CAAAA,MAAMwI,SAAS,CAACW,MAAM,IAAInJ,MAAMwI,SAAS,AAATA,EAAWxI,KAAK;IACnEwN,UAAU1R,MAAM,CAAC;QAAE6R,eAAepO;IAAI,GAAG8B;IACzC,OAAOrB;AACT;AAEO,MAAM4N,cAAc,SAAUrO,GAAG,EAAE8B,UAAU,CAAC,CAAC,EAAE;IACtD,MAAMrB,QAAQ,IAAI;IAClB,MAAMrC,UAAUqC,MAAMwI,SAAS;IAC/BxI,MAAMgH,MAAM,GAAGrJ,QAAQqJ,MAAM,CAAChH,KAAK;IAEnC,IAAI,CAACA,MAAMwI,SAAS,EAAEpC,YAAYzI,SAASA,QAAQqJ,MAAM;IAEzD,wBAAA;IACA,IAAIrJ,QAAQ0H,EAAE,IAAInG,CAAAA,GAAAA,kBAAU,AAAVA,EAAWvB,QAAQ0H,EAAE,CAACQ,gBAAgB,GAAG;QACzD,MAAMgI,cAAcxI,CAAAA,GAAAA,SAAE,AAAFA,EAAGQ,gBAAgB,CAAClI,QAAQ0H,EAAE,CAACQ,gBAAgB,EAAElI,SAASqC,OAAOT;QACrF,IAAIsO,gBAAgB,KAAK,EAAE;IAC7B,CAAA;IAEA,MAAMC,WAAWnQ,QAAQoQ,OAAO;IAChC,IAAID,UACF,gCAAA;IACA;QAAA,IAAI9N,MAAMgH,MAAM,IAAIhH,MAAMgH,MAAM,CAAC8G,SAAS,EAAE;YAC1C,MAAME,mBAAmBhO,MAAMgH,MAAM,CAAC8G,SAAS;YAC/C,IAAIE,oBAAoB,CAAC3M,QAAQ4M,oBAAoB,EAAE;gBACrD,IAAItQ,QAAQuQ,WAAW,KAAK,UAC1B,OAAOlO,MAAMgH,MAAM,CAAClL,MAAM,CAAC;oBAAE,CAACgS,SAAQ,EAAGvO,IAAI4O,KAAhB;gBAAsB,GAAG9M;gBAExD,OAAOrB,MAAMgH,MAAM,CAAClL,MAAM,CAAC;oBAAE,CAACgS,SAAQ,EAAGvO;gBAAI,GAAG8B;YAClD,CAAA;QACF,CAAA;IAAA,OAEAM,CAAAA,GAAAA,oBAAa,AAAbA,EAAc3B,OAAOT,KAAK4N;IAG5B,qBAAA;IACA,IAAI,CAAC9L,QAAQ+M,aAAa,EAAIzQ,QAAQ7B,MAAM,CAAC,CAAC,GAAGuF;SAAgB,IAAIA,QAAQ+M,aAAa,KAAK,aAAezQ,QAAQ7B,MAAM,CAAC,CAAC,GAAG;QAAE,GAAGuF,OAAO;QAAE+M,eAAe,IAAfA;IAAoB;IAEnK,IAAIpO,MAAMqO,SAAS,EACjB,IAAK,MAAM5C,MAAMzL,MAAMqO,SAAS,CAAE;QAChC,MAAMC,cAActO,MAAMqO,SAAS,CAAC5C,GAAG;QACvC6C,YAAYC,KAAK,GAAGzS,MAAM,CAACkE,MAAM9E,KAAK,IAAImG;IAC5C;IAGF,IAAI,CAACA,QAAQmN,qBAAqB,IAAI7Q,QAAQ0H,EAAE,IAAInG,CAAAA,GAAAA,kBAAU,AAAVA,EAAWvB,QAAQ0H,EAAE,CAACS,YAAY,GACpFT,CAAAA,GAAAA,SAAE,AAAFA,EAAGS,YAAY,CAACnI,QAAQ0H,EAAE,CAACS,YAAY,EAAEnI,SAASqC,OAAOT;AAE7D;AAEO,MAAM6G,cAAc,SAAUzI,OAAO,EAAEqJ,MAAM,EAAE;IACpD,IAAI,EAAEhH,MAAK,EAAEmJ,OAAAA,EAAQ,GAAGxL;IAExB,IAAIuB,CAAAA,GAAAA,kBAAU,AAAVA,EAAWc,QAAQA,QAAQF,CAAAA,GAAAA,WAAI,AAAJA,EAAKE,OAAOrC;IAE3C,IAAI2H,CAAAA,GAAAA,UAAE,AAAFA,EAAGtF,OAAO,UAAU,WAAW;QACjCrC,QAAQoQ,OAAO,GAAG/N;QAClBA,QAAQ,CAAC;IACX,CAAA;IACA,IAAIA,UAAU,IAAI,EAAE;QAClBrC,QAAQoQ,OAAO,GAAGpQ,QAAQnB,GAAG;QAC7BwD,QAAQ,CAAC;IACX,CAAA;IAEA,IAAI,CAACA,OAAO;QACV,IAAIgH,UAAUA,OAAOhH,KAAK,EAAE,OAAOgH,OAAOhH,KAAK;QAC/C,OAAO,CAAC;IACV,OACErC,QAAQ8Q,cAAc,GAAG,IAAI;IAG/B,gBAAA;IACA,IAAI9Q,QAAQ0H,EAAE,IAAInG,CAAAA,GAAAA,kBAAU,AAAVA,EAAWvB,QAAQ0H,EAAE,CAACM,SAAS,GAC/CN,CAAAA,GAAAA,SAAE,AAAFA,EAAGM,SAAS,CAAChI,QAAQ0H,EAAE,CAACM,SAAS,EAAEhI,SAASA,QAAQqC,KAAK;IAG3D,IAAI8N,WAAWnQ,QAAQoQ,OAAO;IAC9B,IAAID,UAAU;QACZ,IAAIY,cAAc1H,OAAOhH,KAAK;QAC9B,IAAI2O;QACJ,MAAMC,UAAUd,SAASjG,KAAK,CAAC;QAC/B,IAAK,IAAIhO,IAAI,GAAGA,IAAI+U,QAAQlG,MAAM,EAAE7O,IAAK;YACvCiU,WAAWc,OAAO,CAAC/U,EAAE;YACrB6U,cAAcA,YAAY1H,MAAM;QAClC;QACA,IAAI8G,SAAS9C,QAAQ,CAAC,MAAM;YAC1B,CAAC2D,gBAAgBb,SAAS,GAAGA,SAASjG,KAAK,CAAC;YAC5C6G,cAAcA,WAAW,CAACC,eAAe;QAC3C,CAAA;QACA,IAAID,eAAeA,WAAW,CAACZ,SAAS,EAAE;YACxC,MAAME,mBAAmBU,WAAW,CAACZ,SAAS;YAC9C,IAAIxI,CAAAA,GAAAA,UAAE,AAAFA,EAAG0I,kBAAkB,UAAU,UACjChO,QAAQa,CAAAA,GAAAA,gBAAS,AAATA,EAAUmN;iBACb,IAAI1I,CAAAA,GAAAA,UAAE,AAAFA,EAAG0I,kBAAkB,UAAU,WAAW;gBACnDhO,QAAQ;oBAAEmO,OAAOH;gBAAiB;gBAClCrQ,QAAQuQ,WAAW,GAAG;YACxB,OAAO,IAAId,CAAAA,GAAAA,mBAAW,AAAXA,EAAYY,mBAAmB;gBACxChT,QAAQiM,IAAI,CAAC6G,UAAU,qBAAqB,mBAAmB,CAAC;gBAChE9N,QAAQ,CAAC;YACX,CAAA;QACF,CAAA;IACF,CAAA;IAEA,wBAAA;IACA,MAAM,EAAE6O,MAAAA,EAAO,GAAG7O;IAClB,IAAI6O,OAAO;QACT7O,QAAQa,CAAAA,GAAAA,gBAAS,AAATA,EAAUgO,OAAO1B;QACzB,IAAItO,CAAAA,GAAAA,gBAAQ,AAARA,EAASgQ,MAAMR,SAAS,GAC1BQ,MAAMR,SAAS,CAAC1Q,QAAQnB,GAAG,CAAC,GAAGwD;aAC1B6O,MAAMR,SAAS,GAAG;YAAE,CAAC1Q,QAAQnB,GAAG,CAAA,EAAGwD;QAAM;IAClD,OACEA,QAAQa,CAAAA,GAAAA,gBAAS,AAATA,EAAUb,OAAOmN;IAG3BxP,QAAQqC,KAAK,GAAGA;IAChBA,MAAMuO,KAAK,GAAGjB;IACdtN,MAAM9E,KAAK,GAAGmS;IACdrN,MAAMlE,MAAM,GAAG8R;IACf5N,MAAMlF,MAAM,GAAGsL;IACfpG,MAAMgH,MAAM,GAAGrJ,QAAQqJ,MAAM,CAAChH,KAAK;IACnCA,MAAMwI,SAAS,GAAG7K;IAClBqC,MAAMmJ,MAAM,GAAGA,SAASA,OAAOnJ,KAAK,GAAGA,KAAK;IAE5C,eAAA;IACAA,MAAMuN,mBAAmB,GAAGA;IAC5BvN,MAAM0N,kBAAkB,GAAGA;IAC3B1N,MAAM8O,YAAY,GAAG,AAAC9O,CAAAA,MAAMmJ,MAAM,IAAInJ,KAAAA,EAAO+O,UAAU;IACvD/O,MAAMgP,eAAe,GAAG,AAAChP,CAAAA,MAAMmJ,MAAM,IAAInJ,KAAAA,EAAOyN,cAAc;IAC9DzN,MAAMiP,cAAc,GAAG,AAACjP,CAAAA,MAAMmJ,MAAM,IAAInJ,KAAAA,EAAO2N,aAAa;IAC5D3N,MAAMkP,gBAAgB,GAAG,AAAClP,CAAAA,MAAMmJ,MAAM,IAAInJ,KAAAA,EAAOmP,eAAe;IAEhE,wBAAA;IACA,IAAIxR,QAAQ0H,EAAE,IAAInG,CAAAA,GAAAA,kBAAU,AAAVA,EAAWvB,QAAQ0H,EAAE,CAACO,YAAY,GAClDP,CAAAA,GAAAA,SAAE,AAAFA,EAAGO,YAAY,CAACjI,QAAQ0H,EAAE,CAACO,YAAY,EAAEjI,SAASqC;IAGpD,OAAOA;AACT;kBAEeoG;;;ACtLf;;kDAgFasE;AA9Eb;AAFA;kBAae;UACbtQ,CAAAA,GAAAA,MAAI,AAAJA;WACAE,CAAAA,GAAAA,OAAK,AAALA;UACAP,CAAAA,GAAAA,MAAI,AAAJA;UACA8R,CAAAA,GAAAA,MAAI,AAAJA;aACAF,CAAAA,GAAAA,SAAO,AAAPA;UACAC,CAAAA,GAAAA,MAAI,AAAJA;IACAK,OAAOP,CAAAA,GAAAA,WAAS,AAATA;WACP1L,CAAAA,GAAAA,OAAK,AAALA;IAEAxG,QAAQ,CAAC;IACT6N,aAAa,CAAC;IACd+H,sBAAsB,CAAC;IACvB5H,OAAO,CAAC;IACRN,MAAM,CAAC;IACPmC,IAAI,CAAC;IACLjO,QAAQ,CAAC;IACTyN,WAAW,CAAC;IACZ3F,QAAQ,CAAC;IACTmM,gBAAgB,CAAC;IACjB7N,UAAU,CAAC;IACX8N,WAAW,CAAC;IACZ5N,QAAQ,CAAC;IACTsH,WAAW,CAAC;IACZuG,SAAS,CAAC;IACVpG,QAAQ,CAAC;IACTV,SAAS,CAAC;IACV+G,UAAU,CAAC;IACXjG,cAAc,CAAC;IACfN,YAAY,CAAC;IACbb,WAAW,CAAC;IACZ8E,QAAQ,CAAC;IACT1E,WAAW,CAAC;IACZuE,QAAQ,CAAC;IACTjE,SAAS,CAAC;IACVyD,aAAa,CAAC;IACdxD,cAAc,CAAC;IACfZ,QAAQ,CAAC;IACT4F,SAAS,CAAC;IACVG,aAAa,CAAC;IACduB,mBAAmB,CAAC;IACpBhB,gBAAgB,CAAC;IACjBhI,aAAa,CAAC;IACdC,iBAAiB,CAAC;IAClBlK,KAAK,CAAC;IACNrC,KAAK,CAAC;IACNuV,OAAO,CAAC;IACR1I,QAAQ,CAAC;IACTvK,MAAM,CAAC;IACPtB,KAAK,CAAC;IACNW,QAAQ,CAAC;IACTI,UAAU,CAAC;IACXF,QAAQ,CAAC;IACToN,eAAe,CAAC;IAChBrN,QAAQ,CAAC;IACTyK,YAAY,CAAC;IACbrK,MAAM,CAAC;IACPlB,KAAK,CAAC;IACNC,OAAO,CAAC;IACRqL,WAAW,CAAC;IACZlB,IAAI,CAAC;IACLsK,WAAW,CAAC;IACZ1H,SAAS,CAAC;AACZ;AAIO,MAAMyC,eAAe;IAC1BK,aAAa;QACX;QAAO;QAAQ;QAAS;QAAQ;QAAS;QAAS;QAClD;QAAQ;QAAW;KAEpB;IACD6E,WAAW;QAAC;KAAY;IACxBC,WAAW,EAAXA;AACF;;;ACxFA;;gDAMa7J;gDASAC;AAfb;AAMO,MAAMD,aAAa,CAACvJ,MAAMqT,aAAe;IAC9CA,WAAWC,WAAW,CAACtT;IACvB,OAAOA;AACT;AAMO,MAAMwJ,aAAa,CAACtI,SAASqJ,QAAQxK,MAAQ;IAClDwK,MAAM,CAACxK,OAAOmB,QAAQnB,GAAG,CAAC,GAAGmB;IAC7B,IAAIA,QAAQxD,GAAG,KAAK,UAClB6L,WAAWrI,QAAQlB,IAAI,EAAEuK,OAAOvK,IAAI;IAEtC,OAAOkB;AACT;;;ACrBA;;iDAUauI;AARb;AAFA;AAIA,MAAM5K;AAMC,MAAM4K,cAAc,CAACvI,SAASqJ,QAAQ3F,UAAU,CAAC,CAAC,GAAK;IAC5D,IAAInC,CAAAA,GAAAA,iBAAU,AAAVA,EAAWvB,UAAUA,UAAUmC,CAAAA,GAAAA,WAAI,AAAJA,EAAKnC,SAASqJ;IAEjD,IAAI,EAAExN,OAAM,EAAEgO,MAAAA,EAAO,GAAG7J;IACxB,IAAIqB,CAAAA,GAAAA,eAAQ,AAARA,EAASxF,SAASA,SAAS6H,QAAQ0G,UAAU,CAACvO,OAAO;IACzD,MAAM0K,cAAcG,CAAAA,GAAAA,qBAAc,AAAdA,EAAe7K;IAEnC,IAAI8B,QAAQ,UAAUA,QAAQ,eAAe,OAAOqC,QAAQnE,MAAM;IAElE,IAAI2K,mBAAmB,EAAE;IACzB,IAAI6C,QAAQ;QACV,oCAAA;QACArJ,QAAQqJ,MAAM,GAAGA;QACjB,IAAI,CAAC3F,QAAQuH,iBAAiB,EAAE;YAC9B,IAAIpB,SAASA,MAAMoB,iBAAiB,EAAE;YAEtCzE,mBAAmBE,CAAAA,GAAAA,qBAAc,AAAdA,EAAe2C,OAAOK,WAAW;YAEpD,IAAIL,OAAOoI,oBAAoB,EAAE;gBAC/B,MAAMY,4BAA4B3L,CAAAA,GAAAA,qBAAc,AAAdA,EAAe2C,OAAOoI,oBAAoB;gBAC5EjL,mBAAmBA,iBAAiBb,MAAM,CAAC0M;gBAC3CrS,QAAQyR,oBAAoB,GAAGpI,OAAOoI,oBAAoB;YAC5D,CAAA;QACF,CAAA;IACF,CAAA;IAEA,MAAMa,eAAe/L,YAAYwE,MAAM;IACvC,MAAMwH,oBAAoB/L,iBAAiBuE,MAAM;IAEjD,IAAItG,QAAQ,EAAE;IACd,IAAI6N,gBAAgBC,mBAClB9N,QAAQ6B,CAAAA,GAAAA,kBAAW,AAAXA,EAAYC,aAAaC;SAC5B,IAAI8L,cACT7N,QAAQ8B;SACH,IAAIgM,mBACT9N,QAAQ+B;SACH,IAAI,CAAC9C,QAAQ7H,MAAM,EAAE,OAAOmE;IAEnC,IAAI0D,QAAQ7H,MAAM,EAAE;QAClB,MAAM2W,uBAAuB9L,CAAAA,GAAAA,qBAAc,AAAdA,EAAehD,QAAQ7H,MAAM;QAC1D4I,QAAQ,EAAE,CAACkB,MAAM,CAAClB,OAAO+N;IAC3B,CAAA;IAEAxS,QAAQ6R,QAAQ,GAAGpN;IACnB,IAAIgO,eAAepM,CAAAA,GAAAA,+BAAwB,AAAxBA,EAAyB5B;IAE5C,MAAMuN,YAAY7P,CAAAA,GAAAA,WAAI,AAAJA,EAAKnC,QAAQgS,SAAS,IAAIS,aAAaT,SAAS,EAAEhS;IACpE,IAAIgS,aAAatO,QAAQ0G,UAAU,IAAI1G,QAAQ0G,UAAU,CAAC4H,UAAU,EAAE;QACpE,MAAMU,kBAAkBrM,CAAAA,GAAAA,+BAAwB,AAAxBA,EAAyBK,CAAAA,GAAAA,qBAAc,AAAdA,EAAehD,QAAQ0G,UAAU,CAAC4H,UAAU;QAC7FS,eAAerM,CAAAA,GAAAA,sBAAe,AAAfA,EAAgBsM,iBAAiBD;IAClD,CAAA;IAEA,OAAOrM,CAAAA,GAAAA,sBAAe,AAAfA,EAAgBpG,SAASyS;AAClC;;;AC/DA;;+CAyDac;iDAuBAE;AA9Eb;AAFA;AAIA,MAAMd,YAAY,CAAC3S,SAASqJ,SAAW;IACrC,MAAM,EAAEQ,MAAAA,EAAO,GAAG7J;IAClB,MAAM4S,aAAa,EAAE;IAErB,MAAMC,UAAUxR,CAAAA,GAAAA,eAAQ,AAARA,EAASwI,UAAUA,MAAM5I,OAAO,CAAC,WAAW;IAC5D,MAAM6R,cAAczJ,OAAOQ,KAAK,IAAIR,OAAOQ,KAAK,CAAC7J,QAAQnB,GAAG,CAAC;IAC7D,MAAMkU,mBAAmB1J,OAAOQ,KAAK,IAAIR,OAAOQ,KAAK,CAACC,UAAU;IAEhE,MAAMkJ,0BAA0BC,CAAAA,YAAa;QAC3C,IAAI5R,CAAAA,GAAAA,eAAQ,AAARA,EAAS4R,YAAY,OAAO;YAAEC,iBAAiBD;QAAU;QAC7D,OAAOA;IACT;IAEA,IAAIH,eAAejJ,UAAU,SAAS+I,WAAWjO,IAAI,CAACmO;IACtD,IAAIC,kBAAkBH,WAAWjO,IAAI,CAACoO;IAEtC,IAAI7R,CAAAA,GAAAA,eAAQ,AAARA,EAAS2I,QACX+I,WAAWjO,IAAI,CAACkF;IAGlB,IAAIA,UAAU,WACZ;QAAA,IAAIR,OAAOQ,KAAK,EAAE+I,WAAWjO,IAAI,CAAC0E,OAAOQ,KAAK;IAAC,OAC1C,IAAIgJ,SAAS;QAClB,MAAMM,SAAStJ,MAAMK,KAAK,CAAC;QAC3B,IAAIkJ;QACJ,gCAAA;QACA,IAAID,MAAM,CAAC,EAAE,IAAI9J,OAAOQ,KAAK,CAACsJ,MAAM,CAAC,EAAE,CAAC,EAAE;YACxC,MAAME,6BAA6BhK,OAAOQ,KAAK,CAACsJ,MAAM,CAAC,EAAE,CAAC;YAC1DP,WAAWjO,IAAI,CACbqO,wBAAwBK;QAE5B,OAAO,IAAIP,aACTF,WAAWjO,IAAI,CACbqO,wBAAwBF;QAG5BF,WAAWjO,IAAI,CAACyO;IAClB,OAAO,IAAIvJ,OAAO+I,WAAWjO,IAAI,CAACkF;IAElC,IAAIrI,CAAAA,GAAAA,cAAO,AAAPA,EAAQxB,QAAQ6R,QAAQ,GAC1B7R,QAAQ6R,QAAQ,CAACvP,GAAG,CAACzG,CAAAA,SAAU;QAC7B,IAAIA,OAAOgO,KAAK,EAAE+I,WAAWjO,IAAI,CAAC9I,OAAOgO,KAAK;QAC9C,OAAOhO,OAAOgO,KAAK;IACrB;IAGF,OAAO+I;AACT;AAEA,MAAMU,eAAe,CAACtT,SAASqJ,SAAW;IACxCrJ,QAAQ6J,KAAK,GAAIR,UAAUA,OAAOQ,KAAK,IAAK;QAAE1L;QAAQ0M,WAAW7K;IAAQ;AAC3E;AAEO,MAAMuT,YAAY,CAAC1J,OAAO7J,UAAY;IAC3CA,QAAQ6J,KAAK,GAAG,CAAC;IACjB,MAAM2J,cAAc;QAAErV;QAAQ0M,WAAW7K;IAAQ;IACjD6J,MAAMhE,OAAO,CAAC2H,CAAAA,IAAK;QACjB,IAAIA,MAAM,YAAYA,MAAM,aAAa;QACzCxN,QAAQ6J,KAAK,GAAGhH,CAAAA,GAAAA,gBAAS,AAATA,EAAU2Q,aAAatQ,CAAAA,GAAAA,gBAAS,AAATA,EAAUf,CAAAA,GAAAA,WAAI,AAAJA,EAAKqL,GAAGxN;IAC3D;IACAA,QAAQ6J,KAAK,GAAG2J;IAChB,OAAOxT,QAAQ6J,KAAK;AACtB;AAEA,MAAMnB,cAAc,SAAU1I,OAAO,EAAEqJ,MAAM,EAAEyD,MAAM,EAAE;IACrD,MAAM8F,aAAa9F,UAAU6F,UAAU3S,SAASqJ;IAEhD,IAAIuJ,WAAW7H,MAAM,EAAE;QACrB/K,QAAQ8K,OAAO,GAAG8H;QAClBW,UAAUX,YAAY5S;QACtBA,QAAQ6J,KAAK,CAAC1L,MAAM,GAAGA;IACzB,OAAOmV,aAAatT,SAASqJ;IAE7B,OAAOrJ;AACT;AAEO,MAAMyT,cAAc,CAACC,UAAU1T,SAASqJ,SAAW;IACxD,IAAIuJ,aAAa5S,QAAQ8K,OAAO;IAEhC,IAAI4I,UAAUd,aAAa5S,QAAQ8K,OAAO,GAAG,EAAE,CAACnF,MAAM,CAAC+N,UAAUd;IAEjE,IAAIA,YAAYW,UAAUX,YAAY5S;SACjCsT,aAAatT,SAASqJ;IAE3B,2BAAA;IACA,OAAOrJ;AACT;AAEA,SAAS7B,OAAQ0L,KAAK,EAAEnG,OAAO,EAAE;IAC/B,MAAM1D,UAAU,IAAI,CAAC6K,SAAS;IAC9B,4BAAA;IACA7K,QAAQ7B,MAAM,CAAC;QAAE0L;IAAM,GAAGnG;AAC5B;kBAEegF;;;AClGf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAZA;AAcA,MAAMkL,WAAW;IACfC,YAAY7O,CAAAA,GAAAA,uBAAZ6O,AAAAA;AACF;AAEA,MAAMC,yBAAyB;IAC7BC,cAAc,KAAK;IACnBjQ,WAAW,IAAI;IACfkQ,kBAAkB,KAAK;IACvBC,iBAAiB,KAAK;IACtBC,eAAe,KAAfA;AACF;AAEA,MAAM/V,SAAS,SAAUsF,SAAS,CAAC,CAAC,EAAEC,UAAUoQ,sBAAsB,EAAE;IACtE,MAAM9T,UAAU,IAAI;IACpB,MAAM,EAAEvC,OAAM,EAAE4L,OAAM,EAAEvK,KAAAA,EAAM,GAAGkB;IAEjC,MAAM,EAAEiU,gBAAe,EAAEC,cAAAA,EAAe,GAAGxQ;IAC3C,IAAI,CAACwQ,eACHlU,QAAQ8R,iBAAiB,GAAG8B,SAASC,UAAU;IAEjD,MAAMM,mBAAmBnU,QAAQ8R,iBAAiB,IAAKoC,iBAAiBA,cAAcpC,iBAAkB;IACpGqC;IAMJ,IAAI9S,CAAAA,GAAAA,eAAQ,AAARA,EAASoC,WAAWnC,CAAAA,GAAAA,eAAQ,AAARA,EAASmC,SAC/BA,SAAS;QAAErH,MAAMqH;IAAO;IAG1B,IAAIlC,CAAAA,GAAAA,iBAAU,AAAVA,EAAWvB,QAAQ0L,EAAE,GAAG;QAC1B,yBAAA;QACA,MAAM0I,WAAWpU,QAAQ0L,EAAE,CAAC1L,SAASA,QAAQqC,KAAK;QAElD,IAAI+R,UAAU,OAAOpU,QAAQyK,SAAS;QACtC,IAAIzK,QAAQyK,SAAS,IAAI2J,UAAU;YACjCnW,CAAAA,GAAAA,gBAAU,AAAVA,EAAW+B;YACXqI,CAAAA,GAAAA,kBAAU,AAAVA,EAAWrI,QAAQlB,IAAI,EAAEkB,QAAQ4L,YAAY;QAC/C,OAAO,IAAI5L,QAAQlB,IAAI,IAAI,CAACsV,UAAU;YACpCpU,QAAQlB,IAAI,CAACT,MAAM;YACnB2B,QAAQyK,SAAS,GAAG,IAAI;QAC1B,CAAA;IACF,CAAA;IAEA,IAAIzK,QAAQoQ,OAAO,EAAE;QACnB,MAAMC,mBAAmBhH,OAAOhH,KAAK,CAACrC,QAAQoQ,OAAO,CAAC;QACtD,IAAIC,kBAAkB;YACpB,MAAMgE,WAAWrU,QAAQuQ,WAAW,KAAK,WACrC9H,CAAAA,GAAAA,qBAAW,AAAXA,EAAYzI,SAASqJ,UACrBZ,CAAAA,GAAAA,qBAAW,AAAXA,EAAYzI,SAASqJ,OAAO;YAChC,MAAM1F,UAAUgQ,CAAAA,GAAAA,YAAI,AAAJA,EAAKU,SAAS9W,KAAK,IAAIyC,QAAQqC,KAAK,CAAC9E,KAAK;YAE1D,wBAAA;YACA,IAAIyC,QAAQ0H,EAAE,IAAInG,CAAAA,GAAAA,iBAAU,AAAVA,EAAWvB,QAAQ0H,EAAE,CAACQ,gBAAgB,GAAG;gBACzD,MAAMgI,cAAcxI,CAAAA,GAAAA,SAAE,AAAFA,EAAGQ,gBAAgB,CAAClI,QAAQ0H,EAAE,CAACQ,gBAAgB,EAAElI,SAASA,QAAQqC,KAAK,EAAEsB;gBAC7F,IAAIuM,gBAAgB,KAAK,EAAE;YAC7B,CAAA;YAEAlQ,QAAQqC,KAAK,GAAGgS;YAEhB,IAAI,CAAC3Q,QAAQmN,qBAAqB,IAAI7Q,QAAQ0H,EAAE,IAAInG,CAAAA,GAAAA,iBAAU,AAAVA,EAAWvB,QAAQ0H,EAAE,CAACS,YAAY,GACpFT,CAAAA,GAAAA,SAAE,AAAFA,EAAGS,YAAY,CAACnI,QAAQ0H,EAAE,CAACS,YAAY,EAAEnI,SAASA,QAAQqC,KAAK,EAAEsB;QAErE,CAAA;IACF,OAAO,IAAI,CAAC3D,QAAQ8Q,cAAc,EAAE9Q,QAAQqC,KAAK,GAAIgH,UAAUA,OAAOhH,KAAK,IAAK,CAAC;IAEjF,IAAI,CAACrC,QAAQyK,SAAS,IAAI,CAAC/G,QAAQ4Q,kBAAkB,EAAEb,CAAAA,GAAAA,kBAAW,AAAXA,EAAYhQ,OAAOoG,KAAK,EAAE7J,SAASqJ;IAE1F,IAAIrJ,QAAQ0H,EAAE,IAAInG,CAAAA,GAAAA,iBAAU,AAAVA,EAAWvB,QAAQ0H,EAAE,CAACI,UAAU,KAAK,CAACpE,QAAQ6Q,gBAAgB,EAAE;QAChF,MAAMC,kBAAkB9M,CAAAA,GAAAA,SAAE,AAAFA,EAAGI,UAAU,CAAC9H,QAAQ0H,EAAE,CAACI,UAAU,EAAE9H,SAASA,QAAQqC,KAAK;QACnF,IAAImS,oBAAoB,KAAK,EAAE;IACjC,CAAA;IAEA,MAAMC,mBAAmBjR,CAAAA,GAAAA,gBAAS,AAATA,EAAUxD,SAASyD,QAAQqQ;IACpD,MAAMY,cAAchI,CAAAA,GAAAA,2BAAkB,AAAlBA,EAAmB1M,SAAS8T;IAChD,MAAMa,iBAAiB/H,CAAAA,GAAAA,6BAAoB,AAApBA,EAAqB5M,SAAS0D;IAErD,IAAIA,QAAQqQ,YAAY,IAAI/T,QAAQ4U,cAAc,EAAE;QAClD,MAAMb,eAAetR,CAAAA,GAAAA,YAAK,AAALA,EAAMkS,gBAAgBlS,CAAAA,GAAAA,YAAK,AAALA,EAAMiS,aAAaD;QAC9DzU,QAAQ4U,cAAc,CAACjQ,IAAI,CAACoP;IAC9B,CAAA;IAEA,IAAI/T,QAAQyK,SAAS,EAAE,OAAO,KAAK;IACnC,IAAI,CAAC3L,MACH,sCAAA;IACA;IAGF,IAAK,MAAMsD,SAASpC,QAAS;QAC3B,MAAMiD,OAAOjD,OAAO,CAACoC,MAAM;QAE3B,IACEsB,QAAQmR,mBAAmB,KAAK,IAAI,IACpCnR,QAAQmR,mBAAmB,KAAKzS,SAC/BsB,QAAQoR,oBAAoB,IAAI1S,UAAU,aAC3C,AAACsB,CAAAA,QAAQqR,kBAAkB,IAAI3S,KAAAA,MAAW,WAC1C4G,CAAAA,GAAAA,iBAAQ,AAARA,EAAS5G,UAAUlB,CAAAA,GAAAA,eAAQ,AAARA,EAASgI,CAAAA,GAAAA,gBAAQ,AAARA,CAAQ,CAAC9G,MAAM,KAAKa,SAASL,WACzD,QANF;QAOA,IAAIc,QAAQqR,kBAAkB,KAAK,QAAQrR,QAAQqR,kBAAkB,GAAG,KAAK;QAE7E,MAAMrK,aAAajN,UAAUA,MAAM,CAAC2E,MAAM;QAC1C,MAAMuI,WAAWzB,CAAAA,GAAAA,gBAAQ,AAARA,CAAQ,CAAC9G,MAAM;QAEhC,MAAMwI,mBAAmBlH,QAAQjG,MAAM,IAAIiG,QAAQjG,MAAM,CAAC2E,MAAM;QAEhE,IAAIuI,YAAY,CAACC,kBACf;YAAA,IAAIrJ,CAAAA,GAAAA,iBAAU,AAAVA,EAAWoJ,WACbA,SAAS1H,MAAMjD,SAASlB;QAC1B,OACK,IAAImE,QAAQ/B,CAAAA,GAAAA,eAAQ,AAARA,EAAS+B,SAAS,CAACyH,cAAc,CAACE,kBACnD;YAAA,IAAI,CAAClH,QAAQsQ,gBAAgB,EAAE;gBAC7B,MAAMgB,kBAAkB,IAAM7W,OAAOoP,IAAI,CAACtK,MAAMQ,MAAM,CAACR,KAAK,EAAE;wBAC5D,GAAGS,OAAO;wBACVuQ,iBAAiBE;wBACjBD,eAAelU;oBACjB;gBACA,IAAIA,QAAQ6J,KAAK,CAACoL,QAAQ,IAAIvR,QAAQuR,QAAQ,EAC5C1Z,CAAAA,GAAAA,eAAM,AAANA,EAAO2Z,qBAAqB,CAAC,IAAMF;qBAC9BA;YACT,CAAA;QAAA,CACF;IACF;IAEA,IAAI,CAACtR,QAAQ+M,aAAa,IAAIzQ,QAAQ0H,EAAE,IAAInG,CAAAA,GAAAA,iBAAU,AAAVA,EAAWvB,QAAQ0H,EAAE,CAACvJ,MAAM,GACtEuJ,CAAAA,GAAAA,SAAE,AAAFA,EAAGvJ,MAAM,CAAC6B,QAAQ0H,EAAE,CAACvJ,MAAM,EAAE6B,SAASA,QAAQqC,KAAK;AAEvD;kBAEelE;;;AC/If;;AAEA;AACA;AAHA;kBAKe,CAACsF,QAAQC,UAAU,CAAC,CAAC,GAAK;IACvC,MAAM,EAAEF,UAAAA,EAAW,GAAGE;IACtB,IAAK,MAAMtB,SAASqB,OAClB,IAAIyF,CAAAA,GAAAA,gBAAQ,AAARA,CAAQ,CAAC9G,MAAM,IAAI,CAACoB,WACtB5E,CAAAA,GAAAA,aAAM,AAANA,EAAO,sBAAsBwD;SACxB8G,CAAAA,GAAAA,gBAAQ,AAARA,CAAQ,CAAC9G,MAAM,GAAGqB,MAAM,CAACrB,MAAM;AAE1C;;;ACZA;;AAEA;;AACA;AAHA;AAKA,MAAM7E,QAASyC,CAAAA,UAAY;IACzB,MAAMmV,cAAc;QAClBrW,MAAMH,SAASsI,aAAa,CAAC;IAC/B;IAEA,IAAIjH,WAAWA,QAAQlB,IAAI,EAAEwJ,CAAAA,GAAAA,kBAAU,AAAVA,EAAWtI,SAASmV;SAC5ChY,CAAAA,GAAAA,sBAAM,AAANA,EAAO6C,SAASmV;IAErB,OAAOA,YAAYrW,IAAI,CAACkQ,SAAS;AACnC;kBAEezR;;;AChBf;;AAAA;AAEA,sCAAA;AAEA,0DAAA;AACA,sBAAA;AACA,QAAA;AACA,yBAAA;AACA,IAAA;kBAEe;IACbf,KAAK;IACLJ,MAAM;IACNO,OAAO;QACLG,SAAS;QACTsY,UAAU;QACVC,iBAAiB;QACjB,qBAAA;QACAC,KAAK;IACP;AACF;;;ACpBA;;AAAA;kBAEe;IACb9Y,KAAK;IACLJ,MAAM;IACNO,OAAO;QACLG,SAAS;QACTsY,UAAU;QACVC,iBAAiB;QACjBE,UAAU;QACVC,QAAQ;IACV;AACF;;;ACZA;;AAAA;kBAEe;IACbhZ,KAAK;IACL8R,OAAO;IACP7Q,QAAQ;QACN3B,MAAMsG,CAAAA,QAAU,CAAA,YAAA,EAAcA,MAA9BtG,CAAAA;IACF;IACAoS,MAAMlO,CAAAA,UAAY,CAAA,EAAEA,QAAQlE,IAAK,CAAjCoS,CAAAA;AACF","sources":["node_modules/@parcel/runtime-browser-hmr/lib/runtime-53cd5ee63becbca0.js","examples/index.js","node_modules/@domql/globals/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","src/index.js","src/element/index.js","src/element/nodes.js","src/element/root.js","src/utils/index.js","src/utils/report.js","src/utils/object.js","src/utils/node.js","src/utils/extendUtils.js","node_modules/@domql/utils/index.js","node_modules/@domql/utils/types.js","node_modules/@domql/tags/index.js","node_modules/@domql/tags/htmlTags.js","node_modules/@domql/utils/object.js","node_modules/@domql/utils/function.js","node_modules/@domql/utils/array.js","node_modules/@domql/utils/node.js","node_modules/@domql/utils/log.js","src/element/tree.js","src/element/cache.js","src/event/index.js","src/event/on.js","src/event/can.js","src/event/is.js","src/element/create.js","src/element/node.js","src/element/iterate.js","src/element/methods.js","src/element/mixins/index.js","src/element/mixins/attr.js","src/element/mixins/classList.js","src/element/mixins/content.js","src/element/set.js","src/element/options.js","src/element/mixins/data.js","src/element/mixins/html.js","src/element/mixins/style.js","src/element/mixins/text.js","src/element/mixins/state.js","src/element/state.js","src/element/mixins/registry.js","src/element/assign.js","src/element/extend.js","src/element/props.js","src/element/update.js","src/element/define.js","src/element/parse.js","examples/header.js","examples/footer.js","examples/icon.js"],"sourcesContent":["var HMR_HOST = null;var HMR_PORT = null;var HMR_SECURE = false;var HMR_ENV_HASH = \"d6ea1d42532a7575\";module.bundle.HMR_BUNDLE_ID = \"c709b6a7f10f902a\";\"use strict\";\n\n/* global HMR_HOST, HMR_PORT, HMR_ENV_HASH, HMR_SECURE, chrome, browser, globalThis, __parcel__import__, __parcel__importScripts__, ServiceWorkerGlobalScope */\n\n/*::\nimport type {\n HMRAsset,\n HMRMessage,\n} from '@parcel/reporter-dev-server/src/HMRServer.js';\ninterface ParcelRequire {\n (string): mixed;\n cache: {|[string]: ParcelModule|};\n hotData: mixed;\n Module: any;\n parent: ?ParcelRequire;\n isParcelRequire: true;\n modules: {|[string]: [Function, {|[string]: string|}]|};\n HMR_BUNDLE_ID: string;\n root: ParcelRequire;\n}\ninterface ParcelModule {\n hot: {|\n data: mixed,\n accept(cb: (Function) => void): void,\n dispose(cb: (mixed) => void): void,\n // accept(deps: Array<string> | string, cb: (Function) => void): void,\n // decline(): void,\n _acceptCallbacks: Array<(Function) => void>,\n _disposeCallbacks: Array<(mixed) => void>,\n |};\n}\ninterface ExtensionContext {\n runtime: {|\n reload(): void,\n getURL(url: string): string;\n getManifest(): {manifest_version: number, ...};\n |};\n}\ndeclare var module: {bundle: ParcelRequire, ...};\ndeclare var HMR_HOST: string;\ndeclare var HMR_PORT: string;\ndeclare var HMR_ENV_HASH: string;\ndeclare var HMR_SECURE: boolean;\ndeclare var chrome: ExtensionContext;\ndeclare var browser: ExtensionContext;\ndeclare var __parcel__import__: (string) => Promise<void>;\ndeclare var __parcel__importScripts__: (string) => Promise<void>;\ndeclare var globalThis: typeof self;\ndeclare var ServiceWorkerGlobalScope: Object;\n*/\nvar OVERLAY_ID = '__parcel__error__overlay__';\nvar OldModule = module.bundle.Module;\n\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData,\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n module.bundle.hotData = undefined;\n}\n\nmodule.bundle.Module = Module;\nvar checkedAssets\n/*: {|[string]: boolean|} */\n, acceptedAssets\n/*: {|[string]: boolean|} */\n, assetsToAccept\n/*: Array<[ParcelRequire, string]> */\n;\n\nfunction getHostname() {\n return HMR_HOST || (location.protocol.indexOf('http') === 0 ? location.hostname : 'localhost');\n}\n\nfunction getPort() {\n return HMR_PORT || location.port;\n} // eslint-disable-next-line no-redeclare\n\n\nvar parent = module.bundle.parent;\n\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = getHostname();\n var port = getPort();\n var protocol = HMR_SECURE || location.protocol == 'https:' && !/localhost|127.0.0.1|0.0.0.0/.test(hostname) ? 'wss' : 'ws';\n var ws = new WebSocket(protocol + '://' + hostname + (port ? ':' + port : '') + '/'); // Web extension context\n\n var extCtx = typeof chrome === 'undefined' ? typeof browser === 'undefined' ? null : browser : chrome; // Safari doesn't support sourceURL in error stacks.\n // eval may also be disabled via CSP, so do a quick check.\n\n var supportsSourceURL = false;\n\n try {\n (0, eval)('throw new Error(\"test\"); //# sourceURL=test.js');\n } catch (err) {\n supportsSourceURL = err.stack.includes('test.js');\n } // $FlowFixMe\n\n\n ws.onmessage = async function (event\n /*: {data: string, ...} */\n ) {\n checkedAssets = {}\n /*: {|[string]: boolean|} */\n ;\n acceptedAssets = {}\n /*: {|[string]: boolean|} */\n ;\n assetsToAccept = [];\n var data\n /*: HMRMessage */\n = JSON.parse(event.data);\n\n if (data.type === 'update') {\n // Remove error overlay if there is one\n if (typeof document !== 'undefined') {\n removeErrorOverlay();\n }\n\n let assets = data.assets.filter(asset => asset.envHash === HMR_ENV_HASH); // Handle HMR Update\n\n let handled = assets.every(asset => {\n return asset.type === 'css' || asset.type === 'js' && hmrAcceptCheck(module.bundle.root, asset.id, asset.depsByBundle);\n });\n\n if (handled) {\n console.clear(); // Dispatch custom event so other runtimes (e.g React Refresh) are aware.\n\n if (typeof window !== 'undefined' && typeof CustomEvent !== 'undefined') {\n window.dispatchEvent(new CustomEvent('parcelhmraccept'));\n }\n\n await hmrApplyUpdates(assets);\n\n for (var i = 0; i < assetsToAccept.length; i++) {\n var id = assetsToAccept[i][1];\n\n if (!acceptedAssets[id]) {\n hmrAcceptRun(assetsToAccept[i][0], id);\n }\n }\n } else fullReload();\n }\n\n if (data.type === 'error') {\n // Log parcel errors to console\n for (let ansiDiagnostic of data.diagnostics.ansi) {\n let stack = ansiDiagnostic.codeframe ? ansiDiagnostic.codeframe : ansiDiagnostic.stack;\n console.error('🚨 [parcel]: ' + ansiDiagnostic.message + '\\n' + stack + '\\n\\n' + ansiDiagnostic.hints.join('\\n'));\n }\n\n if (typeof document !== 'undefined') {\n // Render the fancy html overlay\n removeErrorOverlay();\n var overlay = createErrorOverlay(data.diagnostics.html); // $FlowFixMe\n\n document.body.appendChild(overlay);\n }\n }\n };\n\n ws.onerror = function (e) {\n console.error(e.message);\n };\n\n ws.onclose = function () {\n console.warn('[parcel] 🚨 Connection to the HMR server was lost');\n };\n}\n\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n\n if (overlay) {\n overlay.remove();\n console.log('[parcel] ✨ Error resolved');\n }\n}\n\nfunction createErrorOverlay(diagnostics) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n let errorHTML = '<div style=\"background: black; opacity: 0.85; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; font-family: Menlo, Consolas, monospace; z-index: 9999;\">';\n\n for (let diagnostic of diagnostics) {\n let stack = diagnostic.frames.length ? diagnostic.frames.reduce((p, frame) => {\n return `${p}\n<a href=\"/__parcel_launch_editor?file=${encodeURIComponent(frame.location)}\" style=\"text-decoration: underline; color: #888\" onclick=\"fetch(this.href); return false\">${frame.location}</a>\n${frame.code}`;\n }, '') : diagnostic.stack;\n errorHTML += `\n <div>\n <div style=\"font-size: 18px; font-weight: bold; margin-top: 20px;\">\n 🚨 ${diagnostic.message}\n </div>\n <pre>${stack}</pre>\n <div>\n ${diagnostic.hints.map(hint => '<div>💡 ' + hint + '</div>').join('')}\n </div>\n ${diagnostic.documentation ? `<div>📝 <a style=\"color: violet\" href=\"${diagnostic.documentation}\" target=\"_blank\">Learn more</a></div>` : ''}\n </div>\n `;\n }\n\n errorHTML += '</div>';\n overlay.innerHTML = errorHTML;\n return overlay;\n}\n\nfunction fullReload() {\n if ('reload' in location) {\n location.reload();\n } else if (extCtx && extCtx.runtime && extCtx.runtime.reload) {\n extCtx.runtime.reload();\n }\n}\n\nfunction getParents(bundle, id)\n/*: Array<[ParcelRequire, string]> */\n{\n var modules = bundle.modules;\n\n if (!modules) {\n return [];\n }\n\n var parents = [];\n var k, d, dep;\n\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n\n if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) {\n parents.push([bundle, k]);\n }\n }\n }\n\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n\n return parents;\n}\n\nfunction updateLink(link) {\n var newLink = link.cloneNode();\n\n newLink.onload = function () {\n if (link.parentNode !== null) {\n // $FlowFixMe\n link.parentNode.removeChild(link);\n }\n };\n\n newLink.setAttribute('href', // $FlowFixMe\n link.getAttribute('href').split('?')[0] + '?' + Date.now()); // $FlowFixMe\n\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\n\nvar cssTimeout = null;\n\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n\n for (var i = 0; i < links.length; i++) {\n // $FlowFixMe[incompatible-type]\n var href\n /*: string */\n = links[i].getAttribute('href');\n var hostname = getHostname();\n var servedFromHMRServer = hostname === 'localhost' ? new RegExp('^(https?:\\\\/\\\\/(0.0.0.0|127.0.0.1)|localhost):' + getPort()).test(href) : href.indexOf(hostname + ':' + getPort());\n var absolute = /^https?:\\/\\//i.test(href) && href.indexOf(location.origin) !== 0 && !servedFromHMRServer;\n\n if (!absolute) {\n updateLink(links[i]);\n }\n }\n\n cssTimeout = null;\n }, 50);\n}\n\nfunction hmrDownload(asset) {\n if (asset.type === 'js') {\n if (typeof document !== 'undefined') {\n let script = document.createElement('script');\n script.src = asset.url + '?t=' + Date.now();\n\n if (asset.outputFormat === 'esmodule') {\n script.type = 'module';\n }\n\n return new Promise((resolve, reject) => {\n var _document$head;\n\n script.onload = () => resolve(script);\n\n script.onerror = reject;\n (_document$head = document.head) === null || _document$head === void 0 ? void 0 : _document$head.appendChild(script);\n });\n } else if (typeof importScripts === 'function') {\n // Worker scripts\n if (asset.outputFormat === 'esmodule') {\n return __parcel__import__(asset.url + '?t=' + Date.now());\n } else {\n return new Promise((resolve, reject) => {\n try {\n __parcel__importScripts__(asset.url + '?t=' + Date.now());\n\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n }\n }\n }\n}\n\nasync function hmrApplyUpdates(assets) {\n global.parcelHotUpdate = Object.create(null);\n let scriptsToRemove;\n\n try {\n // If sourceURL comments aren't supported in eval, we need to load\n // the update from the dev server over HTTP so that stack traces\n // are correct in errors/logs. This is much slower than eval, so\n // we only do it if needed (currently just Safari).\n // https://bugs.webkit.org/show_bug.cgi?id=137297\n // This path is also taken if a CSP disallows eval.\n if (!supportsSourceURL) {\n let promises = assets.map(asset => {\n var _hmrDownload;\n\n return (_hmrDownload = hmrDownload(asset)) === null || _hmrDownload === void 0 ? void 0 : _hmrDownload.catch(err => {\n // Web extension bugfix for Chromium\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1255412#c12\n if (extCtx && extCtx.runtime && extCtx.runtime.getManifest().manifest_version == 3) {\n if (typeof ServiceWorkerGlobalScope != 'undefined' && global instanceof ServiceWorkerGlobalScope) {\n extCtx.runtime.reload();\n return;\n }\n\n asset.url = extCtx.runtime.getURL('/__parcel_hmr_proxy__?url=' + encodeURIComponent(asset.url + '?t=' + Date.now()));\n return hmrDownload(asset);\n }\n\n throw err;\n });\n });\n scriptsToRemove = await Promise.all(promises);\n }\n\n assets.forEach(function (asset) {\n hmrApply(module.bundle.root, asset);\n });\n } finally {\n delete global.parcelHotUpdate;\n\n if (scriptsToRemove) {\n scriptsToRemove.forEach(script => {\n if (script) {\n var _document$head2;\n\n (_document$head2 = document.head) === null || _document$head2 === void 0 ? void 0 : _document$head2.removeChild(script);\n }\n });\n }\n }\n}\n\nfunction hmrApply(bundle\n/*: ParcelRequire */\n, asset\n/*: HMRAsset */\n) {\n var modules = bundle.modules;\n\n if (!modules) {\n return;\n }\n\n if (asset.type === 'css') {\n reloadCSS();\n } else if (asset.type === 'js') {\n let deps = asset.depsByBundle[bundle.HMR_BUNDLE_ID];\n\n if (deps) {\n if (modules[asset.id]) {\n // Remove dependencies that are removed and will become orphaned.\n // This is necessary so that if the asset is added back again, the cache is gone, and we prevent a full page reload.\n let oldDeps = modules[asset.id][1];\n\n for (let dep in oldDeps) {\n if (!deps[dep] || deps[dep] !== oldDeps[dep]) {\n let id = oldDeps[dep];\n let parents = getParents(module.bundle.root, id);\n\n if (parents.length === 1) {\n hmrDelete(module.bundle.root, id);\n }\n }\n }\n }\n\n if (supportsSourceURL) {\n // Global eval. We would use `new Function` here but browser\n // support for source maps is better with eval.\n (0, eval)(asset.output);\n } // $FlowFixMe\n\n\n let fn = global.parcelHotUpdate[asset.id];\n modules[asset.id] = [fn, deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n }\n}\n\nfunction hmrDelete(bundle, id) {\n let modules = bundle.modules;\n\n if (!modules) {\n return;\n }\n\n if (modules[id]) {\n // Collect dependencies that will become orphaned when this module is deleted.\n let deps = modules[id][1];\n let orphans = [];\n\n for (let dep in deps) {\n let parents = getParents(module.bundle.root, deps[dep]);\n\n if (parents.length === 1) {\n orphans.push(deps[dep]);\n }\n } // Delete the module. This must be done before deleting dependencies in case of circular dependencies.\n\n\n delete modules[id];\n delete bundle.cache[id]; // Now delete the orphans.\n\n orphans.forEach(id => {\n hmrDelete(module.bundle.root, id);\n });\n } else if (bundle.parent) {\n hmrDelete(bundle.parent, id);\n }\n}\n\nfunction hmrAcceptCheck(bundle\n/*: ParcelRequire */\n, id\n/*: string */\n, depsByBundle\n/*: ?{ [string]: { [string]: string } }*/\n) {\n if (hmrAcceptCheckOne(bundle, id, depsByBundle)) {\n return true;\n } // Traverse parents breadth first. All possible ancestries must accept the HMR update, or we'll reload.\n\n\n let parents = getParents(module.bundle.root, id);\n let accepted = false;\n\n while (parents.length > 0) {\n let v = parents.shift();\n let a = hmrAcceptCheckOne(v[0], v[1], null);\n\n if (a) {\n // If this parent accepts, stop traversing upward, but still consider siblings.\n accepted = true;\n } else {\n // Otherwise, queue the parents in the next level upward.\n let p = getParents(module.bundle.root, v[1]);\n\n if (p.length === 0) {\n // If there are no parents, then we've reached an entry without accepting. Reload.\n accepted = false;\n break;\n }\n\n parents.push(...p);\n }\n }\n\n return accepted;\n}\n\nfunction hmrAcceptCheckOne(bundle\n/*: ParcelRequire */\n, id\n/*: string */\n, depsByBundle\n/*: ?{ [string]: { [string]: string } }*/\n) {\n var modules = bundle.modules;\n\n if (!modules) {\n return;\n }\n\n if (depsByBundle && !depsByBundle[bundle.HMR_BUNDLE_ID]) {\n // If we reached the root bundle without finding where the asset should go,\n // there's nothing to do. Mark as \"accepted\" so we don't reload the page.\n if (!bundle.parent) {\n return true;\n }\n\n return hmrAcceptCheck(bundle.parent, id, depsByBundle);\n }\n\n if (checkedAssets[id]) {\n return true;\n }\n\n checkedAssets[id] = true;\n var cached = bundle.cache[id];\n assetsToAccept.push([bundle, id]);\n\n if (!cached || cached.hot && cached.hot._acceptCallbacks.length) {\n return true;\n }\n}\n\nfunction hmrAcceptRun(bundle\n/*: ParcelRequire */\n, id\n/*: string */\n) {\n var cached = bundle.cache[id];\n bundle.hotData = {};\n\n if (cached && cached.hot) {\n cached.hot.data = bundle.hotData;\n }\n\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData);\n });\n }\n\n delete bundle.cache[id];\n bundle(id);\n cached = bundle.cache[id];\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n var assetsToAlsoAccept = cb(function () {\n return getParents(module.bundle.root, id);\n });\n\n if (assetsToAlsoAccept && assetsToAccept.length) {\n // $FlowFixMe[method-unbinding]\n assetsToAccept.push.apply(assetsToAccept, assetsToAlsoAccept);\n }\n });\n }\n\n acceptedAssets[id] = true;\n}","'use strict'\n\nimport { window } from '@domql/globals'\nimport DOM from '../src'\n\nimport header from './header'\nimport footer from './footer'\nimport Icon from './icon'\n\nconst icon = {\n extend: Icon,\n name: 'toke'\n}\n\nconst { performance } = window\nconst now = performance.now()\n\nconst list = []\nfor (let i = 0; i < 35; i++) {\n const afrika = {\n text: `Hello Afrika - ${parseInt(Math.random() * 100)}`,\n tag: 'li',\n attr: {\n align: 'right'\n },\n style: {\n background: 'black',\n color: 'white',\n padding: 10\n }\n }\n\n const lion = {\n text: 'Lion',\n style: {\n color: 'black',\n opacity: Math.random(),\n background: 'yellow'\n }\n }\n\n const yay = 'yay'\n\n afrika.lion = lion\n afrika.yay = yay\n\n list[i] = afrika\n}\n\nconst root = {\n header,\n list,\n icon,\n footer\n}\n\nDOM.create(root)\n\nconst later = performance.now()\nconsole.log(later - now)\n","'use strict'\n\nconst global = globalThis\nconst self = globalThis\nconst window = globalThis\nconst document = window.document // eslint-disable-line\n\nexport { global, self, window, document }\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","'use strict'\n\nimport { window } from '@domql/globals'\nimport { create, parse, set, define, tree } from './element'\n\nconst ENV = process.env.NODE_ENV\nif (ENV === 'test' || ENV === 'development') window.tree = tree\n\nexport default {\n create,\n parse,\n set,\n define,\n tree\n}\n","'use strict'\n\nimport nodes from './nodes'\nimport root from './root'\nimport tree from './tree'\nimport cache from './cache'\nimport create from './create'\nimport createNode from './node'\nimport * as assign from './assign'\nimport define from './define'\nimport update from './update'\nimport parse from './parse'\nimport set from './set'\n\nimport { lookup, remove, get, setProps, log, keys } from './methods'\n\nexport {\n nodes,\n root,\n tree,\n cache,\n create,\n createNode,\n assign,\n define,\n remove,\n update,\n parse,\n lookup,\n setProps,\n set,\n get,\n log,\n keys\n}\n","'use strict'\n\nexport default {\n root: [\n 'body',\n 'html'\n ],\n\n head: [\n 'title',\n 'base',\n 'meta',\n 'style'\n ],\n\n body: [\n 'html',\n 'body',\n 'string',\n 'fragment',\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'meter',\n 'nav',\n 'noframes',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strike',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n\n // SVG\n 'svg',\n 'path'\n ]\n}\n","'use strict'\n\nimport { document } from '@domql/globals'\nimport { report } from '../utils'\n\nconst root = {\n key: ':root',\n node: document ? document.body : report('DocumentNotDefined', document)\n}\n\nexport default root\n","'use strict'\n\nexport * from './report'\nexport * from './object'\nexport * from './node'\nexport * from './extendUtils'\n","'use strict'\n\nexport const errors = {\n en: {\n DocumentNotDefined: {\n title: 'Document is undefined',\n description: 'To tweak with DOM, you should use browser.'\n },\n OverwriteToBuiltin: {\n title: 'Overwriting to builtin method',\n description: 'Overwriting a builtin method in the global define is not possible, please choose different name'\n },\n BrowserNotDefined: {\n title: 'Can\\'t recognize environment',\n description: 'Environment should be browser application, that can run Javascript'\n },\n SetQuickPreferancesIsNotObject: {\n title: 'Quick preferances object is required',\n description: 'Please pass a plain object with \"lang\", \"culture\" and \"area\" properties'\n },\n InvalidParams: {\n title: 'Params are invalid',\n description: 'Please pass a plain object with \"lang\", \"culture\" and \"area\" properties'\n },\n CantCreateWithoutNode: {\n title: 'You must provide node',\n description: 'Can\\'t create DOM element without setting node or text'\n },\n HTMLInvalidTag: {\n title: 'Element tag name (or DOM nodeName) is invalid',\n description: 'To create element, you must provide valid DOM node. See full list of them at here: http://www.w3schools.com/tags/'\n },\n HTMLInvalidAttr: {\n title: 'Attibutes object is invalid',\n description: 'Please pass a valid plain object to apply as an attributes for a DOM node'\n },\n HTMLInvalidData: {\n title: 'Data object is invalid',\n description: 'Please pass a valid plain object to apply as an dataset for a DOM node'\n },\n HTMLInvalidStyles: {\n title: 'Styles object is invalid',\n description: 'Please pass a valid plain object to apply as an style for a DOM node'\n },\n HTMLInvalidText: {\n title: 'Text string is invalid',\n description: 'Please pass a valid string to apply text to DOM node'\n }\n }\n}\n\nexport const report = (err, arg, element) => {\n const currentLang = 'en'\n let errObj\n if (err && typeof err === 'string') errObj = errors[currentLang][err]\n\n return new Error(\n `\"${err}\", \"${arg}\"\\n\\n`,\n `${errObj.description}`,\n element ? `\\n\\n${element}` : ''\n )\n}\n","'use strict'\n\nimport { window } from '@domql/globals'\nimport nodes from '../element/nodes'\n\nexport const memoize = (fn) => {\n const cache = {}\n return (...args) => {\n const n = args[0]\n if (n in cache) {\n return cache[n]\n } else {\n const result = fn(n)\n cache[n] = result\n return result\n }\n }\n}\n\nexport const debounce = (element, func, timeout = 300) => {\n let timer\n return (...args) => {\n clearTimeout(timer)\n timer = setTimeout(() => { func.apply(element, args) }, timeout)\n }\n}\n\nexport const isTagRegistered = arg => nodes.body.indexOf(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isNumber = arg => typeof arg === 'number'\n\nexport const isFunction = arg => typeof arg === 'function'\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n // if (isArray(arg)) return false\n return (typeof arg === 'object')\n}\n\nexport const isNode = obj => {\n return (\n typeof window.Node === 'object'\n ? obj instanceof window.Node\n : obj && typeof obj === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isHtmlElement = obj => {\n return (\n typeof window.HTMLElement === 'object'\n ? obj instanceof window.HTMLElement // DOM2\n : obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isDefined = arg => {\n return isObject(arg) ||\n isObjectLike(arg) ||\n isString(arg) ||\n isNumber(arg) ||\n isFunction(arg) ||\n isArray(arg) ||\n isObjectLike(arg)\n}\n\nexport const exec = (param, element, state) => {\n if (isFunction(param)) return param(element, state || element.state)\n return param\n}\n\nexport const map = (obj, extention, element) => {\n for (const e in extention) {\n obj[e] = exec(extention[e], element)\n }\n}\n\nexport const merge = (element, obj) => {\n for (const e in obj) {\n const elementProp = element[e]\n const objProp = obj[e]\n if (elementProp === undefined) {\n element[e] = objProp\n }\n }\n return element\n}\n\nexport const deepMerge = (element, extend) => {\n // console.groupCollapsed('deepMerge:')\n for (const e in extend) {\n const elementProp = element[e]\n const extendProp = extend[e]\n // const cachedProps = cache.props\n if (e === 'parent' || e === 'props' || e === 'state') continue\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp)\n }\n }\n // console.groupEnd('deepMerge:')\n return element\n}\n\nexport const clone = obj => {\n const o = {}\n for (const prop in obj) {\n if (prop === 'node') continue\n o[prop] = obj[prop]\n }\n return o\n}\n\n/**\n * Deep cloning of object\n */\nexport const deepClone = (obj, excluding = ['parent', 'node', '__element', 'state', '__root', 'context']) => {\n const o = isArray(obj) ? [] : {}\n for (const prop in obj) {\n if (excluding.indexOf(prop) > -1) continue\n let objProp = obj[prop]\n if (prop === 'extend' && isArray(objProp)) {\n objProp = mergeArray(objProp)\n }\n if (isObjectLike(objProp)) {\n o[prop] = deepClone(objProp)\n } else o[prop] = objProp\n }\n return o\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const isEqualDeep = (param, element) => {\n if (param === element) return true\n if (!param || !element) return false\n for (const prop in param) {\n const paramProp = param[prop]\n const elementProp = element[prop]\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp)\n if (!isEqual) return false\n } else {\n const isEqual = paramProp === elementProp\n if (!isEqual) return false\n }\n }\n return true\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwrite = (element, params, options) => {\n const changes = {}\n\n for (const e in params) {\n if (e === 'props' || e === 'state') continue\n\n const elementProp = element[e]\n const paramsProp = params[e]\n\n if (paramsProp !== undefined) {\n element.__cached[e] = changes[e] = elementProp\n element[e] = paramsProp\n }\n\n if (options.cleanExec) delete element.__exec[e]\n }\n\n return changes\n}\n\n/**\n * Overwrites DEEPly object properties with another\n */\nexport const overwriteDeep = (obj, params, excluding = ['node', '__root']) => {\n for (const e in params) {\n if (excluding.indexOf(e) > -1) continue\n const objProp = obj[e]\n const paramsProp = params[e]\n if (isObjectLike(objProp) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp, paramsProp)\n } else if (paramsProp !== undefined) {\n obj[e] = paramsProp\n }\n }\n return obj\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b)) return deepMerge(a, b)\n return a || b\n}\n\n/**\n * Merges array extends\n */\nexport const mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {})\n}\n\n/**\n * Merges array extends\n */\nexport const mergeAndCloneIfArray = obj => {\n return isArray(obj) ? mergeArray(obj) : deepClone(obj)\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const flattenRecursive = (param, prop, stack = []) => {\n const objectized = mergeAndCloneIfArray(param)\n stack.push(objectized)\n\n const extendOfExtend = objectized[prop]\n if (extendOfExtend) flattenRecursive(extendOfExtend, prop, stack)\n\n delete objectized[prop]\n\n return stack\n}\n","'use strict'\n\nexport const createID = (function () {\n let index = 0\n\n function newId () {\n index++\n return index\n }\n\n return newId\n})()\n\nexport const createSnapshotId = createID\n","'use strict'\n\nimport { isArray, isFunction, isObject } from '@domql/utils'\n\nexport const generateHash = () => Math.random().toString(36).substring(2)\n\n// hashing\nexport const extendStackRegistry = {}\nexport const extendCachedRegistry = {}\n\nexport const getHashedExtend = extend => {\n return extendStackRegistry[extend.__hash]\n}\n\nexport const setHashedExtend = (extend, stack) => {\n const hash = generateHash()\n extend.__hash = hash\n extendStackRegistry[hash] = stack\n return stack\n}\n\nexport const getExtendStackRegistry = (extend, stack) => {\n if (extend.__hash) { return stack.concat(getHashedExtend(extend)) }\n return setHashedExtend(extend, stack) // stack .concat(hashedExtend)\n}\n\n// stacking\nexport const extractArrayExtend = (extend, stack) => {\n extend.forEach(each => flattenExtend(each, stack))\n return stack\n}\n\nexport const deepExtend = (extend, stack) => {\n const extendOflattenExtend = extend.extend\n if (extendOflattenExtend) {\n flattenExtend(extendOflattenExtend, stack)\n }\n return stack\n}\n\nexport const flattenExtend = (extend, stack) => {\n if (!extend) return stack\n if (isArray(extend)) return extractArrayExtend(extend, stack)\n stack.push(extend)\n if (extend.extend) deepExtend(extend, stack)\n return stack\n}\n\n// merging\nexport const deepCloneExtend = obj => {\n const o = {}\n for (const prop in obj) {\n if (['parent', 'node', '__element', '__root', '__key'].indexOf(prop) > -1) continue\n const objProp = obj[prop]\n if (isObject(objProp)) {\n o[prop] = deepCloneExtend(objProp)\n } else if (isArray(objProp)) {\n o[prop] = objProp.map(x => x)\n } else o[prop] = objProp\n }\n return o\n}\n\nexport const deepMergeExtend = (element, extend) => {\n for (const e in extend) {\n if (['parent', 'node', '__element', '__root', '__key'].indexOf(e) > -1) continue\n const elementProp = element[e]\n const extendProp = extend[e]\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObject(elementProp) && isObject(extendProp)) {\n deepMergeExtend(elementProp, extendProp)\n } else if (isArray(elementProp) && isArray(extendProp)) {\n element[e] = elementProp.concat(extendProp)\n } else if (isArray(elementProp) && isObject(extendProp)) {\n const obj = deepMergeExtend({}, elementProp)\n element[e] = deepMergeExtend(obj, extendProp)\n } else if (elementProp === undefined && isFunction(extendProp)) {\n element[e] = extendProp\n }\n }\n return element\n}\n\nexport const cloneAndMergeArrayExtend = stack => {\n return stack.reduce((a, c) => {\n return deepMergeExtend(a, deepCloneExtend(c))\n }, {})\n}\n\n// joint stacks\nexport const jointStacks = (extendStack, childExtendStack) => {\n return []\n .concat(extendStack.slice(0, 1))\n .concat(childExtendStack.slice(0, 1))\n .concat(extendStack.slice(1))\n .concat(childExtendStack.slice(1))\n}\n\n// init\nexport const getExtendStack = extend => {\n if (!extend) return []\n if (extend.__hash) return getHashedExtend(extend) || []\n const stack = flattenExtend(extend, [])\n return getExtendStackRegistry(extend, stack)\n}\n\nexport const getExtendMerged = extend => {\n const stack = getExtendStack(extend)\n return cloneAndMergeArrayExtend(stack)\n}\n","'use strict'\n\nexport * from './types'\nexport * from './object'\nexport * from './function'\nexport * from './array'\nexport * from './node'\nexport * from './log'\n","'use strict'\n\nimport { window } from '@domql/globals'\nimport { HTML_TAGS } from '@domql/tags'\n\nexport const isValidHtmlTag = arg => HTML_TAGS.body.indexOf(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isNumber = arg => typeof arg === 'number'\n\nexport const isFunction = arg => typeof arg === 'function'\n\nexport const isBoolean = arg => arg === true || arg === false\n\nexport const isNull = arg => arg === null\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n // if (isArray(arg)) return false\n return (typeof arg === 'object')\n}\n\nexport const isNode = obj => {\n return (\n typeof window.Node === 'object'\n ? obj instanceof window.Node\n : obj && typeof obj === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isHtmlElement = obj => {\n return (\n typeof window.HTMLElement === 'object'\n ? obj instanceof window.HTMLElement // DOM2\n : obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isDefined = arg => {\n return isObject(arg) ||\n isObjectLike(arg) ||\n isString(arg) ||\n isNumber(arg) ||\n isFunction(arg) ||\n isArray(arg) ||\n isObjectLike(arg) ||\n isBoolean(arg) ||\n isNull(arg)\n}\n\nexport const isUndefined = arg => {\n return arg === undefined\n}\n\nexport const TYPES = {\n boolean: isBoolean,\n array: isArray,\n object: isObject,\n string: isString,\n number: isNumber,\n null: isNull,\n function: isFunction,\n objectLike: isObjectLike,\n node: isNode,\n htmlElement: isHtmlElement,\n defined: isDefined\n}\n\nexport const is = (arg) => {\n return (...args) => {\n return args.map(val => TYPES[val](arg)).filter(v => v).length > 0\n }\n}\n\nexport const isNot = (arg) => {\n return (...args) => {\n return args.map(val => TYPES[val](arg)).filter(v => v).length === 0\n }\n}\n","'use strict'\n\nexport * from './htmlTags'\n","'use strict'\n\nexport const HTML_TAGS = {\n root: [\n 'body',\n 'html'\n ],\n\n head: [\n 'title',\n 'base',\n 'meta',\n 'style'\n ],\n\n body: [\n 'string',\n 'fragment',\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'meter',\n 'nav',\n 'noframes',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strike',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n\n // SVG\n 'svg',\n 'path'\n ]\n}\n","'use strict'\n\nimport { isFunction, isObjectLike, isObject, isArray } from './types'\n\nexport const exec = (param, element, state) => {\n if (isFunction(param)) return param(element, state || element.state)\n return param\n}\n\nexport const map = (obj, extention, element) => {\n for (const e in extention) {\n obj[e] = exec(extention[e], element)\n }\n}\n\nexport const merge = (element, obj) => {\n for (const e in obj) {\n const elementProp = element[e]\n const objProp = obj[e]\n if (elementProp === undefined) {\n element[e] = objProp\n }\n }\n return element\n}\n\nexport const deepMerge = (element, extend) => {\n // console.groupCollapsed('deepMerge:')\n for (const e in extend) {\n const elementProp = element[e]\n const extendProp = extend[e]\n // const cachedProps = cache.props\n if (e === 'parent' || e === 'props') continue\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp)\n }\n }\n // console.groupEnd('deepMerge:')\n return element\n}\n\nexport const clone = obj => {\n const o = {}\n for (const prop in obj) {\n if (prop === 'node') continue\n o[prop] = obj[prop]\n }\n return o\n}\n\n/**\n * Deep cloning of object\n */\nexport const deepClone = (obj) => {\n if (isArray(obj)) {\n return obj.map(deepClone)\n }\n const o = {}\n for (const prop in obj) {\n let objProp = obj[prop]\n if (prop === 'extend' && isArray(objProp)) {\n objProp = mergeArray(objProp)\n }\n if (isArray(objProp)) {\n o[prop] = objProp.map(deepClone)\n } else if (isObject(objProp)) {\n o[prop] = deepClone(objProp)\n } else o[prop] = objProp\n }\n return o\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwrite = (element, params, options) => {\n const { ref } = element\n const changes = {}\n\n for (const e in params) {\n if (e === 'props') continue\n\n const elementProp = element[e]\n const paramsProp = params[e]\n\n if (paramsProp) {\n ref.__cache[e] = changes[e] = elementProp\n ref[e] = paramsProp\n }\n }\n\n return changes\n}\n\nexport const diff = (obj, original, cache) => {\n const changes = cache || {}\n for (const e in obj) {\n if (e === 'ref') continue\n const originalProp = original[e]\n const objProp = obj[e]\n if (isObjectLike(originalProp) && isObjectLike(objProp)) {\n changes[e] = {}\n diff(originalProp, objProp, changes[e])\n } else if (objProp !== undefined) {\n changes[e] = objProp\n }\n }\n return changes\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwriteObj = (params, obj) => {\n const changes = {}\n\n for (const e in params) {\n const objProp = obj[e]\n const paramsProp = params[e]\n\n if (paramsProp) {\n obj[e] = changes[e] = objProp\n }\n }\n\n return changes\n}\n\n/**\n * Overwrites DEEPly object properties with another\n */\nexport const overwriteDeep = (params, obj) => {\n for (const e in params) {\n const objProp = obj[e]\n const paramsProp = params[e]\n if (isObjectLike(objProp) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp, paramsProp)\n } else if (paramsProp !== undefined) {\n obj[e] = paramsProp\n }\n }\n return obj\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b)) return deepMerge(a, b)\n return a || b\n}\n\n/**\n * Merges array extendtypes\n */\nexport const mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {})\n}\n\n/**\n * Merges array extendtypes\n */\nexport const mergeAndCloneIfArray = obj => {\n return isArray(obj) ? mergeArray(obj) : deepClone(obj)\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const flattenRecursive = (param, prop, stack = []) => {\n const objectized = mergeAndCloneIfArray(param)\n stack.push(objectized)\n\n const extendOfExtend = objectized[prop]\n if (extendOfExtend) flattenRecursive(extendOfExtend, prop, stack)\n\n delete objectized[prop]\n\n return stack\n}\n\nexport const isEqualDeep = (param, element) => {\n if (param === element) return true\n if (!param || !element) return false\n for (const prop in param) {\n const paramProp = param[prop]\n const elementProp = element[prop]\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp)\n if (!isEqual) return false\n } else {\n const isEqual = paramProp === elementProp\n if (!isEqual) return false\n }\n }\n return true\n}\n","'use strict'\n\nexport const debounce = (element, func, timeout = 300) => {\n let timer\n return (...args) => {\n clearTimeout(timer)\n timer = setTimeout(() => { func.apply(element, args) }, timeout)\n }\n}\n\nexport const memoize = (fn) => {\n const cache = {}\n return (...args) => {\n const n = args[0]\n if (n in cache) {\n return cache[n]\n } else {\n const result = fn(n)\n cache[n] = result\n return result\n }\n }\n}\n","'use strict'\n","'use strict'\n\nexport const cleanWithNode = extend => delete extend.node && extend\n\nexport const createID = (function * () {\n let index = 1\n while (index < index + 1) {\n yield index++\n }\n}())\n","'use strict'\n\nexport const logIf = (bool, ...arg) => { if (bool) arg.map(v => console.log(v)) }\nexport const logGroupIf = (bool, key, ...arg) => {\n if (bool) {\n console.group(key)\n arg.map(v => console.log(v))\n console.groupEnd(key)\n }\n}\n","'use strict'\n\nimport root from './root'\n\nexport default root\n","'use strict'\n\nimport { document } from '@domql/globals'\nimport { can } from '../event'\nimport { exec, isString, isTagRegistered, report } from '../utils'\n\nconst cachedElements = {}\n\nconst createNode = (element) => {\n const { tag } = element\n if (tag) {\n if (tag === 'string') return document.createTextNode(element.text)\n else if (tag === 'fragment') {\n return document.createDocumentFragment()\n } else if (tag === 'svg' || tag === 'path') { // change that\n return document.createElementNS('http://www.w3.org/2000/svg', tag)\n } else return document.createElement(tag)\n } else {\n return document.createElement('div')\n }\n}\n\nconst detectTag = element => {\n let { tag, key } = element\n tag = exec(tag, element)\n\n if (tag === true) tag = key\n\n if (isString(tag)) {\n const tagExists = isTagRegistered(tag) > -1\n if (tagExists) return tag\n } else {\n const isKeyATag = isTagRegistered(key) > -1\n if (isKeyATag) return key\n }\n\n return 'div'\n}\n\nexport default (element) => {\n const tag = element.tag = detectTag(element)\n\n if (!can.render(element)) {\n return report('HTMLInvalidTag')\n }\n\n let cachedTag = cachedElements[tag]\n if (!cachedTag) cachedTag = cachedElements[tag] = createNode(element)\n\n const clonedNode = cachedTag.cloneNode(true)\n if (tag === 'string') clonedNode.nodeValue = element.text\n return clonedNode\n}\n","'use strict'\n\nimport * as on from './on'\nimport * as can from './can'\nimport * as is from './is'\n\nexport {\n on,\n can,\n is\n}\n","'use strict'\n\nexport const beforeClassAssign = (param, element, state) => {\n return param(element, state)\n}\n\nexport const init = (param, element, state) => {\n return param(element, state)\n}\n\nexport const render = (param, element, state) => {\n return param(element, state)\n}\n\nexport const initUpdate = (param, element, state) => {\n return param(element, state)\n}\n\nexport const attachNode = (param, element, state) => {\n return param(element, state)\n}\n\nexport const stateInit = (param, element, state) => {\n return param(element, state)\n}\n\nexport const stateCreated = (param, element, state) => {\n return param(element, state)\n}\n\nexport const initStateUpdated = (param, element, state, changes) => {\n return param(element, state, changes)\n}\n\nexport const stateUpdated = (param, element, state, changes) => {\n return param(element, state, changes)\n}\n\nexport const update = (param, element, state) => {\n return param(element, state)\n}\n","'use strict'\n\nimport { nodes } from '../element'\nimport { report } from '../utils'\n\nexport const render = (element) => {\n const tag = element.tag || 'div'\n const isValid = nodes.body.indexOf(tag) > -1\n return isValid || report('HTMLInvalidTag')\n}\n","'use strict'\n\nimport { window } from '@domql/globals'\n\nexport const node = (node) => {\n const { Node } = window\n return (\n typeof Node === 'function'\n ? node instanceof Node\n : node &&\n typeof node === 'object' &&\n typeof node.nodeType === 'number' &&\n typeof node.tag === 'string'\n )\n}\n","'use strict'\n\nimport root from './root'\nimport createNode from './node'\nimport { appendNode, assignNode } from './assign'\nimport { applyExtend } from './extend'\nimport nodes from './nodes'\nimport set, { removeContentElement } from './set'\nimport createState from './state'\nimport createProps from './props'\nimport update from './update'\nimport { on } from '../event'\nimport { assignClass } from './mixins/classList'\nimport { isObject, isFunction, isNumber, isString, createID, isNode, exec } from '../utils'\nimport { remove, lookup, setProps, log, keys, parse, parseDeep, spotByPath, nextElement, previousElement, isMethod } from './methods'\nimport cacheNode from './cache'\nimport { registry } from './mixins'\nimport { throughInitialExec } from './iterate'\nimport OPTIONS from './options'\n// import { overwrite, clone, fillTheRest } from '../utils'\n\nconst ENV = process.env.NODE_ENV\n\n/**\n * Creating a domQL element using passed parameters\n */\nconst create = (element, parent, key, options = OPTIONS.create || {}) => {\n if (options && !OPTIONS.create) OPTIONS.create = options\n\n // if ELEMENT is not given\n if (element === undefined) {\n if (ENV === 'test' || ENV === 'development') { console.warn(key, 'element is undefined in', parent && parent.path) }\n element = {}\n }\n if (element === null) return\n if (element === true) element = { text: true }\n\n // if element is extend\n if (element.__hash) {\n element = { extend: element }\n }\n\n // if PARENT is not given\n if (!parent) parent = root\n if (isNode(parent)) parent = root[`${key}_parent`] = { key: ':root', node: parent }\n\n // if element is STRING\n if (isString(element) || isNumber(element)) {\n const extendTag = element.extend && element.extend.tag\n const childExtendTag = parent.childExtend && parent.childExtend.tag\n const isKeyValidHTMLTag = ((nodes.body.indexOf(key) > -1) && key)\n element = {\n text: element,\n tag: extendTag || childExtendTag || isKeyValidHTMLTag || 'string'\n }\n }\n\n // define KEY\n const assignedKey = (element.key || key || createID()).toString()\n\n const { extend, props, state, childExtend, childProps } = element\n\n if (isKeyComponent(assignedKey)) {\n const hasComponentAttrs = extend || childExtend || props || state || element.on\n const componentKey = assignedKey.split('_')[0]\n if (!hasComponentAttrs || childProps) {\n parent[assignedKey] = element = {\n extend: componentKey || assignedKey,\n props: { ...element }\n }\n } else if (!extend || extend === true) {\n parent[assignedKey] = element = {\n ...element,\n extend: componentKey || assignedKey\n }\n }\n }\n\n // Responsive rendering\n // TODO: move as define plugin\n if (assignedKey.slice(0, 1) === '@') {\n if (props) {\n props.display = 'none'\n if (props[assignedKey]) props[assignedKey].display = props.display\n else props[assignedKey] = { display: props.display || 'block' }\n } else {\n parent[assignedKey] = element = {\n ...element,\n props: {\n display: 'none',\n [assignedKey]: { display: 'block' }\n }\n }\n }\n }\n\n if (options.components) {\n const { components } = options\n const { extend } = element\n const execExtend = exec(extend, element)\n if (isString(execExtend)) {\n if (components[execExtend]) element.extend = components[execExtend]\n else {\n if (ENV === 'test' || ENV === 'development') {\n console.warn(execExtend, 'is not in library', components, element)\n console.warn('replacing with ', {})\n }\n element.extend = {}\n }\n }\n }\n\n // assign context\n if (options.context && !root.context) root.context = options.context\n element.context = root.context\n\n // Only resolve extends, skip everything else\n if (options.onlyResolveExtends) {\n applyExtend(element, parent, options)\n\n if (!element.__exec) element.__exec = {}\n if (!element.__attr) element.__attr = {}\n if (!element.__ifFalsy) createProps(element, parent)\n element.key = assignedKey\n\n throughInitialExec(element)\n\n for (const param in element) {\n const prop = element[param]\n if (isMethod(param) || isObject(registry[param]) || prop === undefined) continue\n\n const hasDefined = element.define && element.define[param]\n const ourParam = registry[param]\n const hasOptionsDefine = options.define && options.define[param]\n if (ourParam && !hasOptionsDefine) {\n continue //if (isFunction(ourParam)) ourParam(prop, element, element.node, options)\n } else if (element[param] && !hasDefined && !hasOptionsDefine) {\n create(exec(prop, element), element, param, options)\n }\n }\n\n // createNode(element, options)\n delete element.parent\n delete element.__element\n delete element.__props\n delete element.props.__element\n delete element.props.update\n delete element.update\n return element\n }\n\n // create EXTEND inheritance\n applyExtend(element, parent, options)\n\n if (Object.keys(options).length) {\n registry.defaultOptions = options\n if (options.ignoreChildExtend) delete options.ignoreChildExtend\n }\n\n // create and assign a KEY\n element.key = assignedKey\n\n // enable TRANSFORM in data\n if (!element.transform) element.transform = {}\n\n // enable CACHING\n if (!element.__cached) element.__cached = {}\n\n // enable EXEC\n if (!element.__exec) element.__exec = {}\n\n // enable CLASS CACHING\n if (!element.__class) element.__class = {}\n if (!element.__classNames) element.__classNames = {}\n\n // enable CLASS CACHING\n if (!element.__attr) element.__attr = {}\n\n // enable CHANGES storing\n if (!element.__changes) element.__changes = []\n\n // enable CHANGES storing\n if (!element.__children) element.__children = []\n\n // Add _root element property\n const hasRoot = parent.parent && parent.parent.key === ':root'\n if (!element.__root) element.__root = hasRoot ? parent : parent.__root\n\n // set the PATH array\n if (ENV === 'test' || ENV === 'development') {\n if (!parent.path) parent.path = []\n element.path = parent.path.concat(assignedKey)\n }\n\n // assign METHODS\n element.set = set\n element.update = update\n element.remove = remove\n element.removeContent = removeContentElement\n element.setProps = setProps\n element.lookup = lookup\n element.spotByPath = spotByPath\n element.parse = parse\n element.parseDeep = parseDeep\n element.keys = keys\n element.nextElement = nextElement\n element.previousElement = previousElement\n if (ENV === 'test' || ENV === 'development') {\n element.log = log\n }\n\n // enable STATE\n element.state = createState(element, parent)\n\n // don't render IF in condition\n if (isFunction(element.if)) {\n // TODO: move as fragment\n if (!element.if(element, element.state)) {\n const ifFragment = cacheNode({ tag: 'fragment' })\n element.__ifFragment = appendNode(ifFragment, parent.node)\n element.__ifFalsy = true\n }\n }\n\n // if it already HAS a NODE\n if (element.node && !element.__ifFalsy) { // TODO: check on if\n return assignNode(element, parent, assignedKey)\n }\n\n // apply props settings\n if (!element.__ifFalsy) createProps(element, parent)\n\n // run `on.init`\n if (element.on && isFunction(element.on.init)) {\n on.init(element.on.init, element, element.state)\n }\n\n // run `on.beforeClassAssign`\n if (element.on && isFunction(element.on.beforeClassAssign)) {\n on.beforeClassAssign(element.on.beforeClassAssign, element, element.state)\n }\n\n // generate a CLASS name\n assignClass(element)\n\n // CREATE a real NODE\n createNode(element, options)\n\n if (element.__ifFalsy) return element\n\n // assign NODE\n assignNode(element, parent, key)\n\n // run `on.render`\n if (element.on && isFunction(element.on.render)) {\n on.render(element.on.render, element, element.state)\n }\n\n if (parent.__children) parent.__children.push(element.key)\n // console.groupEnd(element.key)\n\n return element\n}\n\nexport const isKeyComponent = (key) => {\n const isFirstKeyString = isString(key)\n if (!isFirstKeyString) return\n\n const firstCharKey = key.slice(0, 1)\n\n return /^[A-Z]*$/.test(firstCharKey)\n}\n\nexport default create\n","'use strict'\n\nimport create from './create'\nimport cacheNode from './cache'\nimport * as on from '../event/on'\n\nimport { exec, isFunction, isObject } from '../utils'\nimport {\n throughInitialDefine,\n throughInitialExec,\n applyEvents\n} from './iterate'\nimport { registry } from './mixins'\nimport { isMethod } from './methods'\n// import { defineSetter } from './methods'\n\nconst ENV = process.env.NODE_ENV\n\n// const defineSetter = (element, key) => Object.defineProperty(element, key, {\n// get: function () {\n// console.log('GET', key)\n// return element.__data[key]\n// },\n// set: function (new_value) {\n// console.log('SET', key, new_value)\n// element.__data[key] = new_value\n// element.__data['modified'] = (new Date()).getTime()\n// }\n// })\n\nexport const createNode = (element, options) => {\n // create and assign a node\n let { node, tag } = element\n\n let isNewNode\n\n if (!node) {\n isNewNode = true\n\n if (element.__ifFalsy) return element\n\n if (tag === 'shadow') {\n node = element.node = element.parent.node.attachShadow({ mode: 'open' })\n } else node = element.node = cacheNode(element)\n\n // run `on.attachNode`\n if (element.on && isFunction(element.on.attachNode)) {\n on.attachNode(element.on.attachNode, element, element.state)\n }\n }\n\n // node.dataset // .key = element.key\n\n if (ENV === 'test' || ENV === 'development') {\n node.ref = element\n if (isFunction(node.setAttribute)) node.setAttribute('key', element.key)\n }\n\n if (element.__ifFalsy) return element\n\n // iterate through all given params\n if (element.tag !== 'string' || element.tag !== 'fragment') {\n // iterate through define\n throughInitialDefine(element, options)\n\n // iterate through exec\n throughInitialExec(element)\n\n // apply events\n if (isNewNode && isObject(element.on)) applyEvents(element)\n\n for (const param in element) {\n const prop = element[param]\n\n if (isMethod(param) || isObject(registry[param]) || prop === undefined) continue\n\n const hasDefined = element.define && element.define[param]\n const ourParam = registry[param]\n const hasOptionsDefine = options.define && options.define[param]\n\n if (options.define) {\n // console.group('create')\n // console.log(param, options.define)\n // console.log(prop, hasOptionsDefine)\n // console.groupEnd('create')\n }\n\n if (ourParam && !hasOptionsDefine) { // Check if param is in our method registry\n if (isFunction(ourParam)) ourParam(prop, element, node, options)\n } else if (element[param] && !hasDefined && !hasOptionsDefine) {\n create(exec(prop, element), element, param, options) // Create element\n }\n }\n }\n\n // node.dataset.key = key\n return element\n}\n\nexport default createNode\n","'use strict'\n\nimport { isObject, exec, isFunction, isNumber, isString, overwrite } from '../utils'\nimport { isMethod } from './methods'\n\nexport const applyEvents = element => {\n const { node, on } = element\n for (const param in on) {\n if (\n param === 'init' ||\n param === 'render' ||\n param === 'update'\n ) continue\n\n const appliedFunction = element.on[param]\n if (isFunction(appliedFunction)) {\n node.addEventListener(param, event =>\n appliedFunction(event, element, element.state),\n true)\n }\n }\n}\n\nexport const throughInitialExec = element => {\n for (const param in element) {\n const prop = element[param]\n if (isFunction(prop) && !isMethod(param)) {\n element.__exec[param] = prop\n element[param] = prop(element, element.state)\n }\n }\n}\n\nexport const throughUpdatedExec = (element, options) => {\n const { __exec } = element\n const changes = {}\n\n for (const param in __exec) {\n const prop = element[param]\n const newExec = __exec[param](element, element.state)\n\n // if element is string\n if (prop && prop.node && (isString(newExec) || isNumber(newExec))) {\n overwrite(prop, { text: newExec }, options)\n } else if (newExec !== prop) {\n element.__cached[param] = changes[param] = prop\n element[param] = newExec\n }\n }\n\n return changes\n}\n\nexport const throughInitialDefine = (element, options) => {\n const { define } = element\n let obj = {}\n \n if (isObject(define)) {\n obj = { ...define }\n }\n if (isObject(options.define)) {\n // console.log('==============')\n // console.log(options.define)\n obj = { ...obj, ...options.define }\n }\n\n for (const param in obj) {\n let prop = element[param]\n\n if (isFunction(prop) && !isMethod(param)) {\n element.__exec[param] = prop\n element[param] = prop = exec(prop, element)\n }\n\n element.__cached[param] = prop\n element[param] = obj[param](prop, element, element.state)\n }\n return element\n}\n\nexport const throughUpdatedDefine = (element, options) => {\n const { define, __exec } = element\n const changes = {}\n let obj = {}\n \n if (isObject(define)) {\n obj = { ...define }\n }\n if (isObject(options.define)) {\n obj = { ...obj, ...options.define }\n }\n\n for (const param in obj) {\n const execParam = __exec[param]\n if (execParam) element.__cached[param] = execParam(element, element.state)\n const cached = exec(element.__cached[param], element)\n element[param] = obj[param](cached, element, element.state)\n }\n return changes\n}\n","'use strict'\n\nimport { isFunction, isObject, isObjectLike } from '../utils'\nimport { registry, parseFilters } from './mixins'\nimport root from './root'\n\nconst ENV = process.env.NODE_ENV\n\n// TODO: update these files\nexport const lookup = function (key) {\n const element = this\n let { parent } = element\n\n while (parent.key !== key) {\n if (parent[key]) return parent[key]\n parent = parent.parent\n if (!parent) return\n }\n\n return parent\n}\n\n// TODO: update these files\nexport const spotByPath = function (path) {\n const element = this\n const arr = [].concat(path)\n let active = root[arr[0]]\n\n if (!arr || !arr.length) return console.log(arr, 'on', element.key, 'is undefined')\n\n while (active.key === arr[0]) {\n arr.shift()\n if (!arr.length) break\n active = active[arr[0]]\n if (!active) return\n }\n\n return active\n}\n\nexport const remove = function (params) {\n const element = this\n if (isFunction(element.node.remove)) element.node.remove()\n else if (ENV === 'test' || ENV === 'development') {\n console.warn('This item cant be removed')\n element.log()\n }\n delete element.parent[element.key]\n}\n\nexport const get = function (param) {\n const element = this\n return element[param]\n}\n\nexport const set = function () {\n}\n\nexport const update = function () {\n}\n\nexport const setProps = function (param, options) {\n const element = this\n if (!param || !element.props) return\n element.update({ props: param }, options)\n return element.props\n}\n\nexport const defineSetter = (element, key, get, set) =>\n Object.defineProperty(element, key, { get, set })\n\nexport const keys = function () {\n const element = this\n const keys = []\n for (const param in element) {\n if (registry[param] && !parseFilters.elementKeys.includes(param))\n continue\n keys.push(param)\n }\n return keys\n}\n\nexport const parse = function () {\n const element = this\n const obj = {}\n const keyList = keys.call(element)\n keyList.forEach(v => (obj[v] = element[v]))\n return obj\n}\n\nexport const parseDeep = function () {\n const element = this\n const obj = parse.call(element)\n for (const k in obj) {\n if (isObjectLike(obj[k])) { obj[k] = parseDeep.call(obj[k]) }\n }\n return obj\n}\n\nexport const log = function (...args) {\n const element = this\n console.group(element.key)\n if (args.length) {\n args.forEach(v => console.log(`%c${v}:\\n`, 'font-weight: bold', element[v]))\n } else {\n console.log(element.path)\n const keys = element.keys()\n keys.forEach(v => console.log(`%c${v}:\\n`, 'font-weight: bold', element[v]))\n }\n console.groupEnd(element.key)\n return element\n}\n\nexport const isMethod = function (param) {\n return param === 'set' ||\n param === 'update' ||\n param === 'remove' ||\n param === 'removeContent' ||\n param === 'lookup' ||\n param === 'spotByPath' ||\n param === 'keys' ||\n param === 'parse' ||\n param === 'setProps' ||\n param === 'parseDeep' ||\n param === 'if' ||\n param === 'log' ||\n param === 'nextElement' ||\n param === 'previousElement'\n}\n\nexport const nextElement = function () {\n const element = this\n const { key, parent } = element\n const { __children } = parent\n\n const currentIndex = __children.indexOf(key)\n const nextChild = __children[currentIndex + 1]\n console.log(nextChild)\n\n return parent[nextChild]\n}\n\nexport const previousElement = function (el) {\n const element = el || this\n const { key, parent } = element\n const { __children } = parent\n\n if (!__children) return\n\n const currentIndex = __children.indexOf(key)\n return parent[__children[currentIndex - 1]]\n}\n","'use strict'\n\nimport attr from './attr'\nimport classList from './classList'\nimport content from './content'\nimport data from './data'\nimport html from './html'\nimport style from './style'\nimport text from './text'\nimport state from './state'\nimport registry from './registry'\nexport {\n attr,\n classList,\n content,\n data,\n style,\n text,\n html,\n state,\n registry,\n}\nexport * from './registry'\n","'use strict'\n\nimport { isNot } from '@domql/utils'\nimport { exec, report } from '../../utils'\n\n/**\n * Recursively add attributes to a DOM node\n */\nexport default (params, element, node) => {\n const { __attr } = element\n if (isNot('object')) report('HTMLInvalidAttr', params)\n if (params) {\n for (const attr in params) {\n const val = exec(params[attr], element)\n // if (__attr[attr] === val) return\n if (val && node.setAttribute) node.setAttribute(attr, val)\n else if (node.removeAttribute) node.removeAttribute(attr)\n __attr[attr] = val\n }\n }\n console.groupEnd(params, __attr)\n}\n","'use strict'\n\nimport { exec, isObject, isString } from '../../utils'\n\nexport const assignClass = (element) => {\n const { key } = element\n if (element.class === true) element.class = key\n else if (!element.class && typeof key === 'string' && key.charAt(0) === '_' && key.charAt(1) !== '_') {\n element.class = key.slice(1)\n }\n}\n\n// stringifies class object\nexport const classify = (obj, element) => {\n let className = ''\n for (const item in obj) {\n const param = obj[item]\n if (typeof param === 'boolean' && param) className += ` ${item}`\n else if (typeof param === 'string') className += ` ${param}`\n else if (typeof param === 'function') {\n className += ` ${exec(param, element)}`\n }\n }\n return className\n}\n\nexport default (params, element, node, live) => {\n if (!params) return\n const { key, __className } = element // eslint-disable-line\n if (params === true) params = element.class = { key }\n if (isString(params)) params = element.class = { default: params }\n if (isObject(params)) params = classify(params, element)\n // TODO: fails on string\n const className = params.replace(/\\s+/g, ' ').trim()\n node.classList = className\n // if (className && className !== __className) node.classList = className\n // element.__className = className\n return className\n}\n","'use strict'\n\nimport set from '../set'\nimport { isEqualDeep } from '../../utils'\n\n/**\n * Appends anything as content\n * an original one as a child\n */\nexport default (param, element, node, options) => {\n if (param && element) {\n if (param.__hash === element.content.__hash && element.content.update) {\n const { define } = element\n element.content.update(param)\n } else {\n set.call(element, param, options)\n }\n }\n}\n","'use strict'\n\nimport create from './create'\nimport { isEqualDeep, isFunction } from '../utils'\nimport { registry } from './mixins'\nimport OPTIONS from './options'\n\nexport const removeContentElement = function (el) {\n const element = el || this\n if (element.content) {\n if (element.content.node) {\n if (element.content.tag === 'fragment') element.node.innerHTML = ''\n else element.node.removeChild(element.content.node)\n }\n\n const { __cached } = element\n if (__cached && __cached.content) {\n if (__cached.content.tag === 'fragment') __cached.content.parent.node.innerHTML = ''\n else if (__cached.content && isFunction(__cached.content.remove)) __cached.content.remove()\n }\n\n delete element.content\n }\n}\n\nconst set = function (params, options, el) {\n const element = el || this\n\n const isEqual = isEqualDeep(params, element.content)\n // console.error(params)\n if (isEqual && element.content.__cached) return element\n removeContentElement(element)\n\n if (params) {\n const { childExtend } = params\n if (!childExtend && element.childExtend) params.childExtend = element.childExtend\n create(params, element, 'content', {\n ignoreChildExtend: true,\n ...registry.defaultOptions,\n ...OPTIONS.create\n })\n }\n\n return element\n}\n\nexport default set\n","'use strict'\n\nexport default {}\n","'use strict'\n\nimport { exec, isObject } from '../../utils'\nimport { report } from '../../utils/report'\n\n/**\n * Apply data parameters on the DOM nodes\n * this should only work if `showOnNode: true` is passed\n */\nexport default (params, element, node) => {\n if (params && params.showOnNode) {\n if (!isObject(params)) report('HTMLInvalidData', params)\n\n // Apply data params on node\n for (const dataset in params) {\n if (dataset !== 'showOnNode') {\n node.dataset[dataset] = exec(params[dataset], element)\n }\n }\n }\n}\n","'use strict'\n\nimport { exec } from '../../utils'\n\n/**\n * Appends raw HTML as content\n * an original one as a child\n */\nexport default (param, element, node) => {\n const prop = exec(param, element)\n if (prop !== element.__html) {\n // const parser = new window.DOMParser()\n // param = parser.parseFromString(param, 'text/html')\n if (node.nodeName === 'SVG') node.textContent = prop\n else node.innerHTML = prop\n\n element.__html = prop\n }\n}\n","'use strict'\n\nimport { isObject, map } from '../../utils'\nimport { report } from '../../utils/report'\n\n/**\n * Recursively add styles to a DOM node\n */\nexport default (params, element, node) => {\n if (params) {\n if (isObject(params)) map(node.style, params, element)\n else report('HTMLInvalidStyles', params)\n }\n}\n","'use strict'\n\nimport { create } from '..'\nimport { exec } from '../../utils'\n\n/**\n * Creates a text node and appends into\n * an original one as a child\n */\nexport const asd = (param, element, node) => {\n const prop = exec(param, element)\n if (element.tag === 'string') {\n node.nodeValue = prop\n }\n else if (param !== undefined || param !== null) {\n if (element.__text && element.__text.text !== prop) return\n element.__text.text = prop\n if (element.__text.node) element.__text.node.nodeValue = prop\n else create({ tag: 'string', text: prop }, element, '__text')\n }\n}\n\nexport default (param, element, node) => {\n const prop = exec(param, element)\n if (element.tag === 'string') {\n if (element.text === prop) return\n node.nodeValue = prop\n }\n else if (param !== undefined || param !== null) {\n if (element.__text) {\n if (element.__text.text === prop) return\n element.__text.text = prop\n if (element.__text.node) element.__text.node.nodeValue = prop\n } else create({ tag: 'string', text: prop }, element, '__text')\n }\n}\n","'use strict'\n\nimport { exec, isObject } from '../../utils'\nimport { IGNORE_STATE_PARAMS } from '../state'\n\nexport default (params, element, node) => {\n const state = exec(params, element)\n\n if (isObject(state)) {\n for (const param in state) {\n if (IGNORE_STATE_PARAMS.includes(param)) continue\n element.state[param] = exec(state[param], element)\n }\n }\n\n return element\n}\n","'use strict'\n\nimport { on } from '../event'\nimport { deepClone, exec, overwriteDeep } from '../utils'\nimport { is, isObject, isFunction, isUndefined } from '@domql/utils'\n\nexport const IGNORE_STATE_PARAMS = [\n 'update', 'parse', 'clean', 'create', 'parent', '__element', '__depends', '__ref', '__root',\n '__components', '__projectSystem', '__projectState', '__projectLibrary',\n 'projectStateUpdate', 'projectSystemUpdate'\n]\n\nexport const parseState = function () {\n const state = this\n const parseState = {}\n for (const param in state) {\n if (!IGNORE_STATE_PARAMS.includes(param)) {\n parseState[param] = state[param]\n }\n }\n return parseState\n}\n\nexport const cleanState = function () {\n const state = this\n for (const param in state) {\n if (!IGNORE_STATE_PARAMS.includes(param)) {\n delete state[param]\n }\n }\n return state\n}\n\nexport const projectSystemUpdate = function (obj, options = {}) {\n const state = this\n if (!state) return\n const rootState = (state.__element.__root || state.__element).state\n rootState.update({ PROJECT_SYSTEM: obj }, options)\n return state\n}\n\nexport const projectStateUpdate = function (obj, options = {}) {\n const state = this\n if (!state) return\n const rootState = (state.__element.__root || state.__element).state\n rootState.update({ PROJECT_STATE: obj }, options)\n return state\n}\n\nexport const updateState = function (obj, options = {}) {\n const state = this\n const element = state.__element\n state.parent = element.parent.state\n\n if (!state.__element) createState(element, element.parent)\n\n // run `on.stateUpdated`\n if (element.on && isFunction(element.on.initStateUpdated)) {\n const initReturns = on.initStateUpdated(element.on.initStateUpdated, element, state, obj)\n if (initReturns === false) return\n }\n\n const stateKey = element.__state\n if (stateKey) {\n // TODO: check for double parent\n if (state.parent && state.parent[stateKey]) {\n const keyInParentState = state.parent[stateKey]\n if (keyInParentState && !options.stopStatePropogation) {\n if (element.__stateType === 'string') {\n return state.parent.update({ [stateKey]: obj.value }, options)\n }\n return state.parent.update({ [stateKey]: obj }, options)\n }\n }\n } else {\n overwriteDeep(state, obj, IGNORE_STATE_PARAMS)\n }\n\n // TODO: try debounce\n if (!options.preventUpdate) { element.update({}, options) } else if (options.preventUpdate === 'recursive') { element.update({}, { ...options, preventUpdate: true }) }\n\n if (state.__depends) {\n for (const el in state.__depends) {\n const findElement = state.__depends[el]\n findElement.clean().update(state.parse(), options)\n }\n }\n\n if (!options.preventUpdateListener && element.on && isFunction(element.on.stateUpdated)) {\n on.stateUpdated(element.on.stateUpdated, element, state, obj)\n }\n}\n\nexport const createState = function (element, parent) {\n let { state, __root } = element\n\n if (isFunction(state)) state = exec(state, element)\n\n if (is(state)('string', 'number')) {\n element.__state = state\n state = {}\n }\n if (state === true) {\n element.__state = element.key\n state = {}\n }\n\n if (!state) {\n if (parent && parent.state) return parent.state\n return {}\n } else {\n element.__hasRootState = true\n }\n\n // run `on.init`\n if (element.on && isFunction(element.on.stateInit)) {\n on.stateInit(element.on.stateInit, element, element.state)\n }\n\n let stateKey = element.__state\n if (stateKey) {\n let parentState = parent.state\n let parentStateKey\n const parents = stateKey.split('../')\n for (let i = 1; i < parents.length; i++) {\n stateKey = parents[i]\n parentState = parentState.parent\n }\n if (stateKey.includes('.')) {\n [parentStateKey, stateKey] = stateKey.split('.')\n parentState = parentState[parentStateKey]\n }\n if (parentState && parentState[stateKey]) {\n const keyInParentState = parentState[stateKey]\n if (is(keyInParentState)('object', 'array')) {\n state = deepClone(keyInParentState)\n } else if (is(keyInParentState)('string', 'number')) {\n state = { value: keyInParentState }\n element.__stateType = 'string'\n } else if (isUndefined(keyInParentState)) {\n console.warn(stateKey, 'is not in present', 'replacing with ', {})\n state = {}\n }\n }\n }\n\n // reference other state\n const { __ref } = state\n if (__ref) {\n state = deepClone(__ref, IGNORE_STATE_PARAMS)\n if (isObject(__ref.__depends)) {\n __ref.__depends[element.key] = state\n } else __ref.__depends = { [element.key]: state }\n } else {\n state = deepClone(state, IGNORE_STATE_PARAMS)\n }\n\n element.state = state\n state.clean = cleanState\n state.parse = parseState\n state.update = updateState\n state.create = createState\n state.parent = element.parent.state\n state.__element = element\n state.__root = __root ? __root.state : state\n\n // editor stuff\n state.projectSystemUpdate = projectSystemUpdate\n state.projectStateUpdate = projectStateUpdate\n state.__components = (state.__root || state).COMPONENTS\n state.__projectSystem = (state.__root || state).PROJECT_SYSTEM\n state.__projectState = (state.__root || state).PROJECT_STATE\n state.__projectLibrary = (state.__root || state).PROJECT_LIBRARY\n\n // run `on.stateCreated`\n if (element.on && isFunction(element.on.stateCreated)) {\n on.stateCreated(element.on.stateCreated, element, state)\n }\n\n return state\n}\n\nexport default createState\n","'use strict'\n\nimport {\n attr,\n style,\n text,\n html,\n content,\n data,\n classList,\n state\n} from '.'\n\nexport default {\n attr,\n style,\n text,\n html,\n content,\n data,\n class: classList,\n state,\n\n extend: {},\n childExtend: {},\n childExtendRecursive: {},\n props: {},\n path: {},\n if: {},\n define: {},\n transform: {},\n __hash: {},\n __componentKey: {},\n __cached: {},\n __defined: {},\n __exec: {},\n __changes: {},\n __trash: {},\n __root: {},\n __props: {},\n __extend: {},\n __ifFragment: {},\n __children: {},\n __ifFalsy: {},\n __text: {},\n __element: {},\n __html: {},\n __class: {},\n __className: {},\n __classNames: {},\n __attr: {},\n __state: {},\n __stateType: {},\n __currentSnapshot: {},\n __hasRootState: {},\n nextElement: {},\n previousElement: {},\n key: {},\n tag: {},\n query: {},\n parent: {},\n node: {},\n set: {},\n update: {},\n setProps: {},\n remove: {},\n removeContent: {},\n lookup: {},\n spotByPath: {},\n keys: {},\n log: {},\n parse: {},\n parseDeep: {},\n on: {},\n component: {},\n context: {}\n}\n\n// List of keys for .parse() and .parseDeep() to include in the result.\n// Keys not in the array are excluded.\nexport const parseFilters = {\n elementKeys: [\n 'tag', 'text', 'style', 'attr', 'class', 'state', 'class',\n 'data', 'content', 'html'\n // TODO: 'props' ?\n ],\n propsKeys: ['__element'],\n stateKeys: []\n}\n","'use strict'\n\n/**\n * Receives child and parent nodes as parametes\n * and assigns them into real DOM tree\n */\nexport const appendNode = (node, parentNode) => {\n parentNode.appendChild(node)\n return node\n}\n\n/**\n * Receives elements and assigns the first\n * parameter as a child of the second one\n */\nexport const assignNode = (element, parent, key) => {\n parent[key || element.key] = element\n if (element.tag !== 'shadow') {\n appendNode(element.node, parent.node)\n }\n return element\n}\n","'use strict'\n\nimport { isFunction, exec, getExtendStack, jointStacks, cloneAndMergeArrayExtend, deepMergeExtend, isString } from '../utils'\n\nconst ENV = process.env.NODE_ENV\n\n/**\n * Checks whether element has `extend` or is a part\n * of parent's `childExtend` extend\n */\nexport const applyExtend = (element, parent, options = {}) => {\n if (isFunction(element)) element = exec(element, parent)\n\n let { extend, props } = element\n if (isString(extend)) extend = options.components[extend]\n const extendStack = getExtendStack(extend)\n\n if (ENV !== 'test' || ENV !== 'development') delete element.extend\n\n let childExtendStack = []\n if (parent) {\n // Assign parent attr to the element\n element.parent = parent\n if (!options.ignoreChildExtend) {\n if (props && props.ignoreChildExtend) return\n\n childExtendStack = getExtendStack(parent.childExtend)\n\n if (parent.childExtendRecursive) {\n const childExtendRecursiveStack = getExtendStack(parent.childExtendRecursive)\n childExtendStack = childExtendStack.concat(childExtendRecursiveStack)\n element.childExtendRecursive = parent.childExtendRecursive\n }\n }\n }\n\n const extendLength = extendStack.length\n const childExtendLength = childExtendStack.length\n\n let stack = []\n if (extendLength && childExtendLength) {\n stack = jointStacks(extendStack, childExtendStack)\n } else if (extendLength) {\n stack = extendStack\n } else if (childExtendLength) {\n stack = childExtendStack\n } else if (!options.extend) return element\n\n if (options.extend) {\n const defaultOptionsExtend = getExtendStack(options.extend)\n stack = [].concat(stack, defaultOptionsExtend)\n }\n\n element.__extend = stack\n let mergedExtend = cloneAndMergeArrayExtend(stack)\n\n const component = exec(element.component || mergedExtend.component, element)\n if (component && options.components && options.components[component]) {\n const componentExtend = cloneAndMergeArrayExtend(getExtendStack(options.components[component]))\n mergedExtend = deepMergeExtend(componentExtend, mergedExtend)\n }\n\n return deepMergeExtend(element, mergedExtend)\n}\n","'use strict'\n\nimport { deepClone, deepMerge, exec, isArray, isObject, isString } from '../utils'\n\nconst initProps = (element, parent) => {\n const { props } = element\n const propsStack = []\n\n const isMatch = isString(props) && props.indexOf('match') > -1\n const matchParent = parent.props && parent.props[element.key]\n const matchParentChild = parent.props && parent.props.childProps\n\n const objectizeStringProperty = propValue => {\n if (isString(propValue)) return { inheritedString: propValue }\n return propValue\n }\n\n if (matchParent && props !== 'match') propsStack.push(matchParent)\n if (matchParentChild) propsStack.push(matchParentChild)\n\n if (isObject(props)) {\n propsStack.push(props)\n }\n\n if (props === 'inherit') {\n if (parent.props) propsStack.push(parent.props)\n } else if (isMatch) {\n const hasArg = props.split(' ')\n let matchParentValue\n // console.log('hasArg', hasArg)\n if (hasArg[1] && parent.props[hasArg[1]]) {\n const secondArgasParentMatchProp = parent.props[hasArg[1]]\n propsStack.push(\n objectizeStringProperty(secondArgasParentMatchProp)\n )\n } else if (matchParent) {\n propsStack.push(\n objectizeStringProperty(matchParent)\n )\n }\n propsStack.push(matchParentValue)\n } else if (props) propsStack.push(props)\n\n if (isArray(element.__extend)) {\n element.__extend.map(extend => {\n if (extend.props) propsStack.push(extend.props)\n return extend.props\n })\n }\n\n return propsStack\n}\n\nconst inheritProps = (element, parent) => {\n element.props = (parent && parent.props) || { update, __element: element }\n}\n\nexport const syncProps = (props, element) => {\n element.props = {}\n const mergedProps = { update, __element: element }\n props.forEach(v => {\n if (v === 'update' || v === '__element') return\n element.props = deepMerge(mergedProps, deepClone(exec(v, element)))\n })\n element.props = mergedProps\n return element.props\n}\n\nconst createProps = function (element, parent, cached) {\n const propsStack = cached || initProps(element, parent)\n\n if (propsStack.length) {\n element.__props = propsStack\n syncProps(propsStack, element)\n element.props.update = update\n } else inheritProps(element, parent)\n\n return element\n}\n\nexport const updateProps = (newProps, element, parent) => {\n let propsStack = element.__props\n\n if (newProps) propsStack = element.__props = [].concat(newProps, propsStack)\n\n if (propsStack) syncProps(propsStack, element)\n else inheritProps(element, parent)\n\n // console.log(cachedProps)\n return element\n}\n\nfunction update (props, options) {\n const element = this.__element\n // element.update({ props })\n element.update({ props }, options)\n}\n\nexport default createProps\n","'use strict'\n\nimport { overwrite, isFunction, isObject, isString, isNumber, createSnapshotId, merge } from '../utils'\nimport { registry } from './mixins'\nimport { on } from '../event'\nimport { isMethod } from './methods'\nimport { throughUpdatedDefine, throughUpdatedExec } from './iterate'\nimport { appendNode } from './assign'\nimport { createNode } from './node'\nimport { updateProps } from './props'\nimport createState from './state'\nimport { diff } from '@domql/utils'\nimport { window } from '@domql/globals'\n\nconst snapshot = {\n snapshotId: createSnapshotId\n}\n\nconst UPDATE_DEFAULT_OPTIONS = {\n stackChanges: false,\n cleanExec: true,\n preventRecursive: false,\n currentSnapshot: false,\n calleeElement: false\n}\n\nconst update = function (params = {}, options = UPDATE_DEFAULT_OPTIONS) {\n const element = this\n const { define, parent, node } = element\n\n const { currentSnapshot, calleeElement } = options\n if (!calleeElement) {\n element.__currentSnapshot = snapshot.snapshotId()\n }\n const snapshotOnCallee = element.__currentSnapshot || (calleeElement && calleeElement.__currentSnapshot)\n if (snapshotOnCallee && currentSnapshot < snapshotOnCallee) {\n // console.log(calleeElement)\n // console.log(currentSnapshot, snapshotOnCallee, 'cancelling')\n // return\n }\n\n if (isString(params) || isNumber(params)) {\n params = { text: params }\n }\n\n if (isFunction(element.if)) {\n // TODO: move as fragment\n const ifPassed = element.if(element, element.state)\n\n if (ifPassed) delete element.__ifFalsy\n if (element.__ifFalsy && ifPassed) {\n createNode(element)\n appendNode(element.node, element.__ifFragment)\n } else if (element.node && !ifPassed) {\n element.node.remove()\n element.__ifFalsy = true\n }\n }\n\n if (element.__state) {\n const keyInParentState = parent.state[element.__state]\n if (keyInParentState) {\n const newState = element.__stateType === 'string'\n ? createState(element, parent)\n : createState(element, parent)\n const changes = diff(newState.parse(), element.state.parse())\n\n // run `on.stateUpdated`\n if (element.on && isFunction(element.on.initStateUpdated)) {\n const initReturns = on.initStateUpdated(element.on.initStateUpdated, element, element.state, changes)\n if (initReturns === false) return\n }\n\n element.state = newState\n\n if (!options.preventUpdateListener && element.on && isFunction(element.on.stateUpdated)) {\n on.stateUpdated(element.on.stateUpdated, element, element.state, changes)\n }\n }\n } else if (!element.__hasRootState) element.state = (parent && parent.state) || {}\n\n if (!element.__ifFalsy && !options.preventPropsUpdate) updateProps(params.props, element, parent)\n\n if (element.on && isFunction(element.on.initUpdate) && !options.ignoreInitUpdate) {\n const whatinitreturns = on.initUpdate(element.on.initUpdate, element, element.state)\n if (whatinitreturns === false) return\n }\n\n const overwriteChanges = overwrite(element, params, UPDATE_DEFAULT_OPTIONS)\n const execChanges = throughUpdatedExec(element, UPDATE_DEFAULT_OPTIONS)\n const definedChanges = throughUpdatedDefine(element, options)\n\n if (options.stackChanges && element.__stackChanges) {\n const stackChanges = merge(definedChanges, merge(execChanges, overwriteChanges))\n element.__stackChanges.push(stackChanges)\n }\n\n if (element.__ifFalsy) return false\n if (!node) {\n // return createNode(element, options)\n return\n }\n\n for (const param in element) {\n const prop = element[param]\n\n if (\n options.preventDefineUpdate === true ||\n options.preventDefineUpdate === param ||\n (options.preventContentUpdate && param === 'content') ||\n (options.preventStateUpdate && param) === 'state' ||\n isMethod(param) || isObject(registry[param]) || prop === undefined\n ) continue\n if (options.preventStateUpdate === 'once') options.preventStateUpdate = false\n\n const hasDefined = define && define[param]\n const ourParam = registry[param]\n\n const hasOptionsDefine = options.define && options.define[param]\n\n if (ourParam && !hasOptionsDefine) {\n if (isFunction(ourParam)) {\n ourParam(prop, element, node)\n }\n } else if (prop && isObject(prop) && !hasDefined && !hasOptionsDefine) {\n if (!options.preventRecursive) {\n const childUpdateCall = () => update.call(prop, params[prop], {\n ...options,\n currentSnapshot: snapshotOnCallee,\n calleeElement: element\n })\n if (element.props.lazyLoad || options.lazyLoad) {\n window.requestAnimationFrame(() => childUpdateCall())\n } else childUpdateCall()\n }\n }\n }\n\n if (!options.preventUpdate && element.on && isFunction(element.on.update)) {\n on.update(element.on.update, element, element.state)\n }\n}\n\nexport default update\n","'use strict'\n\nimport { registry } from './mixins'\nimport { report } from '../utils'\n\nexport default (params, options = {}) => {\n const { overwrite } = options\n for (const param in params) {\n if (registry[param] && !overwrite) {\n report('OverwriteToBuiltin', param)\n } else registry[param] = params[param]\n }\n}\n","'use strict'\n\nimport create from './create'\nimport { assignNode } from './assign'\n\nconst parse = (element) => {\n const virtualTree = {\n node: document.createElement('div')\n }\n\n if (element && element.node) assignNode(element, virtualTree)\n else create(element, virtualTree)\n\n return virtualTree.node.innerHTML\n}\n\nexport default parse\n","'use strict'\n\n// import rootScroll from './onScroll'\n\n// var scrollIfPinned = rootScroll.data.scrollTop > 50 ? {\n// position: 'fixed'\n// } : {\n// position: 'absolute'\n// }\n\nexport default {\n tag: 'header',\n text: 'header',\n style: {\n padding: 10,\n fontSize: 24,\n backgroundColor: 'snow',\n // ...scrollIfPinned,\n top: 0\n }\n}\n","'use strict'\n\nexport default {\n tag: 'footer',\n text: 'footer',\n style: {\n padding: 10,\n fontSize: 24,\n backgroundColor: 'snow',\n position: 'fixed',\n bottom: 0\n }\n}\n","'use strict'\n\nexport default {\n tag: 'svg',\n class: 'icon',\n define: {\n name: param => `transformed ${param}`\n },\n html: element => `${element.name}`\n}\n"],"names":["window","DOM","header","footer","Icon","icon","extend","name","performance","now","list","i","afrika","text","parseInt","Math","random","tag","attr","align","style","background","color","padding","lion","opacity","yay","root","create","later","console","log","parse","set","define","tree","ENV","process","env","NODE_ENV","nodes","cache","createNode","assign","update","lookup","remove","get","setProps","keys","head","body","document","report","key","node","errors","en","DocumentNotDefined","title","description","OverwriteToBuiltin","BrowserNotDefined","SetQuickPreferancesIsNotObject","InvalidParams","CantCreateWithoutNode","HTMLInvalidTag","HTMLInvalidAttr","HTMLInvalidData","HTMLInvalidStyles","HTMLInvalidText","err","arg","element","currentLang","errObj","Error","memoize","fn","args","n","result","debounce","func","timeout","timer","clearTimeout","setTimeout","apply","isTagRegistered","indexOf","isObject","constructor","Object","isString","isNumber","isFunction","isArray","Array","isObjectLike","isNode","obj","Node","nodeType","nodeName","isHtmlElement","HTMLElement","isDefined","exec","param","state","map","extention","e","merge","elementProp","objProp","undefined","deepMerge","extendProp","clone","o","prop","deepClone","excluding","mergeArray","isEqualDeep","paramProp","isEqual","overwrite","params","options","changes","paramsProp","__cached","cleanExec","__exec","overwriteDeep","mergeIfExisted","a","b","arr","reduce","c","mergeAndCloneIfArray","flattenRecursive","stack","objectized","push","extendOfExtend","createID","index","newId","createSnapshotId","generateHash","toString","substring","extendStackRegistry","extendCachedRegistry","getHashedExtend","__hash","setHashedExtend","hash","getExtendStackRegistry","concat","extractArrayExtend","forEach","each","flattenExtend","deepExtend","extendOflattenExtend","deepCloneExtend","x","deepMergeExtend","cloneAndMergeArrayExtend","jointStacks","extendStack","childExtendStack","slice","getExtendStack","getExtendMerged","can","cachedElements","createTextNode","createDocumentFragment","createElementNS","createElement","detectTag","tagExists","isKeyATag","render","cachedTag","clonedNode","cloneNode","nodeValue","on","is","beforeClassAssign","init","initUpdate","attachNode","stateInit","stateCreated","initStateUpdated","stateUpdated","isValid","appendNode","assignNode","applyExtend","removeContentElement","createState","createProps","assignClass","parseDeep","spotByPath","nextElement","previousElement","isMethod","cacheNode","registry","throughInitialExec","OPTIONS","parent","warn","path","extendTag","childExtendTag","childExtend","isKeyValidHTMLTag","assignedKey","props","childProps","isKeyComponent","hasComponentAttrs","componentKey","split","display","components","execExtend","context","onlyResolveExtends","__attr","__ifFalsy","hasDefined","ourParam","hasOptionsDefine","__element","__props","length","defaultOptions","ignoreChildExtend","transform","__class","__classNames","__changes","__children","hasRoot","__root","removeContent","if","ifFragment","__ifFragment","isFirstKeyString","firstCharKey","test","throughInitialDefine","applyEvents","isNewNode","attachShadow","mode","ref","setAttribute","appliedFunction","addEventListener","event","throughUpdatedExec","newExec","throughUpdatedDefine","execParam","cached","parseFilters","active","shift","defineSetter","defineProperty","elementKeys","includes","keyList","call","v","k","group","groupEnd","currentIndex","nextChild","el","classList","content","data","html","isNot","val","removeAttribute","class","charAt","classify","className","item","live","__className","default","replace","trim","innerHTML","removeChild","showOnNode","dataset","__html","textContent","asd","__text","IGNORE_STATE_PARAMS","isUndefined","parseState","cleanState","projectSystemUpdate","rootState","PROJECT_SYSTEM","projectStateUpdate","PROJECT_STATE","updateState","initReturns","stateKey","__state","keyInParentState","stopStatePropogation","__stateType","value","preventUpdate","__depends","findElement","clean","preventUpdateListener","__hasRootState","parentState","parentStateKey","parents","__ref","__components","COMPONENTS","__projectSystem","__projectState","__projectLibrary","PROJECT_LIBRARY","childExtendRecursive","__componentKey","__defined","__trash","__extend","__currentSnapshot","query","component","propsKeys","stateKeys","parentNode","appendChild","childExtendRecursiveStack","extendLength","childExtendLength","defaultOptionsExtend","mergedExtend","componentExtend","initProps","propsStack","isMatch","matchParent","matchParentChild","objectizeStringProperty","propValue","inheritedString","hasArg","matchParentValue","secondArgasParentMatchProp","inheritProps","syncProps","mergedProps","updateProps","newProps","diff","snapshot","snapshotId","UPDATE_DEFAULT_OPTIONS","stackChanges","preventRecursive","currentSnapshot","calleeElement","snapshotOnCallee","ifPassed","newState","preventPropsUpdate","ignoreInitUpdate","whatinitreturns","overwriteChanges","execChanges","definedChanges","__stackChanges","preventDefineUpdate","preventContentUpdate","preventStateUpdate","childUpdateCall","lazyLoad","requestAnimationFrame","virtualTree","fontSize","backgroundColor","top","position","bottom"],"version":3,"file":"index.f10f902a.js.map","sourceRoot":"/__parcel_source_root/"}
1
+ {"mappings":"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AA,GAAAA,eAAM,AAANA;AAZF,8CAaEG,CAAAA,GAAAA,iBAAQ,AAARA;AAbF,yCAcEf,CAAAA,GAAAA,mBAAG,AAAHA;AAdF,yCAeEc,CAAAA,GAAAA,YAAG,AAAHA;AAfF,yCAgBEhB,CAAAA,GAAAA,YAAG,AAAHA;AAhBF,0CAiBEkB,CAAAA,GAAAA,aAAI,AAAJA;AA/BF;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;AACA;;AACA;;AACA;;AACA;;AAEA;AAdA;;;ACAA;;AAAA;kBAEe;IACbtB,MAAM;QACJ;QACA;KACD;IAEDuB,MAAM;QACJ;QACA;QACA;QACA;KACD;IAEDC,MAAM;QACJ;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QAEA,MAAA;QACA;QACA;KADA;AAGJ;;;AC5IA;;AAEA;AACA;AAHA;AAKA,MAAMxB,OAAO;IACX2B,KAAK;IACLC,MAAMH,CAAAA,GAAAA,iBAAQ,AAARA,IAAWA,CAAAA,GAAAA,iBAAQ,AAARA,EAASD,IAAI,GAAGE,CAAAA,GAAAA,aAAM,AAANA,EAAO,sBAAsBD,CAAAA,GAAAA,iBAAQ,AAARA,EAA9DG;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,MAAM,YAAY;IACvB,MAAM;QACJ;QACA;KACD;IAED,MAAM;QACJ;QACA;QACA;QACA;KACD;IAED,MAAM;QACJ;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QAEA,MAAM;QACN;QACA;KACD;AACH;;;AC1IA;;0CAIa;yCAKA;2CAMA;+CAWA;2CAiBA;+CAYA;+CAsBA;0CAmBA;kDAmBA;mDAkBA;oDAgBA;gDAQA;0DAOA;sDAOA;iDAYA;AArLb;AAFA;AAIO,MAAM,OAAO,CAAC,OAAO,SAAS,QAAU;IAC7C,IAAI,CAAA,GAAA,iBAAU,AAAD,EAAE,QAAQ,OAAO,MAAM,SAAS,SAAS,QAAQ,KAAK;IACnE,OAAO;AACT;AAEO,MAAM,MAAM,CAAC,KAAK,WAAW,UAAY;IAC9C,IAAK,MAAM,KAAK,UACd,GAAG,CAAC,EAAE,GAAG,KAAK,SAAS,CAAC,EAAE,EAAE;AAEhC;AAEO,MAAM,QAAQ,CAAC,SAAS,MAAQ;IACrC,IAAK,MAAM,KAAK,IAAK;QACnB,MAAM,cAAc,OAAO,CAAC,EAAE;QAC9B,MAAM,UAAU,GAAG,CAAC,EAAE;QACtB,IAAI,gBAAgB,WAClB,OAAO,CAAC,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","sources":["node_modules/@parcel/runtime-browser-hmr/lib/runtime-53cd5ee63becbca0.js","examples/index.js","node_modules/@domql/globals/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","src/index.js","src/element/index.js","src/element/nodes.js","src/element/root.js","src/utils/index.js","src/utils/report.js","src/utils/object.js","src/utils/node.js","src/utils/extendUtils.js","node_modules/@domql/utils/index.js","node_modules/@domql/utils/types.js","node_modules/@domql/tags/index.js","node_modules/@domql/tags/htmlTags.js","node_modules/@domql/utils/object.js","node_modules/@domql/utils/function.js","node_modules/@domql/utils/array.js","node_modules/@domql/utils/node.js","node_modules/@domql/utils/log.js","src/element/tree.js","src/element/cache.js","src/event/index.js","src/event/on.js","src/event/can.js","src/event/is.js","src/element/create.js","src/element/node.js","src/element/iterate.js","src/element/methods.js","src/element/mixins/index.js","src/element/mixins/attr.js","src/element/mixins/classList.js","src/element/mixins/content.js","src/element/set.js","src/element/options.js","src/element/mixins/data.js","src/element/mixins/html.js","src/element/mixins/style.js","src/element/mixins/text.js","src/element/mixins/state.js","src/element/state.js","src/element/mixins/registry.js","src/element/assign.js","src/element/extend.js","src/element/props.js","src/element/update.js","src/element/define.js","src/element/parse.js","examples/header.js","examples/footer.js","examples/icon.js"],"sourcesContent":["var HMR_HOST = null;var HMR_PORT = null;var HMR_SECURE = false;var HMR_ENV_HASH = \"d6ea1d42532a7575\";module.bundle.HMR_BUNDLE_ID = \"c709b6a7f10f902a\";\"use strict\";\n\n/* global HMR_HOST, HMR_PORT, HMR_ENV_HASH, HMR_SECURE, chrome, browser, globalThis, __parcel__import__, __parcel__importScripts__, ServiceWorkerGlobalScope */\n\n/*::\nimport type {\n HMRAsset,\n HMRMessage,\n} from '@parcel/reporter-dev-server/src/HMRServer.js';\ninterface ParcelRequire {\n (string): mixed;\n cache: {|[string]: ParcelModule|};\n hotData: mixed;\n Module: any;\n parent: ?ParcelRequire;\n isParcelRequire: true;\n modules: {|[string]: [Function, {|[string]: string|}]|};\n HMR_BUNDLE_ID: string;\n root: ParcelRequire;\n}\ninterface ParcelModule {\n hot: {|\n data: mixed,\n accept(cb: (Function) => void): void,\n dispose(cb: (mixed) => void): void,\n // accept(deps: Array<string> | string, cb: (Function) => void): void,\n // decline(): void,\n _acceptCallbacks: Array<(Function) => void>,\n _disposeCallbacks: Array<(mixed) => void>,\n |};\n}\ninterface ExtensionContext {\n runtime: {|\n reload(): void,\n getURL(url: string): string;\n getManifest(): {manifest_version: number, ...};\n |};\n}\ndeclare var module: {bundle: ParcelRequire, ...};\ndeclare var HMR_HOST: string;\ndeclare var HMR_PORT: string;\ndeclare var HMR_ENV_HASH: string;\ndeclare var HMR_SECURE: boolean;\ndeclare var chrome: ExtensionContext;\ndeclare var browser: ExtensionContext;\ndeclare var __parcel__import__: (string) => Promise<void>;\ndeclare var __parcel__importScripts__: (string) => Promise<void>;\ndeclare var globalThis: typeof self;\ndeclare var ServiceWorkerGlobalScope: Object;\n*/\nvar OVERLAY_ID = '__parcel__error__overlay__';\nvar OldModule = module.bundle.Module;\n\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData,\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n module.bundle.hotData = undefined;\n}\n\nmodule.bundle.Module = Module;\nvar checkedAssets\n/*: {|[string]: boolean|} */\n, acceptedAssets\n/*: {|[string]: boolean|} */\n, assetsToAccept\n/*: Array<[ParcelRequire, string]> */\n;\n\nfunction getHostname() {\n return HMR_HOST || (location.protocol.indexOf('http') === 0 ? location.hostname : 'localhost');\n}\n\nfunction getPort() {\n return HMR_PORT || location.port;\n} // eslint-disable-next-line no-redeclare\n\n\nvar parent = module.bundle.parent;\n\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = getHostname();\n var port = getPort();\n var protocol = HMR_SECURE || location.protocol == 'https:' && !/localhost|127.0.0.1|0.0.0.0/.test(hostname) ? 'wss' : 'ws';\n var ws = new WebSocket(protocol + '://' + hostname + (port ? ':' + port : '') + '/'); // Web extension context\n\n var extCtx = typeof chrome === 'undefined' ? typeof browser === 'undefined' ? null : browser : chrome; // Safari doesn't support sourceURL in error stacks.\n // eval may also be disabled via CSP, so do a quick check.\n\n var supportsSourceURL = false;\n\n try {\n (0, eval)('throw new Error(\"test\"); //# sourceURL=test.js');\n } catch (err) {\n supportsSourceURL = err.stack.includes('test.js');\n } // $FlowFixMe\n\n\n ws.onmessage = async function (event\n /*: {data: string, ...} */\n ) {\n checkedAssets = {}\n /*: {|[string]: boolean|} */\n ;\n acceptedAssets = {}\n /*: {|[string]: boolean|} */\n ;\n assetsToAccept = [];\n var data\n /*: HMRMessage */\n = JSON.parse(event.data);\n\n if (data.type === 'update') {\n // Remove error overlay if there is one\n if (typeof document !== 'undefined') {\n removeErrorOverlay();\n }\n\n let assets = data.assets.filter(asset => asset.envHash === HMR_ENV_HASH); // Handle HMR Update\n\n let handled = assets.every(asset => {\n return asset.type === 'css' || asset.type === 'js' && hmrAcceptCheck(module.bundle.root, asset.id, asset.depsByBundle);\n });\n\n if (handled) {\n console.clear(); // Dispatch custom event so other runtimes (e.g React Refresh) are aware.\n\n if (typeof window !== 'undefined' && typeof CustomEvent !== 'undefined') {\n window.dispatchEvent(new CustomEvent('parcelhmraccept'));\n }\n\n await hmrApplyUpdates(assets);\n\n for (var i = 0; i < assetsToAccept.length; i++) {\n var id = assetsToAccept[i][1];\n\n if (!acceptedAssets[id]) {\n hmrAcceptRun(assetsToAccept[i][0], id);\n }\n }\n } else fullReload();\n }\n\n if (data.type === 'error') {\n // Log parcel errors to console\n for (let ansiDiagnostic of data.diagnostics.ansi) {\n let stack = ansiDiagnostic.codeframe ? ansiDiagnostic.codeframe : ansiDiagnostic.stack;\n console.error('🚨 [parcel]: ' + ansiDiagnostic.message + '\\n' + stack + '\\n\\n' + ansiDiagnostic.hints.join('\\n'));\n }\n\n if (typeof document !== 'undefined') {\n // Render the fancy html overlay\n removeErrorOverlay();\n var overlay = createErrorOverlay(data.diagnostics.html); // $FlowFixMe\n\n document.body.appendChild(overlay);\n }\n }\n };\n\n ws.onerror = function (e) {\n console.error(e.message);\n };\n\n ws.onclose = function () {\n console.warn('[parcel] 🚨 Connection to the HMR server was lost');\n };\n}\n\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n\n if (overlay) {\n overlay.remove();\n console.log('[parcel] ✨ Error resolved');\n }\n}\n\nfunction createErrorOverlay(diagnostics) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n let errorHTML = '<div style=\"background: black; opacity: 0.85; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; font-family: Menlo, Consolas, monospace; z-index: 9999;\">';\n\n for (let diagnostic of diagnostics) {\n let stack = diagnostic.frames.length ? diagnostic.frames.reduce((p, frame) => {\n return `${p}\n<a href=\"/__parcel_launch_editor?file=${encodeURIComponent(frame.location)}\" style=\"text-decoration: underline; color: #888\" onclick=\"fetch(this.href); return false\">${frame.location}</a>\n${frame.code}`;\n }, '') : diagnostic.stack;\n errorHTML += `\n <div>\n <div style=\"font-size: 18px; font-weight: bold; margin-top: 20px;\">\n 🚨 ${diagnostic.message}\n </div>\n <pre>${stack}</pre>\n <div>\n ${diagnostic.hints.map(hint => '<div>💡 ' + hint + '</div>').join('')}\n </div>\n ${diagnostic.documentation ? `<div>📝 <a style=\"color: violet\" href=\"${diagnostic.documentation}\" target=\"_blank\">Learn more</a></div>` : ''}\n </div>\n `;\n }\n\n errorHTML += '</div>';\n overlay.innerHTML = errorHTML;\n return overlay;\n}\n\nfunction fullReload() {\n if ('reload' in location) {\n location.reload();\n } else if (extCtx && extCtx.runtime && extCtx.runtime.reload) {\n extCtx.runtime.reload();\n }\n}\n\nfunction getParents(bundle, id)\n/*: Array<[ParcelRequire, string]> */\n{\n var modules = bundle.modules;\n\n if (!modules) {\n return [];\n }\n\n var parents = [];\n var k, d, dep;\n\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n\n if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) {\n parents.push([bundle, k]);\n }\n }\n }\n\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n\n return parents;\n}\n\nfunction updateLink(link) {\n var newLink = link.cloneNode();\n\n newLink.onload = function () {\n if (link.parentNode !== null) {\n // $FlowFixMe\n link.parentNode.removeChild(link);\n }\n };\n\n newLink.setAttribute('href', // $FlowFixMe\n link.getAttribute('href').split('?')[0] + '?' + Date.now()); // $FlowFixMe\n\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\n\nvar cssTimeout = null;\n\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n\n for (var i = 0; i < links.length; i++) {\n // $FlowFixMe[incompatible-type]\n var href\n /*: string */\n = links[i].getAttribute('href');\n var hostname = getHostname();\n var servedFromHMRServer = hostname === 'localhost' ? new RegExp('^(https?:\\\\/\\\\/(0.0.0.0|127.0.0.1)|localhost):' + getPort()).test(href) : href.indexOf(hostname + ':' + getPort());\n var absolute = /^https?:\\/\\//i.test(href) && href.indexOf(location.origin) !== 0 && !servedFromHMRServer;\n\n if (!absolute) {\n updateLink(links[i]);\n }\n }\n\n cssTimeout = null;\n }, 50);\n}\n\nfunction hmrDownload(asset) {\n if (asset.type === 'js') {\n if (typeof document !== 'undefined') {\n let script = document.createElement('script');\n script.src = asset.url + '?t=' + Date.now();\n\n if (asset.outputFormat === 'esmodule') {\n script.type = 'module';\n }\n\n return new Promise((resolve, reject) => {\n var _document$head;\n\n script.onload = () => resolve(script);\n\n script.onerror = reject;\n (_document$head = document.head) === null || _document$head === void 0 ? void 0 : _document$head.appendChild(script);\n });\n } else if (typeof importScripts === 'function') {\n // Worker scripts\n if (asset.outputFormat === 'esmodule') {\n return __parcel__import__(asset.url + '?t=' + Date.now());\n } else {\n return new Promise((resolve, reject) => {\n try {\n __parcel__importScripts__(asset.url + '?t=' + Date.now());\n\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n }\n }\n }\n}\n\nasync function hmrApplyUpdates(assets) {\n global.parcelHotUpdate = Object.create(null);\n let scriptsToRemove;\n\n try {\n // If sourceURL comments aren't supported in eval, we need to load\n // the update from the dev server over HTTP so that stack traces\n // are correct in errors/logs. This is much slower than eval, so\n // we only do it if needed (currently just Safari).\n // https://bugs.webkit.org/show_bug.cgi?id=137297\n // This path is also taken if a CSP disallows eval.\n if (!supportsSourceURL) {\n let promises = assets.map(asset => {\n var _hmrDownload;\n\n return (_hmrDownload = hmrDownload(asset)) === null || _hmrDownload === void 0 ? void 0 : _hmrDownload.catch(err => {\n // Web extension bugfix for Chromium\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1255412#c12\n if (extCtx && extCtx.runtime && extCtx.runtime.getManifest().manifest_version == 3) {\n if (typeof ServiceWorkerGlobalScope != 'undefined' && global instanceof ServiceWorkerGlobalScope) {\n extCtx.runtime.reload();\n return;\n }\n\n asset.url = extCtx.runtime.getURL('/__parcel_hmr_proxy__?url=' + encodeURIComponent(asset.url + '?t=' + Date.now()));\n return hmrDownload(asset);\n }\n\n throw err;\n });\n });\n scriptsToRemove = await Promise.all(promises);\n }\n\n assets.forEach(function (asset) {\n hmrApply(module.bundle.root, asset);\n });\n } finally {\n delete global.parcelHotUpdate;\n\n if (scriptsToRemove) {\n scriptsToRemove.forEach(script => {\n if (script) {\n var _document$head2;\n\n (_document$head2 = document.head) === null || _document$head2 === void 0 ? void 0 : _document$head2.removeChild(script);\n }\n });\n }\n }\n}\n\nfunction hmrApply(bundle\n/*: ParcelRequire */\n, asset\n/*: HMRAsset */\n) {\n var modules = bundle.modules;\n\n if (!modules) {\n return;\n }\n\n if (asset.type === 'css') {\n reloadCSS();\n } else if (asset.type === 'js') {\n let deps = asset.depsByBundle[bundle.HMR_BUNDLE_ID];\n\n if (deps) {\n if (modules[asset.id]) {\n // Remove dependencies that are removed and will become orphaned.\n // This is necessary so that if the asset is added back again, the cache is gone, and we prevent a full page reload.\n let oldDeps = modules[asset.id][1];\n\n for (let dep in oldDeps) {\n if (!deps[dep] || deps[dep] !== oldDeps[dep]) {\n let id = oldDeps[dep];\n let parents = getParents(module.bundle.root, id);\n\n if (parents.length === 1) {\n hmrDelete(module.bundle.root, id);\n }\n }\n }\n }\n\n if (supportsSourceURL) {\n // Global eval. We would use `new Function` here but browser\n // support for source maps is better with eval.\n (0, eval)(asset.output);\n } // $FlowFixMe\n\n\n let fn = global.parcelHotUpdate[asset.id];\n modules[asset.id] = [fn, deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n }\n}\n\nfunction hmrDelete(bundle, id) {\n let modules = bundle.modules;\n\n if (!modules) {\n return;\n }\n\n if (modules[id]) {\n // Collect dependencies that will become orphaned when this module is deleted.\n let deps = modules[id][1];\n let orphans = [];\n\n for (let dep in deps) {\n let parents = getParents(module.bundle.root, deps[dep]);\n\n if (parents.length === 1) {\n orphans.push(deps[dep]);\n }\n } // Delete the module. This must be done before deleting dependencies in case of circular dependencies.\n\n\n delete modules[id];\n delete bundle.cache[id]; // Now delete the orphans.\n\n orphans.forEach(id => {\n hmrDelete(module.bundle.root, id);\n });\n } else if (bundle.parent) {\n hmrDelete(bundle.parent, id);\n }\n}\n\nfunction hmrAcceptCheck(bundle\n/*: ParcelRequire */\n, id\n/*: string */\n, depsByBundle\n/*: ?{ [string]: { [string]: string } }*/\n) {\n if (hmrAcceptCheckOne(bundle, id, depsByBundle)) {\n return true;\n } // Traverse parents breadth first. All possible ancestries must accept the HMR update, or we'll reload.\n\n\n let parents = getParents(module.bundle.root, id);\n let accepted = false;\n\n while (parents.length > 0) {\n let v = parents.shift();\n let a = hmrAcceptCheckOne(v[0], v[1], null);\n\n if (a) {\n // If this parent accepts, stop traversing upward, but still consider siblings.\n accepted = true;\n } else {\n // Otherwise, queue the parents in the next level upward.\n let p = getParents(module.bundle.root, v[1]);\n\n if (p.length === 0) {\n // If there are no parents, then we've reached an entry without accepting. Reload.\n accepted = false;\n break;\n }\n\n parents.push(...p);\n }\n }\n\n return accepted;\n}\n\nfunction hmrAcceptCheckOne(bundle\n/*: ParcelRequire */\n, id\n/*: string */\n, depsByBundle\n/*: ?{ [string]: { [string]: string } }*/\n) {\n var modules = bundle.modules;\n\n if (!modules) {\n return;\n }\n\n if (depsByBundle && !depsByBundle[bundle.HMR_BUNDLE_ID]) {\n // If we reached the root bundle without finding where the asset should go,\n // there's nothing to do. Mark as \"accepted\" so we don't reload the page.\n if (!bundle.parent) {\n return true;\n }\n\n return hmrAcceptCheck(bundle.parent, id, depsByBundle);\n }\n\n if (checkedAssets[id]) {\n return true;\n }\n\n checkedAssets[id] = true;\n var cached = bundle.cache[id];\n assetsToAccept.push([bundle, id]);\n\n if (!cached || cached.hot && cached.hot._acceptCallbacks.length) {\n return true;\n }\n}\n\nfunction hmrAcceptRun(bundle\n/*: ParcelRequire */\n, id\n/*: string */\n) {\n var cached = bundle.cache[id];\n bundle.hotData = {};\n\n if (cached && cached.hot) {\n cached.hot.data = bundle.hotData;\n }\n\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData);\n });\n }\n\n delete bundle.cache[id];\n bundle(id);\n cached = bundle.cache[id];\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n var assetsToAlsoAccept = cb(function () {\n return getParents(module.bundle.root, id);\n });\n\n if (assetsToAlsoAccept && assetsToAccept.length) {\n // $FlowFixMe[method-unbinding]\n assetsToAccept.push.apply(assetsToAccept, assetsToAlsoAccept);\n }\n });\n }\n\n acceptedAssets[id] = true;\n}","'use strict'\n\nimport { window } from '@domql/globals'\nimport DOM from '../src'\n\nimport header from './header'\nimport footer from './footer'\nimport Icon from './icon'\n\nconst icon = {\n extend: Icon,\n name: 'toke'\n}\n\nconst { performance } = window\nconst now = performance.now()\n\nconst list = []\nfor (let i = 0; i < 35; i++) {\n const afrika = {\n text: `Hello Afrika - ${parseInt(Math.random() * 100)}`,\n tag: 'li',\n attr: {\n align: 'right'\n },\n style: {\n background: 'black',\n color: 'white',\n padding: 10\n }\n }\n\n const lion = {\n text: 'Lion',\n style: {\n color: 'black',\n opacity: Math.random(),\n background: 'yellow'\n }\n }\n\n const yay = 'yay'\n\n afrika.lion = lion\n afrika.yay = yay\n\n list[i] = afrika\n}\n\nconst root = {\n header,\n list,\n icon,\n footer\n}\n\nDOM.create(root)\n\nconst later = performance.now()\nconsole.log(later - now)\n","'use strict'\n\nconst global = globalThis\nconst self = globalThis\nconst window = globalThis\nconst document = window.document // eslint-disable-line\n\nexport { global, self, window, document }\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","'use strict'\n\nimport { window } from '@domql/globals'\nimport { create, parse, set, define, tree } from './element'\n\nconst ENV = process.env.NODE_ENV\nif (ENV === 'test' || ENV === 'development') window.tree = tree\n\nexport default {\n create,\n parse,\n set,\n define,\n tree\n}\n","'use strict'\n\nimport nodes from './nodes'\nimport root from './root'\nimport tree from './tree'\nimport cache from './cache'\nimport create from './create'\nimport createNode from './node'\nimport * as assign from './assign'\nimport define from './define'\nimport update from './update'\nimport parse from './parse'\nimport set from './set'\n\nimport { lookup, remove, get, setProps, log, keys } from './methods'\n\nexport {\n nodes,\n root,\n tree,\n cache,\n create,\n createNode,\n assign,\n define,\n remove,\n update,\n parse,\n lookup,\n setProps,\n set,\n get,\n log,\n keys\n}\n","'use strict'\n\nexport default {\n root: [\n 'body',\n 'html'\n ],\n\n head: [\n 'title',\n 'base',\n 'meta',\n 'style'\n ],\n\n body: [\n 'html',\n 'body',\n 'string',\n 'fragment',\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'meter',\n 'nav',\n 'noframes',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strike',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n\n // SVG\n 'svg',\n 'path'\n ]\n}\n","'use strict'\n\nimport { document } from '@domql/globals'\nimport { report } from '../utils'\n\nconst root = {\n key: ':root',\n node: document ? document.body : report('DocumentNotDefined', document)\n}\n\nexport default root\n","'use strict'\n\nexport * from './report'\nexport * from './object'\nexport * from './node'\nexport * from './extendUtils'\n","'use strict'\n\nexport const errors = {\n en: {\n DocumentNotDefined: {\n title: 'Document is undefined',\n description: 'To tweak with DOM, you should use browser.'\n },\n OverwriteToBuiltin: {\n title: 'Overwriting to builtin method',\n description: 'Overwriting a builtin method in the global define is not possible, please choose different name'\n },\n BrowserNotDefined: {\n title: 'Can\\'t recognize environment',\n description: 'Environment should be browser application, that can run Javascript'\n },\n SetQuickPreferancesIsNotObject: {\n title: 'Quick preferances object is required',\n description: 'Please pass a plain object with \"lang\", \"culture\" and \"area\" properties'\n },\n InvalidParams: {\n title: 'Params are invalid',\n description: 'Please pass a plain object with \"lang\", \"culture\" and \"area\" properties'\n },\n CantCreateWithoutNode: {\n title: 'You must provide node',\n description: 'Can\\'t create DOM element without setting node or text'\n },\n HTMLInvalidTag: {\n title: 'Element tag name (or DOM nodeName) is invalid',\n description: 'To create element, you must provide valid DOM node. See full list of them at here: http://www.w3schools.com/tags/'\n },\n HTMLInvalidAttr: {\n title: 'Attibutes object is invalid',\n description: 'Please pass a valid plain object to apply as an attributes for a DOM node'\n },\n HTMLInvalidData: {\n title: 'Data object is invalid',\n description: 'Please pass a valid plain object to apply as an dataset for a DOM node'\n },\n HTMLInvalidStyles: {\n title: 'Styles object is invalid',\n description: 'Please pass a valid plain object to apply as an style for a DOM node'\n },\n HTMLInvalidText: {\n title: 'Text string is invalid',\n description: 'Please pass a valid string to apply text to DOM node'\n }\n }\n}\n\nexport const report = (err, arg, element) => {\n const currentLang = 'en'\n let errObj\n if (err && typeof err === 'string') errObj = errors[currentLang][err]\n\n return new Error(\n `\"${err}\", \"${arg}\"\\n\\n`,\n `${errObj.description}`,\n element ? `\\n\\n${element}` : ''\n )\n}\n","'use strict'\n\nimport { window } from '@domql/globals'\nimport nodes from '../element/nodes'\n\nexport const memoize = (fn) => {\n const cache = {}\n return (...args) => {\n const n = args[0]\n if (n in cache) {\n return cache[n]\n } else {\n const result = fn(n)\n cache[n] = result\n return result\n }\n }\n}\n\nexport const debounce = (element, func, timeout = 300) => {\n let timer\n return (...args) => {\n clearTimeout(timer)\n timer = setTimeout(() => { func.apply(element, args) }, timeout)\n }\n}\n\nexport const isTagRegistered = arg => nodes.body.indexOf(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isNumber = arg => typeof arg === 'number'\n\nexport const isFunction = arg => typeof arg === 'function'\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n // if (isArray(arg)) return false\n return (typeof arg === 'object')\n}\n\nexport const isNode = obj => {\n return (\n typeof window.Node === 'object'\n ? obj instanceof window.Node\n : obj && typeof obj === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isHtmlElement = obj => {\n return (\n typeof window.HTMLElement === 'object'\n ? obj instanceof window.HTMLElement // DOM2\n : obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isDefined = arg => {\n return isObject(arg) ||\n isObjectLike(arg) ||\n isString(arg) ||\n isNumber(arg) ||\n isFunction(arg) ||\n isArray(arg) ||\n isObjectLike(arg)\n}\n\nexport const exec = (param, element, state) => {\n if (isFunction(param)) return param(element, state || element.state)\n return param\n}\n\nexport const map = (obj, extention, element) => {\n for (const e in extention) {\n obj[e] = exec(extention[e], element)\n }\n}\n\nexport const merge = (element, obj) => {\n for (const e in obj) {\n const elementProp = element[e]\n const objProp = obj[e]\n if (elementProp === undefined) {\n element[e] = objProp\n }\n }\n return element\n}\n\nexport const deepMerge = (element, extend) => {\n // console.groupCollapsed('deepMerge:')\n for (const e in extend) {\n const elementProp = element[e]\n const extendProp = extend[e]\n // const cachedProps = cache.props\n if (e === 'parent' || e === 'props' || e === 'state') continue\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp)\n }\n }\n // console.groupEnd('deepMerge:')\n return element\n}\n\nexport const clone = obj => {\n const o = {}\n for (const prop in obj) {\n if (prop === 'node') continue\n o[prop] = obj[prop]\n }\n return o\n}\n\n/**\n * Deep cloning of object\n */\nexport const deepClone = (obj, excluding = ['parent', 'node', '__element', 'state', '__root', 'context']) => {\n const o = isArray(obj) ? [] : {}\n for (const prop in obj) {\n if (excluding.indexOf(prop) > -1) continue\n let objProp = obj[prop]\n if (prop === 'extend' && isArray(objProp)) {\n objProp = mergeArray(objProp)\n }\n if (isObjectLike(objProp)) {\n o[prop] = deepClone(objProp)\n } else o[prop] = objProp\n }\n return o\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const isEqualDeep = (param, element) => {\n if (param === element) return true\n if (!param || !element) return false\n for (const prop in param) {\n const paramProp = param[prop]\n const elementProp = element[prop]\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp)\n if (!isEqual) return false\n } else {\n const isEqual = paramProp === elementProp\n if (!isEqual) return false\n }\n }\n return true\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwrite = (element, params, options) => {\n const changes = {}\n\n for (const e in params) {\n if (e === 'props' || e === 'state') continue\n\n const elementProp = element[e]\n const paramsProp = params[e]\n\n if (paramsProp !== undefined) {\n element.__cached[e] = changes[e] = elementProp\n element[e] = paramsProp\n }\n\n if (options.cleanExec) delete element.__exec[e]\n }\n\n return changes\n}\n\nexport const overwriteShallow = (obj, params, excluding = ['node', '__root']) => {\n for (const e in params) {\n if (excluding.indexOf(e) > -1) continue\n obj[e] = params[e]\n }\n return obj\n}\n\n/**\n * Overwrites DEEPly object properties with another\n */\nexport const overwriteDeep = (obj, params, excluding = ['node', '__root']) => {\n for (const e in params) {\n if (excluding.indexOf(e) > -1) continue\n const objProp = obj[e]\n const paramsProp = params[e]\n if (isObjectLike(objProp) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp, paramsProp)\n } else if (paramsProp !== undefined) {\n obj[e] = paramsProp\n }\n }\n return obj\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b)) return deepMerge(a, b)\n return a || b\n}\n\n/**\n * Merges array extends\n */\nexport const mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {})\n}\n\n/**\n * Merges array extends\n */\nexport const mergeAndCloneIfArray = obj => {\n return isArray(obj) ? mergeArray(obj) : deepClone(obj)\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const flattenRecursive = (param, prop, stack = []) => {\n const objectized = mergeAndCloneIfArray(param)\n stack.push(objectized)\n\n const extendOfExtend = objectized[prop]\n if (extendOfExtend) flattenRecursive(extendOfExtend, prop, stack)\n\n delete objectized[prop]\n\n return stack\n}\n","'use strict'\n\nexport const createID = (function () {\n let index = 0\n\n function newId () {\n index++\n return index\n }\n\n return newId\n})()\n\nexport const createSnapshotId = createID\n","'use strict'\n\nimport { isArray, isFunction, isObject } from '@domql/utils'\n\nexport const generateHash = () => Math.random().toString(36).substring(2)\n\n// hashing\nexport const extendStackRegistry = {}\nexport const extendCachedRegistry = {}\n\nexport const getHashedExtend = extend => {\n return extendStackRegistry[extend.__hash]\n}\n\nexport const setHashedExtend = (extend, stack) => {\n const hash = generateHash()\n extend.__hash = hash\n extendStackRegistry[hash] = stack\n return stack\n}\n\nexport const getExtendStackRegistry = (extend, stack) => {\n if (extend.__hash) { return stack.concat(getHashedExtend(extend)) }\n return setHashedExtend(extend, stack) // stack .concat(hashedExtend)\n}\n\n// stacking\nexport const extractArrayExtend = (extend, stack) => {\n extend.forEach(each => flattenExtend(each, stack))\n return stack\n}\n\nexport const deepExtend = (extend, stack) => {\n const extendOflattenExtend = extend.extend\n if (extendOflattenExtend) {\n flattenExtend(extendOflattenExtend, stack)\n }\n return stack\n}\n\nexport const flattenExtend = (extend, stack) => {\n if (!extend) return stack\n if (isArray(extend)) return extractArrayExtend(extend, stack)\n stack.push(extend)\n if (extend.extend) deepExtend(extend, stack)\n return stack\n}\n\n// merging\nexport const deepCloneExtend = obj => {\n const o = {}\n for (const prop in obj) {\n if (['parent', 'node', '__element', '__root', '__key'].indexOf(prop) > -1) continue\n const objProp = obj[prop]\n if (isObject(objProp)) {\n o[prop] = deepCloneExtend(objProp)\n } else if (isArray(objProp)) {\n o[prop] = objProp.map(x => x)\n } else o[prop] = objProp\n }\n return o\n}\n\nexport const deepMergeExtend = (element, extend) => {\n for (const e in extend) {\n if (['parent', 'node', '__element', '__root', '__key'].indexOf(e) > -1) continue\n const elementProp = element[e]\n const extendProp = extend[e]\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObject(elementProp) && isObject(extendProp)) {\n deepMergeExtend(elementProp, extendProp)\n } else if (isArray(elementProp) && isArray(extendProp)) {\n element[e] = elementProp.concat(extendProp)\n } else if (isArray(elementProp) && isObject(extendProp)) {\n const obj = deepMergeExtend({}, elementProp)\n element[e] = deepMergeExtend(obj, extendProp)\n } else if (elementProp === undefined && isFunction(extendProp)) {\n element[e] = extendProp\n }\n }\n return element\n}\n\nexport const cloneAndMergeArrayExtend = stack => {\n return stack.reduce((a, c) => {\n return deepMergeExtend(a, deepCloneExtend(c))\n }, {})\n}\n\n// joint stacks\nexport const jointStacks = (extendStack, childExtendStack) => {\n return []\n .concat(extendStack.slice(0, 1))\n .concat(childExtendStack.slice(0, 1))\n .concat(extendStack.slice(1))\n .concat(childExtendStack.slice(1))\n}\n\n// init\nexport const getExtendStack = extend => {\n if (!extend) return []\n if (extend.__hash) return getHashedExtend(extend) || []\n const stack = flattenExtend(extend, [])\n return getExtendStackRegistry(extend, stack)\n}\n\nexport const getExtendMerged = extend => {\n const stack = getExtendStack(extend)\n return cloneAndMergeArrayExtend(stack)\n}\n","'use strict'\n\nexport * from './types'\nexport * from './object'\nexport * from './function'\nexport * from './array'\nexport * from './node'\nexport * from './log'\n","'use strict'\n\nimport { window } from '@domql/globals'\nimport { HTML_TAGS } from '@domql/tags'\n\nexport const isValidHtmlTag = arg => HTML_TAGS.body.indexOf(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isNumber = arg => typeof arg === 'number'\n\nexport const isFunction = arg => typeof arg === 'function'\n\nexport const isBoolean = arg => arg === true || arg === false\n\nexport const isNull = arg => arg === null\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n // if (isArray(arg)) return false\n return (typeof arg === 'object')\n}\n\nexport const isNode = obj => {\n return (\n typeof window.Node === 'object'\n ? obj instanceof window.Node\n : obj && typeof obj === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isHtmlElement = obj => {\n return (\n typeof window.HTMLElement === 'object'\n ? obj instanceof window.HTMLElement // DOM2\n : obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isDefined = arg => {\n return isObject(arg) ||\n isObjectLike(arg) ||\n isString(arg) ||\n isNumber(arg) ||\n isFunction(arg) ||\n isArray(arg) ||\n isObjectLike(arg) ||\n isBoolean(arg) ||\n isNull(arg)\n}\n\nexport const isUndefined = arg => {\n return arg === undefined\n}\n\nexport const TYPES = {\n boolean: isBoolean,\n array: isArray,\n object: isObject,\n string: isString,\n number: isNumber,\n null: isNull,\n function: isFunction,\n objectLike: isObjectLike,\n node: isNode,\n htmlElement: isHtmlElement,\n defined: isDefined\n}\n\nexport const is = (arg) => {\n return (...args) => {\n return args.map(val => TYPES[val](arg)).filter(v => v).length > 0\n }\n}\n\nexport const isNot = (arg) => {\n return (...args) => {\n return args.map(val => TYPES[val](arg)).filter(v => v).length === 0\n }\n}\n","'use strict'\n\nexport * from './htmlTags'\n","'use strict'\n\nexport const HTML_TAGS = {\n root: [\n 'body',\n 'html'\n ],\n\n head: [\n 'title',\n 'base',\n 'meta',\n 'style'\n ],\n\n body: [\n 'string',\n 'fragment',\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'meter',\n 'nav',\n 'noframes',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strike',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n\n // SVG\n 'svg',\n 'path'\n ]\n}\n","'use strict'\n\nimport { isFunction, isObjectLike, isObject, isArray } from './types'\n\nexport const exec = (param, element, state) => {\n if (isFunction(param)) return param(element, state || element.state)\n return param\n}\n\nexport const map = (obj, extention, element) => {\n for (const e in extention) {\n obj[e] = exec(extention[e], element)\n }\n}\n\nexport const merge = (element, obj) => {\n for (const e in obj) {\n const elementProp = element[e]\n const objProp = obj[e]\n if (elementProp === undefined) {\n element[e] = objProp\n }\n }\n return element\n}\n\nexport const deepMerge = (element, extend) => {\n // console.groupCollapsed('deepMerge:')\n for (const e in extend) {\n const elementProp = element[e]\n const extendProp = extend[e]\n // const cachedProps = cache.props\n if (e === 'parent' || e === 'props') continue\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp)\n }\n }\n // console.groupEnd('deepMerge:')\n return element\n}\n\nexport const clone = obj => {\n const o = {}\n for (const prop in obj) {\n if (prop === 'node') continue\n o[prop] = obj[prop]\n }\n return o\n}\n\n/**\n * Deep cloning of object\n */\nexport const deepClone = (obj) => {\n if (isArray(obj)) {\n return obj.map(deepClone)\n }\n const o = {}\n for (const prop in obj) {\n let objProp = obj[prop]\n if (prop === 'extend' && isArray(objProp)) {\n objProp = mergeArray(objProp)\n }\n if (isArray(objProp)) {\n o[prop] = objProp.map(deepClone)\n } else if (isObject(objProp)) {\n o[prop] = deepClone(objProp)\n } else o[prop] = objProp\n }\n return o\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwrite = (element, params, options) => {\n const { ref } = element\n const changes = {}\n\n for (const e in params) {\n if (e === 'props') continue\n\n const elementProp = element[e]\n const paramsProp = params[e]\n\n if (paramsProp) {\n ref.__cache[e] = changes[e] = elementProp\n ref[e] = paramsProp\n }\n }\n\n return changes\n}\n\nexport const diff = (obj, original, cache) => {\n const changes = cache || {}\n for (const e in obj) {\n if (e === 'ref') continue\n const originalProp = original[e]\n const objProp = obj[e]\n if (isObjectLike(originalProp) && isObjectLike(objProp)) {\n changes[e] = {}\n diff(originalProp, objProp, changes[e])\n } else if (objProp !== undefined) {\n changes[e] = objProp\n }\n }\n return changes\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwriteObj = (params, obj) => {\n const changes = {}\n\n for (const e in params) {\n const objProp = obj[e]\n const paramsProp = params[e]\n\n if (paramsProp) {\n obj[e] = changes[e] = objProp\n }\n }\n\n return changes\n}\n\n/**\n * Overwrites DEEPly object properties with another\n */\nexport const overwriteDeep = (params, obj) => {\n for (const e in params) {\n const objProp = obj[e]\n const paramsProp = params[e]\n if (isObjectLike(objProp) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp, paramsProp)\n } else if (paramsProp !== undefined) {\n obj[e] = paramsProp\n }\n }\n return obj\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b)) return deepMerge(a, b)\n return a || b\n}\n\n/**\n * Merges array extendtypes\n */\nexport const mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {})\n}\n\n/**\n * Merges array extendtypes\n */\nexport const mergeAndCloneIfArray = obj => {\n return isArray(obj) ? mergeArray(obj) : deepClone(obj)\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const flattenRecursive = (param, prop, stack = []) => {\n const objectized = mergeAndCloneIfArray(param)\n stack.push(objectized)\n\n const extendOfExtend = objectized[prop]\n if (extendOfExtend) flattenRecursive(extendOfExtend, prop, stack)\n\n delete objectized[prop]\n\n return stack\n}\n\nexport const isEqualDeep = (param, element) => {\n if (param === element) return true\n if (!param || !element) return false\n for (const prop in param) {\n const paramProp = param[prop]\n const elementProp = element[prop]\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp)\n if (!isEqual) return false\n } else {\n const isEqual = paramProp === elementProp\n if (!isEqual) return false\n }\n }\n return true\n}\n","'use strict'\n\nexport const debounce = (element, func, timeout = 300) => {\n let timer\n return (...args) => {\n clearTimeout(timer)\n timer = setTimeout(() => { func.apply(element, args) }, timeout)\n }\n}\n\nexport const memoize = (fn) => {\n const cache = {}\n return (...args) => {\n const n = args[0]\n if (n in cache) {\n return cache[n]\n } else {\n const result = fn(n)\n cache[n] = result\n return result\n }\n }\n}\n","'use strict'\n","'use strict'\n\nexport const cleanWithNode = extend => delete extend.node && extend\n\nexport const createID = (function * () {\n let index = 1\n while (index < index + 1) {\n yield index++\n }\n}())\n","'use strict'\n\nexport const logIf = (bool, ...arg) => { if (bool) arg.map(v => console.log(v)) }\nexport const logGroupIf = (bool, key, ...arg) => {\n if (bool) {\n console.group(key)\n arg.map(v => console.log(v))\n console.groupEnd(key)\n }\n}\n","'use strict'\n\nimport root from './root'\n\nexport default root\n","'use strict'\n\nimport { document } from '@domql/globals'\nimport { can } from '../event'\nimport { exec, isString, isTagRegistered, report } from '../utils'\n\nconst cachedElements = {}\n\nconst createNode = (element) => {\n const { tag } = element\n if (tag) {\n if (tag === 'string') return document.createTextNode(element.text)\n else if (tag === 'fragment') {\n return document.createDocumentFragment()\n } else if (tag === 'svg' || tag === 'path') { // change that\n return document.createElementNS('http://www.w3.org/2000/svg', tag)\n } else return document.createElement(tag)\n } else {\n return document.createElement('div')\n }\n}\n\nexport const detectTag = element => {\n let { tag, key } = element\n tag = exec(tag, element)\n\n if (tag === true) tag = key\n\n if (isString(tag)) {\n const tagExists = isTagRegistered(tag) > -1\n if (tagExists) return tag\n } else {\n const isKeyATag = isTagRegistered(key) > -1\n if (isKeyATag) return key\n }\n\n return 'div'\n}\n\nexport default (element) => {\n const tag = element.tag = detectTag(element)\n\n if (!can.render(element)) {\n return report('HTMLInvalidTag')\n }\n\n let cachedTag = cachedElements[tag]\n if (!cachedTag) cachedTag = cachedElements[tag] = createNode(element)\n\n const clonedNode = cachedTag.cloneNode(true)\n if (tag === 'string') clonedNode.nodeValue = element.text\n return clonedNode\n}\n","'use strict'\n\nimport * as on from './on'\nimport * as can from './can'\nimport * as is from './is'\n\nexport {\n on,\n can,\n is\n}\n","'use strict'\n\nexport const beforeClassAssign = (param, element, state) => {\n return param(element, state)\n}\n\nexport const init = (param, element, state) => {\n return param(element, state)\n}\n\nexport const render = (param, element, state) => {\n return param(element, state)\n}\n\nexport const initUpdate = (param, element, state) => {\n return param(element, state)\n}\n\nexport const attachNode = (param, element, state) => {\n return param(element, state)\n}\n\nexport const stateInit = (param, element, state) => {\n return param(element, state)\n}\n\nexport const stateCreated = (param, element, state) => {\n return param(element, state)\n}\n\nexport const initStateUpdated = (param, element, state, changes) => {\n return param(element, state, changes)\n}\n\nexport const stateUpdated = (param, element, state, changes) => {\n return param(element, state, changes)\n}\n\nexport const update = (param, element, state) => {\n return param(element, state)\n}\n","'use strict'\n\nimport { nodes } from '../element'\nimport { report } from '../utils'\n\nexport const render = (element) => {\n const tag = element.tag || 'div'\n const isValid = nodes.body.indexOf(tag) > -1\n return isValid || report('HTMLInvalidTag')\n}\n","'use strict'\n\nimport { window } from '@domql/globals'\n\nexport const node = (node) => {\n const { Node } = window\n return (\n typeof Node === 'function'\n ? node instanceof Node\n : node &&\n typeof node === 'object' &&\n typeof node.nodeType === 'number' &&\n typeof node.tag === 'string'\n )\n}\n","'use strict'\n\nimport root from './root'\nimport createNode from './node'\nimport { appendNode, assignNode } from './assign'\nimport { applyExtend } from './extend'\nimport nodes from './nodes'\nimport set, { removeContentElement } from './set'\nimport createState from './state'\nimport createProps from './props'\nimport update from './update'\nimport { on } from '../event'\nimport { assignClass } from './mixins/classList'\nimport { isObject, isFunction, isNumber, isString, createID, isNode, exec } from '../utils'\nimport { remove, lookup, setProps, log, keys, parse, parseDeep, spotByPath, nextElement, previousElement, isMethod } from './methods'\nimport cacheNode, { detectTag } from './cache'\nimport { registry } from './mixins'\nimport { throughInitialExec } from './iterate'\nimport OPTIONS from './options'\n// import { overwrite, clone, fillTheRest } from '../utils'\n\nconst ENV = process.env.NODE_ENV\n\n/**\n * Creating a domQL element using passed parameters\n */\nconst create = (element, parent, key, options = OPTIONS.create || {}) => {\n if (options && !OPTIONS.create) OPTIONS.create = options\n\n // if ELEMENT is not given\n if (element === undefined) {\n if (ENV === 'test' || ENV === 'development') { console.warn(key, 'element is undefined in', parent && parent.path) }\n element = {}\n }\n if (element === null) return\n if (element === true) element = { text: true }\n\n // if element is extend\n if (element.__hash) {\n element = { extend: element }\n }\n\n // if PARENT is not given\n if (!parent) parent = root\n if (isNode(parent)) parent = root[`${key}_parent`] = { key: ':root', node: parent }\n\n // if element is STRING\n if (isString(element) || isNumber(element)) {\n const extendTag = element.extend && element.extend.tag\n const childExtendTag = parent.childExtend && parent.childExtend.tag\n const isKeyValidHTMLTag = ((nodes.body.indexOf(key) > -1) && key)\n element = {\n text: element,\n tag: extendTag || childExtendTag || isKeyValidHTMLTag || 'string'\n }\n }\n\n // define KEY\n const assignedKey = (element.key || key || createID()).toString()\n\n const { extend, props, state, childExtend, childProps } = element\n\n if (isKeyComponent(assignedKey)) {\n const hasComponentAttrs = extend || childExtend || props || state || element.on\n const componentKey = assignedKey.split('_')[0]\n if (!hasComponentAttrs || childProps) {\n parent[assignedKey] = element = {\n extend: componentKey || assignedKey,\n props: { ...element }\n }\n } else if (!extend || extend === true) {\n parent[assignedKey] = element = {\n ...element,\n extend: componentKey || assignedKey\n }\n }\n }\n\n // Responsive rendering\n // TODO: move as define plugin\n if (assignedKey.slice(0, 1) === '@') {\n if (props) {\n props.display = 'none'\n if (props[assignedKey]) props[assignedKey].display = props.display\n else props[assignedKey] = { display: props.display || 'block' }\n } else {\n parent[assignedKey] = element = {\n ...element,\n props: {\n display: 'none',\n [assignedKey]: { display: 'block' }\n }\n }\n }\n }\n\n // assign context\n if (options.context && !root.context) root.context = options.context\n element.context = root.context\n const { context } = element\n\n if (context && context.components) {\n const { components } = context\n const { extend } = element\n const execExtend = exec(extend, element)\n if (isString(execExtend)) {\n if (components[execExtend]) element.extend = components[execExtend]\n else {\n if (ENV === 'test' || ENV === 'development') {\n console.warn(execExtend, 'is not in library', components, element)\n console.warn('replacing with ', {})\n }\n element.extend = {}\n }\n }\n }\n\n // Only resolve extends, skip everything else\n if (options.onlyResolveExtends) {\n applyExtend(element, parent, options)\n element.key = assignedKey\n element.tag = detectTag(element)\n\n if (!element.__exec) element.__exec = {}\n if (!element.__attr) element.__attr = {}\n if (!element.__ifFalsy) createProps(element, parent)\n element.state = createState(element, parent, { skip: true })\n\n throughInitialExec(element)\n\n for (const param in element) {\n const prop = element[param]\n if (isMethod(param) || isObject(registry[param]) || prop === undefined) continue\n\n const hasDefined = element.define && element.define[param]\n const ourParam = registry[param]\n const hasOptionsDefine = options.define && options.define[param]\n if (ourParam && !hasOptionsDefine) {\n continue // if (isFunction(ourParam)) ourParam(prop, element, element.node, options)\n } else if (element[param] && !hasDefined && !hasOptionsDefine) {\n create(exec(prop, element), element, param, options)\n }\n }\n\n // createNode(element, options)\n\n delete element.parent\n delete element.update\n delete element.__element\n\n // added by createProps\n delete element.__props\n delete element.props.__element\n delete element.props.update\n\n // added by createState\n delete element.state.__element\n delete element.state.__element\n delete element.__hasRootState\n\n return element\n }\n\n // create EXTEND inheritance\n applyExtend(element, parent, options)\n\n if (Object.keys(options).length) {\n registry.defaultOptions = options\n if (options.ignoreChildExtend) delete options.ignoreChildExtend\n }\n\n // create and assign a KEY\n element.key = assignedKey\n\n // enable TRANSFORM in data\n if (!element.transform) element.transform = {}\n\n // enable CACHING\n if (!element.__cached) element.__cached = {}\n\n // enable EXEC\n if (!element.__exec) element.__exec = {}\n\n // enable CLASS CACHING\n if (!element.__class) element.__class = {}\n if (!element.__classNames) element.__classNames = {}\n\n // enable CLASS CACHING\n if (!element.__attr) element.__attr = {}\n\n // enable CHANGES storing\n if (!element.__changes) element.__changes = []\n\n // enable CHANGES storing\n if (!element.__children) element.__children = []\n\n // Add _root element property\n const hasRoot = parent && parent.key === ':root'\n if (!element.__root) element.__root = hasRoot ? element : parent.__root\n\n // set the PATH array\n if (ENV === 'test' || ENV === 'development') {\n if (!parent.path) parent.path = []\n element.path = parent.path.concat(assignedKey)\n }\n\n // assign METHODS\n element.set = set\n element.update = update\n element.remove = remove\n element.removeContent = removeContentElement\n element.setProps = setProps\n element.lookup = lookup\n element.spotByPath = spotByPath\n element.parse = parse\n element.parseDeep = parseDeep\n element.keys = keys\n element.nextElement = nextElement\n element.previousElement = previousElement\n if (ENV === 'test' || ENV === 'development') {\n element.log = log\n }\n\n // enable STATE\n element.state = createState(element, parent)\n\n // don't render IF in condition\n if (isFunction(element.if)) {\n // TODO: move as fragment\n if (!element.if(element, element.state)) {\n const ifFragment = cacheNode({ tag: 'fragment' })\n element.__ifFragment = appendNode(ifFragment, parent.node)\n element.__ifFalsy = true\n }\n }\n\n // if it already HAS a NODE\n if (element.node && !element.__ifFalsy) { // TODO: check on if\n return assignNode(element, parent, assignedKey)\n }\n\n // apply props settings\n if (!element.__ifFalsy) createProps(element, parent)\n\n // run `on.init`\n if (element.on && isFunction(element.on.init)) {\n on.init(element.on.init, element, element.state)\n }\n\n // run `on.beforeClassAssign`\n if (element.on && isFunction(element.on.beforeClassAssign)) {\n on.beforeClassAssign(element.on.beforeClassAssign, element, element.state)\n }\n\n // generate a CLASS name\n assignClass(element)\n\n // CREATE a real NODE\n createNode(element, options)\n\n if (element.__ifFalsy) return element\n\n // assign NODE\n assignNode(element, parent, key)\n\n // run `on.render`\n if (element.on && isFunction(element.on.render)) {\n on.render(element.on.render, element, element.state)\n }\n\n if (parent.__children) parent.__children.push(element.key)\n // console.groupEnd(element.key)\n\n return element\n}\n\nexport const isKeyComponent = (key) => {\n const isFirstKeyString = isString(key)\n if (!isFirstKeyString) return\n\n const firstCharKey = key.slice(0, 1)\n\n return /^[A-Z]*$/.test(firstCharKey)\n}\n\nexport default create\n","'use strict'\n\nimport create from './create'\nimport cacheNode from './cache'\nimport * as on from '../event/on'\n\nimport { exec, isFunction, isObject } from '../utils'\nimport {\n throughInitialDefine,\n throughInitialExec,\n applyEvents\n} from './iterate'\nimport { registry } from './mixins'\nimport { isMethod } from './methods'\n// import { defineSetter } from './methods'\n\nconst ENV = process.env.NODE_ENV\n\n// const defineSetter = (element, key) => Object.defineProperty(element, key, {\n// get: function () {\n// console.log('GET', key)\n// return element.__data[key]\n// },\n// set: function (new_value) {\n// console.log('SET', key, new_value)\n// element.__data[key] = new_value\n// element.__data['modified'] = (new Date()).getTime()\n// }\n// })\n\nexport const createNode = (element, options) => {\n // create and assign a node\n let { node, tag } = element\n\n let isNewNode\n\n if (!node) {\n isNewNode = true\n\n if (element.__ifFalsy) return element\n\n if (tag === 'shadow') {\n node = element.node = element.parent.node.attachShadow({ mode: 'open' })\n } else node = element.node = cacheNode(element)\n\n // run `on.attachNode`\n if (element.on && isFunction(element.on.attachNode)) {\n on.attachNode(element.on.attachNode, element, element.state)\n }\n }\n\n // node.dataset // .key = element.key\n\n if (ENV === 'test' || ENV === 'development') {\n node.ref = element\n if (isFunction(node.setAttribute)) node.setAttribute('key', element.key)\n }\n\n if (element.__ifFalsy) return element\n\n // iterate through all given params\n if (element.tag !== 'string' || element.tag !== 'fragment') {\n // iterate through define\n throughInitialDefine(element, options)\n\n // iterate through exec\n throughInitialExec(element)\n\n // apply events\n if (isNewNode && isObject(element.on)) applyEvents(element)\n\n for (const param in element) {\n const prop = element[param]\n\n if (isMethod(param) || isObject(registry[param]) || prop === undefined) continue\n\n const hasDefined = element.define && element.define[param]\n const DOMQLProperty = registry[param]\n const hasOptionsDefine = options.define && options.define[param]\n\n if (DOMQLProperty && !hasOptionsDefine) { // Check if param is in our method registry\n if (isFunction(DOMQLProperty)) DOMQLProperty(prop, element, node, options)\n } else if (element[param] && !hasDefined && !hasOptionsDefine) {\n create(exec(prop, element), element, param, options) // Create element\n }\n }\n }\n\n // node.dataset.key = key\n return element\n}\n\nexport default createNode\n","'use strict'\n\nimport { isObject, exec, isFunction, isNumber, isString, overwrite } from '../utils'\nimport { isMethod } from './methods'\n\nexport const applyEvents = element => {\n const { node, on } = element\n for (const param in on) {\n if (\n param === 'init' ||\n param === 'render' ||\n param === 'update'\n ) continue\n\n const appliedFunction = element.on[param]\n if (isFunction(appliedFunction)) {\n node.addEventListener(param, event =>\n appliedFunction(event, element, element.state),\n true)\n }\n }\n}\n\nexport const throughInitialExec = element => {\n for (const param in element) {\n const prop = element[param]\n if (isFunction(prop) && !isMethod(param)) {\n element.__exec[param] = prop\n element[param] = prop(element, element.state)\n }\n }\n}\n\nexport const throughUpdatedExec = (element, options) => {\n const { __exec } = element\n const changes = {}\n\n for (const param in __exec) {\n const prop = element[param]\n const newExec = __exec[param](element, element.state)\n\n // if element is string\n if (prop && prop.node && (isString(newExec) || isNumber(newExec))) {\n overwrite(prop, { text: newExec }, options)\n } else if (newExec !== prop) {\n element.__cached[param] = changes[param] = prop\n element[param] = newExec\n }\n }\n\n return changes\n}\n\nexport const throughInitialDefine = (element, options) => {\n const { define } = element\n let obj = {}\n\n if (isObject(define)) {\n obj = { ...define }\n }\n if (isObject(options.define)) {\n // console.log('==============')\n // console.log(options.define)\n obj = { ...obj, ...options.define }\n }\n\n for (const param in obj) {\n let prop = element[param]\n\n if (isFunction(prop) && !isMethod(param)) {\n element.__exec[param] = prop\n element[param] = prop = exec(prop, element)\n }\n\n element.__cached[param] = prop\n element[param] = obj[param](prop, element, element.state)\n }\n return element\n}\n\nexport const throughUpdatedDefine = (element, options) => {\n const { define, __exec } = element\n const changes = {}\n let obj = {}\n\n if (isObject(define)) {\n obj = { ...define }\n }\n if (isObject(options.define)) {\n obj = { ...obj, ...options.define }\n }\n\n for (const param in obj) {\n const execParam = __exec[param]\n if (execParam) element.__cached[param] = execParam(element, element.state)\n const cached = exec(element.__cached[param], element)\n element[param] = obj[param](cached, element, element.state)\n }\n return changes\n}\n","'use strict'\n\nimport { isFunction, isObject, isObjectLike } from '../utils'\nimport { registry, parseFilters } from './mixins'\nimport root from './root'\n\nconst ENV = process.env.NODE_ENV\n\n// TODO: update these files\nexport const lookup = function (key) {\n const element = this\n let { parent } = element\n\n while (parent.key !== key) {\n if (parent[key]) return parent[key]\n parent = parent.parent\n if (!parent) return\n }\n\n return parent\n}\n\n// TODO: update these files\nexport const spotByPath = function (path) {\n const element = this\n const arr = [].concat(path)\n let active = root[arr[0]]\n\n if (!arr || !arr.length) return console.log(arr, 'on', element.key, 'is undefined')\n\n while (active.key === arr[0]) {\n arr.shift()\n if (!arr.length) break\n active = active[arr[0]]\n if (!active) return\n }\n\n return active\n}\n\nexport const remove = function (params) {\n const element = this\n if (isFunction(element.node.remove)) element.node.remove()\n else if (ENV === 'test' || ENV === 'development') {\n console.warn('This item cant be removed')\n element.log()\n }\n delete element.parent[element.key]\n}\n\nexport const get = function (param) {\n const element = this\n return element[param]\n}\n\nexport const set = function () {\n}\n\nexport const update = function () {\n}\n\nexport const setProps = function (param, options) {\n const element = this\n if (!param || !element.props) return\n element.update({ props: param }, options)\n return element.props\n}\n\nexport const defineSetter = (element, key, get, set) =>\n Object.defineProperty(element, key, { get, set })\n\nexport const keys = function () {\n const element = this\n const keys = []\n for (const param in element) {\n if (registry[param] && !parseFilters.elementKeys.includes(param))\n continue\n keys.push(param)\n }\n return keys\n}\n\nexport const parse = function () {\n const element = this\n const obj = {}\n const keyList = keys.call(element)\n keyList.forEach(v => (obj[v] = element[v]))\n return obj\n}\n\nexport const parseDeep = function () {\n const element = this\n const obj = parse.call(element)\n for (const k in obj) {\n if (isObjectLike(obj[k])) { obj[k] = parseDeep.call(obj[k]) }\n }\n return obj\n}\n\nexport const log = function (...args) {\n const element = this\n console.group(element.key)\n if (args.length) {\n args.forEach(v => console.log(`%c${v}:\\n`, 'font-weight: bold', element[v]))\n } else {\n console.log(element.path)\n const keys = element.keys()\n keys.forEach(v => console.log(`%c${v}:\\n`, 'font-weight: bold', element[v]))\n }\n console.groupEnd(element.key)\n return element\n}\n\nexport const isMethod = function (param) {\n return param === 'set' ||\n param === 'update' ||\n param === 'remove' ||\n param === 'removeContent' ||\n param === 'lookup' ||\n param === 'spotByPath' ||\n param === 'keys' ||\n param === 'parse' ||\n param === 'setProps' ||\n param === 'parseDeep' ||\n param === 'if' ||\n param === 'log' ||\n param === 'nextElement' ||\n param === 'previousElement'\n}\n\nexport const nextElement = function () {\n const element = this\n const { key, parent } = element\n const { __children } = parent\n\n const currentIndex = __children.indexOf(key)\n const nextChild = __children[currentIndex + 1]\n console.log(nextChild)\n\n return parent[nextChild]\n}\n\nexport const previousElement = function (el) {\n const element = el || this\n const { key, parent } = element\n const { __children } = parent\n\n if (!__children) return\n\n const currentIndex = __children.indexOf(key)\n return parent[__children[currentIndex - 1]]\n}\n","'use strict'\n\nimport attr from './attr'\nimport classList from './classList'\nimport content from './content'\nimport data from './data'\nimport html from './html'\nimport style from './style'\nimport text from './text'\nimport state from './state'\nimport registry from './registry'\nexport {\n attr,\n classList,\n content,\n data,\n style,\n text,\n html,\n state,\n registry,\n}\nexport * from './registry'\n","'use strict'\n\nimport { isNot } from '@domql/utils'\nimport { exec, report } from '../../utils'\n\n/**\n * Recursively add attributes to a DOM node\n */\nexport default (params, element, node) => {\n const { __attr } = element\n if (isNot('object')) report('HTMLInvalidAttr', params)\n if (params) {\n for (const attr in params) {\n const val = exec(params[attr], element)\n // if (__attr[attr] === val) return\n if (val && node.setAttribute) node.setAttribute(attr, val)\n else if (node.removeAttribute) node.removeAttribute(attr)\n __attr[attr] = val\n }\n }\n console.groupEnd(params, __attr)\n}\n","'use strict'\n\nimport { exec, isObject, isString } from '../../utils'\n\nexport const assignClass = (element) => {\n const { key } = element\n if (element.class === true) element.class = key\n else if (!element.class && typeof key === 'string' && key.charAt(0) === '_' && key.charAt(1) !== '_') {\n element.class = key.slice(1)\n }\n}\n\n// stringifies class object\nexport const classify = (obj, element) => {\n let className = ''\n for (const item in obj) {\n const param = obj[item]\n if (typeof param === 'boolean' && param) className += ` ${item}`\n else if (typeof param === 'string') className += ` ${param}`\n else if (typeof param === 'function') {\n className += ` ${exec(param, element)}`\n }\n }\n return className\n}\n\nexport default (params, element, node, live) => {\n if (!params) return\n const { key, __className } = element // eslint-disable-line\n if (params === true) params = element.class = { key }\n if (isString(params)) params = element.class = { default: params }\n if (isObject(params)) params = classify(params, element)\n // TODO: fails on string\n const className = params.replace(/\\s+/g, ' ').trim()\n node.classList = className\n // if (className && className !== __className) node.classList = className\n // element.__className = className\n return className\n}\n","'use strict'\n\nimport set from '../set'\nimport { isEqualDeep } from '../../utils'\n\n/**\n * Appends anything as content\n * an original one as a child\n */\nexport default (param, element, node, options) => {\n if (param && element) {\n if (param.__hash === element.content.__hash && element.content.update) {\n const { define } = element\n element.content.update(param)\n } else {\n set.call(element, param, options)\n }\n }\n}\n","'use strict'\n\nimport create from './create'\nimport { isEqualDeep, isFunction } from '../utils'\nimport { registry } from './mixins'\nimport OPTIONS from './options'\n\nexport const removeContentElement = function (el) {\n const element = el || this\n if (element.content) {\n if (element.content.node) {\n if (element.content.tag === 'fragment') element.node.innerHTML = ''\n else element.node.removeChild(element.content.node)\n }\n\n const { __cached } = element\n if (__cached && __cached.content) {\n if (__cached.content.tag === 'fragment') __cached.content.parent.node.innerHTML = ''\n else if (__cached.content && isFunction(__cached.content.remove)) __cached.content.remove()\n }\n\n delete element.content\n }\n}\n\nconst set = function (params, options, el) {\n const element = el || this\n\n const isEqual = isEqualDeep(params, element.content)\n // console.error(params)\n if (isEqual && element.content.__cached) return element\n removeContentElement(element)\n\n if (params) {\n const { childExtend } = params\n if (!childExtend && element.childExtend) params.childExtend = element.childExtend\n create(params, element, 'content', {\n ignoreChildExtend: true,\n ...registry.defaultOptions,\n ...OPTIONS.create\n })\n }\n\n return element\n}\n\nexport default set\n","'use strict'\n\nexport default {}\n","'use strict'\n\nimport { exec, isObject } from '../../utils'\nimport { report } from '../../utils/report'\n\n/**\n * Apply data parameters on the DOM nodes\n * this should only work if `showOnNode: true` is passed\n */\nexport default (params, element, node) => {\n if (params && params.showOnNode) {\n if (!isObject(params)) report('HTMLInvalidData', params)\n\n // Apply data params on node\n for (const dataset in params) {\n if (dataset !== 'showOnNode') {\n node.dataset[dataset] = exec(params[dataset], element)\n }\n }\n }\n}\n","'use strict'\n\nimport { exec } from '../../utils'\n\n/**\n * Appends raw HTML as content\n * an original one as a child\n */\nexport default (param, element, node) => {\n const prop = exec(param, element)\n if (prop !== element.__html) {\n // const parser = new window.DOMParser()\n // param = parser.parseFromString(param, 'text/html')\n if (node.nodeName === 'SVG') node.textContent = prop\n else node.innerHTML = prop\n\n element.__html = prop\n }\n}\n","'use strict'\n\nimport { isObject, map } from '../../utils'\nimport { report } from '../../utils/report'\n\n/**\n * Recursively add styles to a DOM node\n */\nexport default (params, element, node) => {\n if (params) {\n if (isObject(params)) map(node.style, params, element)\n else report('HTMLInvalidStyles', params)\n }\n}\n","'use strict'\n\nimport { create } from '..'\nimport { exec } from '../../utils'\n\n/**\n * Creates a text node and appends into\n * an original one as a child\n */\nexport const asd = (param, element, node) => {\n const prop = exec(param, element)\n if (element.tag === 'string') {\n node.nodeValue = prop\n }\n else if (param !== undefined || param !== null) {\n if (element.__text && element.__text.text !== prop) return\n element.__text.text = prop\n if (element.__text.node) element.__text.node.nodeValue = prop\n else create({ tag: 'string', text: prop }, element, '__text')\n }\n}\n\nexport default (param, element, node) => {\n const prop = exec(param, element)\n if (element.tag === 'string') {\n if (element.text === prop) return\n node.nodeValue = prop\n }\n else if (param !== undefined || param !== null) {\n if (element.__text) {\n if (element.__text.text === prop) return\n element.__text.text = prop\n if (element.__text.node) element.__text.node.nodeValue = prop\n } else create({ tag: 'string', text: prop }, element, '__text')\n }\n}\n","'use strict'\n\nimport { exec, isObject } from '../../utils'\nimport { IGNORE_STATE_PARAMS } from '../state'\n\nexport default (params, element, node) => {\n const state = exec(params, element)\n\n if (isObject(state)) {\n for (const param in state) {\n if (IGNORE_STATE_PARAMS.includes(param)) continue\n element.state[param] = exec(state[param], element)\n }\n }\n\n return element\n}\n","'use strict'\n\nimport { on } from '../event'\nimport { deepClone, exec, overwriteShallow, overwriteDeep } from '../utils'\nimport { is, isObject, isFunction, isUndefined } from '@domql/utils'\n\nexport const IGNORE_STATE_PARAMS = [\n 'update', 'parse', 'clean', 'create', 'parent', '__element', '__depends', '__ref', '__root',\n '__components',\n '__projectSystem', '__projectState', '__projectComponents', '__projectPages',\n 'projectStateUpdate', 'projectSystemUpdate'\n]\n\nexport const parseState = function () {\n const state = this\n const parseState = {}\n for (const param in state) {\n if (!IGNORE_STATE_PARAMS.includes(param)) {\n parseState[param] = state[param]\n }\n }\n return parseState\n}\n\nexport const cleanState = function () {\n const state = this\n for (const param in state) {\n if (!IGNORE_STATE_PARAMS.includes(param)) {\n delete state[param]\n }\n }\n return state\n}\n\nexport const projectSystemUpdate = function (obj, options = {}) {\n const state = this\n if (!state) return\n const rootState = (state.__element.__root || state.__element).state\n rootState.update({ PROJECT_SYSTEM: obj }, options)\n return state\n}\n\nexport const projectStateUpdate = function (obj, options = {}) {\n const state = this\n if (!state) return\n const rootState = (state.__element.__root || state.__element).state\n rootState.update({ PROJECT_STATE: obj }, options)\n return state\n}\n\nexport const updateState = function (obj, options = {}) {\n const state = this\n const element = state.__element\n state.parent = element.parent.state\n\n if (!state.__element) createState(element, element.parent)\n\n // run `on.stateUpdated`\n if (element.on && isFunction(element.on.initStateUpdated)) {\n const initReturns = on.initStateUpdated(element.on.initStateUpdated, element, state, obj)\n if (initReturns === false) return\n }\n\n const stateKey = element.__state\n if (stateKey) {\n // TODO: check for double parent\n if (state.parent && state.parent[stateKey]) {\n const keyInParentState = state.parent[stateKey]\n if (keyInParentState && !options.stopStatePropogation) {\n if (element.__stateType === 'string') {\n return state.parent.update({ [stateKey]: obj.value }, options)\n }\n return state.parent.update({ [stateKey]: obj }, options)\n }\n }\n } else {\n if (opts.shallow) {\n overwriteShallow(state, obj, IGNORE_STATE_PARAMS)\n } else {\n overwriteDeep(state, obj, IGNORE_STATE_PARAMS)\n }\n }\n\n // TODO: try debounce\n if (!options.preventUpdate) { element.update({}, options) } else if (options.preventUpdate === 'recursive') { element.update({}, { ...options, preventUpdate: true }) }\n\n if (state.__depends) {\n for (const el in state.__depends) {\n const findElement = state.__depends[el]\n findElement.clean().update(state.parse(), options)\n }\n }\n\n if (!options.preventUpdateListener && element.on && isFunction(element.on.stateUpdated)) {\n on.stateUpdated(element.on.stateUpdated, element, state, obj)\n }\n}\n\nexport const createState = function (element, parent, opts) {\n const skip = (opts && opts.skip) ? opts.skip : false\n\n let { state, __root } = element\n\n if (isFunction(state)) state = exec(state, element)\n\n if (is(state)('string', 'number')) {\n element.__state = state\n state = {}\n }\n if (state === true) {\n element.__state = element.key\n state = {}\n }\n\n if (!state) {\n if (parent && parent.state) return parent.state\n return {}\n } else {\n element.__hasRootState = true\n }\n\n // run `on.init`\n if (element.on && isFunction(element.on.stateInit)) {\n on.stateInit(element.on.stateInit, element, element.state)\n }\n\n let stateKey = element.__state\n if (stateKey) {\n let parentState = parent.state\n let parentStateKey\n const parents = stateKey.split('../')\n for (let i = 1; i < parents.length; i++) {\n stateKey = parents[i]\n parentState = parentState.parent\n }\n if (stateKey.includes('.')) {\n [parentStateKey, stateKey] = stateKey.split('.')\n parentState = parentState[parentStateKey]\n }\n if (parentState && parentState[stateKey]) {\n const keyInParentState = parentState[stateKey]\n if (is(keyInParentState)('object', 'array')) {\n state = deepClone(keyInParentState)\n } else if (is(keyInParentState)('string', 'number')) {\n state = { value: keyInParentState }\n element.__stateType = 'string'\n } else if (isUndefined(keyInParentState)) {\n console.warn(stateKey, 'is not in present', 'replacing with ', {})\n state = {}\n }\n }\n }\n\n // reference other state\n const { __ref } = state\n if (__ref) {\n state = deepClone(__ref, IGNORE_STATE_PARAMS)\n if (isObject(__ref.__depends)) {\n __ref.__depends[element.key] = state\n } else __ref.__depends = { [element.key]: state }\n } else {\n state = deepClone(state, IGNORE_STATE_PARAMS)\n }\n\n element.state = state\n\n // NOTE: Only true when 'onlyResolveExtends' option is set to true\n if (skip) return state\n\n state.clean = cleanState\n state.parse = parseState\n state.update = updateState\n state.create = createState\n state.parent = element.parent.state\n state.__element = element\n state.__root = __root ? __root.state : state\n\n // editor stuff\n state.projectSystemUpdate = projectSystemUpdate\n state.projectStateUpdate = projectStateUpdate\n state.__components = (state.__root || state).COMPONENTS\n state.__projectSystem = (state.__root || state).PROJECT_SYSTEM\n state.__projectState = (state.__root || state).PROJECT_STATE\n state.__projectComponents = (state.__root || state).PROJECT_COMPONENTS\n state.__projectPages = (state.__root || state).PROJECT_PAGES\n\n // run `on.stateCreated`\n if (element.on && isFunction(element.on.stateCreated)) {\n on.stateCreated(element.on.stateCreated, element, state)\n }\n\n return state\n}\n\nexport default createState\n","'use strict'\n\nimport {\n attr,\n style,\n text,\n html,\n content,\n data,\n classList,\n state\n} from '.'\n\nexport default {\n attr,\n style,\n text,\n html,\n content,\n data,\n class: classList,\n state,\n\n extend: {},\n childExtend: {},\n childExtendRecursive: {},\n props: {},\n path: {},\n if: {},\n define: {},\n transform: {},\n __hash: {},\n __componentKey: {},\n __cached: {},\n __defined: {},\n __exec: {},\n __changes: {},\n __trash: {},\n __root: {},\n __props: {},\n __extend: {},\n __ifFragment: {},\n __children: {},\n __ifFalsy: {},\n __text: {},\n __element: {},\n __html: {},\n __class: {},\n __className: {},\n __classNames: {},\n __attr: {},\n __state: {},\n __stateType: {},\n __currentSnapshot: {},\n __hasRootState: {},\n nextElement: {},\n previousElement: {},\n key: {},\n tag: {},\n query: {},\n parent: {},\n node: {},\n set: {},\n update: {},\n setProps: {},\n remove: {},\n removeContent: {},\n lookup: {},\n spotByPath: {},\n keys: {},\n log: {},\n parse: {},\n parseDeep: {},\n on: {},\n component: {},\n context: {}\n}\n\n// List of keys for .parse() and .parseDeep() to include in the result.\n// Keys not in the array are excluded.\nexport const parseFilters = {\n elementKeys: [\n 'tag', 'text', 'style', 'attr', 'class', 'state', 'class',\n 'data', 'content', 'html'\n // TODO: 'props' ?\n ],\n propsKeys: ['__element'],\n stateKeys: []\n}\n","'use strict'\n\n/**\n * Receives child and parent nodes as parametes\n * and assigns them into real DOM tree\n */\nexport const appendNode = (node, parentNode) => {\n parentNode.appendChild(node)\n return node\n}\n\n/**\n * Receives elements and assigns the first\n * parameter as a child of the second one\n */\nexport const assignNode = (element, parent, key) => {\n parent[key || element.key] = element\n if (element.tag !== 'shadow') {\n appendNode(element.node, parent.node)\n }\n return element\n}\n","'use strict'\n\nimport { isFunction, exec, getExtendStack, jointStacks, cloneAndMergeArrayExtend, deepMergeExtend, isString } from '../utils'\n\nconst ENV = process.env.NODE_ENV\n\n/**\n * Checks whether element has `extend` or is a part\n * of parent's `childExtend` extend\n */\nexport const applyExtend = (element, parent, options = {}) => {\n if (isFunction(element)) element = exec(element, parent)\n\n let { extend, props, context } = element\n const COMPONENTS = (context && context.components) || options.components\n\n if (isString(extend)) extend = COMPONENTS[extend]\n const extendStack = getExtendStack(extend)\n\n if (ENV !== 'test' || ENV !== 'development') delete element.extend\n\n let childExtendStack = []\n if (parent) {\n // Assign parent attr to the element\n element.parent = parent\n if (!options.ignoreChildExtend) {\n if (props && props.ignoreChildExtend) return\n\n childExtendStack = getExtendStack(parent.childExtend)\n\n if (parent.childExtendRecursive) {\n const childExtendRecursiveStack = getExtendStack(parent.childExtendRecursive)\n childExtendStack = childExtendStack.concat(childExtendRecursiveStack)\n element.childExtendRecursive = parent.childExtendRecursive\n }\n }\n }\n\n const extendLength = extendStack.length\n const childExtendLength = childExtendStack.length\n\n let stack = []\n if (extendLength && childExtendLength) {\n stack = jointStacks(extendStack, childExtendStack)\n } else if (extendLength) {\n stack = extendStack\n } else if (childExtendLength) {\n stack = childExtendStack\n } else if (!options.extend) return element\n\n if (options.extend) {\n const defaultOptionsExtend = getExtendStack(options.extend)\n stack = [].concat(stack, defaultOptionsExtend)\n }\n\n element.__extend = stack\n let mergedExtend = cloneAndMergeArrayExtend(stack)\n\n const component = exec(element.component || mergedExtend.component, element)\n if (component && COMPONENTS && COMPONENTS[component]) {\n const componentExtend = cloneAndMergeArrayExtend(getExtendStack(COMPONENTS[component]))\n mergedExtend = deepMergeExtend(componentExtend, mergedExtend)\n }\n\n return deepMergeExtend(element, mergedExtend)\n}\n","'use strict'\n\nimport { deepClone, deepMerge, exec, isArray, isObject, isString } from '../utils'\n\nconst initProps = (element, parent) => {\n const { props } = element\n const propsStack = []\n\n const isMatch = isString(props) && props.indexOf('match') > -1\n const matchParent = parent.props && parent.props[element.key]\n const matchParentChild = parent.props && parent.props.childProps\n\n const objectizeStringProperty = propValue => {\n if (isString(propValue)) return { inheritedString: propValue }\n return propValue\n }\n\n if (matchParent && props !== 'match') propsStack.push(matchParent)\n if (matchParentChild) propsStack.push(matchParentChild)\n\n if (isObject(props)) {\n propsStack.push(props)\n }\n\n if (props === 'inherit') {\n if (parent.props) propsStack.push(parent.props)\n } else if (isMatch) {\n const hasArg = props.split(' ')\n let matchParentValue\n // console.log('hasArg', hasArg)\n if (hasArg[1] && parent.props[hasArg[1]]) {\n const secondArgasParentMatchProp = parent.props[hasArg[1]]\n propsStack.push(\n objectizeStringProperty(secondArgasParentMatchProp)\n )\n } else if (matchParent) {\n propsStack.push(\n objectizeStringProperty(matchParent)\n )\n }\n propsStack.push(matchParentValue)\n } else if (props) propsStack.push(props)\n\n if (isArray(element.__extend)) {\n element.__extend.map(extend => {\n if (extend.props) propsStack.push(extend.props)\n return extend.props\n })\n }\n\n return propsStack\n}\n\nconst inheritProps = (element, parent) => {\n element.props = (parent && parent.props) || { update, __element: element }\n}\n\nexport const syncProps = (props, element) => {\n element.props = {}\n const mergedProps = { update, __element: element }\n props.forEach(v => {\n if (v === 'update' || v === '__element') return\n element.props = deepMerge(mergedProps, deepClone(exec(v, element)))\n })\n element.props = mergedProps\n return element.props\n}\n\nconst createProps = function (element, parent, cached) {\n const propsStack = cached || initProps(element, parent)\n\n if (propsStack.length) {\n element.__props = propsStack\n syncProps(propsStack, element)\n element.props.update = update\n } else inheritProps(element, parent)\n\n return element\n}\n\nexport const updateProps = (newProps, element, parent) => {\n let propsStack = element.__props\n\n if (newProps) propsStack = element.__props = [].concat(newProps, propsStack)\n\n if (propsStack) syncProps(propsStack, element)\n else inheritProps(element, parent)\n\n // console.log(cachedProps)\n return element\n}\n\nfunction update (props, options) {\n const element = this.__element\n // element.update({ props })\n element.update({ props }, options)\n}\n\nexport default createProps\n","'use strict'\n\nimport { overwrite, isFunction, isObject, isString, isNumber, createSnapshotId, merge } from '../utils'\nimport { registry } from './mixins'\nimport { on } from '../event'\nimport { isMethod } from './methods'\nimport { throughUpdatedDefine, throughUpdatedExec } from './iterate'\nimport { appendNode } from './assign'\nimport { createNode } from './node'\nimport { updateProps } from './props'\nimport createState from './state'\nimport { diff } from '@domql/utils'\nimport { window } from '@domql/globals'\n\nconst snapshot = {\n snapshotId: createSnapshotId\n}\n\nconst UPDATE_DEFAULT_OPTIONS = {\n stackChanges: false,\n cleanExec: true,\n preventRecursive: false,\n currentSnapshot: false,\n calleeElement: false\n}\n\nconst update = function (params = {}, options = UPDATE_DEFAULT_OPTIONS) {\n const element = this\n const { define, parent, node } = element\n\n const { currentSnapshot, calleeElement } = options\n if (!calleeElement) {\n element.__currentSnapshot = snapshot.snapshotId()\n }\n const snapshotOnCallee = element.__currentSnapshot || (calleeElement && calleeElement.__currentSnapshot)\n if (snapshotOnCallee && currentSnapshot < snapshotOnCallee) {\n // console.log(calleeElement)\n // console.log(currentSnapshot, snapshotOnCallee, 'cancelling')\n // return\n }\n\n if (isString(params) || isNumber(params)) {\n params = { text: params }\n }\n\n if (isFunction(element.if)) {\n // TODO: move as fragment\n const ifPassed = element.if(element, element.state)\n\n if (ifPassed) delete element.__ifFalsy\n if (element.__ifFalsy && ifPassed) {\n createNode(element)\n appendNode(element.node, element.__ifFragment)\n } else if (element.node && !ifPassed) {\n element.node.remove()\n element.__ifFalsy = true\n }\n }\n\n if (element.__state) {\n const keyInParentState = parent.state[element.__state]\n if (keyInParentState) {\n const newState = element.__stateType === 'string'\n ? createState(element, parent)\n : createState(element, parent)\n const changes = diff(newState.parse(), element.state.parse())\n\n // run `on.stateUpdated`\n if (element.on && isFunction(element.on.initStateUpdated)) {\n const initReturns = on.initStateUpdated(element.on.initStateUpdated, element, element.state, changes)\n if (initReturns === false) return\n }\n\n element.state = newState\n\n if (!options.preventUpdateListener && element.on && isFunction(element.on.stateUpdated)) {\n on.stateUpdated(element.on.stateUpdated, element, element.state, changes)\n }\n }\n } else if (!element.__hasRootState) element.state = (parent && parent.state) || {}\n\n if (!element.__ifFalsy && !options.preventPropsUpdate) updateProps(params.props, element, parent)\n\n if (element.on && isFunction(element.on.initUpdate) && !options.ignoreInitUpdate) {\n const whatinitreturns = on.initUpdate(element.on.initUpdate, element, element.state)\n if (whatinitreturns === false) return\n }\n\n const overwriteChanges = overwrite(element, params, UPDATE_DEFAULT_OPTIONS)\n const execChanges = throughUpdatedExec(element, UPDATE_DEFAULT_OPTIONS)\n const definedChanges = throughUpdatedDefine(element, options)\n\n if (options.stackChanges && element.__stackChanges) {\n const stackChanges = merge(definedChanges, merge(execChanges, overwriteChanges))\n element.__stackChanges.push(stackChanges)\n }\n\n if (element.__ifFalsy) return false\n if (!node) {\n // return createNode(element, options)\n return\n }\n\n for (const param in element) {\n const prop = element[param]\n\n if (\n options.preventDefineUpdate === true ||\n options.preventDefineUpdate === param ||\n (options.preventContentUpdate && param === 'content') ||\n (options.preventStateUpdate && param) === 'state' ||\n isMethod(param) || isObject(registry[param]) || prop === undefined\n ) continue\n if (options.preventStateUpdate === 'once') options.preventStateUpdate = false\n\n const hasDefined = define && define[param]\n const ourParam = registry[param]\n\n const hasOptionsDefine = options.define && options.define[param]\n\n if (ourParam && !hasOptionsDefine) {\n if (isFunction(ourParam)) {\n ourParam(prop, element, node)\n }\n } else if (prop && isObject(prop) && !hasDefined && !hasOptionsDefine) {\n if (!options.preventRecursive) {\n const childUpdateCall = () => update.call(prop, params[prop], {\n ...options,\n currentSnapshot: snapshotOnCallee,\n calleeElement: element\n })\n if (element.props.lazyLoad || options.lazyLoad) {\n window.requestAnimationFrame(() => childUpdateCall())\n } else childUpdateCall()\n }\n }\n }\n\n if (!options.preventUpdate && element.on && isFunction(element.on.update)) {\n on.update(element.on.update, element, element.state)\n }\n}\n\nexport default update\n","'use strict'\n\nimport { registry } from './mixins'\nimport { report } from '../utils'\n\nexport default (params, options = {}) => {\n const { overwrite } = options\n for (const param in params) {\n if (registry[param] && !overwrite) {\n report('OverwriteToBuiltin', param)\n } else registry[param] = params[param]\n }\n}\n","'use strict'\n\nimport create from './create'\nimport { assignNode } from './assign'\n\nconst parse = (element) => {\n const virtualTree = {\n node: document.createElement('div')\n }\n\n if (element && element.node) assignNode(element, virtualTree)\n else create(element, virtualTree)\n\n return virtualTree.node.innerHTML\n}\n\nexport default parse\n","'use strict'\n\n// import rootScroll from './onScroll'\n\n// var scrollIfPinned = rootScroll.data.scrollTop > 50 ? {\n// position: 'fixed'\n// } : {\n// position: 'absolute'\n// }\n\nexport default {\n tag: 'header',\n text: 'header',\n style: {\n padding: 10,\n fontSize: 24,\n backgroundColor: 'snow',\n // ...scrollIfPinned,\n top: 0\n }\n}\n","'use strict'\n\nexport default {\n tag: 'footer',\n text: 'footer',\n style: {\n padding: 10,\n fontSize: 24,\n backgroundColor: 'snow',\n position: 'fixed',\n bottom: 0\n }\n}\n","'use strict'\n\nexport default {\n tag: 'svg',\n class: 'icon',\n define: {\n name: param => `transformed ${param}`\n },\n html: element => `${element.name}`\n}\n"],"names":["window","DOM","header","footer","Icon","icon","extend","name","performance","now","list","i","afrika","text","parseInt","Math","random","tag","attr","align","style","background","color","padding","lion","opacity","yay","root","create","later","console","log","parse","set","define","tree","ENV","process","env","NODE_ENV","nodes","cache","createNode","assign","update","lookup","remove","get","setProps","keys","head","body","document","report","key","node","errors","en","DocumentNotDefined","title","description","OverwriteToBuiltin","BrowserNotDefined","SetQuickPreferancesIsNotObject","InvalidParams","CantCreateWithoutNode","HTMLInvalidTag","HTMLInvalidAttr","HTMLInvalidData","HTMLInvalidStyles","HTMLInvalidText","err","arg","element","currentLang","errObj","Error","memoize","fn","args","n","result","debounce","func","timeout","timer","clearTimeout","setTimeout","apply","isTagRegistered","indexOf","isObject","constructor","Object","isString","isNumber","isFunction","isArray","Array","isObjectLike","isNode","obj","Node","nodeType","nodeName","isHtmlElement","HTMLElement","isDefined","exec","param","state","map","extention","e","merge","elementProp","objProp","undefined","deepMerge","extendProp","clone","o","prop","deepClone","excluding","mergeArray","isEqualDeep","paramProp","isEqual","overwrite","params","options","changes","paramsProp","__cached","cleanExec","__exec","overwriteShallow","overwriteDeep","mergeIfExisted","a","b","arr","reduce","c","mergeAndCloneIfArray","flattenRecursive","stack","objectized","push","extendOfExtend","createID","index","newId","createSnapshotId","generateHash","toString","substring","extendStackRegistry","extendCachedRegistry","getHashedExtend","__hash","setHashedExtend","hash","getExtendStackRegistry","concat","extractArrayExtend","forEach","each","flattenExtend","deepExtend","extendOflattenExtend","deepCloneExtend","x","deepMergeExtend","cloneAndMergeArrayExtend","jointStacks","extendStack","childExtendStack","slice","getExtendStack","getExtendMerged","can","cachedElements","createTextNode","createDocumentFragment","createElementNS","createElement","detectTag","tagExists","isKeyATag","render","cachedTag","clonedNode","cloneNode","nodeValue","on","is","beforeClassAssign","init","initUpdate","attachNode","stateInit","stateCreated","initStateUpdated","stateUpdated","isValid","appendNode","assignNode","applyExtend","removeContentElement","createState","createProps","assignClass","parseDeep","spotByPath","nextElement","previousElement","isMethod","cacheNode","registry","throughInitialExec","OPTIONS","parent","warn","path","extendTag","childExtendTag","childExtend","isKeyValidHTMLTag","assignedKey","props","childProps","isKeyComponent","hasComponentAttrs","componentKey","split","display","context","components","execExtend","onlyResolveExtends","__attr","__ifFalsy","skip","hasDefined","ourParam","hasOptionsDefine","__element","__props","__hasRootState","length","defaultOptions","ignoreChildExtend","transform","__class","__classNames","__changes","__children","hasRoot","__root","removeContent","if","ifFragment","__ifFragment","isFirstKeyString","firstCharKey","test","throughInitialDefine","applyEvents","isNewNode","attachShadow","mode","ref","setAttribute","DOMQLProperty","appliedFunction","addEventListener","event","throughUpdatedExec","newExec","throughUpdatedDefine","execParam","cached","parseFilters","active","shift","defineSetter","defineProperty","elementKeys","includes","keyList","call","v","k","group","groupEnd","currentIndex","nextChild","el","classList","content","data","html","isNot","val","removeAttribute","class","charAt","classify","className","item","live","__className","default","replace","trim","innerHTML","removeChild","showOnNode","dataset","__html","textContent","asd","__text","IGNORE_STATE_PARAMS","isUndefined","parseState","cleanState","projectSystemUpdate","rootState","PROJECT_SYSTEM","projectStateUpdate","PROJECT_STATE","updateState","initReturns","stateKey","__state","keyInParentState","stopStatePropogation","__stateType","value","opts","shallow","preventUpdate","__depends","findElement","clean","preventUpdateListener","parentState","parentStateKey","parents","__ref","__components","COMPONENTS","__projectSystem","__projectState","__projectComponents","PROJECT_COMPONENTS","__projectPages","PROJECT_PAGES","childExtendRecursive","__componentKey","__defined","__trash","__extend","__currentSnapshot","query","component","propsKeys","stateKeys","parentNode","appendChild","childExtendRecursiveStack","extendLength","childExtendLength","defaultOptionsExtend","mergedExtend","componentExtend","initProps","propsStack","isMatch","matchParent","matchParentChild","objectizeStringProperty","propValue","inheritedString","hasArg","matchParentValue","secondArgasParentMatchProp","inheritProps","syncProps","mergedProps","updateProps","newProps","diff","snapshot","snapshotId","UPDATE_DEFAULT_OPTIONS","stackChanges","preventRecursive","currentSnapshot","calleeElement","snapshotOnCallee","ifPassed","newState","preventPropsUpdate","ignoreInitUpdate","whatinitreturns","overwriteChanges","execChanges","definedChanges","__stackChanges","preventDefineUpdate","preventContentUpdate","preventStateUpdate","childUpdateCall","lazyLoad","requestAnimationFrame","virtualTree","fontSize","backgroundColor","top","position","bottom"],"version":3,"file":"index.f10f902a.js.map","sourceRoot":"/__parcel_source_root/"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "domql",
3
3
  "description": "DOM rendering Javascript framework at early stage.",
4
4
  "author": "symbo.ls",
5
- "version": "1.5.85",
5
+ "version": "1.5.86",
6
6
  "repository": "https://github.com/domql/domql",
7
7
  "publishConfig": {
8
8
  "registry": "https://registry.npmjs.org"
@@ -61,6 +61,9 @@
61
61
  },
62
62
  "jest": {
63
63
  "testEnvironment": "jsdom",
64
+ "transformIgnorePatterns": [
65
+ "node_modules/(?!(@domql.*)/)"
66
+ ],
64
67
  "collectCoverageFrom": [
65
68
  "src/**/*.js"
66
69
  ]
@@ -74,7 +74,7 @@ export const updateState = function (obj, options = {}) {
74
74
  }
75
75
  }
76
76
  } else {
77
- if (opts.shallow) {
77
+ if (options && options.shallow) {
78
78
  overwriteShallow(state, obj, IGNORE_STATE_PARAMS)
79
79
  } else {
80
80
  overwriteDeep(state, obj, IGNORE_STATE_PARAMS)