@inseefr/lunatic 2.6.2 → 2.7.0-rc.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/README.md +13 -3
- package/lib/components/button/lunatic-button.js +1 -2
- package/lib/components/checkbox/checkbox-boolean/html/checkbox-boolean.js +1 -2
- package/lib/components/checkbox/checkbox-boolean/lunatic-checkbox-boolean.js +1 -2
- package/lib/components/checkbox/checkbox-group/checkbox-group-content.js +1 -2
- package/lib/components/checkbox/checkbox-group/html/checkbox-group-content.js +1 -2
- package/lib/components/checkbox/checkbox-group/html/checkbox-group.js +1 -2
- package/lib/components/checkbox/checkbox-group/lunatic-checkbox-group.js +1 -2
- package/lib/components/checkbox/checkbox-one/html/checkbox-one.js +1 -2
- package/lib/components/checkbox/checkbox-one/lunatic-checkbox-one.js +1 -2
- package/lib/components/checkbox/commons/checkbox-option.js +1 -2
- package/lib/components/checkbox/commons/checkbox-option.spec.js +3 -3
- package/lib/components/checkbox/commons/getShortcutKey.js +2 -3
- package/lib/components/commons/components/combo-box/combo-box-container.js +1 -2
- package/lib/components/commons/components/combo-box/combo-box-content-box.js +1 -2
- package/lib/components/commons/components/combo-box/combo-box-content.js +5 -6
- package/lib/components/commons/components/combo-box/combo-box.js +4 -5
- package/lib/components/commons/components/combo-box/combo-box.stories.js +46 -49
- package/lib/components/commons/components/combo-box/keyboard-key-codes.js +2 -3
- package/lib/components/commons/components/combo-box/panel/combo-box-option.js +1 -2
- package/lib/components/commons/components/combo-box/panel/option-container.spec.js +3 -3
- package/lib/components/commons/components/combo-box/panel/panel-container.js +1 -2
- package/lib/components/commons/components/combo-box/panel/panel.spec.js +32 -17
- package/lib/components/commons/components/combo-box/selection/clear-button.js +1 -2
- package/lib/components/commons/components/combo-box/selection/clear-button.spec.js +61 -27
- package/lib/components/commons/components/combo-box/selection/combo-box-label-selection.js +1 -2
- package/lib/components/commons/components/combo-box/selection/input.js +4 -5
- package/lib/components/commons/components/combo-box/selection/label-selection.js +1 -2
- package/lib/components/commons/components/combo-box/selection/selection-container.js +1 -2
- package/lib/components/commons/components/combo-box/selection/selection.js +1 -1
- package/lib/components/commons/components/description.js +2 -4
- package/lib/components/commons/components/dragger/dragger.js +5 -6
- package/lib/components/commons/components/errors/errors.js +2 -3
- package/lib/components/commons/components/fab/fab.js +1 -2
- package/lib/components/commons/components/fab/fab.spec.js +59 -34
- package/lib/components/commons/components/field-container/field-container.js +1 -2
- package/lib/components/commons/components/fieldset.js +1 -2
- package/lib/components/commons/components/html-table/table.js +1 -2
- package/lib/components/commons/components/html-table/tbody.js +1 -2
- package/lib/components/commons/components/html-table/td.js +1 -2
- package/lib/components/commons/components/html-table/th.js +1 -2
- package/lib/components/commons/components/html-table/th.spec.js +3 -3
- package/lib/components/commons/components/html-table/thead.js +1 -2
- package/lib/components/commons/components/html-table/thead.spec.js +3 -3
- package/lib/components/commons/components/html-table/tr.js +1 -2
- package/lib/components/commons/components/is-network/is-network.js +7 -8
- package/lib/components/commons/components/is-network/use-online-status.js +1 -2
- package/lib/components/commons/components/label/label.js +1 -2
- package/lib/components/commons/components/lunatic-component-with-label.js +4 -5
- package/lib/components/commons/components/lunatic-component-without-label.js +4 -5
- package/lib/components/commons/components/md-label/link.js +1 -2
- package/lib/components/commons/components/md-label/md-label.js +4 -5
- package/lib/components/commons/components/missing/missing.js +5 -7
- package/lib/components/commons/components/nothing-to-display.js +1 -2
- package/lib/components/commons/components/orchestrated-component.js +6 -7
- package/lib/components/commons/components/variable-status/variable-status.js +5 -6
- package/lib/components/commons/create-customizable-field.js +4 -5
- package/lib/components/commons/icons/radio-checked-icon.js +1 -2
- package/lib/components/commons/index.js +3 -3
- package/lib/components/commons/safety-label.js +2 -3
- package/lib/components/commons/use-document-add-event-listener.js +1 -2
- package/lib/components/commons/use-on-handle-change.js +1 -2
- package/lib/components/commons/use-options-keydown.js +1 -2
- package/lib/components/component-set/html/component-set-wrapper.js +2 -3
- package/lib/components/component-set/html/component-set.js +1 -2
- package/lib/components/component-set/lunatic-component-set.js +3 -3
- package/lib/components/datepicker/html/datepicker-container.js +1 -2
- package/lib/components/datepicker/html/datepicker-input.js +1 -2
- package/lib/components/datepicker/html/datepicker.js +1 -2
- package/lib/components/datepicker/lunatic-datepicker.js +1 -2
- package/lib/components/declarations/declaration.js +1 -2
- package/lib/components/declarations/declarations-after-text.js +6 -7
- package/lib/components/declarations/declarations-before-text.js +6 -7
- package/lib/components/declarations/declarations-detachable.js +6 -7
- package/lib/components/declarations/declarations.js +2 -4
- package/lib/components/declarations/index.js +3 -3
- package/lib/components/dropdown/html/dropdown-simple/dropdown-simple.js +1 -2
- package/lib/components/dropdown/html/dropdown-simple/simple-label-renderer.js +1 -2
- package/lib/components/dropdown/html/dropdown-simple/simple-option-renderer.js +1 -2
- package/lib/components/dropdown/html/dropdown-writable/dropdown-writable.js +2 -3
- package/lib/components/dropdown/html/dropdown-writable/filter-tools/filter-options.js +1 -2
- package/lib/components/dropdown/html/dropdown-writable/filter-tools/get-label.js +2 -3
- package/lib/components/dropdown/html/dropdown-writable/filter-tools/letters-matching.js +1 -2
- package/lib/components/dropdown/html/dropdown-writable/filter-tools/match.js +1 -2
- package/lib/components/dropdown/html/dropdown-writable/filter-tools/prepare-prefix.js +1 -2
- package/lib/components/dropdown/html/dropdown-writable/writable-label-renderer.js +1 -2
- package/lib/components/dropdown/html/dropdown-writable/writable-option-renderer.js +5 -6
- package/lib/components/dropdown/html/dropdown.js +1 -2
- package/lib/components/dropdown/lunatic-dropdown.js +1 -2
- package/lib/components/duration/duration.js +1 -2
- package/lib/components/duration/durationInput.js +5 -6
- package/lib/components/duration/durationUtils.js +3 -5
- package/lib/components/duration/formatDuration.js +2 -3
- package/lib/components/duration/getDurationFromValue.js +1 -2
- package/lib/components/filter-description/component.js +1 -2
- package/lib/components/index.js +4 -4
- package/lib/components/input/html/input.js +1 -2
- package/lib/components/input/lunatic-input.js +1 -2
- package/lib/components/input-number/html/input-number-thousand.js +2 -3
- package/lib/components/input-number/html/input-number.js +1 -2
- package/lib/components/input-number/lunatic-input-number.js +1 -2
- package/lib/components/loop/block-for-loop.js +12 -17
- package/lib/components/loop/loop.js +3 -3
- package/lib/components/loop/roster-for-loop/roster-for-loop.js +32 -41
- package/lib/components/lunatic-components.js +21 -10
- package/lib/components/modal/html/modal.js +1 -2
- package/lib/components/modal/lunatic-modal.js +2 -3
- package/lib/components/modal-controls/close-or-skip.js +1 -2
- package/lib/components/modal-controls/modal-container.js +1 -2
- package/lib/components/modal-controls/modal-controls.js +5 -6
- package/lib/components/pairwise-links/pairwise-links.js +28 -32
- package/lib/components/question-explication/html/question-explication.js +2 -3
- package/lib/components/question-explication/lunatic-question-explication.js +1 -2
- package/lib/components/question-explication/question-explication.spec.js +4 -4
- package/lib/components/questions/question-context.js +1 -2
- package/lib/components/questions/question-information.js +1 -2
- package/lib/components/radio/html/radio-group-content.js +1 -2
- package/lib/components/radio/html/radio-group.js +1 -2
- package/lib/components/radio/html/radio-option.js +2 -3
- package/lib/components/radio/lunatic-radio-group.js +1 -2
- package/lib/components/roundabout/components/roundabout-container.js +1 -2
- package/lib/components/roundabout/components/roundabout-it-button.js +4 -5
- package/lib/components/roundabout/components/roundabout-it-container.js +1 -2
- package/lib/components/roundabout/components/roundabout-it-title.js +1 -2
- package/lib/components/roundabout/components/roundabout-label.js +1 -2
- package/lib/components/roundabout/components/roundabout-pending.js +1 -2
- package/lib/components/roundabout/lunatic-roundabout.js +1 -2
- package/lib/components/roundabout/redirect.js +4 -5
- package/lib/components/roundabout/roundabout.js +1 -2
- package/lib/components/sequence/html/sequence.js +1 -2
- package/lib/components/sequence/lunatic-sequence.js +1 -2
- package/lib/components/sequence/sequence.spec.js +3 -3
- package/lib/components/subsequence/subsequence.js +1 -2
- package/lib/components/subsequence/subsequence.spec.js +3 -3
- package/lib/components/suggester/find-best-label/find-best-label.js +1 -2
- package/lib/components/suggester/html/notification.js +1 -2
- package/lib/components/suggester/html/suggester.js +5 -6
- package/lib/components/suggester/idb-suggester/check-store.js +4 -5
- package/lib/components/suggester/idb-suggester/idb-suggester.js +1 -1
- package/lib/components/suggester/idb-suggester/suggester-notification.js +1 -2
- package/lib/components/suggester/idb-suggester/suggester-status.js +1 -2
- package/lib/components/suggester/lunatic-suggester.js +1 -2
- package/lib/components/suggester/searching/create-searching.js +9 -6
- package/lib/components/suggester-loader-widget/loader-row.js +2 -3
- package/lib/components/suggester-loader-widget/loader.js +4 -5
- package/lib/components/suggester-loader-widget/progress.js +1 -2
- package/lib/components/suggester-loader-widget/tools/action-tool.js +1 -2
- package/lib/components/suggester-loader-widget/tools/tools.js +1 -2
- package/lib/components/suggester-loader-widget/widget-container.js +1 -2
- package/lib/components/suggester-loader-widget/widget.js +7 -8
- package/lib/components/summary/html/summary-responses.js +1 -2
- package/lib/components/summary/html/summary-title.js +1 -2
- package/lib/components/switch/html/switch.js +1 -2
- package/lib/components/switch/lunatic-switch.js +1 -2
- package/lib/components/table/lunatic-table.js +23 -15
- package/lib/components/table/{header.js → table-header.js} +3 -5
- package/lib/components/textarea/html/textarea.js +1 -2
- package/lib/components/textarea/lunatic-textarea.js +1 -2
- package/lib/constants/component-types.js +1 -2
- package/lib/constants/declarations.js +10 -18
- package/lib/constants/event-types.js +10 -20
- package/lib/constants/supported-preferences.js +4 -5
- package/lib/constants/value-types.js +5 -10
- package/lib/constants/variable-types.js +3 -5
- package/lib/hooks/use-track-changes.js +50 -0
- package/lib/i18n/build-dictionary.js +8 -11
- package/lib/i18n/dictionary.js +1 -2
- package/lib/i18n/index.js +7 -9
- package/lib/i18n/inputNumberProps.js +2 -4
- package/lib/src/components/commons/components/combo-box/combo-box.stories.d.ts +6 -57
- package/lib/src/components/index.d.ts +2 -2
- package/lib/src/components/loop/block-for-loop.d.ts +3 -4
- package/lib/src/components/loop/roster-for-loop/roster-for-loop.d.ts +3 -4
- package/lib/src/components/lunatic-components.d.ts +5 -3
- package/lib/src/components/pairwise-links/pairwise-links.d.ts +1 -2
- package/lib/src/components/table/lunatic-table.d.ts +1 -1
- package/lib/src/components/table/{header.d.ts → table-header.d.ts} +2 -2
- package/lib/src/components/type.d.ts +5 -6
- package/lib/src/hooks/use-track-changes.d.ts +9 -0
- package/lib/src/use-lunatic/actions.d.ts +3 -16
- package/lib/src/use-lunatic/commons/compile-controls.d.ts +3 -2
- package/lib/src/use-lunatic/commons/component.d.ts +22 -0
- package/lib/src/use-lunatic/commons/fill-components/fill-component-value.d.ts +2 -3
- package/lib/src/use-lunatic/commons/fill-components/fill-components.d.ts +6 -0
- package/lib/src/use-lunatic/commons/fill-components/fill-from-state.d.ts +107 -122
- package/lib/src/use-lunatic/commons/fill-components/fill-iterations.d.ts +112 -0
- package/lib/src/use-lunatic/commons/fill-components/fill-specific-expression.d.ts +53 -89
- package/lib/src/use-lunatic/commons/get-compatible-vtl-expression.d.ts +1 -0
- package/lib/src/use-lunatic/commons/index.d.ts +0 -3
- package/lib/src/use-lunatic/commons/variables/behaviours/cleaning-behaviour.d.ts +7 -0
- package/lib/src/use-lunatic/commons/variables/behaviours/missing-behaviour.d.ts +7 -0
- package/lib/src/use-lunatic/commons/variables/behaviours/resizing-behaviour.d.ts +7 -0
- package/lib/src/use-lunatic/commons/variables/get-questionnaire-data.d.ts +4 -0
- package/lib/src/use-lunatic/commons/variables/lunatic-variables-store.d.ts +77 -0
- package/lib/src/use-lunatic/reducer/overview/overview-on-init.d.ts +10 -8
- package/lib/src/use-lunatic/reducer/reduce-handle-change.d.ts +6 -0
- package/lib/src/use-lunatic/reducer/reduce-on-init.d.ts +1 -12
- package/lib/src/use-lunatic/type-source.d.ts +7 -21
- package/lib/src/use-lunatic/type.d.ts +13 -11
- package/lib/src/use-lunatic/use-lunatic.d.ts +33 -56
- package/lib/src/utils/array.d.ts +6 -1
- package/lib/src/utils/env.d.ts +1 -0
- package/lib/src/utils/number.d.ts +4 -0
- package/lib/src/utils/variables.d.ts +5 -0
- package/lib/src/utils/vtl.d.ts +14 -0
- package/lib/stories/Introduction.stories.mdx +2 -4
- package/lib/stories/checkbox-boolean/checkboxBoolean.stories.js +5 -7
- package/lib/stories/checkbox-group/checkbox-group.stories.js +28 -11
- package/lib/stories/checkbox-group/source.json +343 -27
- package/lib/stories/checkbox-one/checkboxOne.stories.js +5 -7
- package/lib/stories/component-set/component-set.stories.js +7 -11
- package/lib/stories/custom-mui/checkbox-boolean-mui.js +4 -5
- package/lib/stories/custom-mui/checkbox-group-mui.js +4 -5
- package/lib/stories/custom-mui/checkbox-one-mui.js +1 -2
- package/lib/stories/custom-mui/input-mui.js +4 -5
- package/lib/stories/custom-mui/input-number-mui.js +4 -5
- package/lib/stories/custom-mui/radio-mui.js +4 -5
- package/lib/stories/custom-mui/suggester-mui/suggester-mui.js +5 -6
- package/lib/stories/custom-mui/switch-mui.js +4 -5
- package/lib/stories/custom-mui/table-mui.js +1 -2
- package/lib/stories/custom-mui/tbody-mui.js +1 -2
- package/lib/stories/custom-mui/td-mui.js +1 -2
- package/lib/stories/custom-mui/textarea-mui.js +4 -5
- package/lib/stories/custom-mui/th-mui.js +1 -2
- package/lib/stories/custom-mui/thead-mui.js +1 -2
- package/lib/stories/custom-mui/tr-mui.js +1 -2
- package/lib/stories/date-picker/datepicker.stories.js +5 -7
- package/lib/stories/declaration/input.stories.js +5 -7
- package/lib/stories/disabled/disabled.stories.js +5 -7
- package/lib/stories/dropdown/dropdown.stories.js +5 -7
- package/lib/stories/duration/duration.stories.js +6 -9
- package/lib/stories/filter-description/filter-description.stories.js +6 -9
- package/lib/stories/input/input.stories.js +6 -9
- package/lib/stories/input-number/input-number.stories.js +7 -11
- package/lib/stories/loop/block-for-loop.stories.js +7 -11
- package/lib/stories/loop/paginated-loop.stories.js +5 -7
- package/lib/stories/loop/roster-for-loop.stories.js +8 -12
- package/lib/stories/modal/modal.stories.js +5 -7
- package/lib/stories/overview/overview.stories.js +5 -7
- package/lib/stories/pairwise/pairwise-links.stories.js +8 -12
- package/lib/stories/paste-questionnaire/test.stories.js +5 -7
- package/lib/stories/question-explication/question-explication.stories.js +5 -7
- package/lib/stories/questionnaires/logement/logement.stories.js +7 -11
- package/lib/stories/questionnaires/recensement/recensement.stories.js +5 -7
- package/lib/stories/questionnaires/rp/rp.stories.js +5 -7
- package/lib/stories/questionnaires/simpsons/simpsons.stories.js +8 -12
- package/lib/stories/questionnaires-test/controls/controls-externes.stories.js +5 -7
- package/lib/stories/questionnaires-test/controls/controls.stories.js +9 -15
- package/lib/stories/questionnaires-test/test.stories.js +9 -15
- package/lib/stories/questionnaires2023/bySequence/ticWeb.stories.js +5 -7
- package/lib/stories/questionnaires2023/famille/famille.stories.js +5 -7
- package/lib/stories/questionnaires2023/simpsons/simpsons.stories.js +5 -7
- package/lib/stories/questionnaires2023/ticTel/ticWeb.stories.js +5 -7
- package/lib/stories/questionnaires2023/ticWeb/ticWeb.stories.js +5 -7
- package/lib/stories/radio/radio.stories.js +5 -7
- package/lib/stories/resizing-questionnaire/test.stories.js +5 -7
- package/lib/stories/roundabout/roundabout.stories.js +6 -9
- package/lib/stories/sequence/sequence.stories.js +5 -7
- package/lib/stories/suggester/suggester-workers.stories.js +7 -9
- package/lib/stories/suggester/suggester.stories.js +8 -12
- package/lib/stories/summary/summary.stories.js +5 -7
- package/lib/stories/switch/switch.stories.js +7 -9
- package/lib/stories/table/table.stories.js +10 -15
- package/lib/stories/textarea/textarea.stories.js +5 -7
- package/lib/stories/utils/default-arg-types.js +4 -5
- package/lib/stories/utils/options.js +5 -9
- package/lib/stories/utils/orchestrator.js +10 -10
- package/lib/stories/utils/overview.js +2 -3
- package/lib/stories/utils/waiting/waiting.js +1 -2
- package/lib/test.d.js +3 -0
- package/lib/use-lunatic/actions.js +10 -18
- package/lib/use-lunatic/commons/check-loops.js +5 -6
- package/lib/use-lunatic/commons/compile-controls.js +6 -8
- package/lib/use-lunatic/commons/component.js +22 -0
- package/lib/use-lunatic/commons/compose.js +1 -2
- package/lib/use-lunatic/commons/create-map-pages.js +4 -5
- package/lib/use-lunatic/commons/execute-condition-filter.js +2 -11
- package/lib/use-lunatic/commons/fill-components/fill-component-expressions.js +6 -8
- package/lib/use-lunatic/commons/fill-components/fill-component-value.js +24 -10
- package/lib/use-lunatic/commons/fill-components/fill-components.js +5 -5
- package/lib/use-lunatic/commons/fill-components/fill-from-state.js +4 -5
- package/lib/use-lunatic/commons/fill-components/fill-iterations.js +45 -0
- package/lib/use-lunatic/commons/fill-components/fill-management.js +4 -5
- package/lib/use-lunatic/commons/fill-components/fill-missing-response.js +10 -18
- package/lib/use-lunatic/commons/fill-components/fill-pagination.js +4 -5
- package/lib/use-lunatic/commons/fill-components/fill-specific-expression.js +63 -11
- package/lib/use-lunatic/commons/get-compatible-vtl-expression.js +3 -3
- package/lib/use-lunatic/commons/get-components-from-state.js +1 -2
- package/lib/use-lunatic/commons/get-errors-without-empty-value.js +2 -3
- package/lib/use-lunatic/commons/getOverview.js +3 -4
- package/lib/use-lunatic/commons/index.js +0 -21
- package/lib/use-lunatic/commons/is-First-last-page.js +1 -2
- package/lib/use-lunatic/commons/is-paginated-loop.js +1 -2
- package/lib/use-lunatic/commons/page-navigation.js +4 -4
- package/lib/use-lunatic/commons/page-navigation.spec.js +3 -3
- package/lib/use-lunatic/commons/page-tag.js +3 -3
- package/lib/use-lunatic/commons/use-components-from-state.js +1 -2
- package/lib/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js +39 -0
- package/lib/use-lunatic/commons/variables/behaviours/missing-behaviour.js +47 -0
- package/lib/use-lunatic/commons/variables/behaviours/resizing-behaviour.js +78 -0
- package/lib/use-lunatic/commons/variables/get-questionnaire-data.js +65 -0
- package/lib/use-lunatic/commons/variables/lunatic-variables-store.js +329 -0
- package/lib/use-lunatic/commons/variables/lunatic-variables-store.spec.js +216 -0
- package/lib/use-lunatic/initial-state.js +6 -4
- package/lib/use-lunatic/lunatic-context.js +3 -6
- package/lib/use-lunatic/reducer/commons/auto-explore-loop.js +3 -3
- package/lib/use-lunatic/reducer/commons/is-loop-component.js +2 -3
- package/lib/use-lunatic/reducer/commons/resize-array-variable.js +1 -2
- package/lib/use-lunatic/reducer/commons/validate-condition-filter.js +1 -1
- package/lib/use-lunatic/reducer/overview/overview-on-change.js +6 -7
- package/lib/use-lunatic/reducer/overview/overview-on-init.js +5 -5
- package/lib/use-lunatic/reducer/reduce-go-next-page.js +5 -6
- package/lib/use-lunatic/reducer/reduce-go-previous-page.js +4 -5
- package/lib/use-lunatic/reducer/reduce-go-to-page.js +4 -5
- package/lib/use-lunatic/reducer/reduce-handle-change.js +29 -0
- package/lib/use-lunatic/reducer/reduce-on-init.js +93 -186
- package/lib/use-lunatic/reducer/reduce-on-set-waiting.js +4 -5
- package/lib/use-lunatic/reducer/reduce-update-state.js +3 -3
- package/lib/use-lunatic/reducer/reducer.js +3 -4
- package/lib/use-lunatic/reducer/resolve-component-controls/resolve-simple-control.js +2 -4
- package/lib/use-lunatic/type-source.js +4 -7
- package/lib/use-lunatic/use-lunatic.js +23 -20
- package/lib/use-lunatic/use-lunatic.test.js +134 -5
- package/lib/use-lunatic/use-suggesters.js +6 -7
- package/lib/utils/array.js +57 -6
- package/lib/utils/array.spec.js +30 -0
- package/lib/utils/constants/alphabet.js +1 -2
- package/lib/utils/constants/features.js +3 -6
- package/lib/utils/constants/links.js +2 -4
- package/lib/utils/constants/missing.js +2 -4
- package/lib/utils/constants/variable-status.js +5 -10
- package/lib/utils/constants/variable-types.js +1 -2
- package/lib/utils/env.js +10 -0
- package/lib/utils/function.js +1 -2
- package/lib/utils/get-component-value.js +3 -9
- package/lib/utils/idb-tools/clear-store.js +3 -4
- package/lib/utils/idb-tools/create-db-opener.js +1 -2
- package/lib/utils/idb-tools/create-open-db.js +1 -2
- package/lib/utils/idb-tools/get-entity.js +1 -2
- package/lib/utils/idb-tools/get-idb.js +1 -2
- package/lib/utils/idb-tools/idb-bulk-insert.js +5 -7
- package/lib/utils/idb-tools/index.js +3 -3
- package/lib/utils/idb-tools/insert-entity.js +1 -2
- package/lib/utils/idb-tools/open-db.js +3 -4
- package/lib/utils/idb-tools/open-or-create-db.js +2 -3
- package/lib/utils/is-object.js +1 -1
- package/lib/utils/logger.js +3 -4
- package/lib/utils/number.js +14 -2
- package/lib/utils/object.js +1 -1
- package/lib/utils/store-tools/clear-store-data.js +3 -4
- package/lib/utils/store-tools/clear-store-info.js +3 -4
- package/lib/utils/store-tools/constantes.js +7 -14
- package/lib/utils/store-tools/create/create.js +3 -4
- package/lib/utils/store-tools/create/update-store-info.js +1 -2
- package/lib/utils/store-tools/get-store-count.js +1 -2
- package/lib/utils/store-tools/index.js +3 -3
- package/lib/utils/store-tools/initStore.js +2 -2
- package/lib/utils/store-tools/open-or-create-store.js +1 -2
- package/lib/utils/store-tools/use-store-index.js +4 -5
- package/lib/utils/suggester-workers/append-to-index/append.js +3 -4
- package/lib/utils/suggester-workers/append-to-index/append.worker.js +1 -2
- package/lib/utils/suggester-workers/append-to-index/prepare-entities.js +5 -6
- package/lib/utils/suggester-workers/append-to-index/store-messages.js +4 -5
- package/lib/utils/suggester-workers/commons-tokenizer/create-entity-tokenizer.js +4 -5
- package/lib/utils/suggester-workers/commons-tokenizer/create-fields-tokenizer.js +5 -6
- package/lib/utils/suggester-workers/commons-tokenizer/create-filter-stop-words.js +4 -5
- package/lib/utils/suggester-workers/commons-tokenizer/filters/compose-filters.js +1 -2
- package/lib/utils/suggester-workers/commons-tokenizer/filters/create-filter-stop-words.js +4 -5
- package/lib/utils/suggester-workers/commons-tokenizer/filters/filter-accents.js +1 -2
- package/lib/utils/suggester-workers/commons-tokenizer/filters/filter-double.js +1 -2
- package/lib/utils/suggester-workers/commons-tokenizer/filters/filter-length.js +1 -2
- package/lib/utils/suggester-workers/commons-tokenizer/filters/filter-stemmer.js +1 -2
- package/lib/utils/suggester-workers/commons-tokenizer/filters/filter-synonyms.js +4 -5
- package/lib/utils/suggester-workers/commons-tokenizer/filters/filter-to-lower.js +1 -2
- package/lib/utils/suggester-workers/commons-tokenizer/filters/stop-words.js +1 -2
- package/lib/utils/suggester-workers/commons-tokenizer/get-regexp-from-pattern.js +1 -2
- package/lib/utils/suggester-workers/commons-tokenizer/get-stemmer.js +1 -2
- package/lib/utils/suggester-workers/commons-tokenizer/prepare-string-indexation.js +1 -2
- package/lib/utils/suggester-workers/commons-tokenizer/soft-tokenizer.js +1 -2
- package/lib/utils/suggester-workers/create-worker-ts.js +2 -3
- package/lib/utils/suggester-workers/create-worker.js +2 -3
- package/lib/utils/suggester-workers/find-best-label/find-best-label.js +5 -6
- package/lib/utils/suggester-workers/find-best-label/tokenize.js +3 -4
- package/lib/utils/suggester-workers/searching/compute-score.js +4 -5
- package/lib/utils/suggester-workers/searching/get-db.js +3 -4
- package/lib/utils/suggester-workers/searching/order/create-alphanumeric-orderer.js +1 -2
- package/lib/utils/suggester-workers/searching/order/index.js +1 -2
- package/lib/utils/suggester-workers/searching/query-parser/query-parser-soft.js +1 -2
- package/lib/utils/suggester-workers/searching/query-parser/query-parser-tokenized.js +1 -2
- package/lib/utils/suggester-workers/searching/resolve-query-parser.js +3 -4
- package/lib/utils/suggester-workers/searching/search-in-index.js +1 -2
- package/lib/utils/suggester-workers/searching/searching.js +5 -6
- package/lib/utils/variables.js +37 -0
- package/lib/utils/vtl.js +100 -0
- package/package.json +28 -16
- package/lib/components/loop/utils/get-initial-nb-rows.js +0 -17
- package/lib/components/pairwise-links/index.js +0 -13
- package/lib/components/pairwise-links/orchestrator.js +0 -71
- package/lib/components/pairwise-links/row.js +0 -74
- package/lib/components/table/cell.js +0 -89
- package/lib/components/table/index.js +0 -13
- package/lib/components/table/row.js +0 -40
- package/lib/components/table/table-orchestrator.js +0 -35
- package/lib/src/components/loop/utils/get-initial-nb-rows.d.ts +0 -4
- package/lib/src/components/pairwise-links/index.d.ts +0 -1
- package/lib/src/components/pairwise-links/orchestrator.d.ts +0 -6
- package/lib/src/components/pairwise-links/row.d.ts +0 -7
- package/lib/src/components/table/cell.d.ts +0 -19
- package/lib/src/components/table/index.d.ts +0 -1
- package/lib/src/components/table/row.d.ts +0 -18
- package/lib/src/components/table/table-orchestrator.d.ts +0 -4
- package/lib/src/use-lunatic/commons/calculated-variables.d.ts +0 -8
- package/lib/src/use-lunatic/commons/execute-expression/create-execute-expression.d.ts +0 -9
- package/lib/src/use-lunatic/commons/execute-expression/create-memoizer.d.ts +0 -8
- package/lib/src/use-lunatic/commons/execute-expression/create-refresh-calculated.d.ts +0 -24
- package/lib/src/use-lunatic/commons/execute-expression/execute-expression.d.ts +0 -11
- package/lib/src/use-lunatic/commons/execute-expression/get-expressions-variables.d.ts +0 -7
- package/lib/src/use-lunatic/commons/execute-expression/get-expressions-variables.spec.d.ts +0 -1
- package/lib/src/use-lunatic/commons/execute-expression/get-safety-expression.d.ts +0 -6
- package/lib/src/use-lunatic/commons/execute-expression/index.d.ts +0 -1
- package/lib/src/use-lunatic/commons/get-component-value/get-component-value.d.ts +0 -6
- package/lib/src/use-lunatic/commons/get-component-value/index.d.ts +0 -1
- package/lib/src/use-lunatic/commons/get-data.d.ts +0 -26
- package/lib/src/use-lunatic/reducer/reduce-handle-change/index.d.ts +0 -1
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-cleaning.d.ts +0 -7
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-cleaning.spec.d.ts +0 -1
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-handle-change.d.ts +0 -4
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-links-variable.d.ts +0 -15
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-missing.d.ts +0 -7
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-resizing.d.ts +0 -4
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-variables-array.d.ts +0 -14
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-variables-simple.d.ts +0 -9
- package/lib/src/use-lunatic/reducer/reduce-on-init.spec.d.ts +0 -1
- package/lib/src/utils/vtl/dataset-builder.d.ts +0 -5
- package/lib/src/utils/vtl/index.d.ts +0 -1
- package/lib/stories/checkboxGroup/checkboxGroup.stories.js +0 -59
- package/lib/stories/checkboxGroup/source.json +0 -402
- package/lib/use-lunatic/commons/calculated-variables.js +0 -104
- package/lib/use-lunatic/commons/execute-expression/create-execute-expression.js +0 -233
- package/lib/use-lunatic/commons/execute-expression/create-execute-expression.spec.js +0 -155
- package/lib/use-lunatic/commons/execute-expression/create-memoizer.js +0 -63
- package/lib/use-lunatic/commons/execute-expression/create-refresh-calculated.js +0 -149
- package/lib/use-lunatic/commons/execute-expression/create-refresh-calculated.spec.js +0 -130
- package/lib/use-lunatic/commons/execute-expression/execute-expression.js +0 -90
- package/lib/use-lunatic/commons/execute-expression/execute-expression.spec.js +0 -38
- package/lib/use-lunatic/commons/execute-expression/get-expressions-variables.js +0 -40
- package/lib/use-lunatic/commons/execute-expression/get-expressions-variables.spec.js +0 -31
- package/lib/use-lunatic/commons/execute-expression/get-safety-expression.js +0 -35
- package/lib/use-lunatic/commons/execute-expression/index.js +0 -13
- package/lib/use-lunatic/commons/get-component-value/get-component-value.js +0 -174
- package/lib/use-lunatic/commons/get-component-value/index.js +0 -13
- package/lib/use-lunatic/commons/get-data.js +0 -80
- package/lib/use-lunatic/reducer/reduce-handle-change/__mocks__/source-cleaning-loop.json +0 -792
- package/lib/use-lunatic/reducer/reduce-handle-change/index.js +0 -13
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-cleaning.js +0 -72
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-cleaning.spec.js +0 -46
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-handle-change.js +0 -115
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-links-variable.js +0 -89
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-missing.js +0 -88
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-resizing.js +0 -110
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-variables-array.js +0 -44
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-variables-simple.js +0 -28
- package/lib/use-lunatic/reducer/reduce-on-init.spec.js +0 -17
- package/lib/utils/vtl/dataset-builder.js +0 -27
- package/lib/utils/vtl/index.js +0 -13
- /package/lib/src/use-lunatic/commons/{execute-expression/create-refresh-calculated.spec.d.ts → variables/lunatic-variables-store.spec.d.ts} +0 -0
- /package/lib/src/{use-lunatic/commons/execute-expression/execute-expression.spec.d.ts → utils/array.spec.d.ts} +0 -0
- /package/lib/stories/{checkboxGroup → checkbox-group}/sourceComponentset.json +0 -0
- /package/lib/stories/{checkboxGroup → checkbox-group}/sourceLoop.json +0 -0
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _executeExpression = _interopRequireDefault(require("./execute-expression"));
|
|
8
|
-
var _getSafetyExpression = _interopRequireDefault(require("./get-safety-expression"));
|
|
9
|
-
var _getExpressionsVariables = _interopRequireDefault(require("./get-expressions-variables"));
|
|
10
|
-
var _createMemoizer3 = _interopRequireDefault(require("./create-memoizer"));
|
|
11
|
-
var _createRefreshCalculated = _interopRequireDefault(require("./create-refresh-calculated"));
|
|
12
|
-
var _vtl = _interopRequireDefault(require("../../../utils/vtl"));
|
|
13
|
-
var _constants = require("../../../utils/constants");
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
18
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
19
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
20
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
21
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
22
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
23
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
24
|
-
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
25
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
26
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
27
|
-
/**
|
|
28
|
-
* Check the shape of the expression and convert it into an expression
|
|
29
|
-
*/
|
|
30
|
-
function validateExpression(expObject) {
|
|
31
|
-
if (_typeof(expObject) === 'object' && expObject && 'type' in expObject) {
|
|
32
|
-
var type = expObject.type;
|
|
33
|
-
if (type === _constants.VTL || type === _constants.VTL_MD) {
|
|
34
|
-
return expObject;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
if (typeof expObject === 'string') return {
|
|
38
|
-
value: expObject,
|
|
39
|
-
type: _constants.VTL
|
|
40
|
-
};
|
|
41
|
-
console.warn("Non-VTL compatible expression");
|
|
42
|
-
console.warn(expObject);
|
|
43
|
-
throw new Error("Uncompatible VTL typeof element : ".concat(_typeof(expObject)));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Extract values for every variables
|
|
48
|
-
*/
|
|
49
|
-
function createBindings(variables) {
|
|
50
|
-
return Object.entries(variables).reduce(function (bindings, _ref) {
|
|
51
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
52
|
-
name = _ref2[0],
|
|
53
|
-
value = _ref2[1].value;
|
|
54
|
-
return _objectSpread(_objectSpread({}, bindings), {}, _defineProperty({}, name, value));
|
|
55
|
-
}, {});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Generates methods to interact with variables
|
|
60
|
-
*/
|
|
61
|
-
function createExecuteExpression(variables, features) {
|
|
62
|
-
// on aimerait map d'expression, avec les bindings
|
|
63
|
-
var bindings = createBindings(variables);
|
|
64
|
-
var tokensMap = new Map();
|
|
65
|
-
var _createMemoizer = (0, _createMemoizer3["default"])(),
|
|
66
|
-
_createMemoizer2 = _slicedToArray(_createMemoizer, 2),
|
|
67
|
-
memoize = _createMemoizer2[0],
|
|
68
|
-
getMemoizedValue = _createMemoizer2[1];
|
|
69
|
-
var _createRefreshCalcula = (0, _createRefreshCalculated["default"])({
|
|
70
|
-
variables: variables,
|
|
71
|
-
execute: execute,
|
|
72
|
-
bindings: bindings
|
|
73
|
-
}),
|
|
74
|
-
_createRefreshCalcula2 = _slicedToArray(_createRefreshCalcula, 2),
|
|
75
|
-
refreshCalculated = _createRefreshCalcula2[0],
|
|
76
|
-
setToRefreshCalculated = _createRefreshCalcula2[1];
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Mark all linked variables to be refreshed
|
|
80
|
-
*/
|
|
81
|
-
function pushToLazy(name) {
|
|
82
|
-
if (name in variables) {
|
|
83
|
-
var _variables$name$Calcu = variables[name].CalculatedLinked,
|
|
84
|
-
CalculatedLinked = _variables$name$Calcu === void 0 ? [] : _variables$name$Calcu;
|
|
85
|
-
CalculatedLinked.forEach(function (variable) {
|
|
86
|
-
var name = variable.name;
|
|
87
|
-
setToRefreshCalculated(name, variable);
|
|
88
|
-
});
|
|
89
|
-
} else {
|
|
90
|
-
console.warn("".concat(name, " is not identified as varaible!"));
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Update the value of a variable
|
|
96
|
-
*/
|
|
97
|
-
function updateBindings(name, value) {
|
|
98
|
-
if (name in bindings) {
|
|
99
|
-
bindings[name] = value;
|
|
100
|
-
}
|
|
101
|
-
pushToLazy(name);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Extract variables from an expression
|
|
106
|
-
*/
|
|
107
|
-
function getVariablesAndCatch(expression) {
|
|
108
|
-
// If we have an expression we can't have tokens
|
|
109
|
-
if (typeof expression !== 'string') {
|
|
110
|
-
return [];
|
|
111
|
-
}
|
|
112
|
-
if (tokensMap.has(expression)) {
|
|
113
|
-
return tokensMap.get(expression);
|
|
114
|
-
}
|
|
115
|
-
var tokens = (0, _getExpressionsVariables["default"])(expression, variables);
|
|
116
|
-
tokensMap.set(expression, tokens);
|
|
117
|
-
return tokens;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Retrieve variable affected by the dependencies
|
|
122
|
-
*/
|
|
123
|
-
function collecteVariables(dependencies) {
|
|
124
|
-
if (Array.isArray(dependencies)) {
|
|
125
|
-
return dependencies.reduce(function (map, name) {
|
|
126
|
-
if (name in variables) {
|
|
127
|
-
var data = variables[name];
|
|
128
|
-
var variable = data.variable;
|
|
129
|
-
if (!(name in map)) {
|
|
130
|
-
if (variable.variableType === 'CALCULATED') {
|
|
131
|
-
var _expression = variable.expression;
|
|
132
|
-
var subDependencies = getVariablesAndCatch(_expression);
|
|
133
|
-
return _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, name, _objectSpread({}, variable)), collecteVariables(subDependencies));
|
|
134
|
-
}
|
|
135
|
-
return _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, name, _objectSpread({}, variable)));
|
|
136
|
-
}
|
|
137
|
-
} else {
|
|
138
|
-
throw new Error("Unknown variable ".concat(name));
|
|
139
|
-
}
|
|
140
|
-
return map;
|
|
141
|
-
}, {});
|
|
142
|
-
}
|
|
143
|
-
return {};
|
|
144
|
-
}
|
|
145
|
-
function resolveUseContext(name, _ref3) {
|
|
146
|
-
var iteration = _ref3.iteration,
|
|
147
|
-
linksIterations = _ref3.linksIterations;
|
|
148
|
-
var value = bindings[name];
|
|
149
|
-
if ([_constants.X_AXIS, _constants.Y_AXIS].includes(name) && linksIterations !== undefined) {
|
|
150
|
-
pushToLazy(name);
|
|
151
|
-
var _linksIterations = _slicedToArray(linksIterations, 2),
|
|
152
|
-
x = _linksIterations[0],
|
|
153
|
-
y = _linksIterations[1];
|
|
154
|
-
if (Array.isArray(value) && x < value.length) {
|
|
155
|
-
return value[name === _constants.X_AXIS ? x : y];
|
|
156
|
-
}
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
if (iteration !== undefined && Array.isArray(value)) {
|
|
160
|
-
pushToLazy(name);
|
|
161
|
-
if (iteration < value.length) {
|
|
162
|
-
return value[iteration];
|
|
163
|
-
}
|
|
164
|
-
return null;
|
|
165
|
-
}
|
|
166
|
-
if (linksIterations !== undefined) {
|
|
167
|
-
var _linksIterations2 = _slicedToArray(linksIterations, 2),
|
|
168
|
-
_x2 = _linksIterations2[0],
|
|
169
|
-
_y = _linksIterations2[1];
|
|
170
|
-
if (Array.isArray(value) && _x2 < value.length) {
|
|
171
|
-
var sub = value[_x2];
|
|
172
|
-
if (Array.isArray(sub) && _y < sub.length) {
|
|
173
|
-
return sub[_y];
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
return null;
|
|
177
|
-
}
|
|
178
|
-
return (0, _vtl["default"])(value);
|
|
179
|
-
}
|
|
180
|
-
function fillVariablesValues(map, _ref4) {
|
|
181
|
-
var iteration = _ref4.iteration,
|
|
182
|
-
linksIterations = _ref4.linksIterations;
|
|
183
|
-
return Object.entries(map).reduce(function (sub, _ref5) {
|
|
184
|
-
var _ref6 = _slicedToArray(_ref5, 2),
|
|
185
|
-
name = _ref6[0],
|
|
186
|
-
_ = _ref6[1];
|
|
187
|
-
return _objectSpread(_objectSpread({}, sub), {}, _defineProperty({}, name, resolveUseContext(name, {
|
|
188
|
-
iteration: iteration,
|
|
189
|
-
linksIterations: linksIterations
|
|
190
|
-
})));
|
|
191
|
-
}, {});
|
|
192
|
-
}
|
|
193
|
-
function execute(expObject) {
|
|
194
|
-
var _args$iteration;
|
|
195
|
-
var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
196
|
-
var _validateExpression = validateExpression((0, _getSafetyExpression["default"])(expObject)),
|
|
197
|
-
expression = _validateExpression.value,
|
|
198
|
-
type = _validateExpression.type;
|
|
199
|
-
var iteration = args.iteration,
|
|
200
|
-
linksIterations = args.linksIterations,
|
|
201
|
-
logging = args.logging;
|
|
202
|
-
var bindingDependencies = getVariablesAndCatch(expression);
|
|
203
|
-
function loggingDefault(_, bindings, e) {
|
|
204
|
-
if (process.env.NODE_ENV === 'development') {
|
|
205
|
-
console.warn("VTL error : ".concat(expression), _objectSpread({}, args), {
|
|
206
|
-
bindings: bindings
|
|
207
|
-
});
|
|
208
|
-
console.warn(e);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
var vtlBindings = refreshCalculated(fillVariablesValues(collecteVariables(bindingDependencies), {
|
|
212
|
-
iteration: iteration,
|
|
213
|
-
linksIterations: linksIterations
|
|
214
|
-
}), {
|
|
215
|
-
rootExpression: expression,
|
|
216
|
-
iteration: iteration,
|
|
217
|
-
linksIterations: linksIterations
|
|
218
|
-
});
|
|
219
|
-
// Add index has a specific variable
|
|
220
|
-
vtlBindings['GLOBAL_ITERATION_INDEX'] = (((_args$iteration = args === null || args === void 0 ? void 0 : args.iteration) !== null && _args$iteration !== void 0 ? _args$iteration : 0) + 1).toString();
|
|
221
|
-
var memoized = getMemoizedValue(expression, vtlBindings);
|
|
222
|
-
if (memoized === undefined) {
|
|
223
|
-
var result = (0, _executeExpression["default"])(vtlBindings, expression, type, features, logging || loggingDefault);
|
|
224
|
-
memoize(expression, vtlBindings, result);
|
|
225
|
-
return result; // We need to force this type to match with the signature
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
return memoized;
|
|
229
|
-
}
|
|
230
|
-
return [execute, updateBindings];
|
|
231
|
-
}
|
|
232
|
-
var _default = createExecuteExpression;
|
|
233
|
-
exports["default"] = _default;
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _createExecuteExpression = _interopRequireDefault(require("./create-execute-expression"));
|
|
4
|
-
var _vitest = require("vitest");
|
|
5
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
6
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
7
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
8
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
9
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
10
|
-
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
11
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
-
var variables = {
|
|
13
|
-
LASTNAME: {
|
|
14
|
-
CalculatedLinked: [],
|
|
15
|
-
type: 'COLLECTED',
|
|
16
|
-
value: 'Doe',
|
|
17
|
-
variable: {
|
|
18
|
-
name: 'LASTNAME',
|
|
19
|
-
variableType: 'COLLECTED'
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
GREETING: {
|
|
23
|
-
CalculatedLinked: [],
|
|
24
|
-
value: 'Hello Doe',
|
|
25
|
-
type: 'CALCULATED',
|
|
26
|
-
variable: {
|
|
27
|
-
name: 'GREETING',
|
|
28
|
-
variableType: 'COLLECTED',
|
|
29
|
-
expression: {
|
|
30
|
-
value: '"Hello " || LASTNAME',
|
|
31
|
-
type: 'VTL'
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
PAIRWISE: {
|
|
36
|
-
CalculatedLinked: [],
|
|
37
|
-
type: 'COLLECTED',
|
|
38
|
-
value: [['a1', 'a2'], ['b1', 'b2']],
|
|
39
|
-
variable: {
|
|
40
|
-
name: 'PAIRWISE',
|
|
41
|
-
variableType: 'COLLECTED'
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
PRENOMS: {
|
|
45
|
-
CalculatedLinked: [],
|
|
46
|
-
type: 'COLLECTED',
|
|
47
|
-
value: [],
|
|
48
|
-
variable: {
|
|
49
|
-
name: 'PRENOMS',
|
|
50
|
-
variableType: 'COLLECTED'
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
PRENOMVIDE: {
|
|
54
|
-
CalculatedLinked: [],
|
|
55
|
-
type: 'CALCULATED',
|
|
56
|
-
variable: {
|
|
57
|
-
name: 'PRENOMVIDE',
|
|
58
|
-
variableType: 'CALCULATED',
|
|
59
|
-
expression: {
|
|
60
|
-
value: '"empty"',
|
|
61
|
-
type: 'VTL'
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
PRENOMS_WITH_DEFAULTS: {
|
|
66
|
-
CalculatedLinked: [],
|
|
67
|
-
variable: {
|
|
68
|
-
variableType: 'CALCULATED',
|
|
69
|
-
name: 'PRENOMS_WITH_DEFAULTS',
|
|
70
|
-
expression: {
|
|
71
|
-
value: 'if (isnull(PRENOMS)) then PRENOMVIDE else PRENOMS',
|
|
72
|
-
type: 'VTL'
|
|
73
|
-
},
|
|
74
|
-
bindingDependencies: ['PRENOMS', 'PRENOMVIDE'],
|
|
75
|
-
shapeFrom: 'PRENOMS'
|
|
76
|
-
},
|
|
77
|
-
type: 'CALCULATED'
|
|
78
|
-
},
|
|
79
|
-
PRENOMS_SIZE: {
|
|
80
|
-
CalculatedLinked: [],
|
|
81
|
-
variable: {
|
|
82
|
-
variableType: 'CALCULATED',
|
|
83
|
-
name: 'PRENOMS_SIZE',
|
|
84
|
-
expression: {
|
|
85
|
-
value: 'count(PRENOMS)',
|
|
86
|
-
type: 'VTL'
|
|
87
|
-
},
|
|
88
|
-
bindingDependencies: ['PRENOMS']
|
|
89
|
-
},
|
|
90
|
-
type: 'CALCULATED'
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
variables.PRENOMS.CalculatedLinked = [variables.PRENOMS_WITH_DEFAULTS.variable, variables.PRENOMS_SIZE.variable];
|
|
94
|
-
variables.LASTNAME.CalculatedLinked = [variables.GREETING.variable];
|
|
95
|
-
(0, _vitest.describe)('createExecuteExpression', function () {
|
|
96
|
-
var execute, update;
|
|
97
|
-
(0, _vitest.beforeEach)(function () {
|
|
98
|
-
var _createExecuteExpress = (0, _createExecuteExpression["default"])(variables, ['VTL', 'VTL|MD']);
|
|
99
|
-
var _createExecuteExpress2 = _slicedToArray(_createExecuteExpress, 2);
|
|
100
|
-
execute = _createExecuteExpress2[0];
|
|
101
|
-
update = _createExecuteExpress2[1];
|
|
102
|
-
});
|
|
103
|
-
(0, _vitest.it)('should retrieve collected value', function () {
|
|
104
|
-
(0, _vitest.expect)(execute('LASTNAME')).toBe('Doe');
|
|
105
|
-
(0, _vitest.expect)(execute('"John " || LASTNAME')).toBe('John Doe');
|
|
106
|
-
});
|
|
107
|
-
_vitest.it.skip('should hangle calculated value', function () {
|
|
108
|
-
(0, _vitest.expect)(execute('GREETING')).toBe('Hello Doe');
|
|
109
|
-
update('LASTNAME', 'Doee');
|
|
110
|
-
(0, _vitest.expect)(execute('GREETING')).toBe('Hello Doee');
|
|
111
|
-
});
|
|
112
|
-
(0, _vitest.it)('should handle updated value', function () {
|
|
113
|
-
(0, _vitest.expect)(execute('LASTNAME')).toBe('Doe');
|
|
114
|
-
update('LASTNAME', 'John');
|
|
115
|
-
(0, _vitest.expect)(execute('LASTNAME')).toBe('John');
|
|
116
|
-
});
|
|
117
|
-
(0, _vitest.it)('should handle 1D vectors', function () {
|
|
118
|
-
update('PRENOMS', ['Jane', 'John', 'James']);
|
|
119
|
-
(0, _vitest.expect)(execute('PRENOMS', {
|
|
120
|
-
iteration: 1
|
|
121
|
-
})).toBe('John');
|
|
122
|
-
(0, _vitest.expect)(execute('PRENOMS', {
|
|
123
|
-
iteration: 0
|
|
124
|
-
})).toBe('Jane');
|
|
125
|
-
(0, _vitest.expect)(execute('PRENOMS_SIZE', {
|
|
126
|
-
iteration: 1
|
|
127
|
-
})).toBe(3);
|
|
128
|
-
(0, _vitest.expect)(execute('PRENOMS_WITH_DEFAULTS', {
|
|
129
|
-
iteration: 1
|
|
130
|
-
})).toBe('John');
|
|
131
|
-
update('PRENOMS', [null, null]);
|
|
132
|
-
(0, _vitest.expect)(execute('PRENOMS', {
|
|
133
|
-
iteration: 1
|
|
134
|
-
})).toBe(null);
|
|
135
|
-
(0, _vitest.expect)(execute('PRENOMS_WITH_DEFAULTS', {
|
|
136
|
-
iteration: 1
|
|
137
|
-
})).toBe('empty');
|
|
138
|
-
(0, _vitest.expect)(execute('PRENOMS_SIZE')).toBe(2);
|
|
139
|
-
});
|
|
140
|
-
(0, _vitest.it)('should handle 2D Vectors', function () {
|
|
141
|
-
(0, _vitest.expect)(execute('PAIRWISE', {
|
|
142
|
-
linksIterations: [0, 1]
|
|
143
|
-
})).toBe('a2');
|
|
144
|
-
(0, _vitest.expect)(execute('PAIRWISE', {
|
|
145
|
-
linksIterations: [1, 1]
|
|
146
|
-
})).toBe('b2');
|
|
147
|
-
});
|
|
148
|
-
(0, _vitest.it)('should handle direct expression', function () {
|
|
149
|
-
update('PRENOMS', ['Jane', 'John', 'James']);
|
|
150
|
-
(0, _vitest.expect)(execute('count(PRENOMS)')).toBe(3);
|
|
151
|
-
(0, _vitest.expect)(execute('PRENOMS || " Doe"', {
|
|
152
|
-
iteration: 0
|
|
153
|
-
})).toBe('Jane Doe');
|
|
154
|
-
});
|
|
155
|
-
});
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _objectHash = _interopRequireDefault(require("object-hash"));
|
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
10
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
11
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
12
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
14
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
15
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
16
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
18
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
19
|
-
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
20
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
21
|
-
/**
|
|
22
|
-
* To avoid performance issue when recalculating expression, memoise the value for every expression, binding combo
|
|
23
|
-
*/
|
|
24
|
-
function createMemoizer() {
|
|
25
|
-
var expresionsMap = new Map();
|
|
26
|
-
function refillBindings(bindings) {
|
|
27
|
-
return Object.entries(bindings).reduce(function (map, _ref) {
|
|
28
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
29
|
-
key = _ref2[0],
|
|
30
|
-
value = _ref2[1];
|
|
31
|
-
if (value && _typeof(value) === 'object' && 'result' in value) {
|
|
32
|
-
return _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, key, value.result));
|
|
33
|
-
}
|
|
34
|
-
return _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, key, value));
|
|
35
|
-
}, {});
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Save the value in the map
|
|
39
|
-
function memoize(expression, bindings, value) {
|
|
40
|
-
var refill = refillBindings(bindings);
|
|
41
|
-
var hash = (0, _objectHash["default"])(refill);
|
|
42
|
-
var map = expresionsMap.get(expression);
|
|
43
|
-
if (!map) {
|
|
44
|
-
map = new Map();
|
|
45
|
-
expresionsMap.set(expression, map);
|
|
46
|
-
}
|
|
47
|
-
map.set(hash, value);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// Retrieve the value from the map (or undefined if it doesn't exist)
|
|
51
|
-
function getMemoizedValue(expression, bindings) {
|
|
52
|
-
var map = expresionsMap.get(expression);
|
|
53
|
-
if (map) {
|
|
54
|
-
var refill = refillBindings(bindings);
|
|
55
|
-
var hash = (0, _objectHash["default"])(refill);
|
|
56
|
-
return map.get(hash);
|
|
57
|
-
}
|
|
58
|
-
return undefined;
|
|
59
|
-
}
|
|
60
|
-
return [memoize, getMemoizedValue];
|
|
61
|
-
}
|
|
62
|
-
var _default = createMemoizer;
|
|
63
|
-
exports["default"] = _default;
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports["default"] = void 0;
|
|
8
|
-
var _constants = require("../../../utils/constants");
|
|
9
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
10
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
11
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
12
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
14
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
15
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
16
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
17
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
18
|
-
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
19
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
20
|
-
/**
|
|
21
|
-
* Refresh calculated variables with the new value in the bindings
|
|
22
|
-
*/
|
|
23
|
-
function createRefreshCalculated(_ref) {
|
|
24
|
-
var variables = _ref.variables,
|
|
25
|
-
execute = _ref.execute,
|
|
26
|
-
bindings = _ref.bindings;
|
|
27
|
-
/**
|
|
28
|
-
* Links beetween calculated and collected variables :
|
|
29
|
-
* changes on collected involve changes on correlated variables.
|
|
30
|
-
*/
|
|
31
|
-
var toRefreshVariables = new Map();
|
|
32
|
-
|
|
33
|
-
// On start, all calculated variables need to be refresh.
|
|
34
|
-
Object.values(variables).forEach(function (_ref2) {
|
|
35
|
-
var variable = _ref2.variable;
|
|
36
|
-
var variableType = variable.variableType,
|
|
37
|
-
name = variable.name;
|
|
38
|
-
if (variableType === _constants.CALCULATED) {
|
|
39
|
-
toRefreshVariables.set(name, variable);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
function getIteration(_ref3) {
|
|
43
|
-
var name = _ref3.name,
|
|
44
|
-
iteration = _ref3.iteration,
|
|
45
|
-
linksIterations = _ref3.linksIterations;
|
|
46
|
-
if (name === _constants.X_AXIS && linksIterations) return linksIterations[0];
|
|
47
|
-
if (name === _constants.Y_AXIS && linksIterations) return linksIterations[1];
|
|
48
|
-
return iteration;
|
|
49
|
-
}
|
|
50
|
-
function buildValue(args) {
|
|
51
|
-
var expression = args.expression,
|
|
52
|
-
logging = args.logging,
|
|
53
|
-
shapeFrom = args.shapeFrom,
|
|
54
|
-
name = args.name,
|
|
55
|
-
iteration = args.iteration,
|
|
56
|
-
linksIterations = args.linksIterations;
|
|
57
|
-
var value = execute(expression, {
|
|
58
|
-
logging: logging,
|
|
59
|
-
iteration: shapeFrom ? getIteration({
|
|
60
|
-
name: name,
|
|
61
|
-
iteration: iteration,
|
|
62
|
-
linksIterations: linksIterations
|
|
63
|
-
}) : undefined
|
|
64
|
-
});
|
|
65
|
-
if (linksIterations !== undefined) return value;
|
|
66
|
-
if (shapeFrom && iteration !== undefined) {
|
|
67
|
-
if (bindings[name] === undefined) {
|
|
68
|
-
var shapeVariable = bindings[shapeFrom];
|
|
69
|
-
if (Array.isArray(shapeVariable)) {
|
|
70
|
-
var initialValue = shapeVariable.map(function (_, i) {
|
|
71
|
-
return execute(expression, {
|
|
72
|
-
logging: logging,
|
|
73
|
-
iteration: i
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
bindings[name] = initialValue;
|
|
77
|
-
return initialValue[iteration];
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
var binding = bindings[name];
|
|
81
|
-
if (Array.isArray(binding)) {
|
|
82
|
-
binding[iteration] = value;
|
|
83
|
-
return binding[iteration];
|
|
84
|
-
} else {
|
|
85
|
-
console.error("Binding not array! ".concat(bindings[name], " for ").concat(name));
|
|
86
|
-
bindings[name] = null;
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
} else if (shapeFrom && iteration === undefined) {
|
|
90
|
-
// TODO: optimize
|
|
91
|
-
var baseVar = bindings[shapeFrom];
|
|
92
|
-
if (Array.isArray(baseVar)) {
|
|
93
|
-
var v = baseVar.map(function (_, i) {
|
|
94
|
-
return execute(expression, {
|
|
95
|
-
logging: logging,
|
|
96
|
-
iteration: i
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
bindings[name] = v;
|
|
100
|
-
return v;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
bindings[name] = value;
|
|
104
|
-
return value;
|
|
105
|
-
}
|
|
106
|
-
function refreshCalculated(map) {
|
|
107
|
-
var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
108
|
-
rootExpression = _ref4.rootExpression,
|
|
109
|
-
iteration = _ref4.iteration,
|
|
110
|
-
linksIterations = _ref4.linksIterations;
|
|
111
|
-
return Object.entries(map).reduce(function (sub, _ref5) {
|
|
112
|
-
var _ref6 = _slicedToArray(_ref5, 2),
|
|
113
|
-
name = _ref6[0],
|
|
114
|
-
current = _ref6[1];
|
|
115
|
-
var calculatedVariable = variables[name];
|
|
116
|
-
if (calculatedVariable.variable.variableType === _constants.CALCULATED && toRefreshVariables.has(name)) {
|
|
117
|
-
var _calculatedVariable$v = calculatedVariable.variable,
|
|
118
|
-
expression = _calculatedVariable$v.expression,
|
|
119
|
-
shapeFrom = _calculatedVariable$v.shapeFrom;
|
|
120
|
-
var logging = function logging(expression, bindings, e) {
|
|
121
|
-
if (process.env.NODE_ENV === 'development') {
|
|
122
|
-
console.warn("VTL error when refreshing calculated variable ".concat(name, " : ").concat(typeof expression === 'string' ? expression : expression.value), {
|
|
123
|
-
bindings: bindings
|
|
124
|
-
});
|
|
125
|
-
console.warn("root expression : ".concat(rootExpression));
|
|
126
|
-
console.warn(e);
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
var value = buildValue({
|
|
130
|
-
expression: expression,
|
|
131
|
-
logging: logging,
|
|
132
|
-
shapeFrom: shapeFrom,
|
|
133
|
-
name: name,
|
|
134
|
-
iteration: iteration,
|
|
135
|
-
linksIterations: linksIterations
|
|
136
|
-
});
|
|
137
|
-
if (iteration !== undefined) toRefreshVariables["delete"](name);
|
|
138
|
-
return _objectSpread(_objectSpread({}, sub), {}, _defineProperty({}, name, value));
|
|
139
|
-
}
|
|
140
|
-
return _objectSpread(_objectSpread({}, sub), {}, _defineProperty({}, name, current));
|
|
141
|
-
}, {});
|
|
142
|
-
}
|
|
143
|
-
function setToRefreshCalculated(name, variable) {
|
|
144
|
-
toRefreshVariables.set(name, variable);
|
|
145
|
-
}
|
|
146
|
-
return [refreshCalculated, setToRefreshCalculated];
|
|
147
|
-
}
|
|
148
|
-
var _default = createRefreshCalculated;
|
|
149
|
-
exports["default"] = _default;
|