cx 25.10.1 → 26.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.mocharc.json +5 -0
- package/LICENSE-THIRD-PARTY.md +91 -91
- package/LICENSE.md +7 -7
- package/README.md +46 -46
- package/build.js +129 -0
- package/dist/charts.css +250 -250
- package/dist/charts.js +2421 -3102
- package/dist/data.js +857 -1063
- package/dist/hooks.js +48 -59
- package/dist/jsx-runtime.js +24 -0
- package/dist/manifest.js +959 -953
- package/dist/svg.js +266 -432
- package/dist/ui.js +1935 -2388
- package/dist/util.js +587 -557
- package/dist/widgets.css +6 -6
- package/dist/widgets.js +7543 -9909
- package/package.json +39 -5
- package/src/charts/Bar.scss +5 -3
- package/src/charts/Bar.ts +114 -0
- package/src/charts/BarGraph.scss +4 -3
- package/src/charts/BarGraph.tsx +145 -0
- package/src/charts/BubbleGraph.scss +5 -3
- package/src/charts/BubbleGraph.tsx +165 -0
- package/src/charts/Chart.ts +108 -0
- package/src/charts/ColorMap.ts +150 -0
- package/src/charts/Column.scss +5 -3
- package/src/charts/Column.ts +124 -0
- package/src/charts/ColumnBarBase.tsx +284 -0
- package/src/charts/ColumnBarGraphBase.tsx +229 -0
- package/src/charts/ColumnGraph.scss +5 -3
- package/src/charts/ColumnGraph.tsx +153 -0
- package/src/charts/Grid.ts +5 -0
- package/src/charts/Gridlines.scss +5 -3
- package/src/charts/Gridlines.tsx +88 -0
- package/src/charts/Legend.scss +5 -3
- package/src/charts/Legend.tsx +270 -0
- package/src/charts/LegendEntry.scss +5 -3
- package/src/charts/LegendEntry.tsx +197 -0
- package/src/charts/LineGraph.scss +4 -3
- package/src/charts/LineGraph.tsx +441 -0
- package/src/charts/Marker.scss +5 -3
- package/src/charts/Marker.tsx +483 -0
- package/src/charts/MarkerLine.scss +5 -3
- package/src/charts/MarkerLine.tsx +214 -0
- package/src/charts/MouseTracker.tsx +112 -0
- package/src/charts/Pie.ts +8 -0
- package/src/charts/PieChart.scss +5 -3
- package/src/charts/PieChart.tsx +717 -0
- package/src/charts/PieLabel.tsx +106 -0
- package/src/charts/PieLabelsContainer.ts +68 -0
- package/src/charts/Range.scss +4 -3
- package/src/charts/Range.tsx +318 -0
- package/src/charts/RangeMarker.scss +5 -3
- package/src/charts/RangeMarker.tsx +233 -0
- package/src/charts/ScatterGraph.scss +5 -3
- package/src/charts/ScatterGraph.tsx +245 -0
- package/src/charts/Swimlane.scss +5 -3
- package/src/charts/Swimlane.tsx +195 -0
- package/src/charts/Swimlanes.scss +5 -3
- package/src/charts/Swimlanes.tsx +179 -0
- package/src/charts/axis/Axis.scss +22 -22
- package/src/charts/axis/Axis.tsx +444 -0
- package/src/charts/axis/CategoryAxis.scss +5 -3
- package/src/charts/axis/CategoryAxis.tsx +313 -0
- package/src/charts/axis/NumericAxis.scss +5 -3
- package/src/charts/axis/NumericAxis.tsx +437 -0
- package/src/charts/axis/Stack.ts +61 -0
- package/src/charts/axis/TimeAxis.scss +4 -3
- package/src/charts/axis/TimeAxis.tsx +718 -0
- package/src/charts/axis/index.scss +5 -5
- package/src/charts/axis/index.ts +4 -0
- package/src/charts/axis/variables.scss +2 -2
- package/src/charts/helpers/MinMaxFinder.ts +66 -0
- package/src/charts/helpers/PointReducer.ts +135 -0
- package/src/charts/helpers/SnapPointFinder.ts +136 -0
- package/src/charts/helpers/ValueAtFinder.ts +72 -0
- package/src/charts/helpers/index.ts +4 -0
- package/src/charts/index.scss +22 -22
- package/src/charts/palette.scss +7 -5
- package/src/charts/shapes.tsx +86 -0
- package/src/charts/variables.scss +2 -1
- package/src/core.d.ts +182 -310
- package/src/data/AggregateFunction.ts +171 -0
- package/src/data/ArrayElementView.spec.ts +88 -0
- package/src/data/ArrayElementView.ts +90 -0
- package/src/data/ArrayRef.ts +35 -0
- package/src/data/AugmentedViewBase.ts +88 -0
- package/src/data/Binding.ts +104 -0
- package/src/data/ExposedRecordView.ts +95 -0
- package/src/data/ExposedValueView.ts +89 -0
- package/src/data/Expression.spec.ts +229 -0
- package/src/data/Expression.ts +233 -0
- package/src/data/Grouper.spec.ts +57 -0
- package/src/data/Grouper.ts +158 -0
- package/src/data/NestedDataView.ts +43 -0
- package/src/data/ReadOnlyDataView.ts +39 -0
- package/src/data/Ref.spec.ts +79 -0
- package/src/data/Ref.ts +104 -0
- package/src/data/Selector.ts +10 -0
- package/src/data/Store.spec.ts +22 -0
- package/src/data/Store.ts +52 -0
- package/src/data/StoreProxy.ts +19 -0
- package/src/data/StoreRef.spec.ts +24 -0
- package/src/data/StoreRef.ts +66 -0
- package/src/data/StringTemplate.spec.ts +132 -0
- package/src/data/StringTemplate.ts +93 -0
- package/src/data/StructuredSelector.spec.ts +113 -0
- package/src/data/StructuredSelector.ts +146 -0
- package/src/data/SubscribableView.ts +63 -0
- package/src/data/View.ts +289 -0
- package/src/data/ZoomIntoPropertyView.spec.ts +64 -0
- package/src/data/ZoomIntoPropertyView.ts +45 -0
- package/src/data/comparer.ts +78 -0
- package/src/data/computable.spec.ts +62 -0
- package/src/data/computable.ts +72 -0
- package/src/data/createAccessorModelProxy.ts +60 -0
- package/src/data/createStructuredSelector.spec.ts +45 -0
- package/src/data/createStructuredSelector.ts +62 -0
- package/src/data/defaultCompare.ts +15 -0
- package/src/data/diff/diffArrays.ts +49 -0
- package/src/data/diff/diffs.spec.ts +49 -0
- package/src/data/diff/index.ts +1 -0
- package/src/data/enableFatArrowExpansion.ts +6 -0
- package/src/data/getAccessor.spec.ts +11 -0
- package/src/data/getAccessor.ts +74 -0
- package/src/data/getSelector.spec.ts +43 -0
- package/src/data/getSelector.ts +66 -0
- package/src/data/index.ts +30 -0
- package/src/data/isSelector.ts +26 -0
- package/src/data/ops/append.spec.ts +28 -0
- package/src/data/ops/append.ts +5 -0
- package/src/data/ops/filter.spec.ts +35 -0
- package/src/data/ops/filter.ts +9 -0
- package/src/data/ops/findTreeNode.spec.ts +23 -0
- package/src/data/ops/findTreeNode.ts +18 -0
- package/src/data/ops/findTreePath.ts +23 -0
- package/src/data/ops/insertElement.ts +3 -0
- package/src/data/ops/merge.spec.ts +27 -0
- package/src/data/ops/merge.ts +13 -0
- package/src/data/ops/moveElement.ts +21 -0
- package/src/data/ops/removeTreeNodes.spec.ts +37 -0
- package/src/data/ops/removeTreeNodes.ts +15 -0
- package/src/data/ops/updateArray.spec.ts +69 -0
- package/src/data/ops/updateArray.ts +31 -0
- package/src/data/ops/updateTree.spec.ts +54 -0
- package/src/data/ops/updateTree.ts +23 -0
- package/src/data/test-types.ts +7 -0
- package/src/global.scss +13 -13
- package/src/hooks/createLocalStorageRef.ts +21 -0
- package/src/hooks/invokeCallback.spec.tsx +59 -0
- package/src/hooks/invokeCallback.ts +8 -0
- package/src/hooks/resolveCallback.spec.tsx +48 -0
- package/src/hooks/resolveCallback.ts +16 -0
- package/src/hooks/store.spec.tsx +67 -0
- package/src/hooks/store.ts +46 -0
- package/src/hooks/useEffect.ts +14 -0
- package/src/hooks/useInterval.ts +8 -0
- package/src/hooks/useState.ts +20 -0
- package/src/hooks/useTrigger.spec.tsx +99 -0
- package/src/hooks/useTrigger.ts +26 -0
- package/src/jsx-runtime.ts +72 -0
- package/src/locale/de-de.ts +76 -0
- package/src/locale/en-us.ts +75 -0
- package/src/locale/es-es.ts +76 -0
- package/src/locale/fr-fr.ts +76 -0
- package/src/locale/nl-nl.ts +76 -0
- package/src/locale/pt-pt.ts +76 -0
- package/src/locale/sr-latn-ba.ts +76 -0
- package/src/svg/BoundedObject.ts +101 -0
- package/src/svg/ClipRect.tsx +29 -0
- package/src/svg/Ellipse.tsx +69 -0
- package/src/svg/Line.tsx +58 -0
- package/src/svg/NonOverlappingRect.ts +26 -0
- package/src/svg/NonOverlappingRectGroup.ts +49 -0
- package/src/svg/Rectangle.tsx +91 -0
- package/src/svg/Svg.scss +5 -4
- package/src/svg/Svg.tsx +241 -0
- package/src/svg/Text.tsx +134 -0
- package/src/svg/TextualBoundedObject.ts +35 -0
- package/src/svg/index.scss +8 -8
- package/src/svg/util/Rect.ts +105 -0
- package/src/ui/CSS.ts +87 -0
- package/src/ui/CSSHelper.ts +17 -0
- package/src/ui/Container.tsx +216 -0
- package/src/ui/ContentResolver.spec.tsx +430 -0
- package/src/ui/ContentResolver.ts +124 -0
- package/src/ui/Controller.spec.tsx +566 -0
- package/src/ui/Controller.ts +189 -0
- package/src/ui/Culture.ts +159 -0
- package/src/ui/Cx.spec.tsx +208 -0
- package/src/ui/Cx.tsx +386 -0
- package/src/ui/DataProxy.spec.tsx +337 -0
- package/src/ui/DataProxy.ts +55 -0
- package/src/ui/DetachedScope.tsx +159 -0
- package/src/ui/FocusManager.ts +171 -0
- package/src/ui/Format.ts +108 -0
- package/src/ui/HoverSync.tsx +189 -0
- package/src/ui/Instance.ts +868 -0
- package/src/ui/IsolatedScope.spec.tsx +55 -0
- package/src/ui/IsolatedScope.ts +50 -0
- package/src/ui/Localization.ts +70 -0
- package/src/ui/Prop.ts +112 -0
- package/src/ui/PureContainer.spec.tsx +230 -0
- package/src/ui/PureContainer.tsx +19 -0
- package/src/ui/RenderingContext.ts +99 -0
- package/src/ui/Repeater.spec.tsx +141 -0
- package/src/ui/Repeater.ts +203 -0
- package/src/ui/Rescope.spec.tsx +199 -0
- package/src/ui/Rescope.ts +49 -0
- package/src/ui/ResizeManager.ts +31 -0
- package/src/ui/Restate.spec.tsx +418 -0
- package/src/ui/Restate.tsx +217 -0
- package/src/ui/StaticText.ts +11 -0
- package/src/ui/StructuredInstanceDataAccessor.ts +32 -0
- package/src/ui/Text.ts +30 -0
- package/src/ui/VDOM.ts +34 -0
- package/src/ui/Widget.spec.tsx +53 -0
- package/src/ui/Widget.tsx +308 -0
- package/src/ui/ZIndexManager.ts +11 -0
- package/src/ui/adapter/ArrayAdapter.spec.ts +55 -0
- package/src/ui/adapter/ArrayAdapter.ts +226 -0
- package/src/ui/adapter/DataAdapter.ts +52 -0
- package/src/ui/adapter/GroupAdapter.ts +235 -0
- package/src/ui/adapter/TreeAdapter.spec.ts +76 -0
- package/src/ui/adapter/TreeAdapter.ts +185 -0
- package/src/ui/app/History.ts +133 -0
- package/src/ui/app/Url.spec.ts +50 -0
- package/src/ui/app/Url.ts +102 -0
- package/src/ui/app/startAppLoop.tsx +74 -0
- package/src/ui/app/startHotAppLoop.ts +40 -0
- package/src/ui/batchUpdates.ts +77 -0
- package/src/ui/bind.ts +10 -0
- package/src/ui/createFunctionalComponent.spec.tsx +399 -0
- package/src/ui/createFunctionalComponent.ts +65 -0
- package/src/ui/expr.ts +44 -0
- package/src/ui/flattenProps.ts +21 -0
- package/src/ui/index.scss +2 -2
- package/src/ui/index.ts +45 -0
- package/src/ui/keyboardShortcuts.ts +40 -0
- package/src/ui/layout/Content.ts +30 -0
- package/src/ui/layout/ContentPlaceholder.spec.tsx +587 -0
- package/src/ui/layout/ContentPlaceholder.ts +133 -0
- package/src/ui/layout/FirstVisibleChildLayout.spec.tsx +195 -0
- package/src/ui/layout/FirstVisibleChildLayout.ts +60 -0
- package/src/ui/layout/LabelsLeftLayout.scss +6 -4
- package/src/ui/layout/LabelsLeftLayout.tsx +76 -0
- package/src/ui/layout/LabelsTopLayout.scss +5 -4
- package/src/ui/layout/LabelsTopLayout.tsx +156 -0
- package/src/ui/layout/UseParentLayout.ts +8 -0
- package/src/ui/layout/exploreChildren.ts +38 -0
- package/src/ui/layout/index.scss +3 -3
- package/src/ui/layout/variables.scss +2 -2
- package/src/ui/selection/KeySelection.ts +165 -0
- package/src/ui/selection/PropertySelection.ts +87 -0
- package/src/ui/selection/Selection.ts +118 -0
- package/src/ui/tpl.ts +5 -0
- package/src/ui/variables.scss +1 -1
- package/src/util/Component.spec.ts +381 -0
- package/src/util/Component.ts +296 -0
- package/src/util/Console.ts +11 -0
- package/src/util/DOM.ts +88 -0
- package/src/util/Debug.ts +71 -0
- package/src/util/Format.spec.ts +69 -0
- package/src/util/Format.ts +267 -0
- package/src/util/GlobalCacheIdentifier.ts +11 -0
- package/src/util/KeyCode.ts +21 -0
- package/src/util/SubscriberList.ts +87 -0
- package/src/util/Timing.ts +59 -0
- package/src/util/TraversalStack.spec.ts +54 -0
- package/src/util/TraversalStack.ts +48 -0
- package/src/util/addEventListenerWithOptions.ts +41 -0
- package/src/util/browserSupportsPassiveEventHandlers.ts +20 -0
- package/src/util/calculateNaturalElementHeight.ts +22 -0
- package/src/util/call-once.scss +6 -6
- package/src/util/capitalize.ts +4 -0
- package/src/util/coalesce.ts +6 -0
- package/src/util/color/hslToRgb.ts +34 -0
- package/src/util/color/parseColor.ts +173 -0
- package/src/util/color/rgbToHex.ts +15 -0
- package/src/util/color/rgbToHsl.ts +36 -0
- package/src/util/date/dateDiff.ts +9 -0
- package/src/util/date/diff.ts +13 -0
- package/src/util/date/encodeDate.ts +8 -0
- package/src/util/date/encodeDateWithTimezoneOffset.ts +19 -0
- package/src/util/date/lowerBoundCheck.ts +13 -0
- package/src/util/date/maxDate.ts +14 -0
- package/src/util/date/minDate.ts +14 -0
- package/src/util/date/monthStart.ts +8 -0
- package/src/util/date/parseDateInvariant.ts +20 -0
- package/src/util/date/sameDate.ts +11 -0
- package/src/util/date/upperBoundCheck.ts +13 -0
- package/src/util/date/zeroTime.ts +9 -0
- package/src/util/debounce.ts +26 -0
- package/src/util/dummyCallback.ts +1 -0
- package/src/util/escapeSpecialRegexCharacters.ts +8 -0
- package/src/util/eventCallbacks.ts +12 -0
- package/src/util/expandFatArrows.ts +118 -0
- package/src/util/findScrollableParent.ts +15 -0
- package/src/util/getActiveElement.ts +4 -0
- package/src/util/getParentFrameBoundingClientRect.ts +13 -0
- package/src/util/getScrollerBoundingClientRect.ts +12 -0
- package/src/util/getSearchQueryPredicate.ts +58 -0
- package/src/util/getTopLevelBoundingClientRect.ts +7 -0
- package/src/util/getVendorPrefix.ts +33 -0
- package/src/util/hasKey.ts +18 -0
- package/src/util/index.scss +10 -10
- package/src/util/index.ts +55 -0
- package/src/util/innerTextTrim.ts +10 -0
- package/src/util/isArray.ts +3 -0
- package/src/util/isDataRecord.ts +5 -0
- package/src/util/isDefined.ts +3 -0
- package/src/util/isDigit.ts +8 -0
- package/src/util/isFunction.ts +3 -0
- package/src/util/isNonEmptyArray.ts +3 -0
- package/src/util/isNumber.ts +3 -0
- package/src/util/isObject.ts +3 -0
- package/src/util/isPromise.ts +6 -0
- package/src/util/isString.ts +3 -0
- package/src/util/isTextInputElement.ts +3 -0
- package/src/util/isTouchDevice.ts +7 -0
- package/src/util/isTouchEvent.ts +64 -0
- package/src/util/isUndefined.ts +3 -0
- package/src/util/isValidIdentifierName.ts +5 -0
- package/src/util/onIdleCallback.ts +10 -0
- package/src/util/parseStyle.ts +29 -0
- package/src/util/quote.ts +6 -0
- package/src/util/reverseSlice.ts +10 -0
- package/src/util/routeAppend.ts +16 -0
- package/src/util/scrollElementIntoView.ts +40 -0
- package/src/util/scss/add-rules.scss +7 -5
- package/src/util/scss/calc.scss +12 -8
- package/src/util/scss/call-once.scss +5 -3
- package/src/util/scss/clockwise.scss +20 -18
- package/src/util/scss/colors.scss +4 -2
- package/src/util/scss/deep-get.scss +3 -1
- package/src/util/scss/deep-merge.scss +6 -3
- package/src/util/scss/divide.scss +3 -3
- package/src/util/scss/include.scss +6 -5
- package/src/util/scss/index.scss +9 -9
- package/src/util/shallowEquals.ts +43 -0
- package/src/util/test/createTestRenderer.tsx +12 -0
- package/src/util/throttle.ts +21 -0
- package/src/util/validatedDebounce.ts +23 -0
- package/src/variables.scss +217 -217
- package/src/widgets/AccessorBindings.spec.tsx +64 -66
- package/src/widgets/Button.scss +6 -4
- package/src/widgets/Button.tsx +201 -0
- package/src/widgets/Button.variables.scss +13 -10
- package/src/widgets/CxCredit.scss +6 -4
- package/src/widgets/CxCredit.tsx +46 -0
- package/src/widgets/DocumentTitle.ts +92 -0
- package/src/widgets/FlexBox.scss +7 -5
- package/src/widgets/FlexBox.tsx +169 -0
- package/src/widgets/Heading.scss +6 -4
- package/src/widgets/Heading.ts +43 -0
- package/src/widgets/HighlightedSearchText.scss +6 -4
- package/src/widgets/HighlightedSearchText.tsx +54 -0
- package/src/widgets/HtmlElement.spec.tsx +79 -0
- package/src/widgets/HtmlElement.tsx +349 -0
- package/src/widgets/Icon.scss +6 -4
- package/src/widgets/Icon.ts +78 -0
- package/src/widgets/List.scss +6 -4
- package/src/widgets/List.tsx +787 -0
- package/src/widgets/ProgressBar.scss +5 -4
- package/src/widgets/ProgressBar.tsx +66 -0
- package/src/widgets/Resizer.scss +5 -4
- package/src/widgets/Resizer.tsx +200 -0
- package/src/widgets/Sandbox.ts +103 -0
- package/src/widgets/Section.scss +5 -4
- package/src/widgets/Section.tsx +187 -0
- package/src/widgets/animations.scss +10 -10
- package/src/widgets/autoFocus.ts +9 -0
- package/src/widgets/cx.ts +63 -0
- package/src/widgets/drag-drop/DragClone.scss +6 -4
- package/src/widgets/drag-drop/DragHandle.scss +6 -4
- package/src/widgets/drag-drop/DragHandle.tsx +47 -0
- package/src/widgets/drag-drop/DragSource.scss +6 -4
- package/src/widgets/drag-drop/DragSource.tsx +238 -0
- package/src/widgets/drag-drop/DropZone.scss +6 -4
- package/src/widgets/drag-drop/DropZone.tsx +354 -0
- package/src/widgets/drag-drop/index.scss +3 -3
- package/src/widgets/drag-drop/ops.tsx +422 -0
- package/src/widgets/drag-drop/variables.scss +4 -1
- package/src/widgets/enableAllInternalDependencies.ts +11 -0
- package/src/widgets/form/Calendar.scss +8 -5
- package/src/widgets/form/Calendar.tsx +760 -0
- package/src/widgets/form/Calendar.variables.scss +63 -63
- package/src/widgets/form/Checkbox.scss +5 -3
- package/src/widgets/form/Checkbox.tsx +285 -0
- package/src/widgets/form/Checkbox.variables.scss +39 -39
- package/src/widgets/form/ColorField.scss +5 -3
- package/src/widgets/form/ColorField.tsx +491 -0
- package/src/widgets/form/ColorPicker.scss +5 -3
- package/src/widgets/form/ColorPicker.tsx +544 -0
- package/src/widgets/form/ColorPicker.variables.scss +22 -22
- package/src/widgets/form/DateField.ts +21 -0
- package/src/widgets/form/DateTimeField.scss +5 -3
- package/src/widgets/form/DateTimeField.tsx +723 -0
- package/src/widgets/form/DateTimePicker.scss +6 -4
- package/src/widgets/form/DateTimePicker.tsx +431 -0
- package/src/widgets/form/Field.scss +4 -2
- package/src/widgets/form/Field.tsx +611 -0
- package/src/widgets/form/FieldGroup.ts +10 -0
- package/src/widgets/form/FieldIcon.ts +61 -0
- package/src/widgets/form/HelpText.scss +5 -4
- package/src/widgets/form/HelpText.ts +15 -0
- package/src/widgets/form/Label.scss +5 -4
- package/src/widgets/form/Label.tsx +116 -0
- package/src/widgets/form/LabeledContainer.ts +81 -0
- package/src/widgets/form/LookupField.scss +5 -3
- package/src/widgets/form/LookupField.tsx +1326 -0
- package/src/widgets/form/MonthField.scss +4 -3
- package/src/widgets/form/MonthField.tsx +665 -0
- package/src/widgets/form/MonthPicker.scss +8 -5
- package/src/widgets/form/MonthPicker.tsx +822 -0
- package/src/widgets/form/NumberField.scss +5 -3
- package/src/widgets/form/NumberField.tsx +540 -0
- package/src/widgets/form/Radio.scss +5 -3
- package/src/widgets/form/Radio.tsx +245 -0
- package/src/widgets/form/Radio.variables.scss +45 -45
- package/src/widgets/form/Select.scss +6 -4
- package/src/widgets/form/Select.tsx +322 -0
- package/src/widgets/form/Slider.scss +6 -3
- package/src/widgets/form/Slider.tsx +461 -0
- package/src/widgets/form/Switch.scss +5 -3
- package/src/widgets/form/Switch.tsx +174 -0
- package/src/widgets/form/TextArea.scss +6 -4
- package/src/widgets/form/TextArea.tsx +229 -0
- package/src/widgets/form/TextField.scss +6 -4
- package/src/widgets/form/TextField.tsx +345 -0
- package/src/widgets/form/TimeField.ts +10 -0
- package/src/widgets/form/TimeList.tsx +94 -0
- package/src/widgets/form/UploadButton.scss +5 -3
- package/src/widgets/form/UploadButton.tsx +256 -0
- package/src/widgets/form/ValidationError.scss +4 -3
- package/src/widgets/form/ValidationError.tsx +72 -0
- package/src/widgets/form/ValidationGroup.spec.tsx +147 -0
- package/src/widgets/form/ValidationGroup.ts +141 -0
- package/src/widgets/form/Validator.ts +23 -0
- package/src/widgets/form/Wheel.scss +9 -7
- package/src/widgets/form/Wheel.tsx +315 -0
- package/src/widgets/form/index.scss +24 -24
- package/src/widgets/form/variables.scss +3 -1
- package/src/widgets/grid/Grid.scss +6 -4
- package/src/widgets/grid/Grid.tsx +4247 -0
- package/src/widgets/grid/GridCell.ts +143 -0
- package/src/widgets/grid/GridCellEditor.tsx +52 -0
- package/src/widgets/grid/GridRow.ts +302 -0
- package/src/widgets/grid/GridRowLine.ts +49 -0
- package/src/widgets/grid/Pagination.scss +5 -3
- package/src/widgets/grid/Pagination.tsx +126 -0
- package/src/widgets/grid/TreeNode.scss +6 -4
- package/src/widgets/grid/TreeNode.tsx +145 -0
- package/src/widgets/grid/createGridCellEditor.tsx +18 -0
- package/src/widgets/grid/index.scss +3 -3
- package/src/widgets/grid/index.ts +17 -0
- package/src/widgets/grid/variables.scss +8 -4
- package/src/widgets/icons/arrow-down.svg +3 -3
- package/src/widgets/icons/arrow-right.svg +2 -2
- package/src/widgets/icons/base.svg +104 -104
- package/src/widgets/icons/calendar-old.svg +169 -169
- package/src/widgets/icons/calendar.svg +187 -187
- package/src/widgets/icons/calendar.tsx +17 -0
- package/src/widgets/icons/check.tsx +13 -0
- package/src/widgets/icons/clear.svg +74 -74
- package/src/widgets/icons/clear.tsx +15 -0
- package/src/widgets/icons/close.svg +74 -74
- package/src/widgets/icons/close.tsx +20 -0
- package/src/widgets/icons/cx.tsx +38 -0
- package/src/widgets/icons/drop-down.tsx +15 -0
- package/src/widgets/icons/dropdown-arrow.svg +61 -61
- package/src/widgets/icons/file.svg +4 -4
- package/src/widgets/icons/file.tsx +13 -0
- package/src/widgets/icons/folder-open.svg +5 -5
- package/src/widgets/icons/folder-open.tsx +15 -0
- package/src/widgets/icons/folder.svg +58 -58
- package/src/widgets/icons/folder.tsx +13 -0
- package/src/widgets/icons/forward.svg +67 -67
- package/src/widgets/icons/forward.tsx +22 -0
- package/src/widgets/icons/loading.svg +4 -4
- package/src/widgets/icons/loading.tsx +24 -0
- package/src/widgets/icons/menu.tsx +17 -0
- package/src/widgets/icons/pixel-picker.tsx +18 -0
- package/src/widgets/icons/registry.ts +57 -0
- package/src/widgets/icons/search.svg +107 -107
- package/src/widgets/icons/search.tsx +13 -0
- package/src/widgets/icons/sort-asc.svg +3 -3
- package/src/widgets/icons/sort-asc.tsx +14 -0
- package/src/widgets/icons/square.tsx +18 -0
- package/src/widgets/index.d.ts +55 -55
- package/src/widgets/index.scss +16 -16
- package/src/widgets/nav/Link.scss +5 -3
- package/src/widgets/nav/Link.ts +12 -0
- package/src/widgets/nav/LinkButton.ts +176 -0
- package/src/widgets/nav/Menu.scss +7 -5
- package/src/widgets/nav/Menu.tsx +489 -0
- package/src/widgets/nav/Menu.variables.scss +3 -1
- package/src/widgets/nav/MenuItem.scss +6 -4
- package/src/widgets/nav/MenuItem.tsx +523 -0
- package/src/widgets/nav/MenuSpacer.ts +19 -0
- package/src/widgets/nav/RedirectRoute.ts +50 -0
- package/src/widgets/nav/Route.spec.tsx +24 -0
- package/src/widgets/nav/Route.ts +142 -0
- package/src/widgets/nav/Scroller.scss +5 -3
- package/src/widgets/nav/Scroller.tsx +253 -0
- package/src/widgets/nav/Submenu.ts +6 -0
- package/src/widgets/nav/Tab.scss +5 -4
- package/src/widgets/nav/Tab.ts +120 -0
- package/src/widgets/nav/Tab.variables.scss +84 -84
- package/src/widgets/nav/cover.scss +5 -4
- package/src/widgets/nav/index.scss +5 -5
- package/src/widgets/nav/variables.scss +3 -1
- package/src/widgets/overlay/ContextMenu.ts +42 -0
- package/src/widgets/overlay/Dropdown.scss +11 -9
- package/src/widgets/overlay/Dropdown.tsx +762 -0
- package/src/widgets/overlay/FlyweightTooltipTracker.ts +57 -0
- package/src/widgets/overlay/MsgBox.tsx +141 -0
- package/src/widgets/overlay/Overlay.scss +5 -3
- package/src/widgets/overlay/Overlay.tsx +942 -0
- package/src/widgets/overlay/Toast.scss +8 -7
- package/src/widgets/overlay/Toast.ts +111 -0
- package/src/widgets/overlay/Tooltip.scss +6 -4
- package/src/widgets/overlay/Tooltip.tsx +393 -0
- package/src/widgets/overlay/Window.scss +6 -4
- package/src/widgets/overlay/Window.tsx +299 -0
- package/src/widgets/overlay/Window.variables.scss +62 -62
- package/src/widgets/overlay/alerts.ts +46 -0
- package/src/widgets/overlay/captureMouse.scss +13 -13
- package/src/widgets/overlay/captureMouse.ts +195 -0
- package/src/widgets/overlay/createHotPromiseWindowFactory.ts +72 -0
- package/src/widgets/overlay/index.scss +15 -15
- package/src/widgets/overlay/index.ts +11 -0
- package/src/widgets/overlay/tooltip-ops.ts +173 -0
- package/src/widgets/overlay/variables.scss +3 -1
- package/src/widgets/variables.scss +3 -1
- package/tsconfig.compile.json +4 -0
- package/tsconfig.json +34 -0
- package/tsconfig.mocha.json +14 -0
- package/charts.d.ts +0 -1
- package/charts.js +0 -1
- package/data.d.ts +0 -1
- package/data.js +0 -1
- package/hooks.d.ts +0 -1
- package/hooks.js +0 -1
- package/index.js +0 -17
- package/locale/de-de.js +0 -75
- package/locale/en-us.js +0 -75
- package/locale/es-es.js +0 -75
- package/locale/fr-fr.js +0 -75
- package/locale/nl-nl.js +0 -75
- package/locale/pt-pt.js +0 -75
- package/locale/sr-latn-ba.js +0 -75
- package/manifest.js +0 -1
- package/src/charts/Bar.d.ts +0 -28
- package/src/charts/Bar.js +0 -90
- package/src/charts/BarGraph.d.ts +0 -15
- package/src/charts/BarGraph.js +0 -112
- package/src/charts/BubbleGraph.js +0 -93
- package/src/charts/Chart.d.ts +0 -12
- package/src/charts/Chart.js +0 -75
- package/src/charts/ColorMap.d.ts +0 -21
- package/src/charts/ColorMap.js +0 -97
- package/src/charts/Column.d.ts +0 -29
- package/src/charts/Column.js +0 -88
- package/src/charts/ColumnBarBase.d.ts +0 -64
- package/src/charts/ColumnBarBase.js +0 -176
- package/src/charts/ColumnBarGraphBase.d.ts +0 -73
- package/src/charts/ColumnBarGraphBase.js +0 -114
- package/src/charts/ColumnGraph.d.ts +0 -18
- package/src/charts/ColumnGraph.js +0 -120
- package/src/charts/Grid.js +0 -5
- package/src/charts/Gridlines.d.ts +0 -25
- package/src/charts/Gridlines.js +0 -49
- package/src/charts/Legend.d.ts +0 -45
- package/src/charts/Legend.js +0 -187
- package/src/charts/LegendEntry.d.ts +0 -54
- package/src/charts/LegendEntry.js +0 -128
- package/src/charts/LineGraph.d.ts +0 -101
- package/src/charts/LineGraph.js +0 -300
- package/src/charts/Marker.d.ts +0 -110
- package/src/charts/Marker.js +0 -311
- package/src/charts/MarkerLine.d.ts +0 -56
- package/src/charts/MarkerLine.js +0 -128
- package/src/charts/MouseTracker.d.ts +0 -17
- package/src/charts/MouseTracker.js +0 -81
- package/src/charts/Pie.js +0 -8
- package/src/charts/PieChart.d.ts +0 -92
- package/src/charts/PieChart.js +0 -530
- package/src/charts/PieLabel.d.ts +0 -26
- package/src/charts/PieLabel.js +0 -71
- package/src/charts/PieLabelsContainer.d.ts +0 -6
- package/src/charts/PieLabelsContainer.js +0 -55
- package/src/charts/Range.d.ts +0 -75
- package/src/charts/Range.js +0 -206
- package/src/charts/RangeMarker.d.ts +0 -35
- package/src/charts/RangeMarker.js +0 -159
- package/src/charts/ScatterGraph.d.ts +0 -64
- package/src/charts/ScatterGraph.js +0 -164
- package/src/charts/Swimlane.d.ts +0 -24
- package/src/charts/Swimlane.js +0 -140
- package/src/charts/Swimlanes.d.ts +0 -41
- package/src/charts/Swimlanes.js +0 -114
- package/src/charts/axis/Axis.d.ts +0 -113
- package/src/charts/axis/Axis.js +0 -288
- package/src/charts/axis/CategoryAxis.d.ts +0 -30
- package/src/charts/axis/CategoryAxis.js +0 -241
- package/src/charts/axis/NumericAxis.d.ts +0 -46
- package/src/charts/axis/NumericAxis.js +0 -351
- package/src/charts/axis/Stack.d.ts +0 -11
- package/src/charts/axis/Stack.js +0 -55
- package/src/charts/axis/TimeAxis.d.ts +0 -31
- package/src/charts/axis/TimeAxis.js +0 -611
- package/src/charts/axis/index.d.ts +0 -4
- package/src/charts/axis/index.js +0 -4
- package/src/charts/helpers/MinMaxFinder.d.ts +0 -22
- package/src/charts/helpers/MinMaxFinder.js +0 -36
- package/src/charts/helpers/PointReducer.d.ts +0 -24
- package/src/charts/helpers/PointReducer.js +0 -61
- package/src/charts/helpers/SnapPointFinder.d.ts +0 -30
- package/src/charts/helpers/SnapPointFinder.js +0 -69
- package/src/charts/helpers/ValueAtFinder.d.ts +0 -16
- package/src/charts/helpers/ValueAtFinder.js +0 -46
- package/src/charts/helpers/index.d.ts +0 -4
- package/src/charts/helpers/index.js +0 -4
- package/src/charts/index.d.ts +0 -27
- package/src/charts/shapes.d.ts +0 -23
- package/src/charts/shapes.js +0 -79
- package/src/data/AggregateFunction.d.ts +0 -20
- package/src/data/AggregateFunction.js +0 -145
- package/src/data/ArrayElementView.d.ts +0 -13
- package/src/data/ArrayElementView.js +0 -64
- package/src/data/ArrayElementView.spec.js +0 -88
- package/src/data/ArrayRef.d.ts +0 -15
- package/src/data/ArrayRef.js +0 -35
- package/src/data/AugmentedViewBase.d.ts +0 -18
- package/src/data/AugmentedViewBase.js +0 -77
- package/src/data/Binding.d.ts +0 -19
- package/src/data/Binding.js +0 -76
- package/src/data/ExposedRecordView.d.ts +0 -14
- package/src/data/ExposedRecordView.js +0 -75
- package/src/data/ExposedValueView.d.ts +0 -19
- package/src/data/ExposedValueView.js +0 -73
- package/src/data/Expression.d.ts +0 -17
- package/src/data/Expression.js +0 -229
- package/src/data/Expression.spec.js +0 -229
- package/src/data/Grouper.d.ts +0 -21
- package/src/data/Grouper.js +0 -144
- package/src/data/Grouper.spec.js +0 -57
- package/src/data/NestedDataView.d.ts +0 -19
- package/src/data/NestedDataView.js +0 -22
- package/src/data/ReadOnlyDataView.d.ts +0 -14
- package/src/data/ReadOnlyDataView.js +0 -27
- package/src/data/Ref.d.ts +0 -24
- package/src/data/Ref.js +0 -79
- package/src/data/Ref.spec.js +0 -79
- package/src/data/Store.d.ts +0 -14
- package/src/data/Store.js +0 -46
- package/src/data/Store.spec.js +0 -22
- package/src/data/StoreProxy.d.ts +0 -5
- package/src/data/StoreProxy.js +0 -17
- package/src/data/StoreRef.js +0 -54
- package/src/data/StoreRef.spec.js +0 -24
- package/src/data/StringTemplate.d.ts +0 -15
- package/src/data/StringTemplate.js +0 -92
- package/src/data/StringTemplate.spec.js +0 -132
- package/src/data/StructuredDataAccessor.d.ts +0 -7
- package/src/data/StructuredSelector.d.ts +0 -17
- package/src/data/StructuredSelector.js +0 -132
- package/src/data/StructuredSelector.spec.js +0 -113
- package/src/data/SubscribableView.d.ts +0 -11
- package/src/data/SubscribableView.js +0 -54
- package/src/data/View.d.ts +0 -155
- package/src/data/View.js +0 -182
- package/src/data/ZoomIntoPropertyView.d.ts +0 -11
- package/src/data/ZoomIntoPropertyView.js +0 -33
- package/src/data/ZoomIntoPropertyView.spec.js +0 -65
- package/src/data/comparer.d.ts +0 -7
- package/src/data/comparer.js +0 -54
- package/src/data/computable.d.ts +0 -125
- package/src/data/computable.js +0 -56
- package/src/data/computable.spec.js +0 -55
- package/src/data/createAccessorModelProxy.d.ts +0 -6
- package/src/data/createAccessorModelProxy.js +0 -43
- package/src/data/createStructuredSelector.d.ts +0 -3
- package/src/data/createStructuredSelector.js +0 -43
- package/src/data/createStructuredSelector.spec.js +0 -46
- package/src/data/defaultCompare.d.ts +0 -1
- package/src/data/defaultCompare.js +0 -15
- package/src/data/diff/diffArrays.d.ts +0 -15
- package/src/data/diff/diffArrays.js +0 -41
- package/src/data/diff/diffs.spec.js +0 -49
- package/src/data/diff/index.d.ts +0 -1
- package/src/data/diff/index.js +0 -1
- package/src/data/enableFatArrowExpansion.d.ts +0 -1
- package/src/data/enableFatArrowExpansion.js +0 -6
- package/src/data/getAccessor.d.ts +0 -9
- package/src/data/getAccessor.js +0 -61
- package/src/data/getAccessor.spec.js +0 -11
- package/src/data/getSelector.d.ts +0 -3
- package/src/data/getSelector.js +0 -49
- package/src/data/getSelector.spec.js +0 -43
- package/src/data/index.d.ts +0 -30
- package/src/data/index.js +0 -29
- package/src/data/isSelector.d.ts +0 -1
- package/src/data/isSelector.js +0 -26
- package/src/data/ops/append.d.ts +0 -1
- package/src/data/ops/append.js +0 -7
- package/src/data/ops/append.spec.js +0 -28
- package/src/data/ops/filter.d.ts +0 -1
- package/src/data/ops/filter.js +0 -8
- package/src/data/ops/filter.spec.js +0 -29
- package/src/data/ops/findTreeNode.d.ts +0 -1
- package/src/data/ops/findTreeNode.js +0 -15
- package/src/data/ops/findTreeNode.spec.js +0 -24
- package/src/data/ops/findTreePath.d.ts +0 -6
- package/src/data/ops/findTreePath.js +0 -16
- package/src/data/ops/index.d.ts +0 -10
- package/src/data/ops/insertElement.d.ts +0 -1
- package/src/data/ops/insertElement.js +0 -3
- package/src/data/ops/merge.d.ts +0 -3
- package/src/data/ops/merge.js +0 -9
- package/src/data/ops/merge.spec.js +0 -27
- package/src/data/ops/moveElement.d.ts +0 -1
- package/src/data/ops/moveElement.js +0 -14
- package/src/data/ops/removeTreeNodes.d.ts +0 -5
- package/src/data/ops/removeTreeNodes.js +0 -5
- package/src/data/ops/removeTreeNodes.spec.js +0 -28
- package/src/data/ops/updateArray.d.ts +0 -6
- package/src/data/ops/updateArray.js +0 -24
- package/src/data/ops/updateArray.spec.js +0 -38
- package/src/data/ops/updateTree.d.ts +0 -7
- package/src/data/ops/updateTree.js +0 -25
- package/src/data/ops/updateTree.spec.js +0 -36
- package/src/hooks/createLocalStorageRef.d.ts +0 -3
- package/src/hooks/createLocalStorageRef.js +0 -20
- package/src/hooks/index.js +0 -8
- package/src/hooks/invokeCallback.d.ts +0 -5
- package/src/hooks/invokeCallback.js +0 -7
- package/src/hooks/invokeCallback.spec.js +0 -53
- package/src/hooks/resolveCallback.d.ts +0 -3
- package/src/hooks/resolveCallback.js +0 -12
- package/src/hooks/resolveCallback.spec.js +0 -54
- package/src/hooks/store.d.ts +0 -8
- package/src/hooks/store.js +0 -32
- package/src/hooks/store.spec.js +0 -73
- package/src/hooks/useEffect.d.ts +0 -3
- package/src/hooks/useEffect.js +0 -15
- package/src/hooks/useInterval.d.ts +0 -1
- package/src/hooks/useInterval.js +0 -8
- package/src/hooks/useState.d.ts +0 -3
- package/src/hooks/useState.js +0 -16
- package/src/hooks/useTrigger.d.ts +0 -5
- package/src/hooks/useTrigger.js +0 -20
- package/src/hooks/useTrigger.spec.js +0 -102
- package/src/svg/BoundedObject.d.ts +0 -23
- package/src/svg/BoundedObject.js +0 -59
- package/src/svg/ClipRect.d.ts +0 -5
- package/src/svg/ClipRect.js +0 -23
- package/src/svg/Ellipse.d.ts +0 -24
- package/src/svg/Ellipse.js +0 -37
- package/src/svg/Line.d.ts +0 -21
- package/src/svg/Line.js +0 -33
- package/src/svg/NonOverlappingRect.d.ts +0 -5
- package/src/svg/NonOverlappingRect.js +0 -15
- package/src/svg/NonOverlappingRectGroup.d.ts +0 -3
- package/src/svg/NonOverlappingRectGroup.js +0 -37
- package/src/svg/Rectangle.d.ts +0 -37
- package/src/svg/Rectangle.js +0 -42
- package/src/svg/Svg.d.ts +0 -32
- package/src/svg/Svg.js +0 -177
- package/src/svg/Text.d.ts +0 -40
- package/src/svg/Text.js +0 -78
- package/src/svg/TextualBoundedObject.d.ts +0 -7
- package/src/svg/TextualBoundedObject.js +0 -28
- package/src/svg/index.d.ts +0 -11
- package/src/svg/util/Rect.d.ts +0 -41
- package/src/svg/util/Rect.js +0 -109
- package/src/svg/util/index.js +0 -1
- package/src/ui/CSS.d.ts +0 -20
- package/src/ui/CSS.js +0 -79
- package/src/ui/CSSHelper.d.ts +0 -11
- package/src/ui/CSSHelper.js +0 -18
- package/src/ui/Container.d.ts +0 -18
- package/src/ui/Container.js +0 -154
- package/src/ui/ContentResolver.d.ts +0 -12
- package/src/ui/ContentResolver.js +0 -78
- package/src/ui/Controller.d.ts +0 -182
- package/src/ui/Controller.js +0 -114
- package/src/ui/Controller.spec.js +0 -415
- package/src/ui/Culture.d.ts +0 -57
- package/src/ui/Culture.js +0 -139
- package/src/ui/Cx.d.ts +0 -18
- package/src/ui/Cx.js +0 -325
- package/src/ui/Cx.spec.js +0 -194
- package/src/ui/DataProxy.d.ts +0 -12
- package/src/ui/DataProxy.js +0 -31
- package/src/ui/DataProxy.spec.js +0 -338
- package/src/ui/DetachedScope.d.ts +0 -21
- package/src/ui/DetachedScope.js +0 -98
- package/src/ui/FocusManager.d.ts +0 -29
- package/src/ui/FocusManager.js +0 -171
- package/src/ui/Format.d.ts +0 -3
- package/src/ui/Format.js +0 -108
- package/src/ui/HoverSync.d.ts +0 -13
- package/src/ui/HoverSync.js +0 -147
- package/src/ui/Instance.d.ts +0 -72
- package/src/ui/Instance.js +0 -620
- package/src/ui/IsolatedScope.d.ts +0 -16
- package/src/ui/IsolatedScope.js +0 -30
- package/src/ui/IsolatedScope.spec.js +0 -62
- package/src/ui/Localization.d.ts +0 -17
- package/src/ui/Localization.js +0 -70
- package/src/ui/PureContainer.d.ts +0 -16
- package/src/ui/PureContainer.js +0 -7
- package/src/ui/RenderingContext.d.ts +0 -9
- package/src/ui/RenderingContext.js +0 -88
- package/src/ui/Repeater.d.ts +0 -61
- package/src/ui/Repeater.js +0 -109
- package/src/ui/Repeater.spec.js +0 -143
- package/src/ui/Rescope.d.ts +0 -10
- package/src/ui/Rescope.js +0 -35
- package/src/ui/Rescope.spec.js +0 -195
- package/src/ui/ResizeManager.d.ts +0 -10
- package/src/ui/ResizeManager.js +0 -31
- package/src/ui/Restate.d.ts +0 -21
- package/src/ui/Restate.js +0 -167
- package/src/ui/Restate.spec.js +0 -422
- package/src/ui/StaticText.d.ts +0 -8
- package/src/ui/StaticText.js +0 -9
- package/src/ui/StructuredInstanceDataAccessor.d.ts +0 -16
- package/src/ui/StructuredInstanceDataAccessor.js +0 -26
- package/src/ui/Text.d.ts +0 -10
- package/src/ui/Text.js +0 -25
- package/src/ui/VDOM.d.ts +0 -12
- package/src/ui/VDOM.js +0 -2
- package/src/ui/Widget.d.ts +0 -14
- package/src/ui/Widget.js +0 -184
- package/src/ui/ZIndexManager.d.ts +0 -7
- package/src/ui/ZIndexManager.js +0 -11
- package/src/ui/adapter/ArrayAdapter.d.ts +0 -17
- package/src/ui/adapter/ArrayAdapter.js +0 -152
- package/src/ui/adapter/ArrayAdapter.spec.js +0 -55
- package/src/ui/adapter/DataAdapter.d.ts +0 -31
- package/src/ui/adapter/DataAdapter.js +0 -15
- package/src/ui/adapter/GroupAdapter.d.ts +0 -23
- package/src/ui/adapter/GroupAdapter.js +0 -140
- package/src/ui/adapter/TreeAdapter.d.ts +0 -24
- package/src/ui/adapter/TreeAdapter.js +0 -101
- package/src/ui/adapter/TreeAdapter.spec.js +0 -67
- package/src/ui/adapter/index.js +0 -4
- package/src/ui/app/History.d.ts +0 -17
- package/src/ui/app/History.js +0 -114
- package/src/ui/app/Url.d.ts +0 -21
- package/src/ui/app/Url.js +0 -103
- package/src/ui/app/Url.spec.js +0 -51
- package/src/ui/app/index.d.ts +0 -4
- package/src/ui/app/startAppLoop.d.ts +0 -4
- package/src/ui/app/startAppLoop.js +0 -58
- package/src/ui/app/startHotAppLoop.d.ts +0 -7
- package/src/ui/app/startHotAppLoop.js +0 -25
- package/src/ui/batchUpdates.d.ts +0 -11
- package/src/ui/batchUpdates.js +0 -67
- package/src/ui/bind.d.ts +0 -4
- package/src/ui/bind.js +0 -7
- package/src/ui/createFunctionalComponent.d.ts +0 -1
- package/src/ui/createFunctionalComponent.js +0 -63
- package/src/ui/createFunctionalComponent.spec.js +0 -400
- package/src/ui/expr.d.ts +0 -24
- package/src/ui/expr.js +0 -17
- package/src/ui/flattenProps.js +0 -21
- package/src/ui/index.d.ts +0 -42
- package/src/ui/index.js +0 -44
- package/src/ui/keyboardShortcuts.d.ts +0 -5
- package/src/ui/keyboardShortcuts.js +0 -31
- package/src/ui/layout/Content.d.ts +0 -14
- package/src/ui/layout/Content.js +0 -16
- package/src/ui/layout/ContentPlaceholder.d.ts +0 -19
- package/src/ui/layout/ContentPlaceholder.js +0 -105
- package/src/ui/layout/ContentPlaceholder.spec.js +0 -579
- package/src/ui/layout/FirstVisibleChildLayout.d.ts +0 -4
- package/src/ui/layout/FirstVisibleChildLayout.js +0 -66
- package/src/ui/layout/FirstVisibleChildLayout.spec.js +0 -196
- package/src/ui/layout/LabelsLeftLayout.d.ts +0 -11
- package/src/ui/layout/LabelsLeftLayout.js +0 -59
- package/src/ui/layout/LabelsTopLayout.d.ts +0 -15
- package/src/ui/layout/LabelsTopLayout.js +0 -135
- package/src/ui/layout/UseParentLayout.d.ts +0 -4
- package/src/ui/layout/UseParentLayout.js +0 -6
- package/src/ui/layout/exploreChildren.d.ts +0 -12
- package/src/ui/layout/exploreChildren.js +0 -27
- package/src/ui/layout/index.js +0 -10
- package/src/ui/selection/KeySelection.d.ts +0 -17
- package/src/ui/selection/KeySelection.js +0 -129
- package/src/ui/selection/PropertySelection.d.ts +0 -17
- package/src/ui/selection/PropertySelection.js +0 -55
- package/src/ui/selection/Selection.d.ts +0 -27
- package/src/ui/selection/Selection.js +0 -93
- package/src/ui/selection/index.js +0 -3
- package/src/ui/tpl.d.ts +0 -3
- package/src/ui/tpl.js +0 -5
- package/src/util/Component.d.ts +0 -42
- package/src/util/Component.js +0 -108
- package/src/util/Console.d.ts +0 -4
- package/src/util/Console.js +0 -11
- package/src/util/DOM.d.ts +0 -33
- package/src/util/DOM.js +0 -72
- package/src/util/Debug.d.ts +0 -11
- package/src/util/Debug.js +0 -45
- package/src/util/Format.d.ts +0 -18
- package/src/util/Format.js +0 -270
- package/src/util/Format.spec.js +0 -69
- package/src/util/GlobalCacheIdentifier.js +0 -11
- package/src/util/GlobalCacheldentifier.d.ts +0 -7
- package/src/util/KeyCode.d.ts +0 -21
- package/src/util/KeyCode.js +0 -21
- package/src/util/SubscriberList.d.ts +0 -42
- package/src/util/SubscriberList.js +0 -58
- package/src/util/Timing.d.ts +0 -14
- package/src/util/Timing.js +0 -58
- package/src/util/TraversalStack.js +0 -43
- package/src/util/TraversalStack.spec.js +0 -47
- package/src/util/addEventListenerWithOptions.d.ts +0 -6
- package/src/util/addEventListenerWithOptions.js +0 -9
- package/src/util/browserSupportsPassiveEventHandlers.d.ts +0 -5
- package/src/util/browserSupportsPassiveEventHandlers.js +0 -18
- package/src/util/calculateNaturalElementHeight.d.ts +0 -1
- package/src/util/calculateNaturalElementHeight.js +0 -22
- package/src/util/capitalize.d.ts +0 -1
- package/src/util/capitalize.js +0 -4
- package/src/util/coalesce.d.ts +0 -1
- package/src/util/coalesce.js +0 -6
- package/src/util/color/hslToRgb.d.ts +0 -9
- package/src/util/color/hslToRgb.js +0 -27
- package/src/util/color/index.d.ts +0 -4
- package/src/util/color/parseColor.d.ts +0 -60
- package/src/util/color/parseColor.js +0 -119
- package/src/util/color/rgbToHex.d.ts +0 -9
- package/src/util/color/rgbToHex.js +0 -8
- package/src/util/color/rgbToHsl.d.ts +0 -9
- package/src/util/color/rgbToHsl.js +0 -28
- package/src/util/date/dateDiff.d.ts +0 -8
- package/src/util/date/dateDiff.js +0 -3
- package/src/util/date/diff.d.ts +0 -8
- package/src/util/date/diff.js +0 -7
- package/src/util/date/encodeDate.d.ts +0 -1
- package/src/util/date/encodeDate.js +0 -8
- package/src/util/date/encodeDateWithTimezoneOffset.d.ts +0 -1
- package/src/util/date/encodeDateWithTimezoneOffset.js +0 -19
- package/src/util/date/index.js +0 -11
- package/src/util/date/lowerBoundCheck.d.ts +0 -8
- package/src/util/date/lowerBoundCheck.js +0 -6
- package/src/util/date/maxDate.d.ts +0 -6
- package/src/util/date/maxDate.js +0 -9
- package/src/util/date/minDate.d.ts +0 -6
- package/src/util/date/minDate.js +0 -9
- package/src/util/date/monthStart.d.ts +0 -6
- package/src/util/date/monthStart.js +0 -3
- package/src/util/date/parseDateInvariant.d.ts +0 -3
- package/src/util/date/parseDateInvariant.js +0 -20
- package/src/util/date/sameDate.d.ts +0 -7
- package/src/util/date/sameDate.js +0 -5
- package/src/util/date/upperBoundCheck.d.ts +0 -8
- package/src/util/date/upperBoundCheck.js +0 -6
- package/src/util/date/zeroTime.d.ts +0 -7
- package/src/util/date/zeroTime.js +0 -3
- package/src/util/debounce.d.ts +0 -9
- package/src/util/debounce.js +0 -18
- package/src/util/dummyCallback.d.ts +0 -1
- package/src/util/dummyCallback.js +0 -1
- package/src/util/escapeSpecialRegexCharacters.d.ts +0 -7
- package/src/util/escapeSpecialRegexCharacters.js +0 -3
- package/src/util/eventCallbacks.d.ts +0 -5
- package/src/util/eventCallbacks.js +0 -2
- package/src/util/expandFatArrows.d.ts +0 -1
- package/src/util/expandFatArrows.js +0 -118
- package/src/util/findScrollableParent.d.ts +0 -1
- package/src/util/findScrollableParent.js +0 -16
- package/src/util/getActiveElement.d.ts +0 -1
- package/src/util/getActiveElement.js +0 -4
- package/src/util/getParentFrameBoundingClientRect.d.ts +0 -1
- package/src/util/getParentFrameBoundingClientRect.js +0 -21
- package/src/util/getScrollerBoundingClientRect.d.ts +0 -1
- package/src/util/getScrollerBoundingClientRect.js +0 -22
- package/src/util/getSearchQueryPredicate.d.ts +0 -1
- package/src/util/getSearchQueryPredicate.js +0 -59
- package/src/util/getTopLevelBoundingClientRect.d.ts +0 -1
- package/src/util/getTopLevelBoundingClientRect.js +0 -14
- package/src/util/getVendorPrefix.d.ts +0 -1
- package/src/util/getVendorPrefix.js +0 -26
- package/src/util/index.d.ts +0 -51
- package/src/util/index.js +0 -54
- package/src/util/innerTextTrim.d.ts +0 -7
- package/src/util/innerTextTrim.js +0 -5
- package/src/util/isArray.d.ts +0 -1
- package/src/util/isArray.js +0 -3
- package/src/util/isDefined.d.ts +0 -1
- package/src/util/isDefined.js +0 -3
- package/src/util/isDigit.d.ts +0 -7
- package/src/util/isDigit.js +0 -3
- package/src/util/isFunction.d.ts +0 -1
- package/src/util/isFunction.js +0 -3
- package/src/util/isNonEmptyArray.d.ts +0 -1
- package/src/util/isNonEmptyArray.js +0 -3
- package/src/util/isNumber.d.ts +0 -1
- package/src/util/isNumber.js +0 -3
- package/src/util/isObject.d.ts +0 -1
- package/src/util/isObject.js +0 -3
- package/src/util/isPromise.d.ts +0 -1
- package/src/util/isPromise.js +0 -6
- package/src/util/isString.d.ts +0 -1
- package/src/util/isString.js +0 -3
- package/src/util/isTextInputElement.d.ts +0 -1
- package/src/util/isTextInputElement.js +0 -3
- package/src/util/isTouchDevice.d.ts +0 -2
- package/src/util/isTouchDevice.js +0 -7
- package/src/util/isTouchEvent.d.ts +0 -4
- package/src/util/isTouchEvent.js +0 -64
- package/src/util/isUndefined.d.ts +0 -1
- package/src/util/isUndefined.js +0 -3
- package/src/util/isValidIdentifierName.d.ts +0 -1
- package/src/util/isValidIdentifierName.js +0 -5
- package/src/util/onIdleCallback.d.ts +0 -1
- package/src/util/onIdleCallback.js +0 -14
- package/src/util/parseStyle.d.ts +0 -4
- package/src/util/parseStyle.js +0 -27
- package/src/util/quote.d.ts +0 -3
- package/src/util/quote.js +0 -4
- package/src/util/reverseSlice.d.ts +0 -1
- package/src/util/reverseSlice.js +0 -10
- package/src/util/routeAppend.d.ts +0 -1
- package/src/util/routeAppend.js +0 -16
- package/src/util/scrollElementIntoView.d.ts +0 -7
- package/src/util/scrollElementIntoView.js +0 -34
- package/src/util/shallowEquals.d.ts +0 -1
- package/src/util/shallowEquals.js +0 -43
- package/src/util/throttle.d.ts +0 -9
- package/src/util/throttle.js +0 -14
- package/src/util/validatedDebounce.js +0 -19
- package/src/widgets/Button.d.ts +0 -58
- package/src/widgets/Button.js +0 -118
- package/src/widgets/CxCredit.d.ts +0 -12
- package/src/widgets/CxCredit.js +0 -32
- package/src/widgets/DocumentTitle.d.ts +0 -11
- package/src/widgets/DocumentTitle.js +0 -69
- package/src/widgets/FlexBox.d.ts +0 -69
- package/src/widgets/FlexBox.js +0 -93
- package/src/widgets/Heading.d.ts +0 -16
- package/src/widgets/Heading.js +0 -33
- package/src/widgets/HighlightedSearchText.d.ts +0 -9
- package/src/widgets/HighlightedSearchText.js +0 -36
- package/src/widgets/HtmlElement.d.ts +0 -30
- package/src/widgets/HtmlElement.js +0 -275
- package/src/widgets/HtmlElement.spec.js +0 -57
- package/src/widgets/Icon.d.ts +0 -34
- package/src/widgets/Icon.js +0 -50
- package/src/widgets/List.d.ts +0 -96
- package/src/widgets/List.js +0 -594
- package/src/widgets/ProgressBar.d.ts +0 -17
- package/src/widgets/ProgressBar.js +0 -46
- package/src/widgets/Resizer.d.ts +0 -27
- package/src/widgets/Resizer.js +0 -151
- package/src/widgets/Sandbox.d.ts +0 -18
- package/src/widgets/Sandbox.js +0 -65
- package/src/widgets/Section.d.ts +0 -52
- package/src/widgets/Section.js +0 -139
- package/src/widgets/autoFocus.d.ts +0 -1
- package/src/widgets/autoFocus.js +0 -9
- package/src/widgets/cx.d.ts +0 -2
- package/src/widgets/cx.js +0 -72
- package/src/widgets/drag-drop/DragHandle.d.ts +0 -10
- package/src/widgets/drag-drop/DragHandle.js +0 -37
- package/src/widgets/drag-drop/DragSource.d.ts +0 -45
- package/src/widgets/drag-drop/DragSource.js +0 -160
- package/src/widgets/drag-drop/DropZone.d.ts +0 -98
- package/src/widgets/drag-drop/DropZone.js +0 -214
- package/src/widgets/drag-drop/index.d.ts +0 -4
- package/src/widgets/drag-drop/ops.d.ts +0 -57
- package/src/widgets/drag-drop/ops.js +0 -344
- package/src/widgets/enableAllInternalDependencies.d.ts +0 -1
- package/src/widgets/enableAllInternalDependencies.js +0 -11
- package/src/widgets/form/Calendar.d.ts +0 -86
- package/src/widgets/form/Calendar.js +0 -618
- package/src/widgets/form/Checkbox.d.ts +0 -43
- package/src/widgets/form/Checkbox.js +0 -203
- package/src/widgets/form/ColorField.d.ts +0 -44
- package/src/widgets/form/ColorField.js +0 -397
- package/src/widgets/form/ColorPicker.d.ts +0 -23
- package/src/widgets/form/ColorPicker.js +0 -485
- package/src/widgets/form/DateField.d.ts +0 -6
- package/src/widgets/form/DateField.js +0 -12
- package/src/widgets/form/DateTimeField.d.ts +0 -89
- package/src/widgets/form/DateTimeField.js +0 -576
- package/src/widgets/form/DateTimePicker.js +0 -392
- package/src/widgets/form/Field.d.ts +0 -112
- package/src/widgets/form/Field.js +0 -446
- package/src/widgets/form/FieldGroup.d.ts +0 -6
- package/src/widgets/form/FieldGroup.js +0 -6
- package/src/widgets/form/FieldIcon.js +0 -42
- package/src/widgets/form/HelpText.d.ts +0 -10
- package/src/widgets/form/HelpText.js +0 -9
- package/src/widgets/form/Label.d.ts +0 -23
- package/src/widgets/form/Label.js +0 -89
- package/src/widgets/form/LabeledContainer.d.ts +0 -9
- package/src/widgets/form/LabeledContainer.js +0 -59
- package/src/widgets/form/LookupField.d.ts +0 -179
- package/src/widgets/form/LookupField.js +0 -1135
- package/src/widgets/form/MonthField.d.ts +0 -104
- package/src/widgets/form/MonthField.js +0 -524
- package/src/widgets/form/MonthPicker.d.ts +0 -97
- package/src/widgets/form/MonthPicker.js +0 -687
- package/src/widgets/form/NumberField.d.ts +0 -96
- package/src/widgets/form/NumberField.js +0 -459
- package/src/widgets/form/Radio.d.ts +0 -37
- package/src/widgets/form/Radio.js +0 -188
- package/src/widgets/form/Select.d.ts +0 -69
- package/src/widgets/form/Select.js +0 -269
- package/src/widgets/form/Slider.d.ts +0 -65
- package/src/widgets/form/Slider.js +0 -351
- package/src/widgets/form/Switch.d.ts +0 -38
- package/src/widgets/form/Switch.js +0 -118
- package/src/widgets/form/TextArea.d.ts +0 -17
- package/src/widgets/form/TextArea.js +0 -195
- package/src/widgets/form/TextField.d.ts +0 -78
- package/src/widgets/form/TextField.js +0 -290
- package/src/widgets/form/TimeField.d.ts +0 -6
- package/src/widgets/form/TimeField.js +0 -11
- package/src/widgets/form/TimeList.js +0 -84
- package/src/widgets/form/UploadButton.d.ts +0 -34
- package/src/widgets/form/UploadButton.js +0 -213
- package/src/widgets/form/ValidationError.d.ts +0 -10
- package/src/widgets/form/ValidationError.js +0 -44
- package/src/widgets/form/ValidationGroup.d.ts +0 -41
- package/src/widgets/form/ValidationGroup.js +0 -68
- package/src/widgets/form/ValidationGroup.spec.js +0 -148
- package/src/widgets/form/Validator.d.ts +0 -8
- package/src/widgets/form/Validator.js +0 -21
- package/src/widgets/form/Wheel.js +0 -261
- package/src/widgets/form/index.d.ts +0 -26
- package/src/widgets/grid/Grid.d.ts +0 -442
- package/src/widgets/grid/Grid.js +0 -3429
- package/src/widgets/grid/GridCell.d.ts +0 -38
- package/src/widgets/grid/GridCell.js +0 -71
- package/src/widgets/grid/GridCellEditor.js +0 -41
- package/src/widgets/grid/GridRow.js +0 -228
- package/src/widgets/grid/GridRowLine.js +0 -24
- package/src/widgets/grid/Pagination.d.ts +0 -14
- package/src/widgets/grid/Pagination.js +0 -95
- package/src/widgets/grid/TreeNode.d.ts +0 -23
- package/src/widgets/grid/TreeNode.js +0 -102
- package/src/widgets/grid/index.d.ts +0 -4
- package/src/widgets/grid/index.js +0 -15
- package/src/widgets/icons/calendar.js +0 -16
- package/src/widgets/icons/check.js +0 -12
- package/src/widgets/icons/clear.js +0 -14
- package/src/widgets/icons/close.js +0 -19
- package/src/widgets/icons/cx.js +0 -37
- package/src/widgets/icons/drop-down.js +0 -14
- package/src/widgets/icons/file.js +0 -12
- package/src/widgets/icons/folder-open.js +0 -14
- package/src/widgets/icons/folder.js +0 -12
- package/src/widgets/icons/forward.js +0 -21
- package/src/widgets/icons/loading.js +0 -23
- package/src/widgets/icons/menu.js +0 -16
- package/src/widgets/icons/pixel-picker.js +0 -17
- package/src/widgets/icons/registry.js +0 -54
- package/src/widgets/icons/search.js +0 -12
- package/src/widgets/icons/sort-asc.js +0 -13
- package/src/widgets/icons/square.js +0 -17
- package/src/widgets/nav/Link.d.ts +0 -26
- package/src/widgets/nav/Link.js +0 -8
- package/src/widgets/nav/LinkButton.d.ts +0 -34
- package/src/widgets/nav/LinkButton.js +0 -128
- package/src/widgets/nav/Menu.d.ts +0 -27
- package/src/widgets/nav/Menu.js +0 -406
- package/src/widgets/nav/MenuItem.d.ts +0 -31
- package/src/widgets/nav/MenuItem.js +0 -445
- package/src/widgets/nav/MenuSpacer.d.ts +0 -5
- package/src/widgets/nav/MenuSpacer.js +0 -13
- package/src/widgets/nav/RedirectRoute.d.ts +0 -9
- package/src/widgets/nav/RedirectRoute.js +0 -41
- package/src/widgets/nav/Route.d.ts +0 -21
- package/src/widgets/nav/Route.js +0 -102
- package/src/widgets/nav/Route.spec.js +0 -27
- package/src/widgets/nav/Scroller.d.ts +0 -17
- package/src/widgets/nav/Scroller.js +0 -214
- package/src/widgets/nav/Submenu.d.ts +0 -6
- package/src/widgets/nav/Submenu.js +0 -6
- package/src/widgets/nav/Tab.d.ts +0 -33
- package/src/widgets/nav/Tab.js +0 -82
- package/src/widgets/nav/index.d.ts +0 -10
- package/src/widgets/overlay/ContextMenu.d.ts +0 -10
- package/src/widgets/overlay/ContextMenu.js +0 -29
- package/src/widgets/overlay/Dropdown.d.ts +0 -32
- package/src/widgets/overlay/Dropdown.js +0 -612
- package/src/widgets/overlay/FlyweightTooltipTracker.d.ts +0 -8
- package/src/widgets/overlay/FlyweightTooltipTracker.js +0 -39
- package/src/widgets/overlay/MsgBox.d.ts +0 -17
- package/src/widgets/overlay/MsgBox.js +0 -116
- package/src/widgets/overlay/Overlay.d.ts +0 -73
- package/src/widgets/overlay/Overlay.js +0 -747
- package/src/widgets/overlay/Toast.d.ts +0 -30
- package/src/widgets/overlay/Toast.js +0 -93
- package/src/widgets/overlay/Tooltip.d.ts +0 -50
- package/src/widgets/overlay/Tooltip.js +0 -308
- package/src/widgets/overlay/Window.d.ts +0 -42
- package/src/widgets/overlay/Window.js +0 -202
- package/src/widgets/overlay/alerts.d.ts +0 -7
- package/src/widgets/overlay/alerts.js +0 -39
- package/src/widgets/overlay/captureMouse.d.ts +0 -54
- package/src/widgets/overlay/captureMouse.js +0 -124
- package/src/widgets/overlay/createHotPromiseWindowFactory.d.ts +0 -18
- package/src/widgets/overlay/createHotPromiseWindowFactory.js +0 -56
- package/src/widgets/overlay/index.js +0 -11
- package/src/widgets/overlay/tooltip-ops.d.ts +0 -11
- package/src/widgets/overlay/tooltip-ops.js +0 -29
- package/svg.d.ts +0 -1
- package/svg.js +0 -1
- package/ui.d.ts +0 -1
- package/ui.js +0 -1
- package/util.d.ts +0 -1
- package/util.js +0 -1
- package/widgets.d.ts +0 -1
- package/widgets.js +0 -1
- /package/src/charts/{index.js → index.ts} +0 -0
- /package/src/data/{Binding.spec.js → Binding.spec.ts} +0 -0
- /package/src/data/{View.spec.js → View.spec.ts} +0 -0
- /package/src/data/{comparer.spec.js → comparer.spec.ts} +0 -0
- /package/src/data/ops/{index.js → index.ts} +0 -0
- /package/src/hooks/{index.d.ts → index.ts} +0 -0
- /package/src/{index.js → index.ts} +0 -0
- /package/src/svg/{index.js → index.ts} +0 -0
- /package/src/svg/util/{index.d.ts → index.ts} +0 -0
- /package/src/ui/adapter/{index.d.ts → index.ts} +0 -0
- /package/src/ui/app/{index.js → index.ts} +0 -0
- /package/src/ui/layout/{index.d.ts → index.ts} +0 -0
- /package/src/ui/selection/{index.d.ts → index.ts} +0 -0
- /package/src/util/color/{index.js → index.ts} +0 -0
- /package/src/util/date/{index.d.ts → index.ts} +0 -0
- /package/src/util/date/{upperBoundCheck.spec.js → upperBoundCheck.spec.ts} +0 -0
- /package/src/util/{getSearchQueryPredicate.spec.js → getSearchQueryPredicate.spec.ts} +0 -0
- /package/src/util/{isValidIdentifierName.spec.js → isValidIdentifierName.spec.ts} +0 -0
- /package/src/util/{routeAppend.spec.js → routeAppend.spec.ts} +0 -0
- /package/src/widgets/drag-drop/{index.js → index.ts} +0 -0
- /package/src/widgets/form/{index.js → index.ts} +0 -0
- /package/src/widgets/icons/{index.js → index.ts} +0 -0
- /package/src/widgets/{index.js → index.ts} +0 -0
- /package/src/widgets/nav/{index.js → index.ts} +0 -0
package/dist/util.js
CHANGED
|
@@ -1,56 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
log:
|
|
3
|
-
|
|
4
|
-
if (typeof window != "undefined" && window.console) (_console = console).log.apply(_console, arguments);
|
|
1
|
+
const Console = {
|
|
2
|
+
log: (...args) => {
|
|
3
|
+
if (typeof window != "undefined" && window.console) console.log(...args);
|
|
5
4
|
},
|
|
6
|
-
warn:
|
|
7
|
-
|
|
8
|
-
if (typeof window != "undefined" && window.console) (_console2 = console).warn.apply(_console2, arguments);
|
|
5
|
+
warn: (...args) => {
|
|
6
|
+
if (typeof window != "undefined" && window.console) console.warn(...args);
|
|
9
7
|
},
|
|
10
8
|
};
|
|
11
9
|
|
|
12
|
-
|
|
10
|
+
let activeFlags$1 = {
|
|
13
11
|
deprecated: true,
|
|
14
12
|
};
|
|
15
|
-
function debug(flag) {
|
|
13
|
+
function debug(flag, ...args) {
|
|
16
14
|
if (process.env.NODE_ENV !== "production") {
|
|
17
15
|
if (!activeFlags$1[flag]) return;
|
|
18
|
-
Console.log
|
|
16
|
+
Console.log(flag + ":", ...args);
|
|
19
17
|
}
|
|
20
18
|
}
|
|
21
|
-
|
|
22
|
-
enable
|
|
19
|
+
const Debug = {
|
|
20
|
+
enable(flag) {
|
|
23
21
|
if (process.env.NODE_ENV !== "production") {
|
|
24
22
|
activeFlags$1[flag] = true;
|
|
25
23
|
}
|
|
26
24
|
},
|
|
27
|
-
disable
|
|
25
|
+
disable(flag) {
|
|
28
26
|
if (process.env.NODE_ENV !== "production") {
|
|
29
27
|
activeFlags$1[flag] = false;
|
|
30
28
|
}
|
|
31
29
|
},
|
|
30
|
+
isEnabled(flag) {
|
|
31
|
+
return process.env.NODE_ENV !== "production" && !!activeFlags$1[flag];
|
|
32
|
+
},
|
|
33
|
+
getActiveFlags() {
|
|
34
|
+
return {
|
|
35
|
+
...activeFlags$1,
|
|
36
|
+
};
|
|
37
|
+
},
|
|
32
38
|
log: debug,
|
|
33
39
|
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
function isNumber(
|
|
48
|
-
return typeof
|
|
40
|
+
const renderFlag = "render";
|
|
41
|
+
const prepareFlag = "prepare";
|
|
42
|
+
const processDataFlag = "process-data";
|
|
43
|
+
const cleanupFlag = "cleanup";
|
|
44
|
+
const menuFlag = "menu";
|
|
45
|
+
const focusFlag = "focus";
|
|
46
|
+
const internalFlag = "internal";
|
|
47
|
+
const shouldUpdateFlag = "should-update";
|
|
48
|
+
const appDataFlag = "app-data";
|
|
49
|
+
const tooltipsFlag = "tooltips";
|
|
50
|
+
const deprecatedFlag = "deprecated";
|
|
51
|
+
const destroyFlag = "destroy";
|
|
52
|
+
|
|
53
|
+
function isNumber(x) {
|
|
54
|
+
return typeof x === "number";
|
|
49
55
|
}
|
|
50
56
|
|
|
51
57
|
function findFirst(el, condition) {
|
|
52
58
|
if (condition(el)) return el;
|
|
53
|
-
var children = el.
|
|
59
|
+
var children = el.children;
|
|
54
60
|
if (children)
|
|
55
61
|
for (var i = 0; i < children.length; i++) {
|
|
56
62
|
var child = findFirst(children[i], condition);
|
|
@@ -59,7 +65,7 @@ function findFirst(el, condition) {
|
|
|
59
65
|
return null;
|
|
60
66
|
}
|
|
61
67
|
function findFirstChild(el, condition) {
|
|
62
|
-
var children = el.
|
|
68
|
+
var children = el.children;
|
|
63
69
|
if (children)
|
|
64
70
|
for (var i = 0; i < children.length; i++) {
|
|
65
71
|
var child = findFirst(children[i], condition);
|
|
@@ -70,26 +76,31 @@ function findFirstChild(el, condition) {
|
|
|
70
76
|
function closest(el, condition) {
|
|
71
77
|
while (el) {
|
|
72
78
|
if (condition(el)) return el;
|
|
73
|
-
el = el.
|
|
79
|
+
el = el.parentElement;
|
|
74
80
|
}
|
|
75
81
|
return null;
|
|
76
82
|
}
|
|
77
83
|
function closestParent(el, condition) {
|
|
78
|
-
return el && closest(el.
|
|
84
|
+
return el && closest(el.parentElement, condition);
|
|
79
85
|
}
|
|
80
86
|
function isFocused(el) {
|
|
81
87
|
return document.activeElement == el;
|
|
82
88
|
}
|
|
83
89
|
function isFocusedDeep(el) {
|
|
84
|
-
return document.activeElement == el || (document.activeElement && el.contains(document.activeElement));
|
|
90
|
+
return document.activeElement == el || (!!document.activeElement && el.contains(document.activeElement));
|
|
85
91
|
}
|
|
86
|
-
|
|
92
|
+
const focusableWithoutTabIndex = ["INPUT", "SELECT", "TEXTAREA", "A", "BUTTON"];
|
|
87
93
|
function isFocusable(el) {
|
|
94
|
+
if (!(el instanceof HTMLElement)) return false;
|
|
88
95
|
var firstPass = el && isNumber(el.tabIndex) && el.tabIndex >= 0;
|
|
89
96
|
if (!firstPass) return false;
|
|
90
97
|
if (focusableWithoutTabIndex.indexOf(el.tagName) != -1 && !el.hasAttribute("disabled")) return true;
|
|
91
98
|
return el.hasAttribute("tabindex");
|
|
92
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Returns focused element.
|
|
102
|
+
* @returns {Element}
|
|
103
|
+
*/
|
|
93
104
|
function getFocusedElement() {
|
|
94
105
|
return document.activeElement;
|
|
95
106
|
}
|
|
@@ -101,23 +112,21 @@ function isSelfOrDescendant(el, descEl) {
|
|
|
101
112
|
}
|
|
102
113
|
|
|
103
114
|
var globalCacheIdentifier = 1;
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
GlobalCacheIdentifier.get = function get() {
|
|
115
|
+
class GlobalCacheIdentifier {
|
|
116
|
+
static get() {
|
|
107
117
|
return globalCacheIdentifier;
|
|
108
|
-
}
|
|
109
|
-
|
|
118
|
+
}
|
|
119
|
+
static change() {
|
|
110
120
|
globalCacheIdentifier++;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
})();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
114
123
|
|
|
115
|
-
function isUndefined(
|
|
116
|
-
return
|
|
124
|
+
function isUndefined(x) {
|
|
125
|
+
return x === undefined;
|
|
117
126
|
}
|
|
118
127
|
|
|
119
|
-
function isArray(
|
|
120
|
-
return Array.isArray(
|
|
128
|
+
function isArray(x) {
|
|
129
|
+
return Array.isArray(x);
|
|
121
130
|
}
|
|
122
131
|
|
|
123
132
|
function capitalize(str) {
|
|
@@ -133,10 +142,10 @@ function capitalize(str) {
|
|
|
133
142
|
// to accommodate other formats or requirements.
|
|
134
143
|
function defaultParseDateInvariant(input) {
|
|
135
144
|
if (typeof input == "string" && input.length == 10 && input[4] == "-" && input[7] == "-")
|
|
136
|
-
return new Date(input
|
|
145
|
+
return new Date(`${input} 00:00`);
|
|
137
146
|
return new Date(input);
|
|
138
147
|
}
|
|
139
|
-
|
|
148
|
+
let impl = defaultParseDateInvariant;
|
|
140
149
|
function parseDateInvariant(input) {
|
|
141
150
|
return impl(input);
|
|
142
151
|
}
|
|
@@ -144,151 +153,124 @@ function overrideParseDateInvariant(newImpl) {
|
|
|
144
153
|
impl = newImpl;
|
|
145
154
|
}
|
|
146
155
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
return v.toString();
|
|
151
|
-
};
|
|
152
|
-
var formatFactory = {
|
|
153
|
-
string: function string() {
|
|
156
|
+
const defaultFormatter = (v) => v.toString();
|
|
157
|
+
let formatFactory = {
|
|
158
|
+
string: function () {
|
|
154
159
|
return defaultFormatter;
|
|
155
160
|
},
|
|
156
|
-
wrap: function
|
|
161
|
+
wrap: function (part0, prefix, suffix) {
|
|
157
162
|
if (!prefix) prefix = "";
|
|
158
163
|
if (!suffix) suffix = "";
|
|
159
|
-
return
|
|
160
|
-
return prefix + value.toString() + suffix;
|
|
161
|
-
};
|
|
164
|
+
return (value) => prefix + String(value) + suffix;
|
|
162
165
|
},
|
|
163
|
-
fixed: function
|
|
164
|
-
return
|
|
165
|
-
return value.toFixed(digits);
|
|
166
|
-
};
|
|
166
|
+
fixed: function (part0, digits) {
|
|
167
|
+
return (value) => Number(value).toFixed(digits);
|
|
167
168
|
},
|
|
168
|
-
prefix: function
|
|
169
|
-
if (!
|
|
170
|
-
return
|
|
171
|
-
return _prefix + value.toString();
|
|
172
|
-
};
|
|
169
|
+
prefix: function (part0, prefix) {
|
|
170
|
+
if (!prefix) prefix = "";
|
|
171
|
+
return (value) => prefix + String(value);
|
|
173
172
|
},
|
|
174
|
-
suffix: function
|
|
175
|
-
if (!
|
|
176
|
-
return
|
|
177
|
-
return value.toString() + _suffix;
|
|
178
|
-
};
|
|
173
|
+
suffix: function (part0, suffix) {
|
|
174
|
+
if (!suffix) suffix = "";
|
|
175
|
+
return (value) => String(value) + suffix;
|
|
179
176
|
},
|
|
180
|
-
uppercase: function
|
|
181
|
-
return
|
|
182
|
-
return value.toString().toUpperCase();
|
|
183
|
-
};
|
|
177
|
+
uppercase: function () {
|
|
178
|
+
return (value) => String(value).toUpperCase();
|
|
184
179
|
},
|
|
185
|
-
lowercase: function
|
|
186
|
-
return
|
|
187
|
-
return value.toString().toLowerCase();
|
|
188
|
-
};
|
|
180
|
+
lowercase: function () {
|
|
181
|
+
return (value) => String(value).toLowerCase();
|
|
189
182
|
},
|
|
190
|
-
urlencode: function
|
|
191
|
-
return
|
|
192
|
-
return encodeURIComponent(value);
|
|
193
|
-
};
|
|
183
|
+
urlencode: function () {
|
|
184
|
+
return (value) => encodeURIComponent(value);
|
|
194
185
|
},
|
|
195
|
-
number: function
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
186
|
+
number: function (part0, minFractionDigits, maxFractionDigits) {
|
|
187
|
+
let { minimumFractionDigits, maximumFractionDigits } = resolveMinMaxFractionDigits(
|
|
188
|
+
minFractionDigits,
|
|
189
|
+
maxFractionDigits,
|
|
190
|
+
);
|
|
191
|
+
let trimmable = maximumFractionDigits - minimumFractionDigits;
|
|
200
192
|
if (trimmable > 0) {
|
|
201
193
|
if (minimumFractionDigits == 0) ++trimmable;
|
|
202
|
-
return
|
|
203
|
-
return trimFractionZeros(value.toFixed(maximumFractionDigits), trimmable);
|
|
204
|
-
};
|
|
194
|
+
return (value) => trimFractionZeros(value.toFixed(maximumFractionDigits), trimmable);
|
|
205
195
|
}
|
|
206
|
-
return
|
|
207
|
-
return value.toFixed(maximumFractionDigits);
|
|
208
|
-
};
|
|
196
|
+
return (value) => value.toFixed(maximumFractionDigits);
|
|
209
197
|
},
|
|
210
|
-
percentage: function
|
|
211
|
-
|
|
212
|
-
return
|
|
213
|
-
return numberFormatter(value * 100) + "%";
|
|
214
|
-
};
|
|
198
|
+
percentage: function (part0, minFractionDigits, maxFractionDigits) {
|
|
199
|
+
let numberFormatter = formatFactory.number(part0, minFractionDigits, maxFractionDigits);
|
|
200
|
+
return (value) => numberFormatter(value * 100) + "%";
|
|
215
201
|
},
|
|
216
|
-
percentageSign: function
|
|
217
|
-
|
|
218
|
-
return
|
|
219
|
-
return numberFormatter(value) + "%";
|
|
220
|
-
};
|
|
202
|
+
percentageSign: function (part0, minFractionDigits, maxFractionDigits) {
|
|
203
|
+
let numberFormatter = formatFactory.number(part0, minFractionDigits, maxFractionDigits);
|
|
204
|
+
return (value) => numberFormatter(value) + "%";
|
|
221
205
|
},
|
|
222
|
-
date: function
|
|
223
|
-
return
|
|
224
|
-
|
|
225
|
-
return date.getMonth() + 1
|
|
206
|
+
date: function () {
|
|
207
|
+
return (value) => {
|
|
208
|
+
let date = parseDateInvariant(value);
|
|
209
|
+
return `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear()}`;
|
|
226
210
|
};
|
|
227
211
|
},
|
|
228
|
-
time: function
|
|
229
|
-
return
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
return h
|
|
212
|
+
time: function () {
|
|
213
|
+
return (value) => {
|
|
214
|
+
let date = parseDateInvariant(value);
|
|
215
|
+
let h = date.getHours() >= 10 ? date.getHours() : "0" + date.getHours();
|
|
216
|
+
let m = date.getMinutes() >= 10 ? date.getMinutes() : "0" + date.getMinutes();
|
|
217
|
+
return `${h}:${m}`;
|
|
234
218
|
};
|
|
235
219
|
},
|
|
236
|
-
datetime: function
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
return
|
|
240
|
-
return date(value) + " " + time(value);
|
|
241
|
-
};
|
|
220
|
+
datetime: function () {
|
|
221
|
+
let date = formatFactory.date();
|
|
222
|
+
let time = formatFactory.time();
|
|
223
|
+
return (value) => date(value) + " " + time(value);
|
|
242
224
|
},
|
|
243
|
-
ellipsis: function
|
|
225
|
+
ellipsis: function (part0, length, where) {
|
|
244
226
|
length = Number(length);
|
|
245
227
|
if (!(length > 3)) length = 10;
|
|
246
228
|
switch (where) {
|
|
247
229
|
default:
|
|
248
230
|
case "end":
|
|
249
|
-
return
|
|
250
|
-
|
|
231
|
+
return (value) => {
|
|
232
|
+
let s = String(value);
|
|
251
233
|
if (s.length > length) return s.substring(0, length - 3) + "...";
|
|
252
234
|
return s;
|
|
253
235
|
};
|
|
254
236
|
case "start":
|
|
255
|
-
return
|
|
256
|
-
|
|
237
|
+
return (value) => {
|
|
238
|
+
let s = String(value);
|
|
257
239
|
if (s.length > length) return "..." + s.substring(s.length - length + 3);
|
|
258
240
|
return s;
|
|
259
241
|
};
|
|
260
242
|
case "middle":
|
|
261
|
-
return
|
|
262
|
-
|
|
243
|
+
return (value) => {
|
|
244
|
+
let s = String(value);
|
|
263
245
|
if (s.length > length) {
|
|
264
|
-
|
|
246
|
+
let x = Math.floor(length - 2) / 2;
|
|
265
247
|
return s.substring(0, x) + "..." + s.substring(s.length - (length - 3 - x));
|
|
266
248
|
}
|
|
267
249
|
return s;
|
|
268
250
|
};
|
|
269
251
|
}
|
|
270
252
|
},
|
|
271
|
-
zeroPad: function
|
|
272
|
-
return
|
|
273
|
-
|
|
253
|
+
zeroPad: function (part0, length) {
|
|
254
|
+
return (value) => {
|
|
255
|
+
let s = String(value);
|
|
274
256
|
return s.padStart(length, "0");
|
|
275
257
|
};
|
|
276
258
|
},
|
|
277
|
-
leftPad: function
|
|
278
|
-
return
|
|
279
|
-
|
|
280
|
-
return s.padStart(length,
|
|
259
|
+
leftPad: function (part0, length, char) {
|
|
260
|
+
return (value) => {
|
|
261
|
+
let s = String(value);
|
|
262
|
+
return s.padStart(length, char ?? " ");
|
|
281
263
|
};
|
|
282
264
|
},
|
|
283
|
-
capitalize: function
|
|
284
|
-
return
|
|
285
|
-
|
|
265
|
+
capitalize: function () {
|
|
266
|
+
return (value) => {
|
|
267
|
+
let s = String(value);
|
|
286
268
|
return capitalize(s);
|
|
287
269
|
};
|
|
288
270
|
},
|
|
289
|
-
titleCase: function
|
|
290
|
-
return
|
|
291
|
-
|
|
271
|
+
titleCase: function () {
|
|
272
|
+
return (value) => {
|
|
273
|
+
let s = String(value);
|
|
292
274
|
return s.replace(/\w\S*/g, function (word) {
|
|
293
275
|
return capitalize(word.toLowerCase());
|
|
294
276
|
});
|
|
@@ -308,34 +290,27 @@ formatFactory.leftpad = formatFactory.leftPad;
|
|
|
308
290
|
formatFactory.capitalize = formatFactory.capitalize;
|
|
309
291
|
formatFactory.titlecase = formatFactory.titleCase;
|
|
310
292
|
function buildFormatter(format) {
|
|
311
|
-
|
|
293
|
+
let formatter = defaultFormatter,
|
|
312
294
|
nullText = "";
|
|
313
295
|
if (format) {
|
|
314
|
-
|
|
296
|
+
let pipeParts = format.split("|");
|
|
315
297
|
nullText = pipeParts[1] || "";
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
298
|
+
let colonSepParts = pipeParts[0].split(":");
|
|
299
|
+
for (let i = 0; i < colonSepParts.length; i++) {
|
|
300
|
+
let parts = colonSepParts[i].split(";");
|
|
301
|
+
let factory = formatFactory[parts[0]];
|
|
320
302
|
if (!factory) debug("Unknown string format: " + format);
|
|
321
|
-
else if (i == 0) formatter = factory
|
|
303
|
+
else if (i == 0) formatter = factory(...parts);
|
|
322
304
|
else {
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
formatter =
|
|
326
|
-
return outerFmt(innerFmt(v));
|
|
327
|
-
};
|
|
305
|
+
let outerFmt = factory(...parts);
|
|
306
|
+
let innerFmt = formatter;
|
|
307
|
+
formatter = (v) => outerFmt(innerFmt(v));
|
|
328
308
|
}
|
|
329
|
-
};
|
|
330
|
-
for (var i = 0; i < colonSepParts.length; i++) {
|
|
331
|
-
_loop();
|
|
332
309
|
}
|
|
333
310
|
}
|
|
334
|
-
return
|
|
335
|
-
return v == null || v === "" ? nullText : formatter(v);
|
|
336
|
-
};
|
|
311
|
+
return (v) => (v == null || v === "" ? nullText : formatter(v));
|
|
337
312
|
}
|
|
338
|
-
|
|
313
|
+
let format = {
|
|
339
314
|
cache: {},
|
|
340
315
|
};
|
|
341
316
|
function getDefaultFormatCache() {
|
|
@@ -347,41 +322,33 @@ function getDefaultFormatCache() {
|
|
|
347
322
|
}
|
|
348
323
|
return format.cache;
|
|
349
324
|
}
|
|
350
|
-
|
|
325
|
+
let getFormatCache = getDefaultFormatCache;
|
|
351
326
|
function setGetFormatCacheCallback(callback) {
|
|
352
327
|
getFormatCache = callback;
|
|
353
328
|
}
|
|
354
329
|
function getFormatter(format) {
|
|
355
330
|
if (!format) format = "";
|
|
356
|
-
|
|
357
|
-
|
|
331
|
+
let formatCache = getFormatCache();
|
|
332
|
+
let formatter = formatCache[format];
|
|
358
333
|
if (!formatter) formatter = formatCache[format] = buildFormatter(format);
|
|
359
334
|
return formatter;
|
|
360
335
|
}
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
var formatter = getFormatter(format);
|
|
336
|
+
class Format {
|
|
337
|
+
static value(v, format) {
|
|
338
|
+
let formatter = getFormatter(format);
|
|
365
339
|
return formatter(v);
|
|
366
|
-
}
|
|
367
|
-
|
|
340
|
+
}
|
|
341
|
+
static parse(format) {
|
|
368
342
|
return getFormatter(format);
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
this.registerFactory(format,
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
Format.registerFactory = function registerFactory(format, factory) {
|
|
376
|
-
var _this = this;
|
|
377
|
-
if (isArray(format))
|
|
378
|
-
format.forEach(function (f) {
|
|
379
|
-
return _this.registerFactory(f, factory);
|
|
380
|
-
});
|
|
343
|
+
}
|
|
344
|
+
static register(format, formatter) {
|
|
345
|
+
this.registerFactory(format, () => formatter);
|
|
346
|
+
}
|
|
347
|
+
static registerFactory(format, factory) {
|
|
348
|
+
if (isArray(format)) format.forEach((f) => this.registerFactory(f, factory));
|
|
381
349
|
else formatFactory[format] = factory;
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
})();
|
|
350
|
+
}
|
|
351
|
+
}
|
|
385
352
|
function resolveMinMaxFractionDigits(minimumFractionDigits, maximumFractionDigits) {
|
|
386
353
|
minimumFractionDigits = minimumFractionDigits != null ? Number(minimumFractionDigits) : minimumFractionDigits;
|
|
387
354
|
maximumFractionDigits = maximumFractionDigits != null ? Number(maximumFractionDigits) : maximumFractionDigits;
|
|
@@ -394,19 +361,18 @@ function resolveMinMaxFractionDigits(minimumFractionDigits, maximumFractionDigit
|
|
|
394
361
|
maximumFractionDigits = 18;
|
|
395
362
|
}
|
|
396
363
|
return {
|
|
397
|
-
minimumFractionDigits
|
|
398
|
-
maximumFractionDigits
|
|
364
|
+
minimumFractionDigits,
|
|
365
|
+
maximumFractionDigits,
|
|
399
366
|
};
|
|
400
367
|
}
|
|
401
368
|
function trimFractionZeros(str, max) {
|
|
402
|
-
|
|
369
|
+
let cnt = 0,
|
|
403
370
|
l = str.length;
|
|
404
371
|
while (cnt < max && (str[l - 1 - cnt] === "0" || str[l - 1 - cnt] === ".")) cnt++;
|
|
405
372
|
return cnt > 0 ? str.substring(0, l - cnt) : str;
|
|
406
373
|
}
|
|
407
374
|
|
|
408
375
|
//http://stackoverflow.com/questions/36428283/arrow-function-eval-preprocessor
|
|
409
|
-
|
|
410
376
|
function expandFatArrows(code) {
|
|
411
377
|
var arrowHeadRegex = RegExp(/(\((?:\w+,)*\w+\)|\(\)|\w+)[\r\t ]*=>\s*/);
|
|
412
378
|
var arrowHeadMatch = arrowHeadRegex.exec(code);
|
|
@@ -508,12 +474,22 @@ function skipQuotedString(bodyAndNext, openingQuote, i) {
|
|
|
508
474
|
return i;
|
|
509
475
|
}
|
|
510
476
|
|
|
477
|
+
/**
|
|
478
|
+
*
|
|
479
|
+
* @param str
|
|
480
|
+
* @return {string}
|
|
481
|
+
*/
|
|
511
482
|
function innerTextTrim(str) {
|
|
512
483
|
str = str.replace(/\t/g, "");
|
|
513
|
-
str = str.replace(/(\s*[\r\n]\s*)/g, "");
|
|
484
|
+
str = str.replace(/(\s*[\r\n]\s*)/g, " ");
|
|
514
485
|
return str;
|
|
515
486
|
}
|
|
516
487
|
|
|
488
|
+
/**
|
|
489
|
+
*
|
|
490
|
+
* @param x
|
|
491
|
+
* @returns {boolean}
|
|
492
|
+
*/
|
|
517
493
|
function isDigit(x) {
|
|
518
494
|
return x >= "0" && x <= "9";
|
|
519
495
|
}
|
|
@@ -527,55 +503,52 @@ function isObject(o) {
|
|
|
527
503
|
}
|
|
528
504
|
|
|
529
505
|
function isPromise(x) {
|
|
530
|
-
return isObject(x) && isFunction(x
|
|
506
|
+
return isObject(x) && isFunction(x["then"]);
|
|
531
507
|
}
|
|
532
508
|
|
|
533
|
-
|
|
509
|
+
let isTouch = null;
|
|
534
510
|
function isTouchDevice() {
|
|
535
511
|
if (isTouch == null) isTouch = typeof window != "undefined" && "ontouchstart" in window;
|
|
536
512
|
return isTouch;
|
|
537
513
|
}
|
|
538
514
|
|
|
539
|
-
|
|
540
|
-
backspace
|
|
541
|
-
tab
|
|
542
|
-
enter
|
|
543
|
-
shift
|
|
544
|
-
ctrl
|
|
545
|
-
alt
|
|
546
|
-
esc
|
|
547
|
-
space
|
|
548
|
-
pageUp
|
|
549
|
-
pageDown
|
|
550
|
-
end
|
|
551
|
-
home
|
|
552
|
-
left
|
|
553
|
-
up
|
|
554
|
-
right
|
|
555
|
-
down
|
|
556
|
-
insert
|
|
557
|
-
delete
|
|
558
|
-
a
|
|
559
|
-
}
|
|
515
|
+
class KeyCode {
|
|
516
|
+
static backspace = 8;
|
|
517
|
+
static tab = 9;
|
|
518
|
+
static enter = 13;
|
|
519
|
+
static shift = 16;
|
|
520
|
+
static ctrl = 17;
|
|
521
|
+
static alt = 18;
|
|
522
|
+
static esc = 27;
|
|
523
|
+
static space = 32;
|
|
524
|
+
static pageUp = 33;
|
|
525
|
+
static pageDown = 34;
|
|
526
|
+
static end = 35;
|
|
527
|
+
static home = 36;
|
|
528
|
+
static left = 37;
|
|
529
|
+
static up = 38;
|
|
530
|
+
static right = 39;
|
|
531
|
+
static down = 40;
|
|
532
|
+
static insert = 45;
|
|
533
|
+
static delete = 46;
|
|
534
|
+
static a = 65;
|
|
535
|
+
}
|
|
560
536
|
|
|
561
537
|
function parseStyle(str) {
|
|
562
538
|
if (typeof str != "string") return str;
|
|
563
539
|
var style = {},
|
|
564
540
|
parts = str.split(";");
|
|
565
541
|
for (var i = 0; i < parts.length; i++) {
|
|
566
|
-
|
|
567
|
-
|
|
542
|
+
let part = parts[i];
|
|
543
|
+
let colonIndex = part.indexOf(":");
|
|
568
544
|
if (colonIndex == -1) continue;
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
545
|
+
let name = part.substring(0, colonIndex).trim();
|
|
546
|
+
let value = part.substring(colonIndex + 1).trim();
|
|
572
547
|
//avoid css variables
|
|
573
548
|
if (!name.startsWith("--")) {
|
|
574
549
|
name = name
|
|
575
550
|
.split("-")
|
|
576
|
-
.map(
|
|
577
|
-
return i == 0 ? p : p[0].toUpperCase() + p.substring(1);
|
|
578
|
-
})
|
|
551
|
+
.map((p, i) => (i == 0 ? p : p[0].toUpperCase() + p.substring(1)))
|
|
579
552
|
.join("");
|
|
580
553
|
}
|
|
581
554
|
style[name] = value;
|
|
@@ -588,16 +561,13 @@ function quoteStr(str) {
|
|
|
588
561
|
return JSON.stringify(str);
|
|
589
562
|
}
|
|
590
563
|
|
|
591
|
-
function findScrollableParent(sourceEl, horizontal) {
|
|
592
|
-
if (horizontal === void 0) {
|
|
593
|
-
horizontal = false;
|
|
594
|
-
}
|
|
564
|
+
function findScrollableParent(sourceEl, horizontal = false) {
|
|
595
565
|
if (!sourceEl) return null;
|
|
596
|
-
|
|
566
|
+
let scrollParent = closest(sourceEl, (el) => {
|
|
597
567
|
if (el.nodeType != Node.ELEMENT_NODE) return false;
|
|
598
568
|
if (!horizontal && el.clientHeight >= el.scrollHeight) return false;
|
|
599
569
|
if (horizontal && el.clientWidth >= el.scrollWidth) return false;
|
|
600
|
-
|
|
570
|
+
let overflow = getComputedStyle(el).getPropertyValue(horizontal ? "overflow-x" : "overflow-y");
|
|
601
571
|
return overflow == "auto" || overflow == "scroll";
|
|
602
572
|
});
|
|
603
573
|
return scrollParent || sourceEl.ownerDocument.scrollingElement || sourceEl.ownerDocument.documentElement;
|
|
@@ -605,75 +575,39 @@ function findScrollableParent(sourceEl, horizontal) {
|
|
|
605
575
|
|
|
606
576
|
function getParentFrameBoundingClientRect(el) {
|
|
607
577
|
// if the ownerDocument is null, the element itself is the document
|
|
608
|
-
|
|
578
|
+
let ownerDocument = el.ownerDocument || el;
|
|
609
579
|
if (ownerDocument != document) {
|
|
610
|
-
|
|
611
|
-
for (
|
|
580
|
+
let frames = document.getElementsByTagName("iframe");
|
|
581
|
+
for (let i = 0; i < frames.length; i++) {
|
|
612
582
|
if (frames[i].contentDocument == ownerDocument) {
|
|
613
583
|
return frames[i].getBoundingClientRect();
|
|
614
584
|
}
|
|
615
585
|
}
|
|
616
586
|
}
|
|
617
|
-
return
|
|
618
|
-
top: 0,
|
|
619
|
-
left: 0,
|
|
620
|
-
right: window.innerWidth,
|
|
621
|
-
bottom: window.innerHeight,
|
|
622
|
-
width: window.innerWidth,
|
|
623
|
-
height: window.innerHeight,
|
|
624
|
-
};
|
|
587
|
+
return new DOMRect(0, 0, window.innerWidth, window.innerHeight);
|
|
625
588
|
}
|
|
626
589
|
|
|
627
590
|
function getTopLevelBoundingClientRect(el) {
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
return
|
|
631
|
-
top: bounds.top + offset.top,
|
|
632
|
-
left: bounds.left + offset.left,
|
|
633
|
-
bottom: bounds.bottom + offset.top,
|
|
634
|
-
right: bounds.right + offset.left,
|
|
635
|
-
width: bounds.right - bounds.left,
|
|
636
|
-
height: bounds.bottom - bounds.top,
|
|
637
|
-
};
|
|
591
|
+
let bounds = el.getBoundingClientRect();
|
|
592
|
+
let offset = getParentFrameBoundingClientRect(el);
|
|
593
|
+
return new DOMRect(bounds.left + offset.left, bounds.top + offset.top, bounds.width, bounds.height);
|
|
638
594
|
}
|
|
639
595
|
|
|
640
|
-
function getScrollerBoundingClientRect(scrollEl, topLevel) {
|
|
641
|
-
if (topLevel === void 0) {
|
|
642
|
-
topLevel = false;
|
|
643
|
-
}
|
|
596
|
+
function getScrollerBoundingClientRect(scrollEl, topLevel = false) {
|
|
644
597
|
if (scrollEl == scrollEl.ownerDocument.body || scrollEl == scrollEl.ownerDocument.documentElement) {
|
|
645
598
|
if (topLevel) return getParentFrameBoundingClientRect(scrollEl.ownerDocument.body);
|
|
646
|
-
return
|
|
647
|
-
left: 0,
|
|
648
|
-
top: 0,
|
|
649
|
-
right: window.innerWidth,
|
|
650
|
-
bottom: window.innerHeight,
|
|
651
|
-
width: window.innerWidth,
|
|
652
|
-
height: window.innerHeight,
|
|
653
|
-
};
|
|
599
|
+
return new DOMRect(0, 0, window.innerWidth, window.innerHeight);
|
|
654
600
|
}
|
|
655
601
|
return topLevel ? getTopLevelBoundingClientRect(scrollEl) : scrollEl.getBoundingClientRect();
|
|
656
602
|
}
|
|
657
603
|
|
|
658
|
-
function scrollElementIntoView(el, vertical, horizontal, inflate, scrollContainer) {
|
|
659
|
-
if (vertical === void 0) {
|
|
660
|
-
vertical = true;
|
|
661
|
-
}
|
|
662
|
-
if (horizontal === void 0) {
|
|
663
|
-
horizontal = false;
|
|
664
|
-
}
|
|
665
|
-
if (inflate === void 0) {
|
|
666
|
-
inflate = 0;
|
|
667
|
-
}
|
|
668
|
-
if (scrollContainer === void 0) {
|
|
669
|
-
scrollContainer = null;
|
|
670
|
-
}
|
|
604
|
+
function scrollElementIntoView(el, vertical = true, horizontal = false, inflate = 0, scrollContainer = null) {
|
|
671
605
|
if (horizontal) {
|
|
672
|
-
|
|
606
|
+
let parentEl = scrollContainer || findScrollableParent(el, true);
|
|
673
607
|
if (parentEl) {
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
608
|
+
let pr = getScrollerBoundingClientRect(parentEl);
|
|
609
|
+
let er = el.getBoundingClientRect();
|
|
610
|
+
let scrollbarWidth = parentEl.offsetWidth - parentEl.clientWidth;
|
|
677
611
|
if (er.right + inflate > pr.right - scrollbarWidth)
|
|
678
612
|
parentEl.scrollLeft = Math.max(0, parentEl.scrollLeft + er.right + inflate - pr.right + scrollbarWidth);
|
|
679
613
|
if (er.left - inflate < pr.left)
|
|
@@ -681,22 +615,21 @@ function scrollElementIntoView(el, vertical, horizontal, inflate, scrollContaine
|
|
|
681
615
|
}
|
|
682
616
|
}
|
|
683
617
|
if (vertical) {
|
|
684
|
-
|
|
685
|
-
if (
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
if (
|
|
690
|
-
|
|
691
|
-
if (
|
|
692
|
-
_parentEl.scrollTop = Math.max(0, _parentEl.scrollTop + _er.top - inflate - _pr.top);
|
|
618
|
+
let parentEl = scrollContainer || findScrollableParent(el);
|
|
619
|
+
if (parentEl) {
|
|
620
|
+
let pr = getScrollerBoundingClientRect(parentEl);
|
|
621
|
+
let er = el.getBoundingClientRect();
|
|
622
|
+
let scrollbarHeight = parentEl.offsetHeight - parentEl.clientHeight;
|
|
623
|
+
if (er.bottom + inflate > pr.bottom - scrollbarHeight)
|
|
624
|
+
parentEl.scrollTop = Math.max(0, parentEl.scrollTop + er.bottom + inflate - pr.bottom + scrollbarHeight);
|
|
625
|
+
if (er.top - inflate < pr.top) parentEl.scrollTop = Math.max(0, parentEl.scrollTop + er.top - inflate - pr.top);
|
|
693
626
|
}
|
|
694
627
|
}
|
|
695
628
|
}
|
|
696
629
|
|
|
697
630
|
function shallowEquals(v1, v2) {
|
|
698
631
|
if (v1 === v2) return true;
|
|
699
|
-
|
|
632
|
+
let t1 = typeof v1,
|
|
700
633
|
t2 = typeof v2,
|
|
701
634
|
k,
|
|
702
635
|
i;
|
|
@@ -718,13 +651,11 @@ function shallowEquals(v1, v2) {
|
|
|
718
651
|
return v1 === v2;
|
|
719
652
|
}
|
|
720
653
|
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
return Date.now();
|
|
727
|
-
};
|
|
654
|
+
const appLoopFlag = "app-loop";
|
|
655
|
+
const vdomRenderFlag = "vdom-render";
|
|
656
|
+
let counter = {};
|
|
657
|
+
let activeFlags = {};
|
|
658
|
+
let nowImpl = () => Date.now();
|
|
728
659
|
function now() {
|
|
729
660
|
if (process.env.NODE_ENV !== "production") {
|
|
730
661
|
return nowImpl();
|
|
@@ -744,86 +675,125 @@ function disable(flag) {
|
|
|
744
675
|
}
|
|
745
676
|
function count(flag) {
|
|
746
677
|
if (process.env.NODE_ENV !== "production") {
|
|
747
|
-
if (!activeFlags[flag]) return;
|
|
678
|
+
if (!activeFlags[flag]) return undefined;
|
|
748
679
|
return (counter[flag] = (counter[flag] || 0) + 1);
|
|
749
680
|
}
|
|
681
|
+
return undefined;
|
|
750
682
|
}
|
|
751
|
-
function log(flag) {
|
|
683
|
+
function log(flag, ...args) {
|
|
752
684
|
if (process.env.NODE_ENV !== "production") {
|
|
753
685
|
if (!activeFlags[flag]) return;
|
|
754
|
-
Console.log
|
|
686
|
+
Console.log(flag, ...args);
|
|
755
687
|
}
|
|
756
688
|
}
|
|
757
689
|
if (
|
|
758
690
|
process.env.NODE_ENV !== "production" &&
|
|
759
691
|
typeof window != "undefined" &&
|
|
760
692
|
window.performance &&
|
|
761
|
-
window.performance.now
|
|
693
|
+
typeof window.performance.now === "function"
|
|
762
694
|
) {
|
|
763
|
-
nowImpl =
|
|
764
|
-
return performance.now();
|
|
765
|
-
};
|
|
695
|
+
nowImpl = () => performance.now();
|
|
766
696
|
}
|
|
767
|
-
|
|
768
|
-
now
|
|
769
|
-
enable
|
|
770
|
-
disable
|
|
771
|
-
count
|
|
772
|
-
log
|
|
697
|
+
const Timing = {
|
|
698
|
+
now,
|
|
699
|
+
enable,
|
|
700
|
+
disable,
|
|
701
|
+
count,
|
|
702
|
+
log,
|
|
773
703
|
};
|
|
774
704
|
|
|
705
|
+
/**
|
|
706
|
+
* Returns the difference between two dates in miliseconds.
|
|
707
|
+
* @param d1
|
|
708
|
+
* @param d2
|
|
709
|
+
* @returns {number}
|
|
710
|
+
*/
|
|
775
711
|
function dateDiff(d1, d2) {
|
|
776
712
|
return d1.getTime() - d2.getTime();
|
|
777
713
|
}
|
|
778
714
|
|
|
715
|
+
/**
|
|
716
|
+
* Zeros out time for the given Date object. E.g. for date object representing Wed Apr 19 2017 14:31:51 GMT+0200
|
|
717
|
+
* returns Wed Apr 19 2017 00:00:00 GMT+0200.
|
|
718
|
+
* @param d
|
|
719
|
+
* @returns {Date}
|
|
720
|
+
*/
|
|
779
721
|
function zeroTime(d) {
|
|
780
722
|
return new Date(d.getFullYear(), d.getMonth(), d.getDate());
|
|
781
723
|
}
|
|
782
724
|
|
|
725
|
+
/**
|
|
726
|
+
* Returns the date representing the beginning of the month in respect to the date provided.
|
|
727
|
+
* @param d
|
|
728
|
+
* @returns {Date}
|
|
729
|
+
*/
|
|
783
730
|
function monthStart(d) {
|
|
784
731
|
return new Date(d.getFullYear(), d.getMonth(), 1);
|
|
785
732
|
}
|
|
786
733
|
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
734
|
+
/**
|
|
735
|
+
* Checks `date` against the lower bound `minDate`. Set `exclusive` to true to disallow the border value.
|
|
736
|
+
* @param date
|
|
737
|
+
* @param minDate
|
|
738
|
+
* @param [exclusive=false]
|
|
739
|
+
* @returns {boolean}
|
|
740
|
+
*/
|
|
741
|
+
function lowerBoundCheck(date, minDate, exclusive = false) {
|
|
791
742
|
var d = dateDiff(date, minDate);
|
|
792
743
|
return d > 0 || (d == 0 && !exclusive);
|
|
793
744
|
}
|
|
794
745
|
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
746
|
+
/**
|
|
747
|
+
* Checks `date` against the upper bound `maxDate`. Set `exclusive` to true to disallow the border value.
|
|
748
|
+
* @param date
|
|
749
|
+
* @param maxDate
|
|
750
|
+
* @param exclusive
|
|
751
|
+
* @returns {boolean}
|
|
752
|
+
*/
|
|
753
|
+
function upperBoundCheck(date, maxDate, exclusive = false) {
|
|
799
754
|
var d = dateDiff(date, maxDate);
|
|
800
755
|
return d < 0 || (d == 0 && !exclusive);
|
|
801
756
|
}
|
|
802
757
|
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
758
|
+
/**
|
|
759
|
+
* Returns the maximum Date value from the provided values.
|
|
760
|
+
* @param args
|
|
761
|
+
* @returns {Date}
|
|
762
|
+
*/
|
|
763
|
+
function maxDate(...args) {
|
|
764
|
+
var max = args[0];
|
|
765
|
+
for (var i = 1; i < args.length; i++) if (dateDiff(max, args[i]) < 0) max = args[i];
|
|
806
766
|
return max;
|
|
807
767
|
}
|
|
808
768
|
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
769
|
+
/**
|
|
770
|
+
* Returns the minimum Date value from the provided values.
|
|
771
|
+
* @param args
|
|
772
|
+
* @returns {Date}
|
|
773
|
+
*/
|
|
774
|
+
function minDate(...args) {
|
|
775
|
+
var min = args[0];
|
|
776
|
+
for (var i = 1; i < args.length; i++) if (dateDiff(min, args[i]) > 0) min = args[i];
|
|
812
777
|
return min;
|
|
813
778
|
}
|
|
814
779
|
|
|
780
|
+
/**
|
|
781
|
+
* Returns `true` if the dates provided represent the same day.
|
|
782
|
+
* @param d1
|
|
783
|
+
* @param d2
|
|
784
|
+
* @returns {boolean}
|
|
785
|
+
*/
|
|
815
786
|
function sameDate(d1, d2) {
|
|
816
|
-
return d1.getDate() == d2.getDate() && d1.getMonth() == d2.getMonth() && d1.
|
|
787
|
+
return d1.getDate() == d2.getDate() && d1.getMonth() == d2.getMonth() && d1.getFullYear() == d2.getFullYear();
|
|
817
788
|
}
|
|
818
789
|
|
|
819
790
|
//https://stackoverflow.com/questions/17415579/how-to-iso-8601-format-a-date-with-timezone-offset-in-javascript
|
|
820
|
-
|
|
821
791
|
function pad$1(num) {
|
|
822
|
-
|
|
792
|
+
const norm = Math.floor(Math.abs(num));
|
|
823
793
|
return (norm < 10 ? "0" : "") + norm;
|
|
824
794
|
}
|
|
825
795
|
function encodeDateWithTimezoneOffset(date) {
|
|
826
|
-
|
|
796
|
+
const tzo = -date.getTimezoneOffset(),
|
|
827
797
|
dif = tzo >= 0 ? "+" : "-";
|
|
828
798
|
return (
|
|
829
799
|
date.getFullYear() +
|
|
@@ -845,7 +815,7 @@ function encodeDateWithTimezoneOffset(date) {
|
|
|
845
815
|
}
|
|
846
816
|
|
|
847
817
|
function pad(num) {
|
|
848
|
-
|
|
818
|
+
const norm = Math.floor(Math.abs(num));
|
|
849
819
|
return (norm < 10 ? "0" : "") + norm;
|
|
850
820
|
}
|
|
851
821
|
function encodeDate(date) {
|
|
@@ -860,6 +830,13 @@ function hue2rgb(p, q, t) {
|
|
|
860
830
|
if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
|
|
861
831
|
return p;
|
|
862
832
|
}
|
|
833
|
+
/**
|
|
834
|
+
*
|
|
835
|
+
* @param h
|
|
836
|
+
* @param s
|
|
837
|
+
* @param l
|
|
838
|
+
* @returns {array}
|
|
839
|
+
*/
|
|
863
840
|
function hslToRgb(h, s, l) {
|
|
864
841
|
h /= 360;
|
|
865
842
|
s /= 100;
|
|
@@ -877,16 +854,26 @@ function hslToRgb(h, s, l) {
|
|
|
877
854
|
return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
|
|
878
855
|
}
|
|
879
856
|
|
|
857
|
+
/**
|
|
858
|
+
*
|
|
859
|
+
* @param color
|
|
860
|
+
* @returns {RGBColor|HSLColor}
|
|
861
|
+
*/
|
|
880
862
|
function parseColor(color) {
|
|
881
863
|
if (!color) return null;
|
|
882
864
|
if (color[0] == "#") return parseHexColor(color);
|
|
883
865
|
if (color.indexOf("rgb") == 0) return parseRgbColor(color);
|
|
884
866
|
if (color.indexOf("hsl") == 0) return parseHslColor(color);
|
|
885
|
-
throw new Error(
|
|
867
|
+
throw new Error(`Unknown color format: ${color}.`);
|
|
886
868
|
}
|
|
869
|
+
/**
|
|
870
|
+
*
|
|
871
|
+
* @param color
|
|
872
|
+
* @returns {RGBColor}
|
|
873
|
+
*/
|
|
887
874
|
function parseHexColor(color) {
|
|
888
875
|
if (!color) return null;
|
|
889
|
-
if (color[0] != "#") throw new Error(
|
|
876
|
+
if (color[0] != "#") throw new Error(`Invalid color ${color}.`);
|
|
890
877
|
if (color.length == 4)
|
|
891
878
|
return {
|
|
892
879
|
type: "rgba",
|
|
@@ -895,7 +882,7 @@ function parseHexColor(color) {
|
|
|
895
882
|
b: parseInt(color.charAt(3), 16) * 0x11,
|
|
896
883
|
a: 1,
|
|
897
884
|
};
|
|
898
|
-
if (color.length != 7) throw new Error(
|
|
885
|
+
if (color.length != 7) throw new Error(`Invalid color ${color}.`);
|
|
899
886
|
return {
|
|
900
887
|
type: "rgba",
|
|
901
888
|
r: parseInt(color.substr(1, 2), 16),
|
|
@@ -904,6 +891,11 @@ function parseHexColor(color) {
|
|
|
904
891
|
a: 1,
|
|
905
892
|
};
|
|
906
893
|
}
|
|
894
|
+
/**
|
|
895
|
+
*
|
|
896
|
+
* @param color
|
|
897
|
+
* @returns {RGBColor}
|
|
898
|
+
*/
|
|
907
899
|
function parseRgbColor(color) {
|
|
908
900
|
if (!color) return null;
|
|
909
901
|
color = color.trim();
|
|
@@ -912,10 +904,8 @@ function parseRgbColor(color) {
|
|
|
912
904
|
values = color
|
|
913
905
|
.substring(5, color.length - 1)
|
|
914
906
|
.split(",")
|
|
915
|
-
.map(
|
|
916
|
-
|
|
917
|
-
});
|
|
918
|
-
if (values.length != 4) throw new Error("Invalid color " + color + ".");
|
|
907
|
+
.map((x) => parseFloat(x.trim()));
|
|
908
|
+
if (values.length != 4) throw new Error(`Invalid color ${color}.`);
|
|
919
909
|
return {
|
|
920
910
|
type: "rgba",
|
|
921
911
|
r: values[0],
|
|
@@ -924,14 +914,12 @@ function parseRgbColor(color) {
|
|
|
924
914
|
a: values[3],
|
|
925
915
|
};
|
|
926
916
|
}
|
|
927
|
-
if (color.indexOf("rgb(") != 0) throw new Error(
|
|
917
|
+
if (color.indexOf("rgb(") != 0) throw new Error(`Invalid color ${color}.`);
|
|
928
918
|
values = color
|
|
929
919
|
.substring(5, color.length - 1)
|
|
930
920
|
.split(",")
|
|
931
|
-
.map(
|
|
932
|
-
|
|
933
|
-
});
|
|
934
|
-
if (values.length != 3) throw new Error("Invalid color " + color + ".");
|
|
921
|
+
.map((x) => parseFloat(x.trim()));
|
|
922
|
+
if (values.length != 3) throw new Error(`Invalid color ${color}.`);
|
|
935
923
|
return {
|
|
936
924
|
type: "rgba",
|
|
937
925
|
r: values[0],
|
|
@@ -940,6 +928,11 @@ function parseRgbColor(color) {
|
|
|
940
928
|
a: 1,
|
|
941
929
|
};
|
|
942
930
|
}
|
|
931
|
+
/**
|
|
932
|
+
*
|
|
933
|
+
* @param color
|
|
934
|
+
* @returns {HSLColor}
|
|
935
|
+
*/
|
|
943
936
|
function parseHslColor(color) {
|
|
944
937
|
if (!color) return null;
|
|
945
938
|
color = color.trim();
|
|
@@ -948,10 +941,8 @@ function parseHslColor(color) {
|
|
|
948
941
|
values = color
|
|
949
942
|
.substring(5, color.length - 1)
|
|
950
943
|
.split(",")
|
|
951
|
-
.map(
|
|
952
|
-
|
|
953
|
-
});
|
|
954
|
-
if (values.length != 4) throw new Error("Invalid color " + color + ".");
|
|
944
|
+
.map((x) => parseFloat(x.trim()));
|
|
945
|
+
if (values.length != 4) throw new Error(`Invalid color ${color}.`);
|
|
955
946
|
return {
|
|
956
947
|
type: "hsla",
|
|
957
948
|
h: values[0],
|
|
@@ -960,14 +951,12 @@ function parseHslColor(color) {
|
|
|
960
951
|
a: values[3],
|
|
961
952
|
};
|
|
962
953
|
}
|
|
963
|
-
if (color.indexOf("hsl(") != 0) throw new Error(
|
|
954
|
+
if (color.indexOf("hsl(") != 0) throw new Error(`Invalid color ${color}.`);
|
|
964
955
|
values = color
|
|
965
956
|
.substring(5, color.length - 1)
|
|
966
957
|
.split(",")
|
|
967
|
-
.map(
|
|
968
|
-
|
|
969
|
-
});
|
|
970
|
-
if (values.length != 3) throw new Error("Invalid color " + color + ".");
|
|
958
|
+
.map((x) => parseFloat(x.trim()));
|
|
959
|
+
if (values.length != 3) throw new Error(`Invalid color ${color}.`);
|
|
971
960
|
return {
|
|
972
961
|
type: "hsla",
|
|
973
962
|
h: values[0],
|
|
@@ -981,23 +970,37 @@ function componentToHex(c) {
|
|
|
981
970
|
var hex = c.toString(16);
|
|
982
971
|
return hex.length == 1 ? "0" + hex : hex;
|
|
983
972
|
}
|
|
973
|
+
/**
|
|
974
|
+
*
|
|
975
|
+
* @param r
|
|
976
|
+
* @param g
|
|
977
|
+
* @param b
|
|
978
|
+
* @returns {string}
|
|
979
|
+
*/
|
|
984
980
|
function rgbToHex(r, g, b) {
|
|
985
981
|
return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
|
|
986
982
|
}
|
|
987
983
|
|
|
984
|
+
/**
|
|
985
|
+
*
|
|
986
|
+
* @param r
|
|
987
|
+
* @param g
|
|
988
|
+
* @param b
|
|
989
|
+
* @returns {array}
|
|
990
|
+
*/
|
|
988
991
|
function rgbToHsl(r, g, b) {
|
|
989
992
|
r /= 255;
|
|
990
993
|
g /= 255;
|
|
991
994
|
b /= 255;
|
|
992
|
-
|
|
995
|
+
let max = Math.max(r, g, b),
|
|
993
996
|
min = Math.min(r, g, b);
|
|
994
|
-
|
|
997
|
+
let h,
|
|
995
998
|
s,
|
|
996
999
|
l = (max + min) / 2;
|
|
997
1000
|
if (max == min) {
|
|
998
1001
|
h = s = 0; // achromatic
|
|
999
1002
|
} else {
|
|
1000
|
-
|
|
1003
|
+
let d = max - min;
|
|
1001
1004
|
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
1002
1005
|
switch (max) {
|
|
1003
1006
|
case r:
|
|
@@ -1007,6 +1010,7 @@ function rgbToHsl(r, g, b) {
|
|
|
1007
1010
|
h = (b - r) / d + 2;
|
|
1008
1011
|
break;
|
|
1009
1012
|
case b:
|
|
1013
|
+
default:
|
|
1010
1014
|
h = (r - g) / d + 4;
|
|
1011
1015
|
break;
|
|
1012
1016
|
}
|
|
@@ -1016,15 +1020,16 @@ function rgbToHsl(r, g, b) {
|
|
|
1016
1020
|
}
|
|
1017
1021
|
|
|
1018
1022
|
//shamelessly taken from https://davidwalsh.name/vendor-prefix
|
|
1019
|
-
|
|
1020
|
-
var
|
|
1021
|
-
var
|
|
1022
|
-
|
|
1023
|
+
var getPrefixes = function () {
|
|
1024
|
+
var styles = window.getComputedStyle(document.documentElement, "");
|
|
1025
|
+
var match =
|
|
1026
|
+
Array.prototype.slice
|
|
1023
1027
|
.call(styles)
|
|
1024
1028
|
.join("")
|
|
1025
1029
|
.match(/-(moz|webkit|ms)-/) ||
|
|
1026
|
-
|
|
1027
|
-
|
|
1030
|
+
(styles.OLink === "" && ["", "o"]);
|
|
1031
|
+
var pre = match[1];
|
|
1032
|
+
var dom = "WebKit|Moz|MS|O".match(new RegExp("(" + pre + ")", "i"))[1];
|
|
1028
1033
|
return {
|
|
1029
1034
|
dom: dom,
|
|
1030
1035
|
lowercase: pre,
|
|
@@ -1038,68 +1043,51 @@ function getVendorPrefix(type) {
|
|
|
1038
1043
|
return prefixes[type];
|
|
1039
1044
|
}
|
|
1040
1045
|
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
}
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
}
|
|
1046
|
+
function stopPropagation(e) {
|
|
1047
|
+
e.stopPropagation();
|
|
1048
|
+
}
|
|
1049
|
+
function preventDefault(e) {
|
|
1050
|
+
e.preventDefault();
|
|
1051
|
+
}
|
|
1047
1052
|
|
|
1053
|
+
/**
|
|
1054
|
+
*
|
|
1055
|
+
* @param s
|
|
1056
|
+
* @return {string}
|
|
1057
|
+
*/
|
|
1048
1058
|
function escapeSpecialRegexCharacters(s) {
|
|
1049
1059
|
return s.replace(/[\\^$*+?.()|[\]{}]/g, "\\$&");
|
|
1050
1060
|
}
|
|
1051
1061
|
|
|
1052
1062
|
function getTermsAndRegularExpressions(query) {
|
|
1053
1063
|
if (!query) return [[], []];
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
return new RegExp(escapeSpecialRegexCharacters(word), "gi");
|
|
1057
|
-
});
|
|
1064
|
+
let terms = query.split(" ").filter(Boolean);
|
|
1065
|
+
let regexes = terms.map((word) => new RegExp(escapeSpecialRegexCharacters(word), "gi"));
|
|
1058
1066
|
return [terms, regexes];
|
|
1059
1067
|
}
|
|
1060
1068
|
function getSearchQueryPredicate(query, options) {
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
regexes = _getTermsAndRegularEx[1];
|
|
1064
|
-
if (terms.length == 0)
|
|
1065
|
-
return function () {
|
|
1066
|
-
return true;
|
|
1067
|
-
};
|
|
1069
|
+
let [terms, regexes] = getTermsAndRegularExpressions(query);
|
|
1070
|
+
if (terms.length == 0) return () => true;
|
|
1068
1071
|
if (regexes.length == 1) {
|
|
1069
|
-
|
|
1070
|
-
return
|
|
1071
|
-
return text && text.match(regex);
|
|
1072
|
-
};
|
|
1072
|
+
let regex = regexes[0];
|
|
1073
|
+
return (text) => !!text && text.match(regex) != null;
|
|
1073
1074
|
}
|
|
1074
|
-
return
|
|
1075
|
-
return (
|
|
1076
|
-
text &&
|
|
1077
|
-
regexes.every(function (re) {
|
|
1078
|
-
return text.match(re);
|
|
1079
|
-
})
|
|
1080
|
-
);
|
|
1081
|
-
};
|
|
1075
|
+
return (text) => !!text && regexes.every((re) => text.match(re));
|
|
1082
1076
|
}
|
|
1083
1077
|
var highlighterCache = {};
|
|
1084
1078
|
function getSearchQueryHighlighter(query, options) {
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
regexes = _getTermsAndRegularEx2[1];
|
|
1088
|
-
if (terms.length == 0)
|
|
1089
|
-
return function (text) {
|
|
1090
|
-
return [text];
|
|
1091
|
-
};
|
|
1079
|
+
let [terms, regexes] = getTermsAndRegularExpressions(query);
|
|
1080
|
+
if (terms.length == 0) return (text) => [text];
|
|
1092
1081
|
if (highlighterCache[query]) return highlighterCache[query];
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
for (var k = 0; k < parts.length; k++) {
|
|
1082
|
+
let result = (query) => {
|
|
1083
|
+
let chunks = [query];
|
|
1084
|
+
for (let i = 0; i < regexes.length; i++) {
|
|
1085
|
+
let newChunks = [];
|
|
1086
|
+
for (let j = 0; j < chunks.length; j++) {
|
|
1087
|
+
let at = 0;
|
|
1088
|
+
let chunk = chunks[j];
|
|
1089
|
+
let parts = chunk.split(regexes[i]);
|
|
1090
|
+
for (let k = 0; k < parts.length; k++) {
|
|
1103
1091
|
newChunks.push(parts[k]);
|
|
1104
1092
|
at += parts[k].length;
|
|
1105
1093
|
if (k < parts.length - 1) {
|
|
@@ -1112,25 +1100,26 @@ function getSearchQueryHighlighter(query, options) {
|
|
|
1112
1100
|
}
|
|
1113
1101
|
return chunks;
|
|
1114
1102
|
};
|
|
1115
|
-
if (options
|
|
1103
|
+
if (options?.cache) {
|
|
1116
1104
|
highlighterCache[query] = result;
|
|
1117
|
-
setTimeout(
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
},
|
|
1121
|
-
(options == null ? void 0 : options.cachePeriod) || 5000,
|
|
1122
|
-
);
|
|
1105
|
+
setTimeout(() => {
|
|
1106
|
+
delete highlighterCache[query];
|
|
1107
|
+
}, options?.cachePeriod || 5000);
|
|
1123
1108
|
}
|
|
1124
1109
|
return result;
|
|
1125
1110
|
}
|
|
1126
1111
|
|
|
1127
|
-
|
|
1112
|
+
let passiveEventsSupported = null;
|
|
1113
|
+
/**
|
|
1114
|
+
* Checks if the browser supports passive event handlers.
|
|
1115
|
+
* @returns {boolean}
|
|
1116
|
+
*/
|
|
1128
1117
|
function browserSupportsPassiveEventHandlers() {
|
|
1129
1118
|
if (passiveEventsSupported == null) {
|
|
1130
1119
|
try {
|
|
1131
1120
|
passiveEventsSupported = false;
|
|
1132
|
-
|
|
1133
|
-
get
|
|
1121
|
+
const options = Object.defineProperty({}, "passive", {
|
|
1122
|
+
get() {
|
|
1134
1123
|
passiveEventsSupported = true;
|
|
1135
1124
|
},
|
|
1136
1125
|
});
|
|
@@ -1140,12 +1129,11 @@ function browserSupportsPassiveEventHandlers() {
|
|
|
1140
1129
|
return passiveEventsSupported;
|
|
1141
1130
|
}
|
|
1142
1131
|
|
|
1143
|
-
|
|
1144
|
-
|
|
1132
|
+
let lastTouchEvent = 0;
|
|
1133
|
+
let isTouchDetectionEnabled = false;
|
|
1145
1134
|
function enableTouchEventDetection() {
|
|
1146
1135
|
if (isTouchDevice() && !isTouchDetectionEnabled) {
|
|
1147
|
-
|
|
1148
|
-
|
|
1136
|
+
let options = true; //capture
|
|
1149
1137
|
if (browserSupportsPassiveEventHandlers())
|
|
1150
1138
|
options = {
|
|
1151
1139
|
passive: true,
|
|
@@ -1153,7 +1141,7 @@ function enableTouchEventDetection() {
|
|
|
1153
1141
|
};
|
|
1154
1142
|
document.addEventListener(
|
|
1155
1143
|
"touchstart",
|
|
1156
|
-
|
|
1144
|
+
() => {
|
|
1157
1145
|
//console.log('TOUCHSTART');
|
|
1158
1146
|
lastTouchEvent = Date.now();
|
|
1159
1147
|
},
|
|
@@ -1161,7 +1149,7 @@ function enableTouchEventDetection() {
|
|
|
1161
1149
|
);
|
|
1162
1150
|
document.addEventListener(
|
|
1163
1151
|
"touchmove",
|
|
1164
|
-
|
|
1152
|
+
() => {
|
|
1165
1153
|
//console.log('TOUCHMOVE');
|
|
1166
1154
|
lastTouchEvent = Date.now();
|
|
1167
1155
|
},
|
|
@@ -1169,7 +1157,7 @@ function enableTouchEventDetection() {
|
|
|
1169
1157
|
);
|
|
1170
1158
|
document.addEventListener(
|
|
1171
1159
|
"touchend",
|
|
1172
|
-
|
|
1160
|
+
() => {
|
|
1173
1161
|
lastTouchEvent = Date.now();
|
|
1174
1162
|
//console.log('TOUCHEND');
|
|
1175
1163
|
},
|
|
@@ -1181,37 +1169,37 @@ function enableTouchEventDetection() {
|
|
|
1181
1169
|
function isTouchEvent() {
|
|
1182
1170
|
return isTouchDevice() && (!isTouchDetectionEnabled || Date.now() - lastTouchEvent < 1000);
|
|
1183
1171
|
}
|
|
1184
|
-
|
|
1185
1172
|
//enable touch event detection if there is no performance penalty on scrolling
|
|
1186
1173
|
if (isTouchDevice() && browserSupportsPassiveEventHandlers()) enableTouchEventDetection();
|
|
1187
1174
|
|
|
1188
1175
|
function debounce(callback, delay) {
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
args[_key] = arguments[_key];
|
|
1193
|
-
}
|
|
1194
|
-
var context = this;
|
|
1176
|
+
let timer;
|
|
1177
|
+
const result = function (...args) {
|
|
1178
|
+
const context = this;
|
|
1195
1179
|
clearTimeout(timer);
|
|
1196
|
-
timer = setTimeout(
|
|
1180
|
+
timer = setTimeout(() => {
|
|
1197
1181
|
callback.apply(context, args);
|
|
1198
1182
|
}, delay);
|
|
1199
1183
|
};
|
|
1200
|
-
result.reset = function
|
|
1184
|
+
result.reset = function (...args) {
|
|
1201
1185
|
clearTimeout(timer);
|
|
1202
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
1203
|
-
args[_key2] = arguments[_key2];
|
|
1204
|
-
}
|
|
1205
1186
|
callback.apply(this, args);
|
|
1206
1187
|
};
|
|
1207
1188
|
return result;
|
|
1208
1189
|
}
|
|
1209
1190
|
|
|
1191
|
+
/**
|
|
1192
|
+
* Returns a function, that, after it is invoked, will trigger the `callback` function,
|
|
1193
|
+
* after the `delay` amount of milliseconds has passed. During that time, all subsequent calls are
|
|
1194
|
+
* ignored. All arguments are passed to the `callback` function.
|
|
1195
|
+
* @param callback
|
|
1196
|
+
* @param delay - Delay in milliseconds.
|
|
1197
|
+
* @returns {Function}
|
|
1198
|
+
*/
|
|
1210
1199
|
function throttle(callback, delay) {
|
|
1211
|
-
|
|
1212
|
-
return function () {
|
|
1213
|
-
context = this;
|
|
1214
|
-
args = arguments;
|
|
1200
|
+
let timer;
|
|
1201
|
+
return function (...args) {
|
|
1202
|
+
const context = this;
|
|
1215
1203
|
if (!timer)
|
|
1216
1204
|
timer = setTimeout(function () {
|
|
1217
1205
|
callback.apply(context, args);
|
|
@@ -1220,72 +1208,87 @@ function throttle(callback, delay) {
|
|
|
1220
1208
|
};
|
|
1221
1209
|
}
|
|
1222
1210
|
|
|
1223
|
-
|
|
1224
|
-
|
|
1211
|
+
class SubscriberList {
|
|
1212
|
+
constructor() {
|
|
1225
1213
|
this.clear();
|
|
1226
1214
|
}
|
|
1227
|
-
|
|
1228
|
-
_proto.getSlot = function getSlot() {
|
|
1215
|
+
getSlot() {
|
|
1229
1216
|
if (this.freeSlots.length) return this.freeSlots.pop();
|
|
1230
|
-
|
|
1217
|
+
let slot = String(this.nextSlot++);
|
|
1231
1218
|
return slot;
|
|
1232
|
-
}
|
|
1233
|
-
|
|
1219
|
+
}
|
|
1220
|
+
recycle(slot, callback) {
|
|
1234
1221
|
if (this.subscriptions[slot] === callback) {
|
|
1235
1222
|
this.freeSlots.push(slot);
|
|
1236
1223
|
delete this.subscriptions[slot];
|
|
1237
1224
|
this.subscriptionCount--;
|
|
1238
1225
|
}
|
|
1239
|
-
}
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1226
|
+
}
|
|
1227
|
+
/**
|
|
1228
|
+
* Add a new subscription.
|
|
1229
|
+
* @param callback
|
|
1230
|
+
*/
|
|
1231
|
+
subscribe(callback) {
|
|
1232
|
+
let slot = this.getSlot();
|
|
1243
1233
|
this.subscriptions[slot] = callback;
|
|
1244
1234
|
this.subscriptionCount++;
|
|
1245
|
-
return
|
|
1246
|
-
|
|
1235
|
+
return () => {
|
|
1236
|
+
this.recycle(slot, callback);
|
|
1247
1237
|
};
|
|
1248
|
-
}
|
|
1249
|
-
|
|
1238
|
+
}
|
|
1239
|
+
/**
|
|
1240
|
+
* Clear all subscriptions.
|
|
1241
|
+
*/
|
|
1242
|
+
clear() {
|
|
1250
1243
|
this.subscriptions = {};
|
|
1251
1244
|
this.freeSlots = [];
|
|
1252
1245
|
this.nextSlot = 1;
|
|
1253
1246
|
this.subscriptionCount = 0;
|
|
1254
|
-
}
|
|
1255
|
-
|
|
1247
|
+
}
|
|
1248
|
+
/**
|
|
1249
|
+
* Returns true if there are no subscribers.
|
|
1250
|
+
*/
|
|
1251
|
+
isEmpty() {
|
|
1256
1252
|
return this.subscriptionCount == 0;
|
|
1257
|
-
}
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1253
|
+
}
|
|
1254
|
+
/**
|
|
1255
|
+
* Returns an array of subscribed callbacks.
|
|
1256
|
+
*/
|
|
1257
|
+
getSubscribers() {
|
|
1258
|
+
let result = [];
|
|
1259
|
+
for (let key in this.subscriptions) result.push(this.subscriptions[key]);
|
|
1261
1260
|
return result;
|
|
1262
|
-
}
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1261
|
+
}
|
|
1262
|
+
/**
|
|
1263
|
+
* Trigger all subscribed callbacks with provided arguments.
|
|
1264
|
+
* @param args - Arguments that will be passed to callback functions.
|
|
1265
|
+
*/
|
|
1266
|
+
notify(...args) {
|
|
1267
|
+
for (let key in this.subscriptions) this.subscriptions[key](...args);
|
|
1268
|
+
}
|
|
1269
|
+
/**
|
|
1270
|
+
*
|
|
1271
|
+
* @param callback
|
|
1272
|
+
*/
|
|
1273
|
+
execute(callback) {
|
|
1274
|
+
for (let key in this.subscriptions) callback(this.subscriptions[key]);
|
|
1275
|
+
}
|
|
1276
|
+
}
|
|
1274
1277
|
|
|
1275
1278
|
function isNonEmptyArray(x) {
|
|
1276
1279
|
return Array.isArray(x) && x.length > 0;
|
|
1277
1280
|
}
|
|
1278
1281
|
|
|
1279
|
-
function isString(
|
|
1280
|
-
return typeof
|
|
1282
|
+
function isString(x) {
|
|
1283
|
+
return typeof x === "string";
|
|
1281
1284
|
}
|
|
1282
1285
|
|
|
1283
|
-
function isDefined(
|
|
1284
|
-
return
|
|
1286
|
+
function isDefined(x) {
|
|
1287
|
+
return x !== undefined;
|
|
1285
1288
|
}
|
|
1286
1289
|
|
|
1287
1290
|
function routeAppend(base, path) {
|
|
1288
|
-
|
|
1291
|
+
let result = base;
|
|
1289
1292
|
if (path) {
|
|
1290
1293
|
if (path[0] == "/") {
|
|
1291
1294
|
if (result[result.length - 1] == "/") result += path.substring(1);
|
|
@@ -1297,9 +1300,9 @@ function routeAppend(base, path) {
|
|
|
1297
1300
|
}
|
|
1298
1301
|
|
|
1299
1302
|
function reverseSlice(array, start) {
|
|
1300
|
-
|
|
1303
|
+
let last = array.length - 1;
|
|
1301
1304
|
while (start < last) {
|
|
1302
|
-
|
|
1305
|
+
let x = array[start];
|
|
1303
1306
|
array[start] = array[last];
|
|
1304
1307
|
array[last] = x;
|
|
1305
1308
|
start++;
|
|
@@ -1309,53 +1312,68 @@ function reverseSlice(array, start) {
|
|
|
1309
1312
|
|
|
1310
1313
|
//IE sometimes returns null while other browsers always return document.body.
|
|
1311
1314
|
function getActiveElement() {
|
|
1312
|
-
return document.activeElement
|
|
1313
|
-
}
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1315
|
+
return document.activeElement ?? document.body;
|
|
1316
|
+
}
|
|
1317
|
+
|
|
1318
|
+
/**
|
|
1319
|
+
* Type-checks a CreateConfig object based on its `type` or `$type` property.
|
|
1320
|
+
* This is a compile-time helper that returns the input unchanged at runtime.
|
|
1321
|
+
* Uses `const` type parameter (TypeScript 5.0+) to enable excess property checking.
|
|
1322
|
+
*
|
|
1323
|
+
* @example
|
|
1324
|
+
* // With type property
|
|
1325
|
+
* const axisConfig = validateConfig({ type: NumericAxis, min: 0, max: 100 });
|
|
1326
|
+
*
|
|
1327
|
+
* // With $type property
|
|
1328
|
+
* const selectionConfig = validateConfig({ $type: KeySelection, bind: "selection" });
|
|
1329
|
+
*/
|
|
1330
|
+
function validateConfig(config) {
|
|
1331
|
+
return config;
|
|
1332
|
+
}
|
|
1333
|
+
const componentAlias = {};
|
|
1334
|
+
class Component {
|
|
1335
|
+
static namespace;
|
|
1336
|
+
static isComponentType;
|
|
1337
|
+
static autoInit;
|
|
1338
|
+
static factory;
|
|
1339
|
+
constructor(config) {
|
|
1318
1340
|
if (config && config.$props) {
|
|
1319
1341
|
Object.assign(config, config.$props);
|
|
1320
1342
|
delete config.$props;
|
|
1321
1343
|
}
|
|
1322
1344
|
Object.assign(this, config);
|
|
1323
1345
|
}
|
|
1324
|
-
|
|
1325
|
-
|
|
1346
|
+
init() {}
|
|
1347
|
+
static alias(alias, type) {
|
|
1326
1348
|
if (type) {
|
|
1327
|
-
type.prototype.componentAlias =
|
|
1328
|
-
componentAlias[this.namespace +
|
|
1329
|
-
}
|
|
1330
|
-
//decorator usage
|
|
1349
|
+
type.prototype.componentAlias = alias;
|
|
1350
|
+
componentAlias[this.namespace + alias] = type;
|
|
1351
|
+
} //decorator usage
|
|
1331
1352
|
else
|
|
1332
|
-
return
|
|
1333
|
-
|
|
1353
|
+
return (t) => {
|
|
1354
|
+
this.alias(alias, t);
|
|
1334
1355
|
return t;
|
|
1335
1356
|
};
|
|
1336
|
-
}
|
|
1337
|
-
|
|
1338
|
-
|
|
1357
|
+
}
|
|
1358
|
+
// Implementation
|
|
1359
|
+
static create(typeAlias, config, more) {
|
|
1339
1360
|
if (!typeAlias) return this.factory(typeAlias, config, more);
|
|
1340
1361
|
if (typeAlias.isComponent) return typeAlias;
|
|
1341
|
-
if (isComponentFactory(typeAlias)) return this.create(typeAlias.create(config));
|
|
1342
|
-
if (isArray(typeAlias))
|
|
1343
|
-
return typeAlias.map(function (c) {
|
|
1344
|
-
return _this2.create(c, config, more);
|
|
1345
|
-
});
|
|
1362
|
+
if (isComponentFactory(typeAlias)) return this.create(typeAlias.create(config), config, more);
|
|
1363
|
+
if (isArray(typeAlias)) return typeAlias.map((c) => this.create(c, config, more));
|
|
1346
1364
|
if (typeAlias.$type) return this.create(typeAlias.$type, typeAlias, config);
|
|
1347
1365
|
if (typeAlias.type) return this.create(typeAlias.type, typeAlias, config);
|
|
1348
|
-
|
|
1366
|
+
let cmpType, alias;
|
|
1349
1367
|
if (typeAlias.isComponentType) cmpType = typeAlias;
|
|
1350
1368
|
else if (isFunction(typeAlias)) {
|
|
1351
1369
|
if (this.factory) return this.factory(typeAlias, config, more);
|
|
1352
|
-
throw new Error(
|
|
1370
|
+
throw new Error(`Unsupported component type ${typeAlias}.`);
|
|
1353
1371
|
} else if (isString(typeAlias)) {
|
|
1354
1372
|
alias = this.namespace + typeAlias;
|
|
1355
1373
|
cmpType = componentAlias[alias];
|
|
1356
1374
|
if (!cmpType) {
|
|
1357
1375
|
if (typeAlias && this.factory) return this.factory(typeAlias, config, more);
|
|
1358
|
-
throw new Error(
|
|
1376
|
+
throw new Error(`Unknown component alias ${alias}.`);
|
|
1359
1377
|
}
|
|
1360
1378
|
} else if (typeof typeAlias == "object") {
|
|
1361
1379
|
cmpType = typeAlias.type || typeAlias.$type;
|
|
@@ -1365,24 +1383,20 @@ var Component = /*#__PURE__*/ (function () {
|
|
|
1365
1383
|
config = typeAlias;
|
|
1366
1384
|
}
|
|
1367
1385
|
}
|
|
1368
|
-
if (isArray(config))
|
|
1369
|
-
|
|
1370
|
-
return _this2.create(cmpType, cfg, more);
|
|
1371
|
-
});
|
|
1372
|
-
var cfg = config;
|
|
1386
|
+
if (isArray(config)) return config.map((cfg) => this.create(cmpType, cfg, more));
|
|
1387
|
+
let cfg = config;
|
|
1373
1388
|
if (more) cfg = Object.assign({}, config, more);
|
|
1374
|
-
|
|
1389
|
+
let cmp = new cmpType(cfg);
|
|
1375
1390
|
if (cmpType.autoInit && cmp.init) cmp.init();
|
|
1376
1391
|
return cmp;
|
|
1377
|
-
}
|
|
1378
|
-
|
|
1379
|
-
})();
|
|
1392
|
+
}
|
|
1393
|
+
}
|
|
1380
1394
|
Component.prototype.isComponent = true;
|
|
1381
1395
|
Component.isComponentType = true;
|
|
1382
1396
|
Component.namespace = "";
|
|
1383
1397
|
Component.autoInit = false;
|
|
1384
|
-
Component.factory =
|
|
1385
|
-
throw new Error(
|
|
1398
|
+
Component.factory = (alias, _config, _more) => {
|
|
1399
|
+
throw new Error(`Unknown component alias ${alias}.`);
|
|
1386
1400
|
};
|
|
1387
1401
|
function createComponentFactory(factory, jsxDriver, meta) {
|
|
1388
1402
|
factory.$isComponentFactory = true;
|
|
@@ -1395,49 +1409,44 @@ function isComponentFactory(factory) {
|
|
|
1395
1409
|
}
|
|
1396
1410
|
|
|
1397
1411
|
function onIdleCallback(callback, options) {
|
|
1398
|
-
|
|
1412
|
+
let token = null;
|
|
1399
1413
|
if (typeof requestIdleCallback == "function") token = requestIdleCallback(callback, options);
|
|
1400
1414
|
else token = setTimeout(callback, 1);
|
|
1401
|
-
return
|
|
1415
|
+
return () => {
|
|
1402
1416
|
if (typeof cancelIdleCallback == "function") cancelIdleCallback(token);
|
|
1403
1417
|
else clearTimeout(token);
|
|
1404
1418
|
};
|
|
1405
1419
|
}
|
|
1406
1420
|
|
|
1421
|
+
//@ts-nocheck
|
|
1407
1422
|
function validatedDebounce(callback, valueGetter, delay) {
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
1411
|
-
args[_key] = arguments[_key];
|
|
1412
|
-
}
|
|
1423
|
+
let timer;
|
|
1424
|
+
let result = function (...args) {
|
|
1413
1425
|
clearTimeout(timer);
|
|
1414
|
-
|
|
1426
|
+
let prev = valueGetter();
|
|
1415
1427
|
timer = setTimeout(function () {
|
|
1416
|
-
|
|
1428
|
+
let now = valueGetter();
|
|
1417
1429
|
if (prev !== now) return;
|
|
1418
|
-
callback
|
|
1430
|
+
callback(...args);
|
|
1419
1431
|
}, delay);
|
|
1420
1432
|
};
|
|
1421
|
-
result.reset = function reset() {
|
|
1433
|
+
result.reset = function reset(...args) {
|
|
1422
1434
|
clearTimeout(timer);
|
|
1423
|
-
callback
|
|
1435
|
+
callback(...args);
|
|
1424
1436
|
};
|
|
1425
1437
|
return result;
|
|
1426
1438
|
}
|
|
1427
1439
|
|
|
1428
1440
|
function addEventListenerWithOptions(element, event, callback, options) {
|
|
1429
|
-
|
|
1441
|
+
let thirdParam = browserSupportsPassiveEventHandlers() ? options : options.capture === true;
|
|
1430
1442
|
element.addEventListener(event, callback, thirdParam);
|
|
1431
|
-
return
|
|
1443
|
+
return () => {
|
|
1432
1444
|
element.removeEventListener(event, callback, thirdParam);
|
|
1433
1445
|
};
|
|
1434
1446
|
}
|
|
1435
1447
|
|
|
1436
|
-
function coalesce() {
|
|
1437
|
-
for (
|
|
1438
|
-
args[_key] = arguments[_key];
|
|
1439
|
-
}
|
|
1440
|
-
for (var i = 0; i < args.length; i++) {
|
|
1448
|
+
function coalesce(...args) {
|
|
1449
|
+
for (let i = 0; i < args.length; i++) {
|
|
1441
1450
|
if (args[i] != null) return args[i];
|
|
1442
1451
|
}
|
|
1443
1452
|
return null;
|
|
@@ -1447,10 +1456,10 @@ function dummyCallback() {}
|
|
|
1447
1456
|
|
|
1448
1457
|
function calculateNaturalElementHeight(el) {
|
|
1449
1458
|
if (el.scrollHeight > el.clientHeight) return naturalElementHeight(el);
|
|
1450
|
-
|
|
1451
|
-
for (
|
|
1452
|
-
|
|
1453
|
-
if (child.scrollHeight > child.clientHeight) {
|
|
1459
|
+
let h = el.offsetHeight;
|
|
1460
|
+
for (let i = 0; i < el.children.length; i++) {
|
|
1461
|
+
let child = el.children[i];
|
|
1462
|
+
if (child instanceof HTMLElement && child.scrollHeight > child.clientHeight) {
|
|
1454
1463
|
h -= child.offsetHeight;
|
|
1455
1464
|
h += naturalElementHeight(child);
|
|
1456
1465
|
}
|
|
@@ -1458,12 +1467,12 @@ function calculateNaturalElementHeight(el) {
|
|
|
1458
1467
|
return h;
|
|
1459
1468
|
}
|
|
1460
1469
|
function naturalElementHeight(el) {
|
|
1461
|
-
|
|
1462
|
-
|
|
1470
|
+
let h = el.offsetHeight;
|
|
1471
|
+
let overflow = el.scrollHeight - el.clientHeight;
|
|
1463
1472
|
if (overflow <= 0) return h;
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
if (!isNaN(maxH)) return Math.min(
|
|
1473
|
+
let computedStyle = getComputedStyle(el);
|
|
1474
|
+
let maxH = parseFloat(computedStyle.getPropertyValue("max-height"));
|
|
1475
|
+
if (!isNaN(maxH)) return Math.min(maxH, h + overflow);
|
|
1467
1476
|
return h + overflow;
|
|
1468
1477
|
}
|
|
1469
1478
|
|
|
@@ -1471,30 +1480,33 @@ function isTextInputElement(el) {
|
|
|
1471
1480
|
return el.tagName == "INPUT" || el.tagName == "TEXTAREA";
|
|
1472
1481
|
}
|
|
1473
1482
|
|
|
1474
|
-
|
|
1475
|
-
/^(?:[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[\$0-9A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u0870-\u0887\u0889-\u088E\u0897-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1-\u0CF3\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECE\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1715\u171F-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B4C\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA827\uA82C\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF65-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDD40-\uDD65\uDD69-\uDD6D\uDD6F-\uDD85\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDEC2-\uDEC4\uDEFC-\uDF1C\uDF27\uDF30-\uDF50\uDF70-\uDF85\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC75\uDC7F-\uDCBA\uDCC2\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD47\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDCE-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E-\uDE41\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7-\uDFC0\uDFC2\uDFC5\uDFC7-\uDFCA\uDFCC-\uDFD3\uDFE1\uDFE2]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E-\uDC61\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDED0-\uDEE3\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39\uDF40-\uDF46]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0\uDFF0-\uDFF9]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF6\uDF00-\uDF10\uDF12-\uDF3A\uDF3E-\uDF42\uDF50-\uDF5A\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC40-\uDC55\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD39]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDD70-\uDD79\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFE4\uDFF0\uDFF1]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD833[\uDCF0-\uDCF9\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC30-\uDC6D\uDC8F\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAE\uDEC0-\uDEF9]|\uD839[\uDCD0-\uDCF9\uDDD0-\uDDFA\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF]|\uDB40[\uDD00-\uDDEF])*$/;
|
|
1483
|
+
const regex = /^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u;
|
|
1476
1484
|
function isValidIdentifierName(name) {
|
|
1477
1485
|
return regex.test(name);
|
|
1478
1486
|
}
|
|
1479
1487
|
|
|
1480
|
-
|
|
1481
|
-
|
|
1488
|
+
function isDataRecord(v) {
|
|
1489
|
+
return isObject(v);
|
|
1490
|
+
}
|
|
1491
|
+
|
|
1492
|
+
class TraversalStack {
|
|
1493
|
+
data;
|
|
1494
|
+
constructor() {
|
|
1482
1495
|
this.data = [];
|
|
1483
1496
|
}
|
|
1484
|
-
|
|
1485
|
-
_proto.push = function push(node) {
|
|
1497
|
+
push(node) {
|
|
1486
1498
|
if (this.data.length == 0) this.hop();
|
|
1487
1499
|
this.data[this.data.length - 1].elements.push(node);
|
|
1488
|
-
}
|
|
1489
|
-
|
|
1500
|
+
}
|
|
1501
|
+
hop() {
|
|
1490
1502
|
this.data.push({
|
|
1491
1503
|
elements: [],
|
|
1492
1504
|
index: 0,
|
|
1493
1505
|
});
|
|
1494
|
-
}
|
|
1495
|
-
|
|
1506
|
+
}
|
|
1507
|
+
pop() {
|
|
1496
1508
|
while (this.data.length > 0) {
|
|
1497
|
-
|
|
1509
|
+
let line = this.data[this.data.length - 1];
|
|
1498
1510
|
if (line.index < line.elements.length) {
|
|
1499
1511
|
line.index++;
|
|
1500
1512
|
return line.elements[line.index - 1];
|
|
@@ -1502,17 +1514,29 @@ var TraversalStack = /*#__PURE__*/ (function () {
|
|
|
1502
1514
|
this.data.pop();
|
|
1503
1515
|
}
|
|
1504
1516
|
return null;
|
|
1505
|
-
}
|
|
1506
|
-
|
|
1517
|
+
}
|
|
1518
|
+
empty() {
|
|
1507
1519
|
while (this.data.length > 0) {
|
|
1508
|
-
|
|
1520
|
+
let line = this.data[this.data.length - 1];
|
|
1509
1521
|
if (line.index < line.elements.length) return false;
|
|
1510
1522
|
this.data.pop();
|
|
1511
1523
|
}
|
|
1512
1524
|
return true;
|
|
1513
|
-
}
|
|
1514
|
-
|
|
1515
|
-
|
|
1525
|
+
}
|
|
1526
|
+
}
|
|
1527
|
+
|
|
1528
|
+
function hasKey(obj, key) {
|
|
1529
|
+
return key in obj;
|
|
1530
|
+
}
|
|
1531
|
+
function hasStringAtKey(obj, key) {
|
|
1532
|
+
return hasKey(obj, key) && isString(obj[key]);
|
|
1533
|
+
}
|
|
1534
|
+
function hasValueAtKey(obj, key, value) {
|
|
1535
|
+
return hasKey(obj, key) && obj[key] === value;
|
|
1536
|
+
}
|
|
1537
|
+
function hasFunctionAtKey(obj, key) {
|
|
1538
|
+
return hasKey(obj, key) && isFunction(obj[key]);
|
|
1539
|
+
}
|
|
1516
1540
|
|
|
1517
1541
|
export {
|
|
1518
1542
|
Component,
|
|
@@ -1558,11 +1582,16 @@ export {
|
|
|
1558
1582
|
getSearchQueryPredicate,
|
|
1559
1583
|
getTopLevelBoundingClientRect,
|
|
1560
1584
|
getVendorPrefix,
|
|
1585
|
+
hasFunctionAtKey,
|
|
1586
|
+
hasKey,
|
|
1587
|
+
hasStringAtKey,
|
|
1588
|
+
hasValueAtKey,
|
|
1561
1589
|
hslToRgb,
|
|
1562
1590
|
innerTextTrim,
|
|
1563
1591
|
internalFlag,
|
|
1564
1592
|
isArray,
|
|
1565
1593
|
isComponentFactory,
|
|
1594
|
+
isDataRecord,
|
|
1566
1595
|
isDefined,
|
|
1567
1596
|
isDescendant,
|
|
1568
1597
|
isDigit,
|
|
@@ -1615,6 +1644,7 @@ export {
|
|
|
1615
1644
|
tooltipsFlag,
|
|
1616
1645
|
trimFractionZeros,
|
|
1617
1646
|
upperBoundCheck,
|
|
1647
|
+
validateConfig,
|
|
1618
1648
|
validatedDebounce,
|
|
1619
1649
|
vdomRenderFlag,
|
|
1620
1650
|
zeroTime,
|