@kaspernj/api-maker 1.0.2160 → 1.0.2161
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/build/api.d.ts +46 -34
- package/build/api.d.ts.map +1 -1
- package/build/api.js +32 -25
- package/build/attribute-not-loaded-error.d.ts.map +1 -1
- package/build/attribute-not-loaded-error.js +2 -1
- package/build/base-error.d.ts +49 -60
- package/build/base-error.d.ts.map +1 -1
- package/build/base-error.js +3 -2
- package/build/base-model/column.d.ts +2 -2
- package/build/base-model/column.d.ts.map +1 -1
- package/build/base-model/column.js +3 -2
- package/build/base-model/reflection.d.ts +8 -3
- package/build/base-model/reflection.d.ts.map +1 -1
- package/build/base-model/reflection.js +8 -3
- package/build/base-model/scope.d.ts +1 -1
- package/build/base-model/scope.d.ts.map +1 -1
- package/build/base-model/scope.js +3 -2
- package/build/base-model.d.ts +3801 -117
- package/build/base-model.d.ts.map +1 -1
- package/build/base-model.js +271 -143
- package/build/bootstrap/attribute-row.d.ts +12 -0
- package/build/bootstrap/attribute-row.d.ts.map +1 -1
- package/build/bootstrap/attribute-row.js +23 -5
- package/build/bootstrap/attribute-rows.d.ts +8 -0
- package/build/bootstrap/attribute-rows.d.ts.map +1 -1
- package/build/bootstrap/attribute-rows.js +14 -5
- package/build/bootstrap/card.d.ts +17 -0
- package/build/bootstrap/card.d.ts.map +1 -1
- package/build/bootstrap/card.js +30 -10
- package/build/bootstrap/checkbox.d.ts +16 -0
- package/build/bootstrap/checkbox.d.ts.map +1 -1
- package/build/bootstrap/checkbox.js +20 -2
- package/build/bootstrap/checkboxes.d.ts +31 -0
- package/build/bootstrap/checkboxes.d.ts.map +1 -1
- package/build/bootstrap/checkboxes.js +35 -3
- package/build/bootstrap/index.js +2 -1
- package/build/bootstrap/input.d.ts +24 -0
- package/build/bootstrap/input.d.ts.map +1 -1
- package/build/bootstrap/input.js +27 -2
- package/build/bootstrap/invalid-feedback.d.ts.map +1 -1
- package/build/bootstrap/invalid-feedback.js +2 -1
- package/build/bootstrap/paginate.d.ts +5 -0
- package/build/bootstrap/paginate.d.ts.map +1 -1
- package/build/bootstrap/paginate.js +9 -4
- package/build/bootstrap/radio-buttons.js +2 -1
- package/build/bootstrap/select.js +2 -1
- package/build/bootstrap/sort-link.d.ts +10 -0
- package/build/bootstrap/sort-link.d.ts.map +1 -1
- package/build/bootstrap/sort-link.js +15 -4
- package/build/cable-connection-pool.d.ts +201 -24
- package/build/cable-connection-pool.d.ts.map +1 -1
- package/build/cable-connection-pool.js +76 -16
- package/build/cable-subscription-pool.d.ts +186 -20
- package/build/cable-subscription-pool.d.ts.map +1 -1
- package/build/cable-subscription-pool.js +61 -22
- package/build/cable-subscription.d.ts.map +1 -1
- package/build/cable-subscription.js +3 -2
- package/build/cache-key-generator.d.ts +194 -20
- package/build/cache-key-generator.d.ts.map +1 -1
- package/build/cache-key-generator.js +63 -12
- package/build/can-can.d.ts +146 -29
- package/build/can-can.d.ts.map +1 -1
- package/build/can-can.js +105 -19
- package/build/channels-consumer.d.ts +23 -1
- package/build/channels-consumer.d.ts.map +1 -1
- package/build/channels-consumer.js +26 -8
- package/build/collection-loader.js +2 -1
- package/build/collection.d.ts +361 -370
- package/build/collection.d.ts.map +1 -1
- package/build/collection.js +59 -19
- package/build/command-execution.d.ts +50 -26
- package/build/command-execution.d.ts.map +1 -1
- package/build/command-execution.js +31 -13
- package/build/command-submit-data.d.ts +50 -37
- package/build/command-submit-data.d.ts.map +1 -1
- package/build/command-submit-data.js +35 -22
- package/build/commands-pool.d.ts +65 -27
- package/build/commands-pool.d.ts.map +1 -1
- package/build/commands-pool.js +67 -20
- package/build/compose.d.ts +8 -2
- package/build/compose.d.ts.map +1 -1
- package/build/compose.js +9 -2
- package/build/config.d.ts +31 -15
- package/build/config.d.ts.map +1 -1
- package/build/config.js +60 -23
- package/build/custom-error.d.ts.map +1 -1
- package/build/custom-error.js +2 -1
- package/build/data-set-to-attributes.d.ts +14 -2
- package/build/data-set-to-attributes.d.ts.map +1 -1
- package/build/data-set-to-attributes.js +12 -3
- package/build/deserializer.d.ts +116 -2
- package/build/deserializer.d.ts.map +1 -1
- package/build/deserializer.js +13 -2
- package/build/destroy-error.d.ts.map +1 -1
- package/build/destroy-error.js +2 -1
- package/build/devise.d.ts +638 -39
- package/build/devise.d.ts.map +1 -1
- package/build/devise.js +97 -28
- package/build/draggable-sort/controller.d.ts +126 -35
- package/build/draggable-sort/controller.d.ts.map +1 -1
- package/build/draggable-sort/controller.js +100 -28
- package/build/draggable-sort/index.d.ts +55 -0
- package/build/draggable-sort/index.d.ts.map +1 -1
- package/build/draggable-sort/index.js +71 -3
- package/build/draggable-sort/item.d.ts +54 -0
- package/build/draggable-sort/item.d.ts.map +1 -1
- package/build/draggable-sort/item.js +94 -6
- package/build/error-logger.d.ts +30 -14
- package/build/error-logger.d.ts.map +1 -1
- package/build/error-logger.js +22 -11
- package/build/event-connection.d.ts.map +1 -1
- package/build/event-connection.js +3 -2
- package/build/event-emitter-listener.d.ts.map +1 -1
- package/build/event-emitter-listener.js +2 -1
- package/build/event-model-class.d.ts.map +1 -1
- package/build/event-model-class.js +2 -1
- package/build/events.d.ts.map +1 -1
- package/build/events.js +2 -1
- package/build/form.d.ts +23 -0
- package/build/form.d.ts.map +1 -1
- package/build/form.js +16 -4
- package/build/history-expo.d.ts +6 -2
- package/build/history-expo.d.ts.map +1 -1
- package/build/history-expo.js +5 -2
- package/build/history-react-native.d.ts +6 -2
- package/build/history-react-native.d.ts.map +1 -1
- package/build/history-react-native.js +5 -2
- package/build/history.js +2 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -1
- package/build/inputs/attachment.d.ts +11 -0
- package/build/inputs/attachment.d.ts.map +1 -1
- package/build/inputs/attachment.js +17 -4
- package/build/inputs/auto-submit.d.ts +41 -13
- package/build/inputs/auto-submit.d.ts.map +1 -1
- package/build/inputs/auto-submit.js +16 -4
- package/build/inputs/checkbox.d.ts +15 -0
- package/build/inputs/checkbox.d.ts.map +1 -1
- package/build/inputs/checkbox.js +22 -6
- package/build/inputs/checkboxes.d.ts +16 -0
- package/build/inputs/checkboxes.d.ts.map +1 -1
- package/build/inputs/checkboxes.js +20 -4
- package/build/inputs/id-for-component.d.ts +21 -2
- package/build/inputs/id-for-component.d.ts.map +1 -1
- package/build/inputs/id-for-component.js +9 -2
- package/build/inputs/input-wrapper.d.ts.map +1 -1
- package/build/inputs/input-wrapper.js +2 -1
- package/build/inputs/input.d.ts +36 -0
- package/build/inputs/input.d.ts.map +1 -1
- package/build/inputs/input.js +26 -7
- package/build/inputs/money.d.ts +2 -0
- package/build/inputs/money.d.ts.map +1 -1
- package/build/inputs/money.js +6 -3
- package/build/inputs/name-for-component.d.ts +21 -2
- package/build/inputs/name-for-component.d.ts.map +1 -1
- package/build/inputs/name-for-component.js +9 -2
- package/build/inputs/select.d.ts +33 -0
- package/build/inputs/select.d.ts.map +1 -1
- package/build/inputs/select.js +21 -4
- package/build/instance-of-class-name.d.ts +7 -2
- package/build/instance-of-class-name.d.ts.map +1 -1
- package/build/instance-of-class-name.js +8 -4
- package/build/is-expo.d.ts.map +1 -1
- package/build/is-expo.js +2 -1
- package/build/key-value-store.d.ts +24 -14
- package/build/key-value-store.d.ts.map +1 -1
- package/build/key-value-store.js +22 -12
- package/build/link.d.ts +30 -0
- package/build/link.d.ts.map +1 -1
- package/build/link.js +76 -30
- package/build/logger.d.ts +10 -6
- package/build/logger.d.ts.map +1 -1
- package/build/logger.js +7 -4
- package/build/merge-styles.d.ts +10 -2
- package/build/merge-styles.d.ts.map +1 -1
- package/build/merge-styles.js +10 -3
- package/build/modal.d.ts +2 -0
- package/build/modal.d.ts.map +1 -1
- package/build/modal.js +6 -4
- package/build/model-class-require.d.ts +4 -2
- package/build/model-class-require.d.ts.map +1 -1
- package/build/model-class-require.js +4 -2
- package/build/model-events.d.ts +139 -346
- package/build/model-events.d.ts.map +1 -1
- package/build/model-events.js +21 -9
- package/build/model-name.d.ts +21 -7
- package/build/model-name.d.ts.map +1 -1
- package/build/model-name.js +12 -2
- package/build/model-prop-type.d.ts +533 -26
- package/build/model-prop-type.d.ts.map +1 -1
- package/build/model-prop-type.js +69 -11
- package/build/model-recipes-loader.d.ts +7 -3
- package/build/model-recipes-loader.d.ts.map +1 -1
- package/build/model-recipes-loader.js +4 -2
- package/build/model-recipes-model-loader.d.ts +189 -1493
- package/build/model-recipes-model-loader.d.ts.map +1 -1
- package/build/model-recipes-model-loader.js +119 -17
- package/build/models-response-reader.d.ts +600 -195
- package/build/models-response-reader.d.ts.map +1 -1
- package/build/models-response-reader.js +12 -4
- package/build/models.d.ts +438 -1
- package/build/models.d.ts.map +1 -1
- package/build/models.js +2 -1
- package/build/money-formatter.d.ts +25 -31
- package/build/money-formatter.d.ts.map +1 -1
- package/build/money-formatter.js +11 -8
- package/build/not-loaded-error.d.ts.map +1 -1
- package/build/not-loaded-error.js +2 -1
- package/build/params.d.ts +25 -17
- package/build/params.d.ts.map +1 -1
- package/build/params.js +19 -15
- package/build/preloaded.d.ts +61 -64
- package/build/preloaded.d.ts.map +1 -1
- package/build/preloaded.js +10 -4
- package/build/reset-realtime-runtime-state.d.ts.map +1 -1
- package/build/reset-realtime-runtime-state.js +2 -1
- package/build/resize-observer.d.ts.map +1 -1
- package/build/resize-observer.js +2 -1
- package/build/rest-props-validator.d.ts +2 -2
- package/build/rest-props-validator.d.ts.map +1 -1
- package/build/rest-props-validator.js +3 -2
- package/build/result.d.ts +142 -175
- package/build/result.d.ts.map +1 -1
- package/build/result.js +3 -2
- package/build/router/route.d.ts +50 -0
- package/build/router/route.d.ts.map +1 -1
- package/build/router/route.js +39 -10
- package/build/router/switch.d.ts +37 -1
- package/build/router/switch.d.ts.map +1 -1
- package/build/router/switch.js +29 -7
- package/build/router.d.ts +20 -0
- package/build/router.d.ts.map +1 -1
- package/build/router.js +15 -4
- package/build/routes-native.d.ts +13 -13
- package/build/routes-native.d.ts.map +1 -1
- package/build/routes-native.js +23 -11
- package/build/routes.d.ts +17 -9
- package/build/routes.d.ts.map +1 -1
- package/build/routes.js +7 -2
- package/build/run-last.d.ts.map +1 -1
- package/build/run-last.js +2 -1
- package/build/serializer.d.ts +44 -12
- package/build/serializer.d.ts.map +1 -1
- package/build/serializer.js +36 -7
- package/build/services.d.ts +29 -4
- package/build/services.d.ts.map +1 -1
- package/build/services.js +16 -4
- package/build/session-status-updater.d.ts +73 -25
- package/build/session-status-updater.d.ts.map +1 -1
- package/build/session-status-updater.js +52 -14
- package/build/source-maps-loader.d.ts +88 -33
- package/build/source-maps-loader.d.ts.map +1 -1
- package/build/source-maps-loader.js +74 -18
- package/build/super-admin/config-reader.d.ts.map +1 -1
- package/build/super-admin/config-reader.js +11 -16
- package/build/super-admin/edit-page/edit-attribute-checkbox.d.ts +10 -0
- package/build/super-admin/edit-page/edit-attribute-checkbox.d.ts.map +1 -1
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +16 -4
- package/build/super-admin/edit-page/edit-attribute-content.d.ts +9 -0
- package/build/super-admin/edit-page/edit-attribute-content.d.ts.map +1 -1
- package/build/super-admin/edit-page/edit-attribute-content.js +15 -4
- package/build/super-admin/edit-page/edit-attribute-input.d.ts +8 -0
- package/build/super-admin/edit-page/edit-attribute-input.d.ts.map +1 -1
- package/build/super-admin/edit-page/edit-attribute-input.js +13 -4
- package/build/super-admin/edit-page/edit-attribute.d.ts +6 -0
- package/build/super-admin/edit-page/edit-attribute.d.ts.map +1 -1
- package/build/super-admin/edit-page/edit-attribute.js +11 -4
- package/build/super-admin/edit-page.d.ts +5 -0
- package/build/super-admin/edit-page.d.ts.map +1 -1
- package/build/super-admin/edit-page.js +11 -5
- package/build/super-admin/has-edit-config.d.ts.map +1 -1
- package/build/super-admin/has-edit-config.js +2 -1
- package/build/super-admin/index-page.d.ts +4 -0
- package/build/super-admin/index-page.d.ts.map +1 -1
- package/build/super-admin/index-page.js +9 -4
- package/build/super-admin/index.d.ts +4 -0
- package/build/super-admin/index.d.ts.map +1 -1
- package/build/super-admin/index.js +12 -6
- package/build/super-admin/layout/header/index.d.ts +4 -0
- package/build/super-admin/layout/header/index.d.ts.map +1 -1
- package/build/super-admin/layout/header/index.js +13 -8
- package/build/super-admin/layout/index.d.ts +24 -0
- package/build/super-admin/layout/index.d.ts.map +1 -1
- package/build/super-admin/layout/index.js +33 -5
- package/build/super-admin/layout/menu/index.d.ts +2 -0
- package/build/super-admin/layout/menu/index.d.ts.map +1 -1
- package/build/super-admin/layout/menu/index.js +8 -6
- package/build/super-admin/layout/menu/menu-content.d.ts +2 -0
- package/build/super-admin/layout/menu/menu-content.d.ts.map +1 -1
- package/build/super-admin/layout/menu/menu-content.js +6 -4
- package/build/super-admin/layout/menu/menu-item.d.ts +9 -0
- package/build/super-admin/layout/menu/menu-item.d.ts.map +1 -1
- package/build/super-admin/layout/menu/menu-item.js +15 -4
- package/build/super-admin/layout/no-access.d.ts +2 -0
- package/build/super-admin/layout/no-access.d.ts.map +1 -1
- package/build/super-admin/layout/no-access.js +7 -5
- package/build/super-admin/model-class-table.d.ts +4 -0
- package/build/super-admin/model-class-table.d.ts.map +1 -1
- package/build/super-admin/model-class-table.js +9 -4
- package/build/super-admin/models.d.ts.map +1 -1
- package/build/super-admin/models.js +2 -1
- package/build/super-admin/show-nav.d.ts +2 -0
- package/build/super-admin/show-nav.d.ts.map +1 -1
- package/build/super-admin/show-nav.js +6 -4
- package/build/super-admin/show-page/belongs-to-attribute-row.d.ts +17 -1
- package/build/super-admin/show-page/belongs-to-attribute-row.d.ts.map +1 -1
- package/build/super-admin/show-page/belongs-to-attribute-row.js +14 -5
- package/build/super-admin/show-page/index.d.ts +4 -0
- package/build/super-admin/show-page/index.d.ts.map +1 -1
- package/build/super-admin/show-page/index.js +9 -4
- package/build/super-admin/show-reflection-actions.d.ts +6 -0
- package/build/super-admin/show-reflection-actions.d.ts.map +1 -1
- package/build/super-admin/show-reflection-actions.js +11 -4
- package/build/super-admin/show-reflection-link.d.ts +4 -0
- package/build/super-admin/show-reflection-link.d.ts.map +1 -1
- package/build/super-admin/show-reflection-link.js +9 -4
- package/build/super-admin/show-reflection-page.d.ts +5 -0
- package/build/super-admin/show-reflection-page.d.ts.map +1 -1
- package/build/super-admin/show-reflection-page.js +10 -4
- package/build/table/column-content.d.ts +155 -19
- package/build/table/column-content.d.ts.map +1 -1
- package/build/table/column-content.js +55 -12
- package/build/table/column-identifier.d.ts +11 -2
- package/build/table/column-identifier.d.ts.map +1 -1
- package/build/table/column-identifier.js +7 -2
- package/build/table/column-visible.d.ts +11 -2
- package/build/table/column-visible.d.ts.map +1 -1
- package/build/table/column-visible.js +8 -2
- package/build/table/components/column.d.ts +2 -0
- package/build/table/components/column.d.ts.map +1 -1
- package/build/table/components/column.js +6 -4
- package/build/table/components/flat-list.d.ts +2 -0
- package/build/table/components/flat-list.d.ts.map +1 -1
- package/build/table/components/flat-list.js +6 -4
- package/build/table/components/header.d.ts +2 -0
- package/build/table/components/header.d.ts.map +1 -1
- package/build/table/components/header.js +6 -4
- package/build/table/components/row.d.ts +2 -0
- package/build/table/components/row.d.ts.map +1 -1
- package/build/table/components/row.js +6 -4
- package/build/table/filters/attribute-element.d.ts +2 -0
- package/build/table/filters/attribute-element.d.ts.map +1 -1
- package/build/table/filters/attribute-element.js +7 -7
- package/build/table/filters/filter-form.d.ts +58 -0
- package/build/table/filters/filter-form.d.ts.map +1 -1
- package/build/table/filters/filter-form.js +72 -9
- package/build/table/filters/filter.d.ts +2 -0
- package/build/table/filters/filter.d.ts.map +1 -1
- package/build/table/filters/filter.js +6 -4
- package/build/table/filters/index.d.ts +127 -0
- package/build/table/filters/index.d.ts.map +1 -1
- package/build/table/filters/index.js +21 -4
- package/build/table/filters/load-search-modal.d.ts +130 -0
- package/build/table/filters/load-search-modal.d.ts.map +1 -1
- package/build/table/filters/load-search-modal.js +28 -6
- package/build/table/filters/reflection-element.d.ts +2 -0
- package/build/table/filters/reflection-element.d.ts.map +1 -1
- package/build/table/filters/reflection-element.js +6 -4
- package/build/table/filters/save-search-modal.d.ts +134 -0
- package/build/table/filters/save-search-modal.d.ts.map +1 -1
- package/build/table/filters/save-search-modal.js +36 -5
- package/build/table/filters/scope-element.d.ts +6 -0
- package/build/table/filters/scope-element.d.ts.map +1 -1
- package/build/table/filters/scope-element.js +13 -8
- package/build/table/header-column-content.d.ts +7 -0
- package/build/table/header-column-content.d.ts.map +1 -1
- package/build/table/header-column-content.js +12 -4
- package/build/table/header-column.d.ts +50 -0
- package/build/table/header-column.d.ts.map +1 -1
- package/build/table/header-column.js +32 -5
- package/build/table/header-select.d.ts +18 -0
- package/build/table/header-select.d.ts.map +1 -1
- package/build/table/header-select.js +19 -4
- package/build/table/model-callback-args.d.ts +116 -3
- package/build/table/model-callback-args.d.ts.map +1 -1
- package/build/table/model-callback-args.js +10 -3
- package/build/table/model-column.d.ts +136 -0
- package/build/table/model-column.d.ts.map +1 -1
- package/build/table/model-column.js +27 -4
- package/build/table/model-row.d.ts +19 -0
- package/build/table/model-row.d.ts.map +1 -1
- package/build/table/model-row.js +24 -4
- package/build/table/select-calculator.d.ts +37 -2
- package/build/table/select-calculator.d.ts.map +1 -1
- package/build/table/select-calculator.js +29 -6
- package/build/table/settings/column-row.d.ts +6 -0
- package/build/table/settings/column-row.d.ts.map +1 -1
- package/build/table/settings/column-row.js +13 -12
- package/build/table/settings/download-action.d.ts +5 -0
- package/build/table/settings/download-action.d.ts.map +1 -1
- package/build/table/settings/download-action.js +10 -4
- package/build/table/settings/index.d.ts +5 -0
- package/build/table/settings/index.d.ts.map +1 -1
- package/build/table/settings/index.js +10 -4
- package/build/table/should-render-loading-content.d.ts +2 -2
- package/build/table/should-render-loading-content.d.ts.map +1 -1
- package/build/table/should-render-loading-content.js +3 -2
- package/build/table/table-settings.d.ts +236 -43
- package/build/table/table-settings.d.ts.map +1 -1
- package/build/table/table-settings.js +104 -20
- package/build/table/table.d.ts +271 -0
- package/build/table/table.d.ts.map +1 -1
- package/build/table/table.js +167 -16
- package/build/table/use-sorting.d.ts +10 -8
- package/build/table/use-sorting.d.ts.map +1 -1
- package/build/table/use-sorting.js +16 -8
- package/build/table/widths.d.ts +55 -8
- package/build/table/widths.d.ts.map +1 -1
- package/build/table/widths.js +25 -2
- package/build/table/worker-plugins-check-all-checkbox.d.ts +18 -0
- package/build/table/worker-plugins-check-all-checkbox.d.ts.map +1 -1
- package/build/table/worker-plugins-check-all-checkbox.js +25 -5
- package/build/table/worker-plugins-checkbox.d.ts +5 -0
- package/build/table/worker-plugins-checkbox.d.ts.map +1 -1
- package/build/table/worker-plugins-checkbox.js +10 -4
- package/build/translated-attributes.d.ts +7 -2
- package/build/translated-attributes.d.ts.map +1 -1
- package/build/translated-attributes.js +8 -2
- package/build/translated-collections.d.ts +11 -2
- package/build/translated-collections.d.ts.map +1 -1
- package/build/translated-collections.js +9 -3
- package/build/updated-attribute.d.ts.map +1 -1
- package/build/updated-attribute.js +2 -1
- package/build/url-encode.d.ts.map +1 -1
- package/build/url-encode.js +2 -1
- package/build/use-can-can.d.ts +2 -2
- package/build/use-can-can.d.ts.map +1 -1
- package/build/use-can-can.js +27 -12
- package/build/use-collection.d.ts +167 -121
- package/build/use-collection.d.ts.map +1 -1
- package/build/use-collection.js +113 -44
- package/build/use-created-event.d.ts +120 -11
- package/build/use-created-event.d.ts.map +1 -1
- package/build/use-created-event.js +10 -7
- package/build/use-current-user-context.d.ts +2 -2
- package/build/use-current-user-context.d.ts.map +1 -1
- package/build/use-current-user-context.js +3 -2
- package/build/use-current-user.d.ts +86 -70
- package/build/use-current-user.d.ts.map +1 -1
- package/build/use-current-user.js +36 -8
- package/build/use-destroyed-event.d.ts +117 -8
- package/build/use-destroyed-event.d.ts.map +1 -1
- package/build/use-destroyed-event.js +29 -22
- package/build/use-input.d.ts +74 -12
- package/build/use-input.d.ts.map +1 -1
- package/build/use-input.js +33 -5
- package/build/use-model-class-event.d.ts +124 -10
- package/build/use-model-class-event.d.ts.map +1 -1
- package/build/use-model-class-event.js +26 -16
- package/build/use-model-event.d.ts +121 -8
- package/build/use-model-event.d.ts.map +1 -1
- package/build/use-model-event.js +24 -19
- package/build/use-model.d.ts +162 -244
- package/build/use-model.d.ts.map +1 -1
- package/build/use-model.js +85 -32
- package/build/use-resize-observer.d.ts.map +1 -1
- package/build/use-resize-observer.js +2 -1
- package/build/use-router.d.ts.map +1 -1
- package/build/use-router.js +2 -1
- package/build/use-screen-layout.d.ts +7 -2
- package/build/use-screen-layout.d.ts.map +1 -1
- package/build/use-screen-layout.js +8 -5
- package/build/use-shape.js +2 -1
- package/build/use-styles.d.ts +11 -5
- package/build/use-styles.d.ts.map +1 -1
- package/build/use-styles.js +16 -9
- package/build/use-updated-event.d.ts +66 -182
- package/build/use-updated-event.d.ts.map +1 -1
- package/build/use-updated-event.js +22 -18
- package/build/use-validation-errors.d.ts.map +1 -1
- package/build/use-validation-errors.js +2 -1
- package/build/utils/button.d.ts +14 -0
- package/build/utils/button.d.ts.map +1 -1
- package/build/utils/button.js +24 -7
- package/build/utils/card.d.ts +9 -0
- package/build/utils/card.d.ts.map +1 -1
- package/build/utils/card.js +13 -2
- package/build/utils/checkbox.d.ts +12 -0
- package/build/utils/checkbox.d.ts.map +1 -1
- package/build/utils/checkbox.js +18 -4
- package/build/utils/checkboxes.d.ts +25 -0
- package/build/utils/checkboxes.d.ts.map +1 -1
- package/build/utils/checkboxes.js +29 -3
- package/build/utils/default-style.d.ts +10 -4
- package/build/utils/default-style.d.ts.map +1 -1
- package/build/utils/default-style.js +12 -4
- package/build/utils/header.d.ts +6 -1
- package/build/utils/header.d.ts.map +1 -1
- package/build/utils/header.js +4 -2
- package/build/utils/icon.d.ts +7 -6
- package/build/utils/icon.d.ts.map +1 -1
- package/build/utils/icon.js +12 -11
- package/build/utils/invalid-feedback.d.ts +4 -0
- package/build/utils/invalid-feedback.d.ts.map +1 -1
- package/build/utils/invalid-feedback.js +8 -2
- package/build/utils/modal.d.ts +2 -0
- package/build/utils/modal.d.ts.map +1 -1
- package/build/utils/modal.js +9 -7
- package/build/utils/text.d.ts +8 -1
- package/build/utils/text.d.ts.map +1 -1
- package/build/utils/text.js +9 -2
- package/build/validation-error.d.ts +5 -2
- package/build/validation-error.d.ts.map +1 -1
- package/build/validation-error.js +5 -2
- package/build/validation-errors.d.ts +57 -15
- package/build/validation-errors.d.ts.map +1 -1
- package/build/validation-errors.js +37 -8
- package/build/websocket-request-client.d.ts +61 -15
- package/build/websocket-request-client.d.ts.map +1 -1
- package/build/websocket-request-client.js +35 -9
- package/build/with-api-maker.d.ts.map +1 -1
- package/build/with-api-maker.js +2 -1
- package/build/with-collection.d.ts.map +1 -1
- package/build/with-collection.js +2 -1
- package/build/with-current-user.d.ts.map +1 -1
- package/build/with-current-user.js +2 -1
- package/build/with-model.d.ts.map +1 -1
- package/build/with-model.js +2 -1
- package/build/with-router.d.ts.map +1 -1
- package/build/with-router.js +2 -1
- package/package.json +4 -3
- package/build/base-component.d.ts +0 -5
- package/build/base-component.d.ts.map +0 -1
- package/build/base-component.js +0 -4
package/build/use-model.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
/* eslint-disable sort-imports */
|
|
2
3
|
import { ShapeHook, useShapeHook } from "set-state-compare";
|
|
3
4
|
import { useEffect } from "react";
|
|
@@ -6,30 +7,71 @@ import * as inflection from "inflection";
|
|
|
6
7
|
import ModelEvents from "./model-events.js";
|
|
7
8
|
import useQueryParams from "on-location-changed/build/use-query-params.js";
|
|
8
9
|
import useUpdatedEvent from "./use-updated-event.js";
|
|
10
|
+
/** @typedef {typeof import("./base-model.js").default} BaseModelClass */
|
|
11
|
+
/** @typedef {import("./base-model.js").default} BaseModelInstance */
|
|
12
|
+
/** @typedef {BaseModelInstance & {id: () => number | string}} BaseModelWithId */
|
|
13
|
+
/** @typedef {import("./collection.js").default} ModelCollection */
|
|
14
|
+
/** @typedef {Record<string, string | number | boolean | object | undefined>} UseModelQueryParams */
|
|
15
|
+
/** @typedef {string | number | boolean | object | null | undefined} UseModelCacheValue */
|
|
16
|
+
/** @typedef {Record<string, string | number | undefined>} UseModelMatchParams */
|
|
17
|
+
/** @typedef {{params: UseModelMatchParams}} UseModelMatch */
|
|
18
|
+
/** @typedef {Record<string, string | number | boolean | object | undefined>} UseModelDefaults */
|
|
19
|
+
/** @typedef {{defaults?: () => UseModelDefaults | Promise<UseModelDefaults>}} UseModelNewIfNoIdConfig */
|
|
20
|
+
/** @typedef {{callback: (args: {queryParams: UseModelQueryParams | undefined}) => BaseModelClass}} UseModelModelClassResolver */
|
|
21
|
+
/** @typedef {{modelClass: BaseModelClass}} UseModelArgsFactoryArgs */
|
|
22
|
+
/** @typedef {{model: BaseModelInstance} & Record<string, BaseModelInstance>} UseModelOnDestroyedArgs */
|
|
23
|
+
/**
|
|
24
|
+
* @typedef {object} UseModelEvents
|
|
25
|
+
* @property {(eventName: string, callback: () => void) => void} addListener
|
|
26
|
+
* @property {(eventName: string, callback: () => void) => void} removeListener
|
|
27
|
+
*/
|
|
9
28
|
/**
|
|
10
29
|
* @typedef {object} useModelArgs
|
|
11
|
-
* @property {
|
|
12
|
-
* @property {
|
|
13
|
-
* @property {
|
|
14
|
-
* @property {
|
|
15
|
-
* @property {
|
|
16
|
-
* @property {(
|
|
17
|
-
* @property {
|
|
30
|
+
* @property {boolean} [active]
|
|
31
|
+
* @property {Record<string, string[]>} [abilities]
|
|
32
|
+
* @property {UseModelCacheValue[]} [cacheArgs]
|
|
33
|
+
* @property {boolean} [eventUpdated]
|
|
34
|
+
* @property {UseModelEvents} [events]
|
|
35
|
+
* @property {(args: {queryParams: UseModelQueryParams | undefined}) => number | string | undefined} [loadByQueryParam]
|
|
36
|
+
* @property {UseModelMatch} [match]
|
|
37
|
+
* @property {UseModelNewIfNoIdConfig | boolean} [newIfNoId]
|
|
38
|
+
* @property {UseModelDefaults} [newAttributes]
|
|
39
|
+
* @property {(ctx: UseModelOnDestroyedArgs) => void} [onDestroyed]
|
|
40
|
+
* @property {boolean} [optional]
|
|
41
|
+
* @property {string[] | object} [preload]
|
|
42
|
+
* @property {ModelCollection} [query]
|
|
43
|
+
* @property {string[] | object} [select]
|
|
44
|
+
*/
|
|
45
|
+
/** @typedef {useModelArgs | ((args: UseModelArgsFactoryArgs) => useModelArgs)} UseModelArgsArg */
|
|
46
|
+
/**
|
|
47
|
+
* @typedef {object} UseModelShapeHookProps
|
|
48
|
+
* @property {UseModelArgsArg} [argsArg]
|
|
49
|
+
* @property {BaseModelClass | UseModelModelClassResolver} modelClassArg
|
|
18
50
|
*/
|
|
19
51
|
/** Hook state container for useModel. */
|
|
20
52
|
/**
|
|
21
53
|
* @typedef {object} UseModelState
|
|
22
|
-
* @property {
|
|
54
|
+
* @property {BaseModelInstance | undefined} model
|
|
23
55
|
* @property {boolean | undefined} notFound
|
|
24
56
|
*/
|
|
25
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* @typedef {{
|
|
59
|
+
* model: BaseModelInstance | undefined,
|
|
60
|
+
* modelId: number | string | undefined,
|
|
61
|
+
* notFound: boolean | undefined
|
|
62
|
+
* } & Record<string, BaseModelInstance | number | string | boolean | undefined>} UseModelResult
|
|
63
|
+
*/
|
|
64
|
+
/** @augments {ShapeHook<UseModelShapeHookProps, UseModelState>} */
|
|
26
65
|
class UseModelShapeHook extends ShapeHook {
|
|
27
66
|
state = /** @type {UseModelState} */ ({
|
|
28
67
|
model: undefined,
|
|
29
68
|
notFound: undefined
|
|
30
69
|
});
|
|
31
70
|
updatedConnectionFallbackTimeoutId = undefined;
|
|
32
|
-
/**
|
|
71
|
+
/**
|
|
72
|
+
* Constructor.
|
|
73
|
+
* @param {UseModelShapeHookProps} props
|
|
74
|
+
*/
|
|
33
75
|
constructor(props) {
|
|
34
76
|
super(props);
|
|
35
77
|
this.initialLoadTriggered = false;
|
|
@@ -42,14 +84,14 @@ class UseModelShapeHook extends ShapeHook {
|
|
|
42
84
|
active() {
|
|
43
85
|
return !("active" in this.args()) || Boolean(this.args().active);
|
|
44
86
|
}
|
|
45
|
-
/** @returns {useModelArgs
|
|
87
|
+
/** @returns {useModelArgs} */
|
|
46
88
|
args() {
|
|
47
89
|
if (typeof this.p.argsArg == "function") {
|
|
48
90
|
return this.p.argsArg({ modelClass: this.modelClass() });
|
|
49
91
|
}
|
|
50
92
|
return this.p.argsArg || {};
|
|
51
93
|
}
|
|
52
|
-
/** @returns {
|
|
94
|
+
/** @returns {BaseModelClass} */
|
|
53
95
|
modelClass() {
|
|
54
96
|
if (typeof this.p.modelClassArg == "object") {
|
|
55
97
|
return this.p.modelClassArg.callback({ queryParams: this.queryParams });
|
|
@@ -78,7 +120,7 @@ class UseModelShapeHook extends ShapeHook {
|
|
|
78
120
|
modelVariableName() {
|
|
79
121
|
return inflection.camelize(this.modelClass().modelClassData().name, true);
|
|
80
122
|
}
|
|
81
|
-
/** @returns {
|
|
123
|
+
/** @returns {UseModelCacheValue[]} */
|
|
82
124
|
cacheArgs() {
|
|
83
125
|
return [this.modelId()].concat(this.args().cacheArgs || [], this.queryParams);
|
|
84
126
|
}
|
|
@@ -86,25 +128,35 @@ class UseModelShapeHook extends ShapeHook {
|
|
|
86
128
|
shouldWaitForUpdatedConnection() {
|
|
87
129
|
return Boolean(this.args().eventUpdated && this.modelId() && !this.s.model);
|
|
88
130
|
}
|
|
89
|
-
/** @returns {
|
|
131
|
+
/** @returns {UseModelDefaults} */
|
|
90
132
|
newModelDataFromParams() {
|
|
91
|
-
|
|
92
|
-
.paramKey()]
|
|
133
|
+
const modelDataFromParams = this.queryParams?.[this.modelClass().modelName()
|
|
134
|
+
.paramKey()];
|
|
135
|
+
return typeof modelDataFromParams == "object" && modelDataFromParams ? modelDataFromParams : {};
|
|
93
136
|
}
|
|
94
137
|
/** @returns {boolean} */
|
|
95
138
|
hasAsyncDefaults() {
|
|
96
139
|
return Boolean(this.newIfNoIdDefaultsResult && typeof this.newIfNoIdDefaultsResult.then == "function");
|
|
97
140
|
}
|
|
98
|
-
/** @returns {
|
|
141
|
+
/** @returns {UseModelNewIfNoIdConfig | null} */
|
|
142
|
+
newIfNoIdConfig() {
|
|
143
|
+
const { newIfNoId } = this.args();
|
|
144
|
+
if (!newIfNoId || newIfNoId === true) {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
return newIfNoId;
|
|
148
|
+
}
|
|
149
|
+
/** @returns {UseModelDefaults | null} */
|
|
99
150
|
syncDefaultsForNewModel() {
|
|
100
|
-
|
|
151
|
+
const newIfNoIdConfig = this.newIfNoIdConfig();
|
|
152
|
+
if (!newIfNoIdConfig?.defaults) {
|
|
101
153
|
return {};
|
|
102
154
|
}
|
|
103
155
|
else if (this.hasAsyncDefaults()) {
|
|
104
156
|
return null;
|
|
105
157
|
}
|
|
106
158
|
if (this.newIfNoIdDefaultsResult === null) {
|
|
107
|
-
const defaultsResult =
|
|
159
|
+
const defaultsResult = newIfNoIdConfig.defaults();
|
|
108
160
|
if (defaultsResult && typeof defaultsResult.then == "function") {
|
|
109
161
|
this.newIfNoIdDefaultsResult = defaultsResult.catch((error) => {
|
|
110
162
|
throw error;
|
|
@@ -115,7 +167,7 @@ class UseModelShapeHook extends ShapeHook {
|
|
|
115
167
|
}
|
|
116
168
|
return this.newIfNoIdDefaultsResult || {};
|
|
117
169
|
}
|
|
118
|
-
/** @returns {
|
|
170
|
+
/** @returns {BaseModelInstance | undefined} */
|
|
119
171
|
syncNewModel() {
|
|
120
172
|
if (!this.active() || !this.args().newIfNoId || this.modelId()) {
|
|
121
173
|
return undefined;
|
|
@@ -129,7 +181,7 @@ class UseModelShapeHook extends ShapeHook {
|
|
|
129
181
|
data: { a: Object.assign(defaults, this.args().newAttributes, this.newModelDataFromParams()) }
|
|
130
182
|
});
|
|
131
183
|
}
|
|
132
|
-
/** @returns {
|
|
184
|
+
/** @returns {BaseModelInstance | undefined} */
|
|
133
185
|
subscriptionModel() {
|
|
134
186
|
if (!this.args().eventUpdated) {
|
|
135
187
|
return undefined;
|
|
@@ -180,10 +232,11 @@ class UseModelShapeHook extends ShapeHook {
|
|
|
180
232
|
/** @param {number} loadModelGeneration */
|
|
181
233
|
loadNewModel = async (loadModelGeneration) => {
|
|
182
234
|
let defaults = {};
|
|
183
|
-
|
|
235
|
+
const newIfNoIdConfig = this.newIfNoIdConfig();
|
|
236
|
+
if (newIfNoIdConfig?.defaults) {
|
|
184
237
|
let defaultsResult = this.newIfNoIdDefaultsResult;
|
|
185
238
|
if (defaultsResult === null) {
|
|
186
|
-
defaultsResult =
|
|
239
|
+
defaultsResult = newIfNoIdConfig.defaults();
|
|
187
240
|
}
|
|
188
241
|
this.newIfNoIdDefaultsResult = null;
|
|
189
242
|
defaults = await defaultsResult;
|
|
@@ -228,7 +281,7 @@ class UseModelShapeHook extends ShapeHook {
|
|
|
228
281
|
}
|
|
229
282
|
}, 1000);
|
|
230
283
|
}
|
|
231
|
-
/** @param {{model:
|
|
284
|
+
/** @param {{model: BaseModelInstance}} args */
|
|
232
285
|
onDestroyed = (args) => {
|
|
233
286
|
const forwardArgs = { model: args.model };
|
|
234
287
|
forwardArgs[this.modelVariableName()] = args.model;
|
|
@@ -250,7 +303,7 @@ class UseModelShapeHook extends ShapeHook {
|
|
|
250
303
|
this.loadModel();
|
|
251
304
|
}
|
|
252
305
|
};
|
|
253
|
-
/** @returns {
|
|
306
|
+
/** @returns {BaseModelInstance | undefined} */
|
|
254
307
|
visibleModel() {
|
|
255
308
|
let model = this.s.model;
|
|
256
309
|
if (!model) {
|
|
@@ -259,7 +312,7 @@ class UseModelShapeHook extends ShapeHook {
|
|
|
259
312
|
if (!this.active()) {
|
|
260
313
|
return undefined;
|
|
261
314
|
}
|
|
262
|
-
else if (this.modelId() && model && model.id() != this.modelId()) {
|
|
315
|
+
else if (this.modelId() && model && /** @type {BaseModelWithId} */ (model).id() != this.modelId()) {
|
|
263
316
|
return undefined;
|
|
264
317
|
}
|
|
265
318
|
else if (!this.modelId() && !this.args().query && !this.args().newIfNoId) {
|
|
@@ -328,15 +381,15 @@ class UseModelShapeHook extends ShapeHook {
|
|
|
328
381
|
return () => {
|
|
329
382
|
connectDestroyed.unsubscribe();
|
|
330
383
|
};
|
|
331
|
-
}, [this.args().onDestroyed, this.s.model ? this.s.model.id() : undefined]);
|
|
384
|
+
}, [this.args().onDestroyed, this.s.model ? /** @type {BaseModelWithId} */ (this.s.model).id() : undefined]);
|
|
332
385
|
}
|
|
333
386
|
}
|
|
334
387
|
/**
|
|
335
|
-
*
|
|
336
|
-
* @param {
|
|
337
|
-
* @
|
|
388
|
+
* useModel.
|
|
389
|
+
* @param {BaseModelClass | UseModelModelClassResolver} modelClassArg
|
|
390
|
+
* @param {UseModelArgsArg} [argsArg]
|
|
391
|
+
* @returns {UseModelResult}
|
|
338
392
|
*/
|
|
339
|
-
/** useModel. */
|
|
340
393
|
const useModel = (modelClassArg, argsArg = {}) => {
|
|
341
394
|
const shapeHook = useShapeHook(UseModelShapeHook, { argsArg, modelClassArg });
|
|
342
395
|
const model = shapeHook.visibleModel();
|
|
@@ -354,4 +407,4 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
354
407
|
return result;
|
|
355
408
|
};
|
|
356
409
|
export default useModel;
|
|
357
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFDekQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUMvQixPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxjQUFjLE1BQU0sK0NBQStDLENBQUE7QUFDMUUsT0FBTyxlQUFlLE1BQU0sd0JBQXdCLENBQUE7QUFFcEQ7Ozs7Ozs7OztHQVNHO0FBRUgseUNBQXlDO0FBQ3pDOzs7O0dBSUc7QUFFSCxnRUFBZ0U7QUFDaEUsTUFBTSxpQkFBa0IsU0FBUSxTQUFTO0lBQ3ZDLEtBQUssR0FBRyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3BDLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUMsQ0FBQTtJQUVGLGtDQUFrQyxHQUFHLFNBQVMsQ0FBQTtJQUU5QyxtQkFBbUI7SUFDbkIsWUFBWSxLQUFLO1FBQ2YsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ1osSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQTtRQUNqQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFBO1FBQzVCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUE7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7UUFDNUIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQTtJQUNyQyxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLE1BQU07UUFDSixPQUFPLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFD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QUFRO0tBQ1QsQ0FBQTtJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEtBQUssQ0FBQTtJQUNqQyxNQUFNLENBQUMsR0FBRyxpQkFBaUIsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFBO0lBQzFDLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixVQUFVLENBQUMsR0FBRyxRQUFRLENBQUE7SUFFakQsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUE7QUFFRCxlQUFlLFFBQVEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHNvcnQtaW1wb3J0cyAqL1xuaW1wb3J0IHtTaGFwZUhvb2ssIHVzZVNoYXBlSG9va30gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlXCJcbmltcG9ydCB7dXNlRWZmZWN0fSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IERldmlzZSBmcm9tIFwiLi9kZXZpc2UuanNcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgTW9kZWxFdmVudHMgZnJvbSBcIi4vbW9kZWwtZXZlbnRzLmpzXCJcbmltcG9ydCB1c2VRdWVyeVBhcmFtcyBmcm9tIFwib24tbG9jYXRpb24tY2hhbmdlZC9idWlsZC91c2UtcXVlcnktcGFyYW1zLmpzXCJcbmltcG9ydCB1c2VVcGRhdGVkRXZlbnQgZnJvbSBcIi4vdXNlLXVwZGF0ZWQtZXZlbnQuanNcIlxuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IHVzZU1vZGVsQXJnc1xuICogQHByb3BlcnR5IHsoYXJnOiBvYmplY3QpID0+IEZ1bmN0aW9ufSBbY2FsbGJhY2tdXG4gKiBAcHJvcGVydHkgeyhhcmc6IG9iamVjdCkgPT4gb2JqZWN0fSBbYXJnc11cbiAqIEBwcm9wZXJ0eSB7KGFyZ3M6IHtxdWVyeVBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZH0pID0+IG51bWJlcnxzdHJpbmd9IFtsb2FkQnlRdWVyeVBhcmFtXVxuICogQHByb3BlcnR5IHthbnlbXX0gW2NhY2hlQXJnc11cbiAqIEBwcm9wZXJ0eSB7e3BhcmFtczogb2JqZWN0fX0gW21hdGNoXVxuICogQHByb3BlcnR5IHsoY3R4OiB7IG1vZGVsOiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCB9KSA9PiB2b2lkfSBbb25EZXN0cm95ZWRdXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vY29sbGVjdGlvbi5qc1wiKS5kZWZhdWx0fSBbcXVlcnldXG4gKi9cblxuLyoqIEhvb2sgc3RhdGUgY29udGFpbmVyIGZvciB1c2VNb2RlbC4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gVXNlTW9kZWxTdGF0ZVxuICogQHByb3BlcnR5IHthbnkgfCB1bmRlZmluZWR9IG1vZGVsXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCB1bmRlZmluZWR9IG5vdEZvdW5kXG4gKi9cblxuLyoqIEBhdWdtZW50cyB7U2hhcGVIb29rPFJlY29yZDxzdHJpbmcsIGFueT4sIFVzZU1vZGVsU3RhdGU+fSAqL1xuY2xhc3MgVXNlTW9kZWxTaGFwZUhvb2sgZXh0ZW5kcyBTaGFwZUhvb2sge1xuICBzdGF0ZSA9IC8qKiBAdHlwZSB7VXNlTW9kZWxTdGF0ZX0gKi8gKHtcbiAgICBtb2RlbDogdW5kZWZpbmVkLFxuICAgIG5vdEZvdW5kOiB1bmRlZmluZWRcbiAgfSlcblxuICB1cGRhdGVkQ29ubmVjdGlvbkZhbGxiYWNrVGltZW91dElkID0gdW5kZWZpbmVkXG5cbiAgLyoqIENvbnN0cnVjdG9yLiAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMuaW5pdGlhbExvYWRUcmlnZ2VyZWQgPSBmYWxzZVxuICAgIHRoaXMubG9hZE1vZGVsR2VuZXJhdGlvbiA9IDBcbiAgICB0aGlzLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID0gbnVsbFxuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB1bmRlZmluZWRcbiAgICB0aGlzLnVwZGF0ZWRDb25uZWN0aW9uUmVhZHkgPSBmYWxzZVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtib29sZWFufSAqL1xuICBhY3RpdmUoKSB7XG4gICAgcmV0dXJuICEoXCJhY3RpdmVcIiBpbiB0aGlzLmFyZ3MoKSkgfHwgQm9vbGVhbih0aGlzLmFyZ3MoKS5hY3RpdmUpXG4gIH1cblxuICAvKiogQHJldHVybnMge3VzZU1vZGVsQXJncyAmIFJlY29yZDxzdHJpbmcsIGFueT59ICovXG4gIGFyZ3MoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnAuYXJnc0FyZyA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnAuYXJnc0FyZyh7bW9kZWxDbGFzczogdGhpcy5tb2RlbENsYXNzKCl9KVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnAuYXJnc0FyZyB8fCB7fVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9ICovXG4gIG1vZGVsQ2xhc3MoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnAubW9kZWxDbGFzc0FyZyA9PSBcIm9iamVjdFwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5wLm1vZGVsQ2xhc3NBcmcuY2FsbGJhY2soe3F1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wLm1vZGVsQ2xhc3NBcmdcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7c3RyaW5nfSAqL1xuICBwYXJhbXNWYXJpYWJsZU5hbWUoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMubW9kZWxDbGFzcygpLm1vZGVsTmFtZSgpXG4gICAgICAucGFyYW1LZXkoKX1faWRgXG4gIH1cblxuICAvKiogQHJldHVybnMge251bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbW9kZWxJZCgpIHtcbiAgICBpZiAodGhpcy5hcmdzKCkubG9hZEJ5UXVlcnlQYXJhbSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXJncygpLmxvYWRCeVF1ZXJ5UGFyYW0oe3F1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zfSlcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXJncygpLnF1ZXJ5KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSBlbHNlIGlmICghdGhpcy5hcmdzKCkubWF0Y2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkJvdGggJ2xvYWRCeVF1ZXJ5UGFyYW0nIGFuZCAnbWF0Y2gnIHdhc24ndCBnaXZlblwiKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFyZ3MoKS5tYXRjaC5wYXJhbXNbdGhpcy5wYXJhbXNWYXJpYWJsZU5hbWUoKV0gfHwgdGhpcy5hcmdzKCkubWF0Y2gucGFyYW1zLmlkXG4gIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZ30gKi9cbiAgbW9kZWxWYXJpYWJsZU5hbWUoKSB7XG4gICAgcmV0dXJuIGluZmxlY3Rpb24uY2FtZWxpemUodGhpcy5tb2RlbENsYXNzKCkubW9kZWxDbGFzc0RhdGEoKS5uYW1lLCB0cnVlKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHthbnlbXX0gKi9cbiAgY2FjaGVBcmdzKCkge1xuICAgIHJldHVybiBbdGhpcy5tb2RlbElkKCldLmNvbmNhdCh0aGlzLmFyZ3MoKS5jYWNoZUFyZ3MgfHwgW10sIHRoaXMucXVlcnlQYXJhbXMpXG4gIH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW59ICovXG4gIHNob3VsZFdhaXRGb3JVcGRhdGVkQ29ubmVjdGlvbigpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLmFyZ3MoKS5ldmVudFVwZGF0ZWQgJiYgdGhpcy5tb2RlbElkKCkgJiYgIXRoaXMucy5tb2RlbClcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7b2JqZWN0fSAqL1xuICBuZXdNb2RlbERhdGFGcm9tUGFyYW1zKCkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5UGFyYW1zPy5bdGhpcy5tb2RlbENsYXNzKCkubW9kZWxOYW1lKClcbiAgICAgIC5wYXJhbUtleSgpXSB8fCB7fVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtib29sZWFufSAqL1xuICBoYXNBc3luY0RlZmF1bHRzKCkge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgJiYgdHlwZW9mIHRoaXMubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQudGhlbiA9PSBcImZ1bmN0aW9uXCIpXG4gIH1cblxuICAvKiogQHJldHVybnMge29iamVjdCB8IG51bGx9ICovXG4gIHN5bmNEZWZhdWx0c0Zvck5ld01vZGVsKCkge1xuICAgIGlmICghdGhpcy5hcmdzKCkubmV3SWZOb0lkPy5kZWZhdWx0cykge1xuICAgICAgcmV0dXJuIHt9XG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc0FzeW5jRGVmYXVsdHMoKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBpZiAodGhpcy5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgZGVmYXVsdHNSZXN1bHQgPSB0aGlzLmFyZ3MoKS5uZXdJZk5vSWQuZGVmYXVsdHMoKVxuXG4gICAgICBpZiAoZGVmYXVsdHNSZXN1bHQgJiYgdHlwZW9mIGRlZmF1bHRzUmVzdWx0LnRoZW4gPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRoaXMubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBkZWZhdWx0c1Jlc3VsdC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIHRoaXMubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBkZWZhdWx0c1Jlc3VsdFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0IHx8IHt9XG4gIH1cblxuICAvKiogQHJldHVybnMge2ltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSAqL1xuICBzeW5jTmV3TW9kZWwoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZSgpIHx8ICF0aGlzLmFyZ3MoKS5uZXdJZk5vSWQgfHwgdGhpcy5tb2RlbElkKCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0cyA9IHRoaXMuc3luY0RlZmF1bHRzRm9yTmV3TW9kZWwoKVxuXG4gICAgaWYgKGRlZmF1bHRzID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyAodGhpcy5tb2RlbENsYXNzKCkpKHtcbiAgICAgIGlzTmV3UmVjb3JkOiB0cnVlLFxuICAgICAgZGF0YToge2E6IE9iamVjdC5hc3NpZ24oZGVmYXVsdHMsIHRoaXMuYXJncygpLm5ld0F0dHJpYnV0ZXMsIHRoaXMubmV3TW9kZWxEYXRhRnJvbVBhcmFtcygpKX1cbiAgICB9KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCB8IHVuZGVmaW5lZH0gKi9cbiAgc3Vic2NyaXB0aW9uTW9kZWwoKSB7XG4gICAgaWYgKCF0aGlzLmFyZ3MoKS5ldmVudFVwZGF0ZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9IGVsc2UgaWYgKHRoaXMucy5tb2RlbCkge1xuICAgICAgcmV0dXJuIHRoaXMucy5tb2RlbFxuICAgIH0gZWxzZSBpZiAoIXRoaXMubW9kZWxJZCgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyAodGhpcy5tb2RlbENsYXNzKCkpKHtcbiAgICAgIGRhdGE6IHthOiB7W3RoaXMubW9kZWxDbGFzcygpLnByaW1hcnlLZXkoKV06IHRoaXMubW9kZWxJZCgpfX1cbiAgICB9KVxuICB9XG5cbiAgLyoqIEBwYXJhbSB7bnVtYmVyfSBsb2FkTW9kZWxHZW5lcmF0aW9uICovXG4gIGxvYWRFeGlzdGluZ01vZGVsID0gYXN5bmMgKGxvYWRNb2RlbEdlbmVyYXRpb24pID0+IHtcbiAgICBsZXQgcXVlcnlcblxuICAgIGlmICh0aGlzLm1vZGVsSWQoKSkge1xuICAgICAgcXVlcnkgPSB0aGlzLm1vZGVsQ2xhc3MoKS5yYW5zYWNrKHtpZF9lcTogdGhpcy5tb2RlbElkKCl9KVxuICAgIH0gZWxzZSBpZiAodGhpcy5hcmdzKCkucXVlcnkpIHtcbiAgICAgIHF1ZXJ5ID0gdGhpcy5hcmdzKCkucXVlcnkuY2xvbmUoKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtYXRjaFBhcmFtcyA9IHRoaXMuYXJncygpLm1hdGNoPy5wYXJhbXMgfHwge31cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBtb2RlbCBJRCB3YXMgZ2l2ZW46ICR7dGhpcy5tb2RlbElkKCl9IGJ5ICcke3RoaXMucGFyYW1zVmFyaWFibGVOYW1lKCl9JyBpbiBxdWVyeSBwYXJhbXM6ICR7T2JqZWN0LmtleXMobWF0Y2hQYXJhbXMpLmpvaW4oXCIsIFwiKX1gKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmFyZ3MoKS5hYmlsaXRpZXMpIHF1ZXJ5LmFiaWxpdGllcyh0aGlzLmFyZ3MoKS5hYmlsaXRpZXMpXG4gICAgaWYgKHRoaXMuYXJncygpLnByZWxvYWQpIHF1ZXJ5LnByZWxvYWQodGhpcy5hcmdzKCkucHJlbG9hZClcbiAgICBpZiAodGhpcy5hcmdzKCkuc2VsZWN0KSBxdWVyeS5zZWxlY3QodGhpcy5hcmdzKCkuc2VsZWN0KVxuXG4gICAgY29uc3QgbW9kZWwgPSBhd2FpdCBxdWVyeS5maXJzdCgpXG5cbiAgICBpZiAobG9hZE1vZGVsR2VuZXJhdGlvbiAhPSB0aGlzLmxvYWRNb2RlbEdlbmVyYXRpb24pIHJldHVyblxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5zLm1vZGVsICYmXG4gICAgICBtb2RlbCAmJlxuICAgICAgIXRoaXMucy5ub3RGb3VuZCAmJlxuICAgICAgdGhpcy5zLm1vZGVsLmZ1bGxDYWNoZUtleSgpID09IG1vZGVsLmZ1bGxDYWNoZUtleSgpXG4gICAgKSB7XG4gICAgICByZXR1cm5cbiAgICB9IGVsc2UgaWYgKCF0aGlzLnMubW9kZWwgJiYgIW1vZGVsICYmIHRoaXMucy5ub3RGb3VuZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7bW9kZWwsIG5vdEZvdW5kOiAhbW9kZWx9KVxuICB9XG5cbiAgLyoqIEBwYXJhbSB7bnVtYmVyfSBsb2FkTW9kZWxHZW5lcmF0aW9uICovXG4gIGxvYWROZXdNb2RlbCA9IGFzeW5jIChsb2FkTW9kZWxHZW5lcmF0aW9uKSA9PiB7XG4gICAgbGV0IGRlZmF1bHRzID0ge31cblxuICAgIGlmICh0aGlzLmFyZ3MoKS5uZXdJZk5vSWQ/LmRlZmF1bHRzKSB7XG4gICAgICBsZXQgZGVmYXVsdHNSZXN1bHQgPSB0aGlzLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0XG5cbiAgICAgIGlmIChkZWZhdWx0c1Jlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgICBkZWZhdWx0c1Jlc3VsdCA9IHRoaXMuYXJncygpLm5ld0lmTm9JZC5kZWZhdWx0cygpXG4gICAgICB9XG5cbiAgICAgIHRoaXMubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBudWxsXG4gICAgICBkZWZhdWx0cyA9IGF3YWl0IGRlZmF1bHRzUmVzdWx0XG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWwgPSBuZXcgKHRoaXMubW9kZWxDbGFzcygpKSh7XG4gICAgICBpc05ld1JlY29yZDogdHJ1ZSxcbiAgICAgIGRhdGE6IHthOiBPYmplY3QuYXNzaWduKGRlZmF1bHRzLCB0aGlzLmFyZ3MoKS5uZXdBdHRyaWJ1dGVzLCB0aGlzLm5ld01vZGVsRGF0YUZyb21QYXJhbXMoKSl9XG4gICAgfSlcblxuICAgIGlmIChsb2FkTW9kZWxHZW5lcmF0aW9uICE9IHRoaXMubG9hZE1vZGVsR2VuZXJhdGlvbikgcmV0dXJuXG5cbiAgICB0aGlzLnNldFN0YXRlKHttb2RlbCwgbm90Rm91bmQ6IGZhbHNlfSlcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gKi9cbiAgbG9hZE1vZGVsID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIE9ubHkgdGhlIG5ld2VzdCBtb2RlbCByZXF1ZXN0IG1heSB1cGRhdGUgc3RhdGUgYWZ0ZXIgcm91dGUgb3IgYXV0aCBjaGFuZ2VzLlxuICAgIGNvbnN0IGxvYWRNb2RlbEdlbmVyYXRpb24gPSB0aGlzLmxvYWRNb2RlbEdlbmVyYXRpb24gKyAxXG5cbiAgICB0aGlzLmluaXRpYWxMb2FkVHJpZ2dlcmVkID0gdHJ1ZVxuICAgIHRoaXMubG9hZE1vZGVsR2VuZXJhdGlvbiA9IGxvYWRNb2RlbEdlbmVyYXRpb25cbiAgICBpZiAodGhpcy5hY3RpdmUoKSAmJiB0aGlzLmFyZ3MoKS5uZXdJZk5vSWQgJiYgIXRoaXMubW9kZWxJZCgpKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvYWROZXdNb2RlbChsb2FkTW9kZWxHZW5lcmF0aW9uKVxuICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmUoKSAmJiAoIXRoaXMuYXJncygpLm9wdGlvbmFsIHx8IHRoaXMubW9kZWxJZCgpIHx8IHRoaXMuYXJncygpLnF1ZXJ5KSkge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkRXhpc3RpbmdNb2RlbChsb2FkTW9kZWxHZW5lcmF0aW9uKVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgY2xlYXJVcGRhdGVkQ29ubmVjdGlvbkZhbGxiYWNrVGltZW91dCgpIHtcbiAgICBpZiAodGhpcy51cGRhdGVkQ29ubmVjdGlvbkZhbGxiYWNrVGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy51cGRhdGVkQ29ubmVjdGlvbkZhbGxiYWNrVGltZW91dElkKVxuICAgICAgdGhpcy51cGRhdGVkQ29ubmVjdGlvbkZhbGxiYWNrVGltZW91dElkID0gdW5kZWZpbmVkXG4gICAgfVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICBlbnN1cmVJbml0aWFsTG9hZEZhbGxiYWNrKCkge1xuICAgIGlmICghdGhpcy5zaG91bGRXYWl0Rm9yVXBkYXRlZENvbm5lY3Rpb24oKSB8fCB0aGlzLmluaXRpYWxMb2FkVHJpZ2dlcmVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmNsZWFyVXBkYXRlZENvbm5lY3Rpb25GYWxsYmFja1RpbWVvdXQoKVxuICAgIHRoaXMudXBkYXRlZENvbm5lY3Rpb25GYWxsYmFja1RpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnVwZGF0ZWRDb25uZWN0aW9uUmVhZHkgJiYgIXRoaXMuaW5pdGlhbExvYWRUcmlnZ2VyZWQpIHtcbiAgICAgICAgdGhpcy5sb2FkTW9kZWwoKVxuICAgICAgfVxuICAgIH0sIDEwMDApXG4gIH1cblxuICAvKiogQHBhcmFtIHt7bW9kZWw6IGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0fX0gYXJncyAqL1xuICBvbkRlc3Ryb3llZCA9IChhcmdzKSA9PiB7XG4gICAgY29uc3QgZm9yd2FyZEFyZ3MgPSB7bW9kZWw6IGFyZ3MubW9kZWx9XG5cbiAgICBmb3J3YXJkQXJnc1t0aGlzLm1vZGVsVmFyaWFibGVOYW1lKCldID0gYXJncy5tb2RlbFxuXG4gICAgdGhpcy5hcmdzKCkub25EZXN0cm95ZWQoZm9yd2FyZEFyZ3MpXG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIG9uU2lnbmVkSW4gPSAoKSA9PiB7XG4gICAgdGhpcy5sb2FkTW9kZWwoKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICBvblNpZ25lZE91dCA9ICgpID0+IHtcbiAgICB0aGlzLmxvYWRNb2RlbCgpXG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIG9uVXBkYXRlZEV2ZW50Q29ubmVjdGVkID0gKCkgPT4ge1xuICAgIHRoaXMudXBkYXRlZENvbm5lY3Rpb25SZWFkeSA9IHRydWVcbiAgICB0aGlzLmNsZWFyVXBkYXRlZENvbm5lY3Rpb25GYWxsYmFja1RpbWVvdXQoKVxuXG4gICAgaWYgKHRoaXMuc2hvdWxkV2FpdEZvclVwZGF0ZWRDb25uZWN0aW9uKCkgJiYgIXRoaXMuaW5pdGlhbExvYWRUcmlnZ2VyZWQpIHtcbiAgICAgIHRoaXMubG9hZE1vZGVsKClcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge2ltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSAqL1xuICB2aXNpYmxlTW9kZWwoKSB7XG4gICAgbGV0IG1vZGVsID0gdGhpcy5zLm1vZGVsXG5cbiAgICBpZiAoIW1vZGVsKSB7XG4gICAgICBtb2RlbCA9IHRoaXMuc3luY05ld01vZGVsKClcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYWN0aXZlKCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9IGVsc2UgaWYgKHRoaXMubW9kZWxJZCgpICYmIG1vZGVsICYmIG1vZGVsLmlkKCkgIT0gdGhpcy5tb2RlbElkKCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9IGVsc2UgaWYgKCF0aGlzLm1vZGVsSWQoKSAmJiAhdGhpcy5hcmdzKCkucXVlcnkgJiYgIXRoaXMuYXJncygpLm5ld0lmTm9JZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHJldHVybiBtb2RlbFxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICB2aXNpYmxlTm90Rm91bmQoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZSgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSBlbHNlIGlmICh0aGlzLm1vZGVsSWQoKSAmJiB0aGlzLnZpc2libGVNb2RlbCgpID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9IGVsc2UgaWYgKCF0aGlzLm1vZGVsSWQoKSAmJiAhdGhpcy5hcmdzKCkucXVlcnkgJiYgIXRoaXMuYXJncygpLm5ld0lmTm9JZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnMubm90Rm91bmRcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgc2V0dXAoKSB7XG4gICAgdGhpcy5xdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMucy5tb2RlbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29uc3Qgc3luY05ld01vZGVsID0gdGhpcy5zeW5jTmV3TW9kZWwoKVxuXG4gICAgICAgICAgaWYgKHN5bmNOZXdNb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7bW9kZWw6IHN5bmNOZXdNb2RlbCwgbm90Rm91bmQ6IGZhbHNlfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaG91bGRXYWl0Rm9yVXBkYXRlZENvbm5lY3Rpb24oKSkge1xuICAgICAgICAgIHRoaXMuZW5zdXJlSW5pdGlhbExvYWRGYWxsYmFjaygpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2FkTW9kZWwoKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdGhpcy5jYWNoZUFyZ3MoKVxuICAgIClcblxuICAgIC8vIEludmFsaWRhdGUgaW4tZmxpZ2h0IGFzeW5jIHJlc3BvbnNlcyBzbyBzdGFsZSBsb2FkcyBjYW5ub3Qgd3JpdGUgYWZ0ZXIgdW5tb3VudC5cbiAgICB1c2VFZmZlY3QoKCkgPT4gKCkgPT4ge1xuICAgICAgdGhpcy5jbGVhclVwZGF0ZWRDb25uZWN0aW9uRmFsbGJhY2tUaW1lb3V0KClcbiAgICAgIHRoaXMubG9hZE1vZGVsR2VuZXJhdGlvbiArPSAxXG4gICAgfSwgW10pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFyZ3MoKS5ldmVudHMpIHJldHVyblxuXG4gICAgICB0aGlzLmFyZ3MoKS5ldmVudHMuYWRkTGlzdGVuZXIoXCJyZWxvYWRNb2RlbFwiLCB0aGlzLmxvYWRNb2RlbClcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgdGhpcy5hcmdzKCkuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKFwicmVsb2FkTW9kZWxcIiwgdGhpcy5sb2FkTW9kZWwpXG4gICAgICB9XG4gICAgfSwgW3RoaXMuYXJncygpLmV2ZW50c10pXG5cbiAgICB1c2VVcGRhdGVkRXZlbnQodGhpcy5zdWJzY3JpcHRpb25Nb2RlbCgpLCB0aGlzLmxvYWRNb2RlbCwge1xuICAgICAgb25Db25uZWN0ZWQ6IHRoaXMub25VcGRhdGVkRXZlbnRDb25uZWN0ZWRcbiAgICB9KVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIERldmlzZS5ldmVudHMoKS5hZGRMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbkluXCIsIHRoaXMub25TaWduZWRJbilcbiAgICAgIERldmlzZS5ldmVudHMoKS5hZGRMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbk91dFwiLCB0aGlzLm9uU2lnbmVkT3V0KVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBEZXZpc2UuZXZlbnRzKCkucmVtb3ZlTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25JblwiLCB0aGlzLm9uU2lnbmVkSW4pXG4gICAgICAgIERldmlzZS5ldmVudHMoKS5yZW1vdmVMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbk91dFwiLCB0aGlzLm9uU2lnbmVkT3V0KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnMubW9kZWwgfHwgIXRoaXMuYXJncygpLm9uRGVzdHJveWVkKSByZXR1cm5cblxuICAgICAgY29uc3QgY29ubmVjdERlc3Ryb3llZCA9IE1vZGVsRXZlbnRzLmNvbm5lY3REZXN0cm95ZWQodGhpcy5zLm1vZGVsLCB0aGlzLm9uRGVzdHJveWVkKVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBjb25uZWN0RGVzdHJveWVkLnVuc3Vic2NyaWJlKClcbiAgICAgIH1cbiAgICB9LCBbdGhpcy5hcmdzKCkub25EZXN0cm95ZWQsIHRoaXMucy5tb2RlbCA/IHRoaXMucy5tb2RlbC5pZCgpIDogdW5kZWZpbmVkXSlcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7RnVuY3Rpb258b2JqZWN0fSBtb2RlbENsYXNzQXJnXG4gKiBAcGFyYW0ge29iamVjdCB8ICgoYXJnczoge21vZGVsQ2xhc3M6IHR5cGVvZiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdH0pID0+IHVzZU1vZGVsQXJncyl9IFthcmdzQXJnXVxuICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIGFueT59XG4gKi9cbi8qKiB1c2VNb2RlbC4gKi9cbmNvbnN0IHVzZU1vZGVsID0gKG1vZGVsQ2xhc3NBcmcsIGFyZ3NBcmcgPSB7fSkgPT4ge1xuICBjb25zdCBzaGFwZUhvb2sgPSB1c2VTaGFwZUhvb2soVXNlTW9kZWxTaGFwZUhvb2ssIHthcmdzQXJnLCBtb2RlbENsYXNzQXJnfSlcbiAgY29uc3QgbW9kZWwgPSBzaGFwZUhvb2sudmlzaWJsZU1vZGVsKClcbiAgY29uc3QgbW9kZWxJZCA9IHNoYXBlSG9vay5tb2RlbElkKClcbiAgY29uc3Qgbm90Rm91bmQgPSBzaGFwZUhvb2sudmlzaWJsZU5vdEZvdW5kKClcbiAgY29uc3QgbW9kZWxWYXJpYWJsZU5hbWUgPSBzaGFwZUhvb2subW9kZWxWYXJpYWJsZU5hbWUoKVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgbW9kZWwsXG4gICAgbW9kZWxJZCxcbiAgICBub3RGb3VuZFxuICB9XG5cbiAgcmVzdWx0W21vZGVsVmFyaWFibGVOYW1lXSA9IG1vZGVsXG4gIHJlc3VsdFtgJHttb2RlbFZhcmlhYmxlTmFtZX1JZGBdID0gbW9kZWxJZFxuICByZXN1bHRbYCR7bW9kZWxWYXJpYWJsZU5hbWV9Tm90Rm91bmRgXSA9IG5vdEZvdW5kXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VNb2RlbFxuIl19
|
|
410
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLGlDQUFpQztBQUNqQyxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLG1CQUFtQixDQUFBO0FBQ3pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDL0IsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sV0FBVyxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sY0FBYyxNQUFNLCtDQUErQyxDQUFBO0FBQzFFLE9BQU8sZUFBZSxNQUFNLHdCQUF3QixDQUFBO0FBRXBELHlFQUF5RTtBQUN6RSxxRUFBcUU7QUFDckUsaUZBQWlGO0FBQ2pGLG1FQUFtRTtBQUNuRSxvR0FBb0c7QUFDcEcsMEZBQTBGO0FBQzFGLGlGQUFpRjtBQUNqRiw2REFBNkQ7QUFDN0QsaUdBQWlHO0FBQ2pHLHlHQUF5RztBQUN6RyxpSUFBaUk7QUFDakksc0VBQXNFO0FBQ3RFLHdHQUF3RztBQUN4Rzs7OztHQUlHO0FBQ0g7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxrR0FBa0c7QUFDbEc7Ozs7R0FJRztBQUVILHlDQUF5QztBQUN6Qzs7OztHQUlHO0FBRUg7Ozs7OztHQU1HO0FBRUgsbUVBQW1FO0FBQ25FLE1BQU0saUJBQWtCLFNBQVEsU0FBUztJQUN2QyxLQUFLLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztRQUNwQyxLQUFLLEVBQUUsU0FBUztRQUNoQixRQUFRLEVBQUUsU0FBUztLQUNwQixDQUFDLENBQUE7SUFFRixrQ0FBa0MsR0FBRyxTQUFTLENBQUE7SUFFOUM7OztPQUdHO0lBQ0gsWUFBWSxLQUFLO1FBQ2YsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ1osSUFBSSxDQUFDLG9CQUFv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QUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtJQUM5RyxDQUFDO0NBQ0Y7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sUUFBUSxHQUFHLENBQUMsYUFBYSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRTtJQUMvQyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQTtJQUMzRSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUE7SUFDdEMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ25DLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUM1QyxNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO0lBQ3ZELE1BQU0sTUFBTSxHQUFHO1FBQ2IsS0FBSztRQUNMLE9BQU87UUFDUCxRQUFRO0tBQ1QsQ0FBQTtJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEtBQUssQ0FBQTtJQUNqQyxNQUFNLENBQUMsR0FBRyxpQkFBaUIsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFBO0lBQzFDLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixVQUFVLENBQUMsR0FBRyxRQUFRLENBQUE7SUFFakQsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUE7QUFFRCxlQUFlLFFBQVEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQge1NoYXBlSG9vaywgdXNlU2hhcGVIb29rfSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmVcIlxuaW1wb3J0IHt1c2VFZmZlY3R9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgRGV2aXNlIGZyb20gXCIuL2RldmlzZS5qc1wiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBNb2RlbEV2ZW50cyBmcm9tIFwiLi9tb2RlbC1ldmVudHMuanNcIlxuaW1wb3J0IHVzZVF1ZXJ5UGFyYW1zIGZyb20gXCJvbi1sb2NhdGlvbi1jaGFuZ2VkL2J1aWxkL3VzZS1xdWVyeS1wYXJhbXMuanNcIlxuaW1wb3J0IHVzZVVwZGF0ZWRFdmVudCBmcm9tIFwiLi91c2UtdXBkYXRlZC1ldmVudC5qc1wiXG5cbi8qKiBAdHlwZWRlZiB7dHlwZW9mIGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0fSBCYXNlTW9kZWxDbGFzcyAqL1xuLyoqIEB0eXBlZGVmIHtpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdH0gQmFzZU1vZGVsSW5zdGFuY2UgKi9cbi8qKiBAdHlwZWRlZiB7QmFzZU1vZGVsSW5zdGFuY2UgJiB7aWQ6ICgpID0+IG51bWJlciB8IHN0cmluZ319IEJhc2VNb2RlbFdpdGhJZCAqL1xuLyoqIEB0eXBlZGVmIHtpbXBvcnQoXCIuL2NvbGxlY3Rpb24uanNcIikuZGVmYXVsdH0gTW9kZWxDb2xsZWN0aW9uICovXG4vKiogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3QgfCB1bmRlZmluZWQ+fSBVc2VNb2RlbFF1ZXJ5UGFyYW1zICovXG4vKiogQHR5cGVkZWYge3N0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3QgfCBudWxsIHwgdW5kZWZpbmVkfSBVc2VNb2RlbENhY2hlVmFsdWUgKi9cbi8qKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkPn0gVXNlTW9kZWxNYXRjaFBhcmFtcyAqL1xuLyoqIEB0eXBlZGVmIHt7cGFyYW1zOiBVc2VNb2RlbE1hdGNoUGFyYW1zfX0gVXNlTW9kZWxNYXRjaCAqL1xuLyoqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0IHwgdW5kZWZpbmVkPn0gVXNlTW9kZWxEZWZhdWx0cyAqL1xuLyoqIEB0eXBlZGVmIHt7ZGVmYXVsdHM/OiAoKSA9PiBVc2VNb2RlbERlZmF1bHRzIHwgUHJvbWlzZTxVc2VNb2RlbERlZmF1bHRzPn19IFVzZU1vZGVsTmV3SWZOb0lkQ29uZmlnICovXG4vKiogQHR5cGVkZWYge3tjYWxsYmFjazogKGFyZ3M6IHtxdWVyeVBhcmFtczogVXNlTW9kZWxRdWVyeVBhcmFtcyB8IHVuZGVmaW5lZH0pID0+IEJhc2VNb2RlbENsYXNzfX0gVXNlTW9kZWxNb2RlbENsYXNzUmVzb2x2ZXIgKi9cbi8qKiBAdHlwZWRlZiB7e21vZGVsQ2xhc3M6IEJhc2VNb2RlbENsYXNzfX0gVXNlTW9kZWxBcmdzRmFjdG9yeUFyZ3MgKi9cbi8qKiBAdHlwZWRlZiB7e21vZGVsOiBCYXNlTW9kZWxJbnN0YW5jZX0gJiBSZWNvcmQ8c3RyaW5nLCBCYXNlTW9kZWxJbnN0YW5jZT59IFVzZU1vZGVsT25EZXN0cm95ZWRBcmdzICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFVzZU1vZGVsRXZlbnRzXG4gKiBAcHJvcGVydHkgeyhldmVudE5hbWU6IHN0cmluZywgY2FsbGJhY2s6ICgpID0+IHZvaWQpID0+IHZvaWR9IGFkZExpc3RlbmVyXG4gKiBAcHJvcGVydHkgeyhldmVudE5hbWU6IHN0cmluZywgY2FsbGJhY2s6ICgpID0+IHZvaWQpID0+IHZvaWR9IHJlbW92ZUxpc3RlbmVyXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gdXNlTW9kZWxBcmdzXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFthY3RpdmVdXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIHN0cmluZ1tdPn0gW2FiaWxpdGllc11cbiAqIEBwcm9wZXJ0eSB7VXNlTW9kZWxDYWNoZVZhbHVlW119IFtjYWNoZUFyZ3NdXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtldmVudFVwZGF0ZWRdXG4gKiBAcHJvcGVydHkge1VzZU1vZGVsRXZlbnRzfSBbZXZlbnRzXVxuICogQHByb3BlcnR5IHsoYXJnczoge3F1ZXJ5UGFyYW1zOiBVc2VNb2RlbFF1ZXJ5UGFyYW1zIHwgdW5kZWZpbmVkfSkgPT4gbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkfSBbbG9hZEJ5UXVlcnlQYXJhbV1cbiAqIEBwcm9wZXJ0eSB7VXNlTW9kZWxNYXRjaH0gW21hdGNoXVxuICogQHByb3BlcnR5IHtVc2VNb2RlbE5ld0lmTm9JZENvbmZpZyB8IGJvb2xlYW59IFtuZXdJZk5vSWRdXG4gKiBAcHJvcGVydHkge1VzZU1vZGVsRGVmYXVsdHN9IFtuZXdBdHRyaWJ1dGVzXVxuICogQHByb3BlcnR5IHsoY3R4OiBVc2VNb2RlbE9uRGVzdHJveWVkQXJncykgPT4gdm9pZH0gW29uRGVzdHJveWVkXVxuICogQHByb3BlcnR5IHtib29sZWFufSBbb3B0aW9uYWxdXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdIHwgb2JqZWN0fSBbcHJlbG9hZF1cbiAqIEBwcm9wZXJ0eSB7TW9kZWxDb2xsZWN0aW9ufSBbcXVlcnldXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdIHwgb2JqZWN0fSBbc2VsZWN0XVxuICovXG4vKiogQHR5cGVkZWYge3VzZU1vZGVsQXJncyB8ICgoYXJnczogVXNlTW9kZWxBcmdzRmFjdG9yeUFyZ3MpID0+IHVzZU1vZGVsQXJncyl9IFVzZU1vZGVsQXJnc0FyZyAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBVc2VNb2RlbFNoYXBlSG9va1Byb3BzXG4gKiBAcHJvcGVydHkge1VzZU1vZGVsQXJnc0FyZ30gW2FyZ3NBcmddXG4gKiBAcHJvcGVydHkge0Jhc2VNb2RlbENsYXNzIHwgVXNlTW9kZWxNb2RlbENsYXNzUmVzb2x2ZXJ9IG1vZGVsQ2xhc3NBcmdcbiAqL1xuXG4vKiogSG9vayBzdGF0ZSBjb250YWluZXIgZm9yIHVzZU1vZGVsLiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBVc2VNb2RlbFN0YXRlXG4gKiBAcHJvcGVydHkge0Jhc2VNb2RlbEluc3RhbmNlIHwgdW5kZWZpbmVkfSBtb2RlbFxuICogQHByb3BlcnR5IHtib29sZWFuIHwgdW5kZWZpbmVkfSBub3RGb3VuZFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge3tcbiAqICAgbW9kZWw6IEJhc2VNb2RlbEluc3RhbmNlIHwgdW5kZWZpbmVkLFxuICogICBtb2RlbElkOiBudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQsXG4gKiAgIG5vdEZvdW5kOiBib29sZWFuIHwgdW5kZWZpbmVkXG4gKiB9ICYgUmVjb3JkPHN0cmluZywgQmFzZU1vZGVsSW5zdGFuY2UgfCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuIHwgdW5kZWZpbmVkPn0gVXNlTW9kZWxSZXN1bHRcbiAqL1xuXG4vKiogQGF1Z21lbnRzIHtTaGFwZUhvb2s8VXNlTW9kZWxTaGFwZUhvb2tQcm9wcywgVXNlTW9kZWxTdGF0ZT59ICovXG5jbGFzcyBVc2VNb2RlbFNoYXBlSG9vayBleHRlbmRzIFNoYXBlSG9vayB7XG4gIHN0YXRlID0gLyoqIEB0eXBlIHtVc2VNb2RlbFN0YXRlfSAqLyAoe1xuICAgIG1vZGVsOiB1bmRlZmluZWQsXG4gICAgbm90Rm91bmQ6IHVuZGVmaW5lZFxuICB9KVxuXG4gIHVwZGF0ZWRDb25uZWN0aW9uRmFsbGJhY2tUaW1lb3V0SWQgPSB1bmRlZmluZWRcblxuICAvKipcbiAgICogQ29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7VXNlTW9kZWxTaGFwZUhvb2tQcm9wc30gcHJvcHNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgdGhpcy5pbml0aWFsTG9hZFRyaWdnZXJlZCA9IGZhbHNlXG4gICAgdGhpcy5sb2FkTW9kZWxHZW5lcmF0aW9uID0gMFxuICAgIHRoaXMubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBudWxsXG4gICAgdGhpcy5xdWVyeVBhcmFtcyA9IHVuZGVmaW5lZFxuICAgIHRoaXMudXBkYXRlZENvbm5lY3Rpb25SZWFkeSA9IGZhbHNlXG4gIH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW59ICovXG4gIGFjdGl2ZSgpIHtcbiAgICByZXR1cm4gIShcImFjdGl2ZVwiIGluIHRoaXMuYXJncygpKSB8fCBCb29sZWFuKHRoaXMuYXJncygpLmFjdGl2ZSlcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dXNlTW9kZWxBcmdzfSAqL1xuICBhcmdzKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5wLmFyZ3NBcmcgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5wLmFyZ3NBcmcoe21vZGVsQ2xhc3M6IHRoaXMubW9kZWxDbGFzcygpfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wLmFyZ3NBcmcgfHwge31cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7QmFzZU1vZGVsQ2xhc3N9ICovXG4gIG1vZGVsQ2xhc3MoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnAubW9kZWxDbGFzc0FyZyA9PSBcIm9iamVjdFwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5wLm1vZGVsQ2xhc3NBcmcuY2FsbGJhY2soe3F1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wLm1vZGVsQ2xhc3NBcmdcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7c3RyaW5nfSAqL1xuICBwYXJhbXNWYXJpYWJsZU5hbWUoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMubW9kZWxDbGFzcygpLm1vZGVsTmFtZSgpXG4gICAgICAucGFyYW1LZXkoKX1faWRgXG4gIH1cblxuICAvKiogQHJldHVybnMge251bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbW9kZWxJZCgpIHtcbiAgICBpZiAodGhpcy5hcmdzKCkubG9hZEJ5UXVlcnlQYXJhbSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXJncygpLmxvYWRCeVF1ZXJ5UGFyYW0oe3F1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zfSlcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXJncygpLnF1ZXJ5KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSBlbHNlIGlmICghdGhpcy5hcmdzKCkubWF0Y2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkJvdGggJ2xvYWRCeVF1ZXJ5UGFyYW0nIGFuZCAnbWF0Y2gnIHdhc24ndCBnaXZlblwiKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFyZ3MoKS5tYXRjaC5wYXJhbXNbdGhpcy5wYXJhbXNWYXJpYWJsZU5hbWUoKV0gfHwgdGhpcy5hcmdzKCkubWF0Y2gucGFyYW1zLmlkXG4gIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZ30gKi9cbiAgbW9kZWxWYXJpYWJsZU5hbWUoKSB7XG4gICAgcmV0dXJuIGluZmxlY3Rpb24uY2FtZWxpemUodGhpcy5tb2RlbENsYXNzKCkubW9kZWxDbGFzc0RhdGEoKS5uYW1lLCB0cnVlKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtVc2VNb2RlbENhY2hlVmFsdWVbXX0gKi9cbiAgY2FjaGVBcmdzKCkge1xuICAgIHJldHVybiBbdGhpcy5tb2RlbElkKCldLmNvbmNhdCh0aGlzLmFyZ3MoKS5jYWNoZUFyZ3MgfHwgW10sIHRoaXMucXVlcnlQYXJhbXMpXG4gIH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW59ICovXG4gIHNob3VsZFdhaXRGb3JVcGRhdGVkQ29ubmVjdGlvbigpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLmFyZ3MoKS5ldmVudFVwZGF0ZWQgJiYgdGhpcy5tb2RlbElkKCkgJiYgIXRoaXMucy5tb2RlbClcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7VXNlTW9kZWxEZWZhdWx0c30gKi9cbiAgbmV3TW9kZWxEYXRhRnJvbVBhcmFtcygpIHtcbiAgICBjb25zdCBtb2RlbERhdGFGcm9tUGFyYW1zID0gdGhpcy5xdWVyeVBhcmFtcz8uW1xuICAgICAgdGhpcy5tb2RlbENsYXNzKCkubW9kZWxOYW1lKClcbiAgICAgICAgLnBhcmFtS2V5KClcbiAgICBdXG5cbiAgICByZXR1cm4gdHlwZW9mIG1vZGVsRGF0YUZyb21QYXJhbXMgPT0gXCJvYmplY3RcIiAmJiBtb2RlbERhdGFGcm9tUGFyYW1zID8gbW9kZWxEYXRhRnJvbVBhcmFtcyA6IHt9XG4gIH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW59ICovXG4gIGhhc0FzeW5jRGVmYXVsdHMoKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCAmJiB0eXBlb2YgdGhpcy5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdC50aGVuID09IFwiZnVuY3Rpb25cIilcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7VXNlTW9kZWxOZXdJZk5vSWRDb25maWcgfCBudWxsfSAqL1xuICBuZXdJZk5vSWRDb25maWcoKSB7XG4gICAgY29uc3Qge25ld0lmTm9JZH0gPSB0aGlzLmFyZ3MoKVxuXG4gICAgaWYgKCFuZXdJZk5vSWQgfHwgbmV3SWZOb0lkID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIHJldHVybiBuZXdJZk5vSWRcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7VXNlTW9kZWxEZWZhdWx0cyB8IG51bGx9ICovXG4gIHN5bmNEZWZhdWx0c0Zvck5ld01vZGVsKCkge1xuICAgIGNvbnN0IG5ld0lmTm9JZENvbmZpZyA9IHRoaXMubmV3SWZOb0lkQ29uZmlnKClcblxuICAgIGlmICghbmV3SWZOb0lkQ29uZmlnPy5kZWZhdWx0cykge1xuICAgICAgcmV0dXJuIHt9XG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc0FzeW5jRGVmYXVsdHMoKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBpZiAodGhpcy5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgZGVmYXVsdHNSZXN1bHQgPSBuZXdJZk5vSWRDb25maWcuZGVmYXVsdHMoKVxuXG4gICAgICBpZiAoZGVmYXVsdHNSZXN1bHQgJiYgdHlwZW9mIGRlZmF1bHRzUmVzdWx0LnRoZW4gPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRoaXMubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBkZWZhdWx0c1Jlc3VsdC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIHRoaXMubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBkZWZhdWx0c1Jlc3VsdFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0IHx8IHt9XG4gIH1cblxuICAvKiogQHJldHVybnMge0Jhc2VNb2RlbEluc3RhbmNlIHwgdW5kZWZpbmVkfSAqL1xuICBzeW5jTmV3TW9kZWwoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZSgpIHx8ICF0aGlzLmFyZ3MoKS5uZXdJZk5vSWQgfHwgdGhpcy5tb2RlbElkKCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0cyA9IHRoaXMuc3luY0RlZmF1bHRzRm9yTmV3TW9kZWwoKVxuXG4gICAgaWYgKGRlZmF1bHRzID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyAodGhpcy5tb2RlbENsYXNzKCkpKHtcbiAgICAgIGlzTmV3UmVjb3JkOiB0cnVlLFxuICAgICAgZGF0YToge2E6IE9iamVjdC5hc3NpZ24oZGVmYXVsdHMsIHRoaXMuYXJncygpLm5ld0F0dHJpYnV0ZXMsIHRoaXMubmV3TW9kZWxEYXRhRnJvbVBhcmFtcygpKX1cbiAgICB9KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtCYXNlTW9kZWxJbnN0YW5jZSB8IHVuZGVmaW5lZH0gKi9cbiAgc3Vic2NyaXB0aW9uTW9kZWwoKSB7XG4gICAgaWYgKCF0aGlzLmFyZ3MoKS5ldmVudFVwZGF0ZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9IGVsc2UgaWYgKHRoaXMucy5tb2RlbCkge1xuICAgICAgcmV0dXJuIHRoaXMucy5tb2RlbFxuICAgIH0gZWxzZSBpZiAoIXRoaXMubW9kZWxJZCgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyAodGhpcy5tb2RlbENsYXNzKCkpKHtcbiAgICAgIGRhdGE6IHthOiB7W3RoaXMubW9kZWxDbGFzcygpLnByaW1hcnlLZXkoKV06IHRoaXMubW9kZWxJZCgpfX1cbiAgICB9KVxuICB9XG5cbiAgLyoqIEBwYXJhbSB7bnVtYmVyfSBsb2FkTW9kZWxHZW5lcmF0aW9uICovXG4gIGxvYWRFeGlzdGluZ01vZGVsID0gYXN5bmMgKGxvYWRNb2RlbEdlbmVyYXRpb24pID0+IHtcbiAgICBsZXQgcXVlcnlcblxuICAgIGlmICh0aGlzLm1vZGVsSWQoKSkge1xuICAgICAgcXVlcnkgPSB0aGlzLm1vZGVsQ2xhc3MoKS5yYW5zYWNrKHtpZF9lcTogdGhpcy5tb2RlbElkKCl9KVxuICAgIH0gZWxzZSBpZiAodGhpcy5hcmdzKCkucXVlcnkpIHtcbiAgICAgIHF1ZXJ5ID0gdGhpcy5hcmdzKCkucXVlcnkuY2xvbmUoKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtYXRjaFBhcmFtcyA9IHRoaXMuYXJncygpLm1hdGNoPy5wYXJhbXMgfHwge31cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBtb2RlbCBJRCB3YXMgZ2l2ZW46ICR7dGhpcy5tb2RlbElkKCl9IGJ5ICcke3RoaXMucGFyYW1zVmFyaWFibGVOYW1lKCl9JyBpbiBxdWVyeSBwYXJhbXM6ICR7T2JqZWN0LmtleXMobWF0Y2hQYXJhbXMpLmpvaW4oXCIsIFwiKX1gKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmFyZ3MoKS5hYmlsaXRpZXMpIHF1ZXJ5LmFiaWxpdGllcyh0aGlzLmFyZ3MoKS5hYmlsaXRpZXMpXG4gICAgaWYgKHRoaXMuYXJncygpLnByZWxvYWQpIHF1ZXJ5LnByZWxvYWQodGhpcy5hcmdzKCkucHJlbG9hZClcbiAgICBpZiAodGhpcy5hcmdzKCkuc2VsZWN0KSBxdWVyeS5zZWxlY3QodGhpcy5hcmdzKCkuc2VsZWN0KVxuXG4gICAgY29uc3QgbW9kZWwgPSBhd2FpdCBxdWVyeS5maXJzdCgpXG5cbiAgICBpZiAobG9hZE1vZGVsR2VuZXJhdGlvbiAhPSB0aGlzLmxvYWRNb2RlbEdlbmVyYXRpb24pIHJldHVyblxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5zLm1vZGVsICYmXG4gICAgICBtb2RlbCAmJlxuICAgICAgIXRoaXMucy5ub3RGb3VuZCAmJlxuICAgICAgdGhpcy5zLm1vZGVsLmZ1bGxDYWNoZUtleSgpID09IG1vZGVsLmZ1bGxDYWNoZUtleSgpXG4gICAgKSB7XG4gICAgICByZXR1cm5cbiAgICB9IGVsc2UgaWYgKCF0aGlzLnMubW9kZWwgJiYgIW1vZGVsICYmIHRoaXMucy5ub3RGb3VuZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7bW9kZWwsIG5vdEZvdW5kOiAhbW9kZWx9KVxuICB9XG5cbiAgLyoqIEBwYXJhbSB7bnVtYmVyfSBsb2FkTW9kZWxHZW5lcmF0aW9uICovXG4gIGxvYWROZXdNb2RlbCA9IGFzeW5jIChsb2FkTW9kZWxHZW5lcmF0aW9uKSA9PiB7XG4gICAgbGV0IGRlZmF1bHRzID0ge31cbiAgICBjb25zdCBuZXdJZk5vSWRDb25maWcgPSB0aGlzLm5ld0lmTm9JZENvbmZpZygpXG5cbiAgICBpZiAobmV3SWZOb0lkQ29uZmlnPy5kZWZhdWx0cykge1xuICAgICAgbGV0IGRlZmF1bHRzUmVzdWx0ID0gdGhpcy5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdFxuXG4gICAgICBpZiAoZGVmYXVsdHNSZXN1bHQgPT09IG51bGwpIHtcbiAgICAgICAgZGVmYXVsdHNSZXN1bHQgPSBuZXdJZk5vSWRDb25maWcuZGVmYXVsdHMoKVxuICAgICAgfVxuXG4gICAgICB0aGlzLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID0gbnVsbFxuICAgICAgZGVmYXVsdHMgPSBhd2FpdCBkZWZhdWx0c1Jlc3VsdFxuICAgIH1cblxuICAgIGNvbnN0IG1vZGVsID0gbmV3ICh0aGlzLm1vZGVsQ2xhc3MoKSkoe1xuICAgICAgaXNOZXdSZWNvcmQ6IHRydWUsXG4gICAgICBkYXRhOiB7YTogT2JqZWN0LmFzc2lnbihkZWZhdWx0cywgdGhpcy5hcmdzKCkubmV3QXR0cmlidXRlcywgdGhpcy5uZXdNb2RlbERhdGFGcm9tUGFyYW1zKCkpfVxuICAgIH0pXG5cbiAgICBpZiAobG9hZE1vZGVsR2VuZXJhdGlvbiAhPSB0aGlzLmxvYWRNb2RlbEdlbmVyYXRpb24pIHJldHVyblxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7bW9kZWwsIG5vdEZvdW5kOiBmYWxzZX0pXG4gIH1cblxuICAvKiogQHJldHVybnMge1Byb21pc2U8dm9pZD59ICovXG4gIGxvYWRNb2RlbCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyBPbmx5IHRoZSBuZXdlc3QgbW9kZWwgcmVxdWVzdCBtYXkgdXBkYXRlIHN0YXRlIGFmdGVyIHJvdXRlIG9yIGF1dGggY2hhbmdlcy5cbiAgICBjb25zdCBsb2FkTW9kZWxHZW5lcmF0aW9uID0gdGhpcy5sb2FkTW9kZWxHZW5lcmF0aW9uICsgMVxuXG4gICAgdGhpcy5pbml0aWFsTG9hZFRyaWdnZXJlZCA9IHRydWVcbiAgICB0aGlzLmxvYWRNb2RlbEdlbmVyYXRpb24gPSBsb2FkTW9kZWxHZW5lcmF0aW9uXG4gICAgaWYgKHRoaXMuYWN0aXZlKCkgJiYgdGhpcy5hcmdzKCkubmV3SWZOb0lkICYmICF0aGlzLm1vZGVsSWQoKSkge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkTmV3TW9kZWwobG9hZE1vZGVsR2VuZXJhdGlvbilcbiAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlKCkgJiYgKCF0aGlzLmFyZ3MoKS5vcHRpb25hbCB8fCB0aGlzLm1vZGVsSWQoKSB8fCB0aGlzLmFyZ3MoKS5xdWVyeSkpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZEV4aXN0aW5nTW9kZWwobG9hZE1vZGVsR2VuZXJhdGlvbilcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIGNsZWFyVXBkYXRlZENvbm5lY3Rpb25GYWxsYmFja1RpbWVvdXQoKSB7XG4gICAgaWYgKHRoaXMudXBkYXRlZENvbm5lY3Rpb25GYWxsYmFja1RpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudXBkYXRlZENvbm5lY3Rpb25GYWxsYmFja1RpbWVvdXRJZClcbiAgICAgIHRoaXMudXBkYXRlZENvbm5lY3Rpb25GYWxsYmFja1RpbWVvdXRJZCA9IHVuZGVmaW5lZFxuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgZW5zdXJlSW5pdGlhbExvYWRGYWxsYmFjaygpIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkV2FpdEZvclVwZGF0ZWRDb25uZWN0aW9uKCkgfHwgdGhpcy5pbml0aWFsTG9hZFRyaWdnZXJlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5jbGVhclVwZGF0ZWRDb25uZWN0aW9uRmFsbGJhY2tUaW1lb3V0KClcbiAgICB0aGlzLnVwZGF0ZWRDb25uZWN0aW9uRmFsbGJhY2tUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy51cGRhdGVkQ29ubmVjdGlvblJlYWR5ICYmICF0aGlzLmluaXRpYWxMb2FkVHJpZ2dlcmVkKSB7XG4gICAgICAgIHRoaXMubG9hZE1vZGVsKClcbiAgICAgIH1cbiAgICB9LCAxMDAwKVxuICB9XG5cbiAgLyoqIEBwYXJhbSB7e21vZGVsOiBCYXNlTW9kZWxJbnN0YW5jZX19IGFyZ3MgKi9cbiAgb25EZXN0cm95ZWQgPSAoYXJncykgPT4ge1xuICAgIGNvbnN0IGZvcndhcmRBcmdzID0ge21vZGVsOiBhcmdzLm1vZGVsfVxuXG4gICAgZm9yd2FyZEFyZ3NbdGhpcy5tb2RlbFZhcmlhYmxlTmFtZSgpXSA9IGFyZ3MubW9kZWxcblxuICAgIHRoaXMuYXJncygpLm9uRGVzdHJveWVkKGZvcndhcmRBcmdzKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICBvblNpZ25lZEluID0gKCkgPT4ge1xuICAgIHRoaXMubG9hZE1vZGVsKClcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgb25TaWduZWRPdXQgPSAoKSA9PiB7XG4gICAgdGhpcy5sb2FkTW9kZWwoKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICBvblVwZGF0ZWRFdmVudENvbm5lY3RlZCA9ICgpID0+IHtcbiAgICB0aGlzLnVwZGF0ZWRDb25uZWN0aW9uUmVhZHkgPSB0cnVlXG4gICAgdGhpcy5jbGVhclVwZGF0ZWRDb25uZWN0aW9uRmFsbGJhY2tUaW1lb3V0KClcblxuICAgIGlmICh0aGlzLnNob3VsZFdhaXRGb3JVcGRhdGVkQ29ubmVjdGlvbigpICYmICF0aGlzLmluaXRpYWxMb2FkVHJpZ2dlcmVkKSB7XG4gICAgICB0aGlzLmxvYWRNb2RlbCgpXG4gICAgfVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtCYXNlTW9kZWxJbnN0YW5jZSB8IHVuZGVmaW5lZH0gKi9cbiAgdmlzaWJsZU1vZGVsKCkge1xuICAgIGxldCBtb2RlbCA9IHRoaXMucy5tb2RlbFxuXG4gICAgaWYgKCFtb2RlbCkge1xuICAgICAgbW9kZWwgPSB0aGlzLnN5bmNOZXdNb2RlbCgpXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFjdGl2ZSgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSBlbHNlIGlmICh0aGlzLm1vZGVsSWQoKSAmJiBtb2RlbCAmJiAvKiogQHR5cGUge0Jhc2VNb2RlbFdpdGhJZH0gKi8gKG1vZGVsKS5pZCgpICE9IHRoaXMubW9kZWxJZCgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSBlbHNlIGlmICghdGhpcy5tb2RlbElkKCkgJiYgIXRoaXMuYXJncygpLnF1ZXJ5ICYmICF0aGlzLmFyZ3MoKS5uZXdJZk5vSWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICByZXR1cm4gbW9kZWxcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgdmlzaWJsZU5vdEZvdW5kKCkge1xuICAgIGlmICghdGhpcy5hY3RpdmUoKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlbElkKCkgJiYgdGhpcy52aXNpYmxlTW9kZWwoKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSBlbHNlIGlmICghdGhpcy5tb2RlbElkKCkgJiYgIXRoaXMuYXJncygpLnF1ZXJ5ICYmICF0aGlzLmFyZ3MoKS5uZXdJZk5vSWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zLm5vdEZvdW5kXG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIHNldHVwKCkge1xuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG5cbiAgICB1c2VFZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnMubW9kZWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbnN0IHN5bmNOZXdNb2RlbCA9IHRoaXMuc3luY05ld01vZGVsKClcblxuICAgICAgICAgIGlmIChzeW5jTmV3TW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe21vZGVsOiBzeW5jTmV3TW9kZWwsIG5vdEZvdW5kOiBmYWxzZX0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkV2FpdEZvclVwZGF0ZWRDb25uZWN0aW9uKCkpIHtcbiAgICAgICAgICB0aGlzLmVuc3VyZUluaXRpYWxMb2FkRmFsbGJhY2soKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9hZE1vZGVsKClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRoaXMuY2FjaGVBcmdzKClcbiAgICApXG5cbiAgICAvLyBJbnZhbGlkYXRlIGluLWZsaWdodCBhc3luYyByZXNwb25zZXMgc28gc3RhbGUgbG9hZHMgY2Fubm90IHdyaXRlIGFmdGVyIHVubW91bnQuXG4gICAgdXNlRWZmZWN0KCgpID0+ICgpID0+IHtcbiAgICAgIHRoaXMuY2xlYXJVcGRhdGVkQ29ubmVjdGlvbkZhbGxiYWNrVGltZW91dCgpXG4gICAgICB0aGlzLmxvYWRNb2RlbEdlbmVyYXRpb24gKz0gMVxuICAgIH0sIFtdKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5hcmdzKCkuZXZlbnRzKSByZXR1cm5cblxuICAgICAgdGhpcy5hcmdzKCkuZXZlbnRzLmFkZExpc3RlbmVyKFwicmVsb2FkTW9kZWxcIiwgdGhpcy5sb2FkTW9kZWwpXG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYXJncygpLmV2ZW50cy5yZW1vdmVMaXN0ZW5lcihcInJlbG9hZE1vZGVsXCIsIHRoaXMubG9hZE1vZGVsKVxuICAgICAgfVxuICAgIH0sIFt0aGlzLmFyZ3MoKS5ldmVudHNdKVxuXG4gICAgdXNlVXBkYXRlZEV2ZW50KHRoaXMuc3Vic2NyaXB0aW9uTW9kZWwoKSwgdGhpcy5sb2FkTW9kZWwsIHtcbiAgICAgIG9uQ29ubmVjdGVkOiB0aGlzLm9uVXBkYXRlZEV2ZW50Q29ubmVjdGVkXG4gICAgfSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBEZXZpc2UuZXZlbnRzKCkuYWRkTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25JblwiLCB0aGlzLm9uU2lnbmVkSW4pXG4gICAgICBEZXZpc2UuZXZlbnRzKCkuYWRkTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25PdXRcIiwgdGhpcy5vblNpZ25lZE91dClcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgRGV2aXNlLmV2ZW50cygpLnJlbW92ZUxpc3RlbmVyKFwib25EZXZpc2VTaWduSW5cIiwgdGhpcy5vblNpZ25lZEluKVxuICAgICAgICBEZXZpc2UuZXZlbnRzKCkucmVtb3ZlTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25PdXRcIiwgdGhpcy5vblNpZ25lZE91dClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5zLm1vZGVsIHx8ICF0aGlzLmFyZ3MoKS5vbkRlc3Ryb3llZCkgcmV0dXJuXG5cbiAgICAgIGNvbnN0IGNvbm5lY3REZXN0cm95ZWQgPSBNb2RlbEV2ZW50cy5jb25uZWN0RGVzdHJveWVkKHRoaXMucy5tb2RlbCwgdGhpcy5vbkRlc3Ryb3llZClcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgY29ubmVjdERlc3Ryb3llZC51bnN1YnNjcmliZSgpXG4gICAgICB9XG4gICAgfSwgW3RoaXMuYXJncygpLm9uRGVzdHJveWVkLCB0aGlzLnMubW9kZWwgPyAvKiogQHR5cGUge0Jhc2VNb2RlbFdpdGhJZH0gKi8gKHRoaXMucy5tb2RlbCkuaWQoKSA6IHVuZGVmaW5lZF0pXG4gIH1cbn1cblxuLyoqXG4gKiB1c2VNb2RlbC5cbiAqIEBwYXJhbSB7QmFzZU1vZGVsQ2xhc3MgfCBVc2VNb2RlbE1vZGVsQ2xhc3NSZXNvbHZlcn0gbW9kZWxDbGFzc0FyZ1xuICogQHBhcmFtIHtVc2VNb2RlbEFyZ3NBcmd9IFthcmdzQXJnXVxuICogQHJldHVybnMge1VzZU1vZGVsUmVzdWx0fVxuICovXG5jb25zdCB1c2VNb2RlbCA9IChtb2RlbENsYXNzQXJnLCBhcmdzQXJnID0ge30pID0+IHtcbiAgY29uc3Qgc2hhcGVIb29rID0gdXNlU2hhcGVIb29rKFVzZU1vZGVsU2hhcGVIb29rLCB7YXJnc0FyZywgbW9kZWxDbGFzc0FyZ30pXG4gIGNvbnN0IG1vZGVsID0gc2hhcGVIb29rLnZpc2libGVNb2RlbCgpXG4gIGNvbnN0IG1vZGVsSWQgPSBzaGFwZUhvb2subW9kZWxJZCgpXG4gIGNvbnN0IG5vdEZvdW5kID0gc2hhcGVIb29rLnZpc2libGVOb3RGb3VuZCgpXG4gIGNvbnN0IG1vZGVsVmFyaWFibGVOYW1lID0gc2hhcGVIb29rLm1vZGVsVmFyaWFibGVOYW1lKClcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIG1vZGVsLFxuICAgIG1vZGVsSWQsXG4gICAgbm90Rm91bmRcbiAgfVxuXG4gIHJlc3VsdFttb2RlbFZhcmlhYmxlTmFtZV0gPSBtb2RlbFxuICByZXN1bHRbYCR7bW9kZWxWYXJpYWJsZU5hbWV9SWRgXSA9IG1vZGVsSWRcbiAgcmVzdWx0W2Ake21vZGVsVmFyaWFibGVOYW1lfU5vdEZvdW5kYF0gPSBub3RGb3VuZFxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlTW9kZWxcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-resize-observer.d.ts","sourceRoot":"/src/","sources":["use-resize-observer.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"use-resize-observer.d.ts","sourceRoot":"/src/","sources":["use-resize-observer.js"],"names":[],"mappings":";AAIA;;;;GAIG;AACH,4CAJW,MAAM,uBAEJ,IAAI,CAoBhB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { useCallback, useLayoutEffect, useMemo } from "react";
|
|
2
3
|
import useShape from "./use-shape.js";
|
|
3
4
|
/**
|
|
@@ -23,4 +24,4 @@ const useResizeObserver = (element, callback) => {
|
|
|
23
24
|
}, [element]);
|
|
24
25
|
};
|
|
25
26
|
export default useResizeObserver;
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJlc2l6ZS1vYnNlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidXNlLXJlc2l6ZS1vYnNlcnZlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBQ1osT0FBTyxFQUFDLFdBQVcsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQzNELE9BQU8sUUFBUSxNQUFNLGdCQUFnQixDQUFBO0FBRXJDOzs7O0dBSUc7QUFDSCxNQUFNLGlCQUFpQixHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFO0lBQzlDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUE7SUFDOUIsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRTtRQUN2QyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQ3ZCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNOLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVoRSxlQUFlLENBQUMsR0FBRyxFQUFFO1FBQ25CLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzNCLENBQUM7UUFFRCxPQUFPLEdBQUcsRUFBRTtZQUNWLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFBO1lBQ3ZCLENBQUM7UUFDSCxDQUFDLENBQUE7SUFDSCxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0FBQ2YsQ0FBQyxDQUFBO0FBRUQsZUFBZSxpQkFBaUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuaW1wb3J0IHt1c2VDYWxsYmFjaywgdXNlTGF5b3V0RWZmZWN0LCB1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCIuL3VzZS1zaGFwZS5qc1wiXG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGVsZW1lbnRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuY29uc3QgdXNlUmVzaXplT2JzZXJ2ZXIgPSAoZWxlbWVudCwgY2FsbGJhY2spID0+IHtcbiAgY29uc3QgcyA9IHVzZVNoYXBlKHtjYWxsYmFja30pXG4gIGNvbnN0IG9uUmVzaXplID0gdXNlQ2FsbGJhY2soKC4uLmFyZ3MpID0+IHtcbiAgICBzLnAuY2FsbGJhY2soLi4uYXJncylcbiAgfSwgW10pXG4gIGNvbnN0IG9ic2VydmVyID0gdXNlTWVtbygoKSA9PiBuZXcgUmVzaXplT2JzZXJ2ZXIob25SZXNpemUpLCBbXSlcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VsZW1lbnRdKVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VSZXNpemVPYnNlcnZlclxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-router.d.ts","sourceRoot":"/src/","sources":["use-router.jsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"use-router.d.ts","sourceRoot":"/src/","sources":["use-router.jsx"],"names":[],"mappings":";AAiBA;;;;;;;;EA8GC"}
|
package/build/use-router.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
/* eslint-disable sort-imports */
|
|
2
3
|
import config from "./config.js";
|
|
3
4
|
import escapeStringRegexp from "escape-string-regexp";
|
|
@@ -93,4 +94,4 @@ const useRouter = (props) => {
|
|
|
93
94
|
return { match };
|
|
94
95
|
};
|
|
95
96
|
export default useRouter;
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidXNlLXJvdXRlci5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLGtCQUFrQixNQUFNLHNCQUFzQixDQUFBO0FBQ3JELE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFFLE9BQU8sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUMxQyxPQUFPLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztJQUN4QyxPQUFPLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVO0lBQ25DLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTtJQUN0QixnQkFBZ0IsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7SUFDN0MsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtDQUNwQyxDQUFDLENBQUE7QUFFRixNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQzFCLFNBQVMsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUV4RSxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFekIsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7UUFDdEQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRTdDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztnQkFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1FBQy9CLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFBO1FBRS9DLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVOLE1BQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDdkcsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUV6RSxNQUFNLHFCQUFxQixHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7UUFDN0MsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsRUFBRSxDQUFBO1FBQzlDLE1BQU0sTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFBO1FBQzFCLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQTtRQUM1QixNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQTtRQUVqQyxLQUFLLE1BQU0sTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakMsS0FBSyxNQUFNLGVBQWUsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdEQsTUFBTSxhQUFhLEdBQUcsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQTtnQkFDOUUsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFBO2dCQUUvQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQTtnQkFFckIsSUFBSSxDQUFDLENBQUMsYUFBYSxJQUFJLE1BQU0sQ0FBQztvQkFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLGFBQWEseUJBQXlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtnQkFFNUYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQTtnQkFDdkUsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO2dCQUNqQixJQUFJLGVBQWUsR0FBRyxHQUFHLENBQUE7Z0JBRXpCLGVBQWUsSUFBSSxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFFaEQsT0FBTyxJQUFJLEVBQUUsQ0FBQztvQkFDWixNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO29CQUUxQyxJQUFJLENBQUMsS0FBSzt3QkFBRSxNQUFLO29CQUVqQixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBRTdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7b0JBRXpCLGVBQWUsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQTtnQkFDaEUsQ0FBQztnQkFFRCxlQUFlLElBQUksR0FBRyxDQUFBO2dCQUV0QixNQUFNLFNBQVMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtnQkFFN0Msc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUMsQ0FBQyxDQUFBO1lBQ25FLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxzQkFBc0IsQ0FBQTtJQUMvQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRXpFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBQyxzQkFBc0IsRUFBQyxDQUFDLENBQUE7SUFFdEMsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLE9BQU8sRUFBRSxDQUFBO1FBRXRCLEtBQUssTUFBTSxxQkFBcUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDL0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUN6RCxJQUFJLE9BQU8sRUFBRSxNQUFNLENBQUE7WUFFbkIsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixPQUFPLEdBQUcsSUFBSSxDQUFBO2dCQUNkLE1BQU0sR0FBRyxFQUFFLENBQUE7Z0JBRVgsS0FBSyxNQUFNLFFBQVEsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEQsTUFBTSxTQUFTLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO29CQUV4RCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDakQsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLElBQUksSUFBSSxFQUFFLElBQUkscUJBQXFCLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxHQUFHO2dCQUFFLE9BQU8sR0FBRyxJQUFJLENBQUE7WUFDbkYsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixPQUFPLEVBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFDLENBQUE7WUFDeEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixNQUFNLGFBQWEsR0FBRyxpQkFBaUIsRUFBRSxDQUFBO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLGFBQWEsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFBO0lBQzFDLE1BQU0sS0FBSyxHQUFHO1FBQ1osYUFBYTtRQUNiLE1BQU07S0FDUCxDQUFBO0lBRUQsT0FBTyxFQUFDLEtBQUssRUFBQyxDQUFBO0FBQ2hCLENBQUMsQ0FBQTtBQUVELGVBQWUsU0FBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuL2NvbmZpZy5qc1wiXG5pbXBvcnQgZXNjYXBlU3RyaW5nUmVnZXhwIGZyb20gXCJlc2NhcGUtc3RyaW5nLXJlZ2V4cFwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcIi4vdXNlLXNoYXBlLmpzXCJcblxuY29uc3QgdXNlUm91dGVyUHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICBsb2NhbGVzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgcGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgcm91dGVEZWZpbml0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICByb3V0ZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxufSlcblxuY29uc3QgdXNlUm91dGVyID0gKHByb3BzKSA9PiB7XG4gIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyh1c2VSb3V0ZXJQcm9wVHlwZXMsIHByb3BzLCBcInByb3BcIiwgXCJ1c2VSb3V0ZXJcIilcblxuICBjb25zdCBzID0gdXNlU2hhcGUocHJvcHMpXG5cbiAgY29uc3QgZmluZFJvdXRlUGFyYW1zID0gdXNlQ2FsbGJhY2soKHJvdXRlRGVmaW5pdGlvbikgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdXG4gICAgY29uc3QgcGFydHMgPSByb3V0ZURlZmluaXRpb24ucGF0aC5zcGxpdChcIi9cIilcblxuICAgIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykge1xuICAgICAgaWYgKHBhcnQubWF0Y2goL146KFthLXpfXSspJC8pKVxuICAgICAgICByZXN1bHQucHVzaChwYXJ0KVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfSwgW10pXG5cbiAgY29uc3QgZ2V0UGF0aCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBsZXQgcGF0aCA9IHMucC5wYXRoIHx8IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZVxuXG4gICAgcGF0aCA9IHBhdGgucmVwbGFjZSgvWy9dKyQvLCBcIlwiKVxuXG4gICAgcmV0dXJuIHBhdGhcbiAgfSwgW10pXG5cbiAgY29uc3QgZ2V0Um91dGVEZWZpbml0aW9ucyA9IHVzZUNhbGxiYWNrKCgpID0+IHMucC5yb3V0ZURlZmluaXRpb25zIHx8IGNvbmZpZy5nZXRSb3V0ZURlZmluaXRpb25zKCksIFtdKVxuICBjb25zdCBnZXRSb3V0ZXMgPSB1c2VDYWxsYmFjaygoKSA9PiBzLnAucm91dGVzIHx8IGNvbmZpZy5nZXRSb3V0ZXMoKSwgW10pXG5cbiAgY29uc3QgcGFyc2VSb3V0ZURlZmluaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHJvdXRlRGVmaW5pdGlvbnMgPSBnZXRSb3V0ZURlZmluaXRpb25zKClcbiAgICBjb25zdCByb3V0ZXMgPSBnZXRSb3V0ZXMoKVxuICAgIGNvbnN0IHJlZ2V4ID0gLzooW0EtelxcZF9dKykvXG4gICAgY29uc3QgcGFyc2VkUm91dGVEZWZpbml0aW9ucyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGxvY2FsZSBvZiBzLnAubG9jYWxlcykge1xuICAgICAgZm9yIChjb25zdCByb3V0ZURlZmluaXRpb24gb2Ygcm91dGVEZWZpbml0aW9ucy5yb3V0ZXMpIHtcbiAgICAgICAgY29uc3Qgcm91dGVQYXRoTmFtZSA9IGAke2luZmxlY3Rpb24uY2FtZWxpemUocm91dGVEZWZpbml0aW9uLm5hbWUsIHRydWUpfVBhdGhgXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IGZpbmRSb3V0ZVBhcmFtcyhyb3V0ZURlZmluaXRpb24pXG5cbiAgICAgICAgcGFyYW1zLnB1c2goe2xvY2FsZX0pXG5cbiAgICAgICAgaWYgKCEocm91dGVQYXRoTmFtZSBpbiByb3V0ZXMpKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtyb3V0ZVBhdGhOYW1lfSBub3QgZm91bmQgaW4gcm91dGVzOiAke09iamVjdC5rZXlzKHJvdXRlcykuam9pbihcIiwgXCIpfWApXG5cbiAgICAgICAgY29uc3Qgcm91dGVQYXRoID0gcm91dGVzW3JvdXRlUGF0aE5hbWVdKC4uLnBhcmFtcykucmVwbGFjZSgvWy9dKyQvLCBcIlwiKVxuICAgICAgICBjb25zdCBncm91cHMgPSBbXVxuICAgICAgICBsZXQgcGF0aFJlZ2V4U3RyaW5nID0gXCJeXCJcblxuICAgICAgICBwYXRoUmVnZXhTdHJpbmcgKz0gZXNjYXBlU3RyaW5nUmVnZXhwKHJvdXRlUGF0aClcblxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgIGNvbnN0IG1hdGNoID0gcGF0aFJlZ2V4U3RyaW5nLm1hdGNoKHJlZ2V4KVxuXG4gICAgICAgICAgaWYgKCFtYXRjaCkgYnJlYWtcblxuICAgICAgICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IG1hdGNoWzFdXG5cbiAgICAgICAgICBncm91cHMucHVzaCh2YXJpYWJsZU5hbWUpXG5cbiAgICAgICAgICBwYXRoUmVnZXhTdHJpbmcgPSBwYXRoUmVnZXhTdHJpbmcucmVwbGFjZShtYXRjaFswXSwgXCIoW14vXSspXCIpXG4gICAgICAgIH1cblxuICAgICAgICBwYXRoUmVnZXhTdHJpbmcgKz0gXCIkXCJcblxuICAgICAgICBjb25zdCBwYXRoUmVnZXggPSBuZXcgUmVnRXhwKHBhdGhSZWdleFN0cmluZylcblxuICAgICAgICBwYXJzZWRSb3V0ZURlZmluaXRpb25zLnB1c2goe2dyb3VwcywgcGF0aFJlZ2V4LCByb3V0ZURlZmluaXRpb259KVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXJzZWRSb3V0ZURlZmluaXRpb25zXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHBhcnNlZFJvdXRlRGVmaW5pdGlvbnMgPSB1c2VNZW1vKCgpID0+IHBhcnNlUm91dGVEZWZpbml0aW9ucygpLCBbXSlcblxuICBzLnVwZGF0ZU1ldGEoe3BhcnNlZFJvdXRlRGVmaW5pdGlvbnN9KVxuXG4gIGNvbnN0IGZpbmRNYXRjaGluZ1JvdXRlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBnZXRQYXRoKClcblxuICAgIGZvciAoY29uc3QgcGFyc2VkUm91dGVEZWZpbml0aW9uIG9mIHMubS5wYXJzZWRSb3V0ZURlZmluaXRpb25zKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IHBhdGgubWF0Y2gocGFyc2VkUm91dGVEZWZpbml0aW9uLnBhdGhSZWdleClcbiAgICAgIGxldCBtYXRjaGVkLCBwYXJhbXNcblxuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIG1hdGNoZWQgPSB0cnVlXG4gICAgICAgIHBhcmFtcyA9IHt9XG5cbiAgICAgICAgZm9yIChjb25zdCBncm91cEtleSBpbiBwYXJzZWRSb3V0ZURlZmluaXRpb24uZ3JvdXBzKSB7XG4gICAgICAgICAgY29uc3QgZ3JvdXBOYW1lID0gcGFyc2VkUm91dGVEZWZpbml0aW9uLmdyb3Vwc1tncm91cEtleV1cblxuICAgICAgICAgIHBhcmFtc1tncm91cE5hbWVdID0gbWF0Y2hbTnVtYmVyKGdyb3VwS2V5KSArIDFdXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHBhdGggPT0gXCJcIiAmJiBwYXJzZWRSb3V0ZURlZmluaXRpb24ucm91dGVEZWZpbml0aW9uLnBhdGggPT0gXCIvXCIpIG1hdGNoZWQgPSB0cnVlXG4gICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICByZXR1cm4ge3BhcmFtcywgcGFyc2VkUm91dGVEZWZpbml0aW9ufVxuICAgICAgfVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgbWF0Y2hpbmdSb3V0ZSA9IGZpbmRNYXRjaGluZ1JvdXRlKClcbiAgY29uc3QgcGFyYW1zID0gbWF0Y2hpbmdSb3V0ZT8ucGFyYW1zIHx8IHt9XG4gIGNvbnN0IG1hdGNoID0ge1xuICAgIG1hdGNoaW5nUm91dGUsXG4gICAgcGFyYW1zXG4gIH1cblxuICByZXR1cm4ge21hdGNofVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VSb3V0ZXJcbiJdfQ==
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidXNlLXJvdXRlci5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLGlDQUFpQztBQUNqQyxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxrQkFBa0IsTUFBTSxzQkFBc0IsQ0FBQTtBQUNyRCxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUE7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDMUMsT0FBTyxRQUFRLE1BQU0sZ0JBQWdCLENBQUE7QUFFckMsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUM7SUFDeEMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVTtJQUNuQyxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07SUFDdEIsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0lBQzdDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7Q0FDcEMsQ0FBQyxDQUFBO0FBRUYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUMxQixTQUFTLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFFeEUsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRXpCLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFO1FBQ3RELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUNqQixNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUU3QyxL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LElBQUksRUFBRSxJQUFJLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksR0FBRztnQkFBRSxPQUFPLEdBQUcsSUFBSSxDQUFBO1lBQ25GLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osT0FBTyxFQUFDLE1BQU0sRUFBRSxxQkFBcUIsRUFBQyxDQUFBO1lBQ3hDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sTUFBTSxhQUFhLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQTtJQUN6QyxNQUFNLE1BQU0sR0FBRyxhQUFhLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQTtJQUMxQyxNQUFNLEtBQUssR0FBRztRQUNaLGFBQWE7UUFDYixNQUFNO0tBQ1AsQ0FBQTtJQUVELE9BQU8sRUFBQyxLQUFLLEVBQUMsQ0FBQTtBQUNoQixDQUFDLENBQUE7QUFFRCxlQUFlLFNBQVMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuL2NvbmZpZy5qc1wiXG5pbXBvcnQgZXNjYXBlU3RyaW5nUmVnZXhwIGZyb20gXCJlc2NhcGUtc3RyaW5nLXJlZ2V4cFwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcIi4vdXNlLXNoYXBlLmpzXCJcblxuY29uc3QgdXNlUm91dGVyUHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICBsb2NhbGVzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgcGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgcm91dGVEZWZpbml0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICByb3V0ZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxufSlcblxuY29uc3QgdXNlUm91dGVyID0gKHByb3BzKSA9PiB7XG4gIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyh1c2VSb3V0ZXJQcm9wVHlwZXMsIHByb3BzLCBcInByb3BcIiwgXCJ1c2VSb3V0ZXJcIilcblxuICBjb25zdCBzID0gdXNlU2hhcGUocHJvcHMpXG5cbiAgY29uc3QgZmluZFJvdXRlUGFyYW1zID0gdXNlQ2FsbGJhY2soKHJvdXRlRGVmaW5pdGlvbikgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdXG4gICAgY29uc3QgcGFydHMgPSByb3V0ZURlZmluaXRpb24ucGF0aC5zcGxpdChcIi9cIilcblxuICAgIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykge1xuICAgICAgaWYgKHBhcnQubWF0Y2goL146KFthLXpfXSspJC8pKVxuICAgICAgICByZXN1bHQucHVzaChwYXJ0KVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfSwgW10pXG5cbiAgY29uc3QgZ2V0UGF0aCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBsZXQgcGF0aCA9IHMucC5wYXRoIHx8IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZVxuXG4gICAgcGF0aCA9IHBhdGgucmVwbGFjZSgvWy9dKyQvLCBcIlwiKVxuXG4gICAgcmV0dXJuIHBhdGhcbiAgfSwgW10pXG5cbiAgY29uc3QgZ2V0Um91dGVEZWZpbml0aW9ucyA9IHVzZUNhbGxiYWNrKCgpID0+IHMucC5yb3V0ZURlZmluaXRpb25zIHx8IGNvbmZpZy5nZXRSb3V0ZURlZmluaXRpb25zKCksIFtdKVxuICBjb25zdCBnZXRSb3V0ZXMgPSB1c2VDYWxsYmFjaygoKSA9PiBzLnAucm91dGVzIHx8IGNvbmZpZy5nZXRSb3V0ZXMoKSwgW10pXG5cbiAgY29uc3QgcGFyc2VSb3V0ZURlZmluaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHJvdXRlRGVmaW5pdGlvbnMgPSBnZXRSb3V0ZURlZmluaXRpb25zKClcbiAgICBjb25zdCByb3V0ZXMgPSBnZXRSb3V0ZXMoKVxuICAgIGNvbnN0IHJlZ2V4ID0gLzooW0EtelxcZF9dKykvXG4gICAgY29uc3QgcGFyc2VkUm91dGVEZWZpbml0aW9ucyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGxvY2FsZSBvZiBzLnAubG9jYWxlcykge1xuICAgICAgZm9yIChjb25zdCByb3V0ZURlZmluaXRpb24gb2Ygcm91dGVEZWZpbml0aW9ucy5yb3V0ZXMpIHtcbiAgICAgICAgY29uc3Qgcm91dGVQYXRoTmFtZSA9IGAke2luZmxlY3Rpb24uY2FtZWxpemUocm91dGVEZWZpbml0aW9uLm5hbWUsIHRydWUpfVBhdGhgXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IGZpbmRSb3V0ZVBhcmFtcyhyb3V0ZURlZmluaXRpb24pXG5cbiAgICAgICAgcGFyYW1zLnB1c2goe2xvY2FsZX0pXG5cbiAgICAgICAgaWYgKCEocm91dGVQYXRoTmFtZSBpbiByb3V0ZXMpKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtyb3V0ZVBhdGhOYW1lfSBub3QgZm91bmQgaW4gcm91dGVzOiAke09iamVjdC5rZXlzKHJvdXRlcykuam9pbihcIiwgXCIpfWApXG5cbiAgICAgICAgY29uc3Qgcm91dGVQYXRoID0gcm91dGVzW3JvdXRlUGF0aE5hbWVdKC4uLnBhcmFtcykucmVwbGFjZSgvWy9dKyQvLCBcIlwiKVxuICAgICAgICBjb25zdCBncm91cHMgPSBbXVxuICAgICAgICBsZXQgcGF0aFJlZ2V4U3RyaW5nID0gXCJeXCJcblxuICAgICAgICBwYXRoUmVnZXhTdHJpbmcgKz0gZXNjYXBlU3RyaW5nUmVnZXhwKHJvdXRlUGF0aClcblxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgIGNvbnN0IG1hdGNoID0gcGF0aFJlZ2V4U3RyaW5nLm1hdGNoKHJlZ2V4KVxuXG4gICAgICAgICAgaWYgKCFtYXRjaCkgYnJlYWtcblxuICAgICAgICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IG1hdGNoWzFdXG5cbiAgICAgICAgICBncm91cHMucHVzaCh2YXJpYWJsZU5hbWUpXG5cbiAgICAgICAgICBwYXRoUmVnZXhTdHJpbmcgPSBwYXRoUmVnZXhTdHJpbmcucmVwbGFjZShtYXRjaFswXSwgXCIoW14vXSspXCIpXG4gICAgICAgIH1cblxuICAgICAgICBwYXRoUmVnZXhTdHJpbmcgKz0gXCIkXCJcblxuICAgICAgICBjb25zdCBwYXRoUmVnZXggPSBuZXcgUmVnRXhwKHBhdGhSZWdleFN0cmluZylcblxuICAgICAgICBwYXJzZWRSb3V0ZURlZmluaXRpb25zLnB1c2goe2dyb3VwcywgcGF0aFJlZ2V4LCByb3V0ZURlZmluaXRpb259KVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXJzZWRSb3V0ZURlZmluaXRpb25zXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHBhcnNlZFJvdXRlRGVmaW5pdGlvbnMgPSB1c2VNZW1vKCgpID0+IHBhcnNlUm91dGVEZWZpbml0aW9ucygpLCBbXSlcblxuICBzLnVwZGF0ZU1ldGEoe3BhcnNlZFJvdXRlRGVmaW5pdGlvbnN9KVxuXG4gIGNvbnN0IGZpbmRNYXRjaGluZ1JvdXRlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBnZXRQYXRoKClcblxuICAgIGZvciAoY29uc3QgcGFyc2VkUm91dGVEZWZpbml0aW9uIG9mIHMubS5wYXJzZWRSb3V0ZURlZmluaXRpb25zKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IHBhdGgubWF0Y2gocGFyc2VkUm91dGVEZWZpbml0aW9uLnBhdGhSZWdleClcbiAgICAgIGxldCBtYXRjaGVkLCBwYXJhbXNcblxuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIG1hdGNoZWQgPSB0cnVlXG4gICAgICAgIHBhcmFtcyA9IHt9XG5cbiAgICAgICAgZm9yIChjb25zdCBncm91cEtleSBpbiBwYXJzZWRSb3V0ZURlZmluaXRpb24uZ3JvdXBzKSB7XG4gICAgICAgICAgY29uc3QgZ3JvdXBOYW1lID0gcGFyc2VkUm91dGVEZWZpbml0aW9uLmdyb3Vwc1tncm91cEtleV1cblxuICAgICAgICAgIHBhcmFtc1tncm91cE5hbWVdID0gbWF0Y2hbTnVtYmVyKGdyb3VwS2V5KSArIDFdXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHBhdGggPT0gXCJcIiAmJiBwYXJzZWRSb3V0ZURlZmluaXRpb24ucm91dGVEZWZpbml0aW9uLnBhdGggPT0gXCIvXCIpIG1hdGNoZWQgPSB0cnVlXG4gICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICByZXR1cm4ge3BhcmFtcywgcGFyc2VkUm91dGVEZWZpbml0aW9ufVxuICAgICAgfVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgbWF0Y2hpbmdSb3V0ZSA9IGZpbmRNYXRjaGluZ1JvdXRlKClcbiAgY29uc3QgcGFyYW1zID0gbWF0Y2hpbmdSb3V0ZT8ucGFyYW1zIHx8IHt9XG4gIGNvbnN0IG1hdGNoID0ge1xuICAgIG1hdGNoaW5nUm91dGUsXG4gICAgcGFyYW1zXG4gIH1cblxuICByZXR1cm4ge21hdGNofVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VSb3V0ZXJcbiJdfQ==
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export default useScreenLayout;
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
export type ScreenLayout = "xs" | "sm" | "md" | "lg" | "xl" | "xxl";
|
|
3
|
+
export type SharedScreenLayout = {
|
|
4
|
+
screenLayout?: ScreenLayout;
|
|
5
|
+
width?: number;
|
|
6
|
+
};
|
|
7
|
+
/** @returns {ScreenLayout | undefined} */
|
|
8
|
+
declare function useScreenLayout(): ScreenLayout | undefined;
|
|
4
9
|
//# sourceMappingURL=use-screen-layout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-screen-layout.d.ts","sourceRoot":"/src/","sources":["use-screen-layout.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"use-screen-layout.d.ts","sourceRoot":"/src/","sources":["use-screen-layout.js"],"names":[],"mappings":";2BAKc,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK;iCACxC;IAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC;AAwB3D,0CAA0C;AAC1C,oCADc,YAAY,GAAG,SAAS,CA2BrC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { Platform, useWindowDimensions } from "react-native";
|
|
2
3
|
import { useCallback, useMemo, useState } from "react";
|
|
3
4
|
import useEventListener from "ya-use-event-listener";
|
|
5
|
+
/** @typedef {"xs" | "sm" | "md" | "lg" | "xl" | "xxl"} ScreenLayout */
|
|
6
|
+
/** @typedef {{screenLayout?: ScreenLayout, width?: number}} SharedScreenLayout */
|
|
4
7
|
/**
|
|
5
8
|
* @param {number} width
|
|
6
|
-
* @returns {
|
|
9
|
+
* @returns {ScreenLayout | undefined}
|
|
7
10
|
*/
|
|
8
11
|
const getWindowLayout = (width) => {
|
|
9
12
|
if (width <= 575) {
|
|
@@ -28,15 +31,15 @@ const getWindowLayout = (width) => {
|
|
|
28
31
|
console.error(`Couldn't determine window layout from width: ${width}`);
|
|
29
32
|
}
|
|
30
33
|
};
|
|
31
|
-
/** @returns {
|
|
34
|
+
/** @returns {ScreenLayout | undefined} */
|
|
32
35
|
const useScreenLayout = () => {
|
|
33
36
|
if (Platform.OS == "web") {
|
|
34
|
-
const shared = useMemo(() => /** @type {
|
|
37
|
+
const shared = useMemo(() => /** @type {SharedScreenLayout} */ ({}), []);
|
|
35
38
|
shared.width = window.innerWidth;
|
|
36
39
|
const [screenLayout, setScreenLayout] = useState(() => getWindowLayout(shared.width));
|
|
37
40
|
const onResize = useCallback(() => {
|
|
38
41
|
const newWindowLayout = getWindowLayout(window.innerWidth);
|
|
39
|
-
if (shared.
|
|
42
|
+
if (shared.screenLayout != newWindowLayout) {
|
|
40
43
|
setScreenLayout(newWindowLayout);
|
|
41
44
|
}
|
|
42
45
|
}, []);
|
|
@@ -50,4 +53,4 @@ const useScreenLayout = () => {
|
|
|
50
53
|
}
|
|
51
54
|
};
|
|
52
55
|
export default useScreenLayout;
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXNjcmVlbi1sYXlvdXQuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1zY3JlZW4tbGF5b3V0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFDWixPQUFPLEVBQUMsUUFBUSxFQUFFLG1CQUFtQixFQUFDLE1BQU0sY0FBYyxDQUFBO0FBQzFELE9BQU8sRUFBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNwRCxPQUFPLGdCQUFnQixNQUFNLHVCQUF1QixDQUFBO0FBRXBELHVFQUF1RTtBQUN2RSxrRkFBa0Y7QUFFbEY7OztHQUdHO0FBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUNoQyxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNqQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7U0FBTSxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7U0FBTSxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7U0FBTSxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7U0FBTSxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7U0FBTSxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN6QixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxnREFBZ0QsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUN4RSxDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsMENBQTBDO0FBQzFDLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRTtJQUMzQixJQUFJLFFBQVEsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFeEUsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFBO1FBRWhDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUVyRixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7WUFFMUQsSUFBSSxNQUFNLENBQUMsWUFBWSxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUMzQyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDbEMsQ0FBQztRQUNILENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVOLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFFNUMsTUFBTSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUE7UUFFbEMsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFBO0lBQzVCLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsRUFBRSxDQUFBO1FBRTlDLE9BQU8sZUFBZSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hELENBQUM7QUFDSCxDQUFDLENBQUE7QUFFRCxlQUFlLGVBQWUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuaW1wb3J0IHtQbGF0Zm9ybSwgdXNlV2luZG93RGltZW5zaW9uc30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZX0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB1c2VFdmVudExpc3RlbmVyIGZyb20gXCJ5YS11c2UtZXZlbnQtbGlzdGVuZXJcIlxuXG4vKiogQHR5cGVkZWYge1wieHNcIiB8IFwic21cIiB8IFwibWRcIiB8IFwibGdcIiB8IFwieGxcIiB8IFwieHhsXCJ9IFNjcmVlbkxheW91dCAqL1xuLyoqIEB0eXBlZGVmIHt7c2NyZWVuTGF5b3V0PzogU2NyZWVuTGF5b3V0LCB3aWR0aD86IG51bWJlcn19IFNoYXJlZFNjcmVlbkxheW91dCAqL1xuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aFxuICogQHJldHVybnMge1NjcmVlbkxheW91dCB8IHVuZGVmaW5lZH1cbiAqL1xuY29uc3QgZ2V0V2luZG93TGF5b3V0ID0gKHdpZHRoKSA9PiB7XG4gIGlmICh3aWR0aCA8PSA1NzUpIHtcbiAgICByZXR1cm4gXCJ4c1wiXG4gIH0gZWxzZSBpZiAod2lkdGggPD0gNzY3KSB7XG4gICAgcmV0dXJuIFwic21cIlxuICB9IGVsc2UgaWYgKHdpZHRoIDw9IDk5MSkge1xuICAgIHJldHVybiBcIm1kXCJcbiAgfSBlbHNlIGlmICh3aWR0aCA8PSAxMTk5KSB7XG4gICAgcmV0dXJuIFwibGdcIlxuICB9IGVsc2UgaWYgKHdpZHRoIDw9IDEzOTkpIHtcbiAgICByZXR1cm4gXCJ4bFwiXG4gIH0gZWxzZSBpZiAod2lkdGggPj0gMTQwMCkge1xuICAgIHJldHVybiBcInh4bFwiXG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5lcnJvcihgQ291bGRuJ3QgZGV0ZXJtaW5lIHdpbmRvdyBsYXlvdXQgZnJvbSB3aWR0aDogJHt3aWR0aH1gKVxuICB9XG59XG5cbi8qKiBAcmV0dXJucyB7U2NyZWVuTGF5b3V0IHwgdW5kZWZpbmVkfSAqL1xuY29uc3QgdXNlU2NyZWVuTGF5b3V0ID0gKCkgPT4ge1xuICBpZiAoUGxhdGZvcm0uT1MgPT0gXCJ3ZWJcIikge1xuICAgIGNvbnN0IHNoYXJlZCA9IHVzZU1lbW8oKCkgPT4gLyoqIEB0eXBlIHtTaGFyZWRTY3JlZW5MYXlvdXR9ICovICh7fSksIFtdKVxuXG4gICAgc2hhcmVkLndpZHRoID0gd2luZG93LmlubmVyV2lkdGhcblxuICAgIGNvbnN0IFtzY3JlZW5MYXlvdXQsIHNldFNjcmVlbkxheW91dF0gPSB1c2VTdGF0ZSgoKSA9PiBnZXRXaW5kb3dMYXlvdXQoc2hhcmVkLndpZHRoKSlcblxuICAgIGNvbnN0IG9uUmVzaXplID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgY29uc3QgbmV3V2luZG93TGF5b3V0ID0gZ2V0V2luZG93TGF5b3V0KHdpbmRvdy5pbm5lcldpZHRoKVxuXG4gICAgICBpZiAoc2hhcmVkLnNjcmVlbkxheW91dCAhPSBuZXdXaW5kb3dMYXlvdXQpIHtcbiAgICAgICAgc2V0U2NyZWVuTGF5b3V0KG5ld1dpbmRvd0xheW91dClcbiAgICAgIH1cbiAgICB9LCBbXSlcblxuICAgIHVzZUV2ZW50TGlzdGVuZXIod2luZG93LCBcInJlc2l6ZVwiLCBvblJlc2l6ZSlcblxuICAgIHNoYXJlZC5zY3JlZW5MYXlvdXQgPSBzY3JlZW5MYXlvdXRcblxuICAgIHJldHVybiBzaGFyZWQuc2NyZWVuTGF5b3V0XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgd2luZG93RGltZW5zaW9ucyA9IHVzZVdpbmRvd0RpbWVuc2lvbnMoKVxuXG4gICAgcmV0dXJuIGdldFdpbmRvd0xheW91dCh3aW5kb3dEaW1lbnNpb25zLndpZHRoKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZVNjcmVlbkxheW91dFxuIl19
|
package/build/use-shape.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
export { default } from "set-state-compare/build/use-shape.js";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXNoYXBlLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2Utc2hhcGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuZXhwb3J0IHtkZWZhdWx0fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvdXNlLXNoYXBlLmpzXCJcbiJdfQ==
|
package/build/use-styles.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {
|
|
3
|
-
* @param {string | Array<string |
|
|
4
|
-
* @param {Array<
|
|
5
|
-
* @returns {Array<
|
|
2
|
+
* @param {StyleDictionary} styles
|
|
3
|
+
* @param {string | Array<string | StyleFlags> | StyleFlags} args
|
|
4
|
+
* @param {Array<boolean | number | string | null | undefined>} [dependencies]
|
|
5
|
+
* @returns {Array<NamedStyle>}
|
|
6
6
|
*/
|
|
7
|
-
export default function useStyles(styles:
|
|
7
|
+
export default function useStyles(styles: StyleDictionary, args: string | Array<string | StyleFlags> | StyleFlags, dependencies?: Array<boolean | number | string | null | undefined>): Array<NamedStyle>;
|
|
8
|
+
export type BreakpointValue = boolean | string | ((args: object) => object);
|
|
9
|
+
export type BreakpointState = Record<string, BreakpointValue>;
|
|
10
|
+
export type NamedStyle = import("react-native").ImageStyle | import("react-native").TextStyle | import("react-native").ViewStyle;
|
|
11
|
+
export type StyleDictionary = Record<string, NamedStyle>;
|
|
12
|
+
export type StyleFlags = Record<string, boolean>;
|
|
13
|
+
export type ReverseBreakpoints = Array<[string, BreakpointValue]>;
|
|
8
14
|
//# sourceMappingURL=use-styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-styles.d.ts","sourceRoot":"/src/","sources":["use-styles.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-styles.d.ts","sourceRoot":"/src/","sources":["use-styles.js"],"names":[],"mappings":"AA+CA;;;;;GAKG;AACH,0CALW,eAAe,QACf,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,UAAU,iBAChD,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GACjD,KAAK,CAAC,UAAU,CAAC,CAiC7B;8BA5Ea,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;8BAC7C,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;yBAC/B,OAAO,cAAc,EAAE,UAAU,GAAG,OAAO,cAAc,EAAE,SAAS,GAAG,OAAO,cAAc,EAAE,SAAS;8BACvG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;yBAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;iCACvB,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC"}
|