@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/link.js
CHANGED
|
@@ -1,14 +1,31 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// @ts-check
|
|
2
3
|
/* eslint-disable sort-imports */
|
|
3
4
|
import { Platform, Pressable, StyleSheet } from "react-native";
|
|
4
|
-
import { shapeComponent } from "set-state-compare/build/shape-component.js";
|
|
5
|
-
import BaseComponent from "./base-component";
|
|
5
|
+
import { ShapeComponent, shapeComponent } from "set-state-compare/build/shape-component.js";
|
|
6
6
|
import PropTypes from "prop-types";
|
|
7
7
|
import React from "react";
|
|
8
8
|
import dataSetToAttributes from "./data-set-to-attributes.js";
|
|
9
9
|
import memo from "set-state-compare/build/memo.js";
|
|
10
10
|
import { useApiMaker } from "./with-api-maker";
|
|
11
|
-
|
|
11
|
+
/** @typedef {{pressed?: boolean, focused?: boolean, hovered?: boolean}} LinkStyleState */
|
|
12
|
+
/**
|
|
13
|
+
* @typedef {Partial<import("react-native").ViewStyle & import("react").CSSProperties> &
|
|
14
|
+
* {paddingHorizontal?: number|string, paddingVertical?: number|string}} ResolvedStyle
|
|
15
|
+
*/
|
|
16
|
+
/** @typedef {import("react-native").StyleProp<import("react-native").ViewStyle>} NativeLinkStyle */
|
|
17
|
+
/** @typedef {NativeLinkStyle | ((state: LinkStyleState) => NativeLinkStyle)} PressableLinkStyle */
|
|
18
|
+
/** @typedef {import("react").CSSProperties | PressableLinkStyle} LinkStyle */
|
|
19
|
+
/** @typedef {{paddingHorizontal?: number|string, paddingVertical?: number|string, style?: LinkStyle, usePressable?: boolean}} LinkStyleArgs */
|
|
20
|
+
/** @typedef {{paddingBottom?: number|string, paddingLeft?: number|string, paddingRight?: number|string, paddingTop?: number|string}} PaddingOverrides */
|
|
21
|
+
/**
|
|
22
|
+
* @typedef {object} Props
|
|
23
|
+
* @property {number|string} [paddingHorizontal]
|
|
24
|
+
* @property {number|string} [paddingVertical]
|
|
25
|
+
* @property {boolean} [usePressable]
|
|
26
|
+
*/
|
|
27
|
+
/** @typedef {Record<string, never>} State */
|
|
28
|
+
export default memo(shapeComponent(/** @augments {ShapeComponent<Props, State>} */ class ApiMakerLink extends ShapeComponent {
|
|
12
29
|
static propTypes = {
|
|
13
30
|
paddingHorizontal: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
14
31
|
paddingVertical: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
@@ -21,18 +38,26 @@ export default memo(shapeComponent(class ApiMakerLink extends BaseComponent {
|
|
|
21
38
|
const { dataSet, to, onClick, onPress, paddingHorizontal, paddingVertical, style, testID, usePressable, ...restProps } = this.props;
|
|
22
39
|
const linkStyle = this.linkStyle({ paddingHorizontal, paddingVertical, style, usePressable });
|
|
23
40
|
if (Platform.OS == "web" && !usePressable) {
|
|
24
|
-
return (_jsx("a", { ...dataSetToAttributes(Object.assign({ testid: testID }, dataSet)), href: to || "#", onClick: this.tt.onLinkClicked, style: linkStyle, ...restProps }));
|
|
41
|
+
return (_jsx("a", { ...dataSetToAttributes(Object.assign({ testid: testID }, dataSet)), href: to || "#", onClick: this.tt.onLinkClicked, style: /** @type {import("react").CSSProperties} */ (linkStyle), ...restProps }));
|
|
25
42
|
}
|
|
26
|
-
return (_jsx(Pressable, { dataSet: dataSet, onPress: this.tt.onPress, style: linkStyle, testID: testID, ...restProps }));
|
|
43
|
+
return (_jsx(Pressable, { dataSet: dataSet, onPress: this.tt.onPress, style: /** @type {PressableLinkStyle} */ (linkStyle), testID: testID, ...restProps }));
|
|
27
44
|
}
|
|
28
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Returns a cached style with padding props applied.
|
|
47
|
+
* @param {LinkStyleArgs} root0
|
|
48
|
+
* @returns {LinkStyle}
|
|
49
|
+
*/
|
|
29
50
|
linkStyle({ paddingHorizontal, paddingVertical, style, usePressable }) {
|
|
30
51
|
if (Platform.OS == "web" && !usePressable) {
|
|
31
52
|
return this.linkStyleForAnchor({ paddingHorizontal, paddingVertical, style });
|
|
32
53
|
}
|
|
33
54
|
return this.linkStyleForPressable({ paddingHorizontal, paddingVertical, style });
|
|
34
55
|
}
|
|
35
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* Returns the anchor style with padding props applied.
|
|
58
|
+
* @param {LinkStyleArgs} root0
|
|
59
|
+
* @returns {import("react").CSSProperties}
|
|
60
|
+
*/
|
|
36
61
|
linkStyleForAnchor({ paddingHorizontal, paddingVertical, style }) {
|
|
37
62
|
return this.cache("linkStyleForAnchor", () => {
|
|
38
63
|
const resolvedStyle = this.resolveStyleForAnchor(style);
|
|
@@ -45,22 +70,26 @@ export default memo(shapeComponent(class ApiMakerLink extends BaseComponent {
|
|
|
45
70
|
return { ...nextStyle, ...overrides };
|
|
46
71
|
}, [paddingHorizontal, paddingVertical, style]);
|
|
47
72
|
}
|
|
48
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* Returns a Pressable-compatible style with padding props applied.
|
|
75
|
+
* @param {LinkStyleArgs} root0
|
|
76
|
+
* @returns {PressableLinkStyle}
|
|
77
|
+
*/
|
|
49
78
|
linkStyleForPressable({ paddingHorizontal, paddingVertical, style }) {
|
|
50
|
-
return this.cache("linkStyleForPressable", () => {
|
|
79
|
+
return /** @type {PressableLinkStyle} */ (this.cache("linkStyleForPressable", () => {
|
|
51
80
|
if (typeof style == "function") {
|
|
52
|
-
return (state) => {
|
|
81
|
+
return /** @type {PressableLinkStyle} */ ((/** @type {LinkStyleState} */ state) => {
|
|
53
82
|
const resolvedStyle = style(state);
|
|
54
83
|
const overrides = this.paddingOverridesFromStyle({ paddingHorizontal, paddingVertical, style: resolvedStyle });
|
|
55
84
|
if (!overrides)
|
|
56
85
|
return resolvedStyle;
|
|
57
86
|
if (Array.isArray(resolvedStyle))
|
|
58
|
-
return [...resolvedStyle, overrides];
|
|
87
|
+
return /** @type {NativeLinkStyle} */ ([...resolvedStyle, overrides]);
|
|
59
88
|
if (resolvedStyle && typeof resolvedStyle == "object") {
|
|
60
|
-
return { ...this.stripPaddingShorthand(resolvedStyle), ...overrides };
|
|
89
|
+
return /** @type {NativeLinkStyle} */ ({ ...this.stripPaddingShorthand(resolvedStyle), ...overrides });
|
|
61
90
|
}
|
|
62
|
-
return [resolvedStyle, overrides];
|
|
63
|
-
};
|
|
91
|
+
return /** @type {NativeLinkStyle} */ ([resolvedStyle, overrides]);
|
|
92
|
+
});
|
|
64
93
|
}
|
|
65
94
|
const overrides = this.paddingOverridesFromStyle({ paddingHorizontal, paddingVertical, style });
|
|
66
95
|
if (!overrides)
|
|
@@ -68,27 +97,35 @@ export default memo(shapeComponent(class ApiMakerLink extends BaseComponent {
|
|
|
68
97
|
if (!style)
|
|
69
98
|
return overrides;
|
|
70
99
|
if (Array.isArray(style))
|
|
71
|
-
return [...style, overrides];
|
|
100
|
+
return /** @type {NativeLinkStyle} */ ([...style, overrides]);
|
|
72
101
|
if (typeof style == "object") {
|
|
73
|
-
return { ...this.stripPaddingShorthand(style), ...overrides };
|
|
102
|
+
return /** @type {NativeLinkStyle} */ ({ ...this.stripPaddingShorthand(style), ...overrides });
|
|
74
103
|
}
|
|
75
|
-
return [style, overrides];
|
|
76
|
-
}, [paddingHorizontal, paddingVertical, style]);
|
|
104
|
+
return /** @type {NativeLinkStyle} */ ([style, overrides]);
|
|
105
|
+
}, [paddingHorizontal, paddingVertical, style]));
|
|
77
106
|
}
|
|
78
|
-
/**
|
|
107
|
+
/**
|
|
108
|
+
* Resolves a style object for anchor rendering.
|
|
109
|
+
* @param {LinkStyle | undefined} style
|
|
110
|
+
* @returns {ResolvedStyle}
|
|
111
|
+
*/
|
|
79
112
|
resolveStyleForAnchor(style) {
|
|
80
113
|
if (typeof style == "function") {
|
|
81
|
-
return StyleSheet.flatten(style({ pressed: false, focused: false, hovered: false })) || {};
|
|
114
|
+
return /** @type {ResolvedStyle} */ (StyleSheet.flatten(style({ pressed: false, focused: false, hovered: false })) || {});
|
|
82
115
|
}
|
|
83
116
|
if (Array.isArray(style))
|
|
84
|
-
return StyleSheet.flatten(style) || {};
|
|
85
|
-
return style || {};
|
|
117
|
+
return /** @type {ResolvedStyle} */ (StyleSheet.flatten(style) || {});
|
|
118
|
+
return /** @type {ResolvedStyle} */ (style || {});
|
|
86
119
|
}
|
|
87
|
-
/**
|
|
120
|
+
/**
|
|
121
|
+
* Returns padding overrides based on the resolved style.
|
|
122
|
+
* @param {LinkStyleArgs} root0
|
|
123
|
+
* @returns {PaddingOverrides | null}
|
|
124
|
+
*/
|
|
88
125
|
paddingOverridesFromStyle({ paddingHorizontal, paddingVertical, style }) {
|
|
89
|
-
const styleObject = StyleSheet.flatten(style) || {};
|
|
90
|
-
const stylePaddingHorizontal = styleObject.paddingHorizontal;
|
|
91
|
-
const stylePaddingVertical = styleObject.paddingVertical;
|
|
126
|
+
const styleObject = /** @type {ResolvedStyle} */ (StyleSheet.flatten(style) || {});
|
|
127
|
+
const stylePaddingHorizontal = /** @type {number | string | undefined} */ (styleObject.paddingHorizontal);
|
|
128
|
+
const stylePaddingVertical = /** @type {number | string | undefined} */ (styleObject.paddingVertical);
|
|
92
129
|
const paddingHorizontalDefined = this.isDefined(paddingHorizontal);
|
|
93
130
|
const paddingVerticalDefined = this.isDefined(paddingVertical);
|
|
94
131
|
const stylePaddingHorizontalDefined = this.isDefined(stylePaddingHorizontal);
|
|
@@ -114,14 +151,23 @@ export default memo(shapeComponent(class ApiMakerLink extends BaseComponent {
|
|
|
114
151
|
}
|
|
115
152
|
return overrides;
|
|
116
153
|
}
|
|
117
|
-
/**
|
|
154
|
+
/**
|
|
155
|
+
* Removes padding shorthand values from a style object.
|
|
156
|
+
* @param {ResolvedStyle | import("react-native").ViewStyle | import("react").CSSProperties} style
|
|
157
|
+
* @returns {ResolvedStyle}
|
|
158
|
+
*/
|
|
118
159
|
stripPaddingShorthand(style) {
|
|
119
|
-
const nextStyle = { ...style };
|
|
160
|
+
const nextStyle = /** @type {ResolvedStyle} */ ({ ...style });
|
|
120
161
|
delete nextStyle.paddingHorizontal;
|
|
121
162
|
delete nextStyle.paddingVertical;
|
|
122
163
|
return nextStyle;
|
|
123
164
|
}
|
|
124
|
-
/**
|
|
165
|
+
/**
|
|
166
|
+
* Returns true when a value is neither null nor undefined.
|
|
167
|
+
* @template T
|
|
168
|
+
* @param {T | null | undefined} value
|
|
169
|
+
* @returns {value is T}
|
|
170
|
+
*/
|
|
125
171
|
isDefined(value) {
|
|
126
172
|
return value !== null && value !== undefined;
|
|
127
173
|
}
|
|
@@ -161,4 +207,4 @@ export default memo(shapeComponent(class ApiMakerLink extends BaseComponent {
|
|
|
161
207
|
history.push(this.props.to);
|
|
162
208
|
}
|
|
163
209
|
}));
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsibGluay5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlDQUFpQztBQUNqQyxPQUFPLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDNUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRDQUE0QyxDQUFBO0FBQ3pFLE9BQU8sYUFBYSxNQUFNLGtCQUFrQixDQUFBO0FBQzVDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFDekIsT0FBTyxtQkFBbUIsTUFBTSw2QkFBNkIsQ0FBQTtBQUM3RCxPQUFPLElBQUksTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sa0JBQWtCLENBQUE7QUFFNUMsZUFBZSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sWUFBYSxTQUFRLGFBQWE7SUFDekUsTUFBTSxDQUFDLFNBQVMsR0FBRztRQUNqQixpQkFBaUIsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRSxZQUFZLEVBQUUsU0FBUyxDQUFDLElBQUk7S0FDN0IsQ0FBQTtJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFBO0lBQy9CLENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxFQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxTQUFT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QUFDLENBQUE7SUFFRCxRQUFRLEdBQUcsR0FBRyxFQUFFO1FBQ2QsNkdBQTZHO1FBQzdHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDckIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ1AsQ0FBQyxDQUFBO0lBRUQsWUFBWTtRQUNWLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBRWpELElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFBO1FBRXZGLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUM3QixDQUFDO0NBQ0YsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCB7UGxhdGZvcm0sIFByZXNzYWJsZSwgU3R5bGVTaGVldH0gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvc2hhcGUtY29tcG9uZW50LmpzXCJcbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgZGF0YVNldFRvQXR0cmlidXRlcyBmcm9tIFwiLi9kYXRhLXNldC10by1hdHRyaWJ1dGVzLmpzXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9tZW1vLmpzXCJcbmltcG9ydCB7dXNlQXBpTWFrZXJ9IGZyb20gXCIuL3dpdGgtYXBpLW1ha2VyXCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlckxpbmsgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBwYWRkaW5nSG9yaXpvbnRhbDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICAgIHBhZGRpbmdWZXJ0aWNhbDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICAgIHVzZVByZXNzYWJsZTogUHJvcFR5cGVzLmJvb2xcbiAgfVxuXG4gIHNldHVwKCkge1xuICAgIHRoaXMuYXBpTWFrZXIgPSB1c2VBcGlNYWtlcigpXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2RhdGFTZXQsIHRvLCBvbkNsaWNrLCBvblByZXNzLCBwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZSwgdGVzdElELCB1c2VQcmVzc2FibGUsIC4uLnJlc3RQcm9wc30gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgbGlua1N0eWxlID0gdGhpcy5saW5rU3R5bGUoe3BhZGRpbmdIb3Jpem9udGFsLCBwYWRkaW5nVmVydGljYWwsIHN0eWxlLCB1c2VQcmVzc2FibGV9KVxuXG4gICAgaWYgKFBsYXRmb3JtLk9TID09IFwid2ViXCIgJiYgIXVzZVByZXNzYWJsZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGFcbiAgICAgICAgICB7Li4uZGF0YVNldFRvQXR0cmlidXRlcyhPYmplY3QuYXNzaWduKHt0ZXN0aWQ6IHRlc3RJRH0sIGRhdGFTZXQpKX0gLy8gZXNsaW50LWRpc2FibGUtbGluZSBwcmVmZXItb2JqZWN0LXNwcmVhZFxuICAgICAgICAgIGhyZWY9e3RvIHx8IFwiI1wifVxuICAgICAgICAgIG9uQ2xpY2s9e3RoaXMudHQub25MaW5rQ2xpY2tlZH1cbiAgICAgICAgICBzdHlsZT17bGlua1N0eWxlfVxuICAgICAgICAgIHsuLi5yZXN0UHJvcHN9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmVzc2FibGUgZGF0YVNldD17ZGF0YVNldH0gb25QcmVzcz17dGhpcy50dC5vblByZXNzfSBzdHlsZT17bGlua1N0eWxlfSB0ZXN0SUQ9e3Rlc3RJRH0gey4uLnJlc3RQcm9wc30gLz5cbiAgICApXG4gIH1cblxuICAvKiogUmV0dXJucyBhIGNhY2hlZCBzdHlsZSB3aXRoIHBhZGRpbmcgcHJvcHMgYXBwbGllZC4gKi9cbiAgbGlua1N0eWxlKHtwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZSwgdXNlUHJlc3NhYmxlfSkge1xuICAgIGlmIChQbGF0Zm9ybS5PUyA9PSBcIndlYlwiICYmICF1c2VQcmVzc2FibGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmxpbmtTdHlsZUZvckFuY2hvcih7cGFkZGluZ0hvcml6b250YWwsIHBhZGRpbmdWZXJ0aWNhbCwgc3R5bGV9KVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxpbmtTdHlsZUZvclByZXNzYWJsZSh7cGFkZGluZ0hvcml6b250YWwsIHBhZGRpbmdWZXJ0aWNhbCwgc3R5bGV9KVxuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIGFuY2hvciBzdHlsZSB3aXRoIHBhZGRpbmcgcHJvcHMgYXBwbGllZC4gKi9cbiAgbGlua1N0eWxlRm9yQW5jaG9yKHtwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZX0pIHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZShcImxpbmtTdHlsZUZvckFuY2hvclwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvbHZlZFN0eWxlID0gdGhpcy5yZXNvbHZlU3R5bGVGb3JBbmNob3Ioc3R5bGUpXG4gICAgICBjb25zdCBvdmVycmlkZXMgPSB0aGlzLnBhZGRpbmdPdmVycmlkZXNGcm9tU3R5bGUoe3BhZGRpbmdIb3Jpem9udGFsLCBwYWRkaW5nVmVydGljYWwsIHN0eWxlOiByZXNvbHZlZFN0eWxlfSlcblxuICAgICAgaWYgKCFvdmVycmlkZXMpIHJldHVybiByZXNvbHZlZFN0eWxlXG5cbiAgICAgIGNvbnN0IG5leHRTdHlsZSA9IHsuLi5yZXNvbHZlZFN0eWxlfVxuXG4gICAgICBkZWxldGUgbmV4dFN0eWxlLnBhZGRpbmdIb3Jpem9udGFsXG4gICAgICBkZWxldGUgbmV4dFN0eWxlLnBhZGRpbmdWZXJ0aWNhbFxuXG4gICAgICByZXR1cm4gey4uLm5leHRTdHlsZSwgLi4ub3ZlcnJpZGVzfVxuICAgIH0sIFtwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZV0pXG4gIH1cblxuICAvKiogUmV0dXJucyBhIFByZXNzYWJsZS1jb21wYXRpYmxlIHN0eWxlIHdpdGggcGFkZGluZyBwcm9wcyBhcHBsaWVkLiAqL1xuICBsaW5rU3R5bGVGb3JQcmVzc2FibGUoe3BhZGRpbmdIb3Jpem9udGFsLCBwYWRkaW5nVmVydGljYWwsIHN0eWxlfSkge1xuICAgIHJldHVybiB0aGlzLmNhY2hlKFwibGlua1N0eWxlRm9yUHJlc3NhYmxlXCIsICgpID0+IHtcbiAgICAgIGlmICh0eXBlb2Ygc3R5bGUgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiAoc3RhdGUpID0+IHtcbiAgICAgICAgICBjb25zdCByZXNvbHZlZFN0eWxlID0gc3R5bGUoc3RhdGUpXG4gICAgICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gdGhpcy5wYWRkaW5nT3ZlcnJpZGVzRnJvbVN0eWxlKHtwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZTogcmVzb2x2ZWRTdHlsZX0pXG5cbiAgICAgICAgICBpZiAoIW92ZXJyaWRlcykgcmV0dXJuIHJlc29sdmVkU3R5bGVcblxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc29sdmVkU3R5bGUpKSByZXR1cm4gWy4uLnJlc29sdmVkU3R5bGUsIG92ZXJyaWRlc11cblxuICAgICAgICAgIGlmIChyZXNvbHZlZFN0eWxlICYmIHR5cGVvZiByZXNvbHZlZFN0eWxlID09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiB7Li4udGhpcy5zdHJpcFBhZGRpbmdTaG9ydGhhbmQocmVzb2x2ZWRTdHlsZSksIC4uLm92ZXJyaWRlc31cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gW3Jlc29sdmVkU3R5bGUsIG92ZXJyaWRlc11cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBvdmVycmlkZXMgPSB0aGlzLnBhZGRpbmdPdmVycmlkZXNGcm9tU3R5bGUoe3BhZGRpbmdIb3Jpem9udGFsLCBwYWRkaW5nVmVydGljYWwsIHN0eWxlfSlcblxuICAgICAgaWYgKCFvdmVycmlkZXMpIHJldHVybiBzdHlsZVxuXG4gICAgICBpZiAoIXN0eWxlKSByZXR1cm4gb3ZlcnJpZGVzXG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHN0eWxlKSkgcmV0dXJuIFsuLi5zdHlsZSwgb3ZlcnJpZGVzXVxuXG4gICAgICBpZiAodHlwZW9mIHN0eWxlID09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgcmV0dXJuIHsuLi50aGlzLnN0cmlwUGFkZGluZ1Nob3J0aGFuZChzdHlsZSksIC4uLm92ZXJyaWRlc31cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFtzdHlsZSwgb3ZlcnJpZGVzXVxuICAgIH0sIFtwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZV0pXG4gIH1cblxuICAvKiogUmVzb2x2ZXMgYSBzdHlsZSBvYmplY3QgZm9yIGFuY2hvciByZW5kZXJpbmcuICovXG4gIHJlc29sdmVTdHlsZUZvckFuY2hvcihzdHlsZSkge1xuICAgIGlmICh0eXBlb2Ygc3R5bGUgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gU3R5bGVTaGVldC5mbGF0dGVuKHN0eWxlKHtwcmVzc2VkOiBmYWxzZSwgZm9jdXNlZDogZmFsc2UsIGhvdmVyZWQ6IGZhbHNlfSkpIHx8IHt9XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc3R5bGUpKSByZXR1cm4gU3R5bGVTaGVldC5mbGF0dGVuKHN0eWxlKSB8fCB7fVxuXG4gICAgcmV0dXJuIHN0eWxlIHx8IHt9XG4gIH1cblxuICAvKiogUmV0dXJucyBwYWRkaW5nIG92ZXJyaWRlcyBiYXNlZCBvbiB0aGUgcmVzb2x2ZWQgc3R5bGUuICovXG4gIHBhZGRpbmdPdmVycmlkZXNGcm9tU3R5bGUoe3BhZGRpbmdIb3Jpem9udGFsLCBwYWRkaW5nVmVydGljYWwsIHN0eWxlfSkge1xuICAgIGNvbnN0IHN0eWxlT2JqZWN0ID0gU3R5bGVTaGVldC5mbGF0dGVuKHN0eWxlKSB8fCB7fVxuICAgIGNvbnN0IHN0eWxlUGFkZGluZ0hvcml6b250YWwgPSBzdHlsZU9iamVjdC5wYWRkaW5nSG9yaXpvbnRhbFxuICAgIGNvbnN0IHN0eWxlUGFkZGluZ1ZlcnRpY2FsID0gc3R5bGVPYmplY3QucGFkZGluZ1ZlcnRpY2FsXG4gICAgY29uc3QgcGFkZGluZ0hvcml6b250YWxEZWZpbmVkID0gdGhpcy5pc0RlZmluZWQocGFkZGluZ0hvcml6b250YWwpXG4gICAgY29uc3QgcGFkZGluZ1ZlcnRpY2FsRGVmaW5lZCA9IHRoaXMuaXNEZWZpbmVkKHBhZGRpbmdWZXJ0aWNhbClcbiAgICBjb25zdCBzdHlsZVBhZGRpbmdIb3Jpem9udGFsRGVmaW5lZCA9IHRoaXMuaXNEZWZpbmVkKHN0eWxlUGFkZGluZ0hvcml6b250YWwpXG4gICAgY29uc3Qgc3R5bGVQYWRkaW5nVmVydGljYWxEZWZpbmVkID0gdGhpcy5pc0RlZmluZWQoc3R5bGVQYWRkaW5nVmVydGljYWwpXG4gICAgY29uc3QgaGFzUGFkZGluZ0hvcml6b250YWwgPSBwYWRkaW5nSG9yaXpvbnRhbERlZmluZWQgfHwgc3R5bGVQYWRkaW5nSG9yaXpvbnRhbERlZmluZWRcbiAgICBjb25zdCBoYXNQYWRkaW5nVmVydGljYWwgPSBwYWRkaW5nVmVydGljYWxEZWZpbmVkIHx8IHN0eWxlUGFkZGluZ1ZlcnRpY2FsRGVmaW5lZFxuXG4gICAgaWYgKCFoYXNQYWRkaW5nSG9yaXpvbnRhbCAmJiAhaGFzUGFkZGluZ1ZlcnRpY2FsKSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgcmVzb2x2ZWRQYWRkaW5nSG9yaXpvbnRhbCA9IHBhZGRpbmdIb3Jpem9udGFsRGVmaW5lZCA/IHBhZGRpbmdIb3Jpem9udGFsIDogc3R5bGVQYWRkaW5nSG9yaXpvbnRhbFxuICAgIGNvbnN0IHJlc29sdmVkUGFkZGluZ1ZlcnRpY2FsID0gcGFkZGluZ1ZlcnRpY2FsRGVmaW5lZCA/IHBhZGRpbmdWZXJ0aWNhbCA6IHN0eWxlUGFkZGluZ1ZlcnRpY2FsXG4gICAgY29uc3Qgb3ZlcnJpZGVzID0ge31cblxuICAgIGlmICh0aGlzLmlzRGVmaW5lZChyZXNvbHZlZFBhZGRpbmdIb3Jpem9udGFsKSkge1xuICAgICAgaWYgKCF0aGlzLmlzRGVmaW5lZChzdHlsZU9iamVjdC5wYWRkaW5nTGVmdCkpIG92ZXJyaWRlcy5wYWRkaW5nTGVmdCA9IHJlc29sdmVkUGFkZGluZ0hvcml6b250YWxcbiAgICAgIGlmICghdGhpcy5pc0RlZmluZWQoc3R5bGVPYmplY3QucGFkZGluZ1JpZ2h0KSkgb3ZlcnJpZGVzLnBhZGRpbmdSaWdodCA9IHJlc29sdmVkUGFkZGluZ0hvcml6b250YWxcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0RlZmluZWQocmVzb2x2ZWRQYWRkaW5nVmVydGljYWwpKSB7XG4gICAgICBpZiAoIXRoaXMuaXNEZWZpbmVkKHN0eWxlT2JqZWN0LnBhZGRpbmdUb3ApKSBvdmVycmlkZXMucGFkZGluZ1RvcCA9IHJlc29sdmVkUGFkZGluZ1ZlcnRpY2FsXG4gICAgICBpZiAoIXRoaXMuaXNEZWZpbmVkKHN0eWxlT2JqZWN0LnBhZGRpbmdCb3R0b20pKSBvdmVycmlkZXMucGFkZGluZ0JvdHRvbSA9IHJlc29sdmVkUGFkZGluZ1ZlcnRpY2FsXG4gICAgfVxuXG4gICAgcmV0dXJuIG92ZXJyaWRlc1xuICB9XG5cbiAgLyoqIFJlbW92ZXMgcGFkZGluZyBzaG9ydGhhbmQgdmFsdWVzIGZyb20gYSBzdHlsZSBvYmplY3QuICovXG4gIHN0cmlwUGFkZGluZ1Nob3J0aGFuZChzdHlsZSkge1xuICAgIGNvbnN0IG5leHRTdHlsZSA9IHsuLi5zdHlsZX1cblxuICAgIGRlbGV0ZSBuZXh0U3R5bGUucGFkZGluZ0hvcml6b250YWxcbiAgICBkZWxldGUgbmV4dFN0eWxlLnBhZGRpbmdWZXJ0aWNhbFxuXG4gICAgcmV0dXJuIG5leHRTdHlsZVxuICB9XG5cbiAgLyoqIFJldHVybnMgdHJ1ZSB3aGVuIGEgdmFsdWUgaXMgbmVpdGhlciBudWxsIG5vciB1bmRlZmluZWQuICovXG4gIGlzRGVmaW5lZCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkXG4gIH1cblxuICBvbkxpbmtDbGlja2VkID0gKGUsIC4uLnJlc3RBcmdzKSA9PiB7XG4gICAgY29uc3Qge29uQ2xpY2ssIG9uUHJlc3N9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgIG9uQ2xpY2soZSwgLi4ucmVzdEFyZ3MpXG4gICAgfVxuXG4gICAgaWYgKG9uUHJlc3MpIHtcbiAgICAgIG9uUHJlc3MoZSwgLi4ucmVzdEFyZ3MpXG4gICAgfVxuXG4gICAgaWYgKCFlLmRlZmF1bHRQcmV2ZW50ZWQgJiYgIWUuY3RybEtleSAmJiAhZS5tZXRhS2V5ICYmIHRoaXMucHJvcHMudGFyZ2V0ICE9IFwiX2JsYW5rXCIpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgICB0aGlzLnJlZGlyZWN0KClcbiAgICB9XG4gIH1cblxuICBvblByZXNzID0gKGUsIC4uLnJlc3RBcmdzKSA9PiB7XG4gICAgY29uc3Qge29uQ2xpY2ssIG9uUHJlc3N9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgIG9uQ2xpY2soZSwgLi4ucmVzdEFyZ3MpXG4gICAgfVxuXG4gICAgaWYgKG9uUHJlc3MpIHtcbiAgICAgIG9uUHJlc3MoZSwgLi4ucmVzdEFyZ3MpXG4gICAgfVxuXG4gICAgdGhpcy5yZWRpcmVjdCgpXG4gIH1cblxuICByZWRpcmVjdCA9ICgpID0+IHtcbiAgICAvLyBJZiBubyB0aW1lb3V0IGlzIHVzZWQsIHRoaXMgY2FuIGNhdXNlIGFuIFwiY29tcG9uZW50IHN1c3BlbmRlZCB3aGlsZSByZXNwb25kaW5nIHRvIHN5bmNocm9ub3VzIGlucHV0XCItZXJyb3JcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2hpc3RvcnlQdXNoKClcbiAgICB9LCAwKVxuICB9XG5cbiAgX2hpc3RvcnlQdXNoKCkge1xuICAgIGNvbnN0IGhpc3RvcnkgPSB0aGlzLmFwaU1ha2VyLmNvbmZpZy5nZXRIaXN0b3J5KClcblxuICAgIGlmICghaGlzdG9yeSkgdGhyb3cgbmV3IEVycm9yKFwiSGlzdG9yeSBoYXNuJ3QgYmVlbiBzZXQgaW4gdGhlIEFQSSBtYWtlciBjb25maWd1cmF0aW9uXCIpXG5cbiAgICBoaXN0b3J5LnB1c2godGhpcy5wcm9wcy50bylcbiAgfVxufSkpXG4iXX0=
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsibGluay5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFlBQVk7QUFDWixpQ0FBaUM7QUFDakMsT0FBTyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBQzVELE9BQU8sRUFBQyxjQUFjLEVBQUUsY0FBYyxFQUFDLE1BQU0sNENBQTRDLENBQUE7QUFDekYsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFBO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLG1CQUFtQixNQUFNLDZCQUE2QixDQUFBO0FBQzdELE9BQU8sSUFBSSxNQUFNLGlDQUFpQyxDQUFBO0FBQ2xELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQTtBQUU1QywwRkFBMEY7QUFDMUY7OztHQUdHO0FBQ0gsb0dBQW9HO0FBQ3BHLG1HQUFtRztBQUNuRyw4RUFBOEU7QUFDOUUsK0lBQStJO0FBQy9JLHlKQUF5SjtBQUV6Sjs7Ozs7R0FLRztBQUNILDZDQUE2QztBQUM3QyxlQUFlLElBQUksQ0FBQyxjQUFjLENBQUMsK0NBQStDLENBQUMsTUFBTSxZQUFhLFNBQVEsY0FBYztJQUMxSCxNQUFNLENBQUMsU0FBUyxHQUFHO1FBQ2pCLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1RSxlQUFlLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFFLFlBQVksRUFBRSxTQUFTLENBQUMsSUFBSTtLQUM3QixDQUFBO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUE7SUFDL0IsQ0FBQztJQUVELE1BQU07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dCI6WyIvLyBAdHMtY2hlY2tcbi8qIGVzbGludC1kaXNhYmxlIHNvcnQtaW1wb3J0cyAqL1xuaW1wb3J0IHtQbGF0Zm9ybSwgUHJlc3NhYmxlLCBTdHlsZVNoZWV0fSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCB7U2hhcGVDb21wb25lbnQsIHNoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvc2hhcGUtY29tcG9uZW50LmpzXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgZGF0YVNldFRvQXR0cmlidXRlcyBmcm9tIFwiLi9kYXRhLXNldC10by1hdHRyaWJ1dGVzLmpzXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9tZW1vLmpzXCJcbmltcG9ydCB7dXNlQXBpTWFrZXJ9IGZyb20gXCIuL3dpdGgtYXBpLW1ha2VyXCJcblxuLyoqIEB0eXBlZGVmIHt7cHJlc3NlZD86IGJvb2xlYW4sIGZvY3VzZWQ/OiBib29sZWFuLCBob3ZlcmVkPzogYm9vbGVhbn19IExpbmtTdHlsZVN0YXRlICovXG4vKipcbiAqIEB0eXBlZGVmIHtQYXJ0aWFsPGltcG9ydChcInJlYWN0LW5hdGl2ZVwiKS5WaWV3U3R5bGUgJiBpbXBvcnQoXCJyZWFjdFwiKS5DU1NQcm9wZXJ0aWVzPiAmXG4gKiAgIHtwYWRkaW5nSG9yaXpvbnRhbD86IG51bWJlcnxzdHJpbmcsIHBhZGRpbmdWZXJ0aWNhbD86IG51bWJlcnxzdHJpbmd9fSBSZXNvbHZlZFN0eWxlXG4gKi9cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KFwicmVhY3QtbmF0aXZlXCIpLlN0eWxlUHJvcDxpbXBvcnQoXCJyZWFjdC1uYXRpdmVcIikuVmlld1N0eWxlPn0gTmF0aXZlTGlua1N0eWxlICovXG4vKiogQHR5cGVkZWYge05hdGl2ZUxpbmtTdHlsZSB8ICgoc3RhdGU6IExpbmtTdHlsZVN0YXRlKSA9PiBOYXRpdmVMaW5rU3R5bGUpfSBQcmVzc2FibGVMaW5rU3R5bGUgKi9cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KFwicmVhY3RcIikuQ1NTUHJvcGVydGllcyB8IFByZXNzYWJsZUxpbmtTdHlsZX0gTGlua1N0eWxlICovXG4vKiogQHR5cGVkZWYge3twYWRkaW5nSG9yaXpvbnRhbD86IG51bWJlcnxzdHJpbmcsIHBhZGRpbmdWZXJ0aWNhbD86IG51bWJlcnxzdHJpbmcsIHN0eWxlPzogTGlua1N0eWxlLCB1c2VQcmVzc2FibGU/OiBib29sZWFufX0gTGlua1N0eWxlQXJncyAqL1xuLyoqIEB0eXBlZGVmIHt7cGFkZGluZ0JvdHRvbT86IG51bWJlcnxzdHJpbmcsIHBhZGRpbmdMZWZ0PzogbnVtYmVyfHN0cmluZywgcGFkZGluZ1JpZ2h0PzogbnVtYmVyfHN0cmluZywgcGFkZGluZ1RvcD86IG51bWJlcnxzdHJpbmd9fSBQYWRkaW5nT3ZlcnJpZGVzICovXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gUHJvcHNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfHN0cmluZ30gW3BhZGRpbmdIb3Jpem9udGFsXVxuICogQHByb3BlcnR5IHtudW1iZXJ8c3RyaW5nfSBbcGFkZGluZ1ZlcnRpY2FsXVxuICogQHByb3BlcnR5IHtib29sZWFufSBbdXNlUHJlc3NhYmxlXVxuICovXG4vKiogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIG5ldmVyPn0gU3RhdGUgKi9cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoLyoqIEBhdWdtZW50cyB7U2hhcGVDb21wb25lbnQ8UHJvcHMsIFN0YXRlPn0gKi8gY2xhc3MgQXBpTWFrZXJMaW5rIGV4dGVuZHMgU2hhcGVDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHBhZGRpbmdIb3Jpem9udGFsOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gICAgcGFkZGluZ1ZlcnRpY2FsOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gICAgdXNlUHJlc3NhYmxlOiBQcm9wVHlwZXMuYm9vbFxuICB9XG5cbiAgc2V0dXAoKSB7XG4gICAgdGhpcy5hcGlNYWtlciA9IHVzZUFwaU1ha2VyKClcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7ZGF0YVNldCwgdG8sIG9uQ2xpY2ssIG9uUHJlc3MsIHBhZGRpbmdIb3Jpem9udGFsLCBwYWRkaW5nVmVydGljYWwsIHN0eWxlLCB0ZXN0SUQsIHVzZVByZXNzYWJsZSwgLi4ucmVzdFByb3BzfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBsaW5rU3R5bGUgPSB0aGlzLmxpbmtTdHlsZSh7cGFkZGluZ0hvcml6b250YWwsIHBhZGRpbmdWZXJ0aWNhbCwgc3R5bGUsIHVzZVByZXNzYWJsZX0pXG5cbiAgICBpZiAoUGxhdGZvcm0uT1MgPT0gXCJ3ZWJcIiAmJiAhdXNlUHJlc3NhYmxlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8YVxuICAgICAgICAgIHsuLi5kYXRhU2V0VG9BdHRyaWJ1dGVzKE9iamVjdC5hc3NpZ24oe3Rlc3RpZDogdGVzdElEfSwgZGF0YVNldCkpfSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHByZWZlci1vYmplY3Qtc3ByZWFkXG4gICAgICAgICAgaHJlZj17dG8gfHwgXCIjXCJ9XG4gICAgICAgICAgb25DbGljaz17dGhpcy50dC5vbkxpbmtDbGlja2VkfVxuICAgICAgICAgIHN0eWxlPXsvKiogQHR5cGUge2ltcG9ydChcInJlYWN0XCIpLkNTU1Byb3BlcnRpZXN9ICovIChsaW5rU3R5bGUpfVxuICAgICAgICAgIHsuLi5yZXN0UHJvcHN9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmVzc2FibGVcbiAgICAgICAgZGF0YVNldD17ZGF0YVNldH1cbiAgICAgICAgb25QcmVzcz17dGhpcy50dC5vblByZXNzfVxuICAgICAgICBzdHlsZT17LyoqIEB0eXBlIHtQcmVzc2FibGVMaW5rU3R5bGV9ICovIChsaW5rU3R5bGUpfVxuICAgICAgICB0ZXN0SUQ9e3Rlc3RJRH1cbiAgICAgICAgey4uLnJlc3RQcm9wc31cbiAgICAgIC8+XG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjYWNoZWQgc3R5bGUgd2l0aCBwYWRkaW5nIHByb3BzIGFwcGxpZWQuXG4gICAqIEBwYXJhbSB7TGlua1N0eWxlQXJnc30gcm9vdDBcbiAgICogQHJldHVybnMge0xpbmtTdHlsZX1cbiAgICovXG4gIGxpbmtTdHlsZSh7cGFkZGluZ0hvcml6b250YWwsIHBhZGRpbmdWZXJ0aWNhbCwgc3R5bGUsIHVzZVByZXNzYWJsZX0pIHtcbiAgICBpZiAoUGxhdGZvcm0uT1MgPT0gXCJ3ZWJcIiAmJiAhdXNlUHJlc3NhYmxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5saW5rU3R5bGVGb3JBbmNob3Ioe3BhZGRpbmdIb3Jpem9udGFsLCBwYWRkaW5nVmVydGljYWwsIHN0eWxlfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5saW5rU3R5bGVGb3JQcmVzc2FibGUoe3BhZGRpbmdIb3Jpem9udGFsLCBwYWRkaW5nVmVydGljYWwsIHN0eWxlfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhbmNob3Igc3R5bGUgd2l0aCBwYWRkaW5nIHByb3BzIGFwcGxpZWQuXG4gICAqIEBwYXJhbSB7TGlua1N0eWxlQXJnc30gcm9vdDBcbiAgICogQHJldHVybnMge2ltcG9ydChcInJlYWN0XCIpLkNTU1Byb3BlcnRpZXN9XG4gICAqL1xuICBsaW5rU3R5bGVGb3JBbmNob3Ioe3BhZGRpbmdIb3Jpem9udGFsLCBwYWRkaW5nVmVydGljYWwsIHN0eWxlfSkge1xuICAgIHJldHVybiB0aGlzLmNhY2hlKFwibGlua1N0eWxlRm9yQW5jaG9yXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc29sdmVkU3R5bGUgPSB0aGlzLnJlc29sdmVTdHlsZUZvckFuY2hvcihzdHlsZSlcbiAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IHRoaXMucGFkZGluZ092ZXJyaWRlc0Zyb21TdHlsZSh7cGFkZGluZ0hvcml6b250YWwsIHBhZGRpbmdWZXJ0aWNhbCwgc3R5bGU6IHJlc29sdmVkU3R5bGV9KVxuXG4gICAgICBpZiAoIW92ZXJyaWRlcykgcmV0dXJuIHJlc29sdmVkU3R5bGVcblxuICAgICAgY29uc3QgbmV4dFN0eWxlID0gey4uLnJlc29sdmVkU3R5bGV9XG5cbiAgICAgIGRlbGV0ZSBuZXh0U3R5bGUucGFkZGluZ0hvcml6b250YWxcbiAgICAgIGRlbGV0ZSBuZXh0U3R5bGUucGFkZGluZ1ZlcnRpY2FsXG5cbiAgICAgIHJldHVybiB7Li4ubmV4dFN0eWxlLCAuLi5vdmVycmlkZXN9XG4gICAgfSwgW3BhZGRpbmdIb3Jpem9udGFsLCBwYWRkaW5nVmVydGljYWwsIHN0eWxlXSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgUHJlc3NhYmxlLWNvbXBhdGlibGUgc3R5bGUgd2l0aCBwYWRkaW5nIHByb3BzIGFwcGxpZWQuXG4gICogQHBhcmFtIHtMaW5rU3R5bGVBcmdzfSByb290MFxuICAqIEByZXR1cm5zIHtQcmVzc2FibGVMaW5rU3R5bGV9XG4gICovXG4gIGxpbmtTdHlsZUZvclByZXNzYWJsZSh7cGFkZGluZ0hvcml6b250YWwsIHBhZGRpbmdWZXJ0aWNhbCwgc3R5bGV9KSB7XG4gICAgcmV0dXJuIC8qKiBAdHlwZSB7UHJlc3NhYmxlTGlua1N0eWxlfSAqLyAodGhpcy5jYWNoZShcImxpbmtTdHlsZUZvclByZXNzYWJsZVwiLCAoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHN0eWxlID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gLyoqIEB0eXBlIHtQcmVzc2FibGVMaW5rU3R5bGV9ICovICgoLyoqIEB0eXBlIHtMaW5rU3R5bGVTdGF0ZX0gKi8gc3RhdGUpID0+IHtcbiAgICAgICAgICBjb25zdCByZXNvbHZlZFN0eWxlID0gc3R5bGUoc3RhdGUpXG4gICAgICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gdGhpcy5wYWRkaW5nT3ZlcnJpZGVzRnJvbVN0eWxlKHtwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZTogcmVzb2x2ZWRTdHlsZX0pXG5cbiAgICAgICAgICBpZiAoIW92ZXJyaWRlcykgcmV0dXJuIHJlc29sdmVkU3R5bGVcblxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc29sdmVkU3R5bGUpKSByZXR1cm4gLyoqIEB0eXBlIHtOYXRpdmVMaW5rU3R5bGV9ICovIChbLi4ucmVzb2x2ZWRTdHlsZSwgb3ZlcnJpZGVzXSlcblxuICAgICAgICAgIGlmIChyZXNvbHZlZFN0eWxlICYmIHR5cGVvZiByZXNvbHZlZFN0eWxlID09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiAvKiogQHR5cGUge05hdGl2ZUxpbmtTdHlsZX0gKi8gKHsuLi50aGlzLnN0cmlwUGFkZGluZ1Nob3J0aGFuZChyZXNvbHZlZFN0eWxlKSwgLi4ub3ZlcnJpZGVzfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gLyoqIEB0eXBlIHtOYXRpdmVMaW5rU3R5bGV9ICovIChbcmVzb2x2ZWRTdHlsZSwgb3ZlcnJpZGVzXSlcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gdGhpcy5wYWRkaW5nT3ZlcnJpZGVzRnJvbVN0eWxlKHtwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZX0pXG5cbiAgICAgIGlmICghb3ZlcnJpZGVzKSByZXR1cm4gc3R5bGVcblxuICAgICAgaWYgKCFzdHlsZSkgcmV0dXJuIG92ZXJyaWRlc1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShzdHlsZSkpIHJldHVybiAvKiogQHR5cGUge05hdGl2ZUxpbmtTdHlsZX0gKi8gKFsuLi5zdHlsZSwgb3ZlcnJpZGVzXSlcblxuICAgICAgaWYgKHR5cGVvZiBzdHlsZSA9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiAvKiogQHR5cGUge05hdGl2ZUxpbmtTdHlsZX0gKi8gKHsuLi50aGlzLnN0cmlwUGFkZGluZ1Nob3J0aGFuZChzdHlsZSksIC4uLm92ZXJyaWRlc30pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAvKiogQHR5cGUge05hdGl2ZUxpbmtTdHlsZX0gKi8gKFtzdHlsZSwgb3ZlcnJpZGVzXSlcbiAgICB9LCBbcGFkZGluZ0hvcml6b250YWwsIHBhZGRpbmdWZXJ0aWNhbCwgc3R5bGVdKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhIHN0eWxlIG9iamVjdCBmb3IgYW5jaG9yIHJlbmRlcmluZy5cbiAgICogQHBhcmFtIHtMaW5rU3R5bGUgfCB1bmRlZmluZWR9IHN0eWxlXG4gICAqIEByZXR1cm5zIHtSZXNvbHZlZFN0eWxlfVxuICAgKi9cbiAgcmVzb2x2ZVN0eWxlRm9yQW5jaG9yKHN0eWxlKSB7XG4gICAgaWYgKHR5cGVvZiBzdHlsZSA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiAvKiogQHR5cGUge1Jlc29sdmVkU3R5bGV9ICovIChTdHlsZVNoZWV0LmZsYXR0ZW4oc3R5bGUoe3ByZXNzZWQ6IGZhbHNlLCBmb2N1c2VkOiBmYWxzZSwgaG92ZXJlZDogZmFsc2V9KSkgfHwge30pXG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc3R5bGUpKSByZXR1cm4gLyoqIEB0eXBlIHtSZXNvbHZlZFN0eWxlfSAqLyAoU3R5bGVTaGVldC5mbGF0dGVuKHN0eWxlKSB8fCB7fSlcblxuICAgIHJldHVybiAvKiogQHR5cGUge1Jlc29sdmVkU3R5bGV9ICovIChzdHlsZSB8fCB7fSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHBhZGRpbmcgb3ZlcnJpZGVzIGJhc2VkIG9uIHRoZSByZXNvbHZlZCBzdHlsZS5cbiAgICogQHBhcmFtIHtMaW5rU3R5bGVBcmdzfSByb290MFxuICAgKiBAcmV0dXJucyB7UGFkZGluZ092ZXJyaWRlcyB8IG51bGx9XG4gICAqL1xuICBwYWRkaW5nT3ZlcnJpZGVzRnJvbVN0eWxlKHtwYWRkaW5nSG9yaXpvbnRhbCwgcGFkZGluZ1ZlcnRpY2FsLCBzdHlsZX0pIHtcbiAgICBjb25zdCBzdHlsZU9iamVjdCA9IC8qKiBAdHlwZSB7UmVzb2x2ZWRTdHlsZX0gKi8gKFN0eWxlU2hlZXQuZmxhdHRlbihzdHlsZSkgfHwge30pXG4gICAgY29uc3Qgc3R5bGVQYWRkaW5nSG9yaXpvbnRhbCA9IC8qKiBAdHlwZSB7bnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkfSAqLyAoc3R5bGVPYmplY3QucGFkZGluZ0hvcml6b250YWwpXG4gICAgY29uc3Qgc3R5bGVQYWRkaW5nVmVydGljYWwgPSAvKiogQHR5cGUge251bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZH0gKi8gKHN0eWxlT2JqZWN0LnBhZGRpbmdWZXJ0aWNhbClcbiAgICBjb25zdCBwYWRkaW5nSG9yaXpvbnRhbERlZmluZWQgPSB0aGlzLmlzRGVmaW5lZChwYWRkaW5nSG9yaXpvbnRhbClcbiAgICBjb25zdCBwYWRkaW5nVmVydGljYWxEZWZpbmVkID0gdGhpcy5pc0RlZmluZWQocGFkZGluZ1ZlcnRpY2FsKVxuICAgIGNvbnN0IHN0eWxlUGFkZGluZ0hvcml6b250YWxEZWZpbmVkID0gdGhpcy5pc0RlZmluZWQoc3R5bGVQYWRkaW5nSG9yaXpvbnRhbClcbiAgICBjb25zdCBzdHlsZVBhZGRpbmdWZXJ0aWNhbERlZmluZWQgPSB0aGlzLmlzRGVmaW5lZChzdHlsZVBhZGRpbmdWZXJ0aWNhbClcbiAgICBjb25zdCBoYXNQYWRkaW5nSG9yaXpvbnRhbCA9IHBhZGRpbmdIb3Jpem9udGFsRGVmaW5lZCB8fCBzdHlsZVBhZGRpbmdIb3Jpem9udGFsRGVmaW5lZFxuICAgIGNvbnN0IGhhc1BhZGRpbmdWZXJ0aWNhbCA9IHBhZGRpbmdWZXJ0aWNhbERlZmluZWQgfHwgc3R5bGVQYWRkaW5nVmVydGljYWxEZWZpbmVkXG5cbiAgICBpZiAoIWhhc1BhZGRpbmdIb3Jpem9udGFsICYmICFoYXNQYWRkaW5nVmVydGljYWwpIHJldHVybiBudWxsXG5cbiAgICBjb25zdCByZXNvbHZlZFBhZGRpbmdIb3Jpem9udGFsID0gcGFkZGluZ0hvcml6b250YWxEZWZpbmVkID8gcGFkZGluZ0hvcml6b250YWwgOiBzdHlsZVBhZGRpbmdIb3Jpem9udGFsXG4gICAgY29uc3QgcmVzb2x2ZWRQYWRkaW5nVmVydGljYWwgPSBwYWRkaW5nVmVydGljYWxEZWZpbmVkID8gcGFkZGluZ1ZlcnRpY2FsIDogc3R5bGVQYWRkaW5nVmVydGljYWxcbiAgICBjb25zdCBvdmVycmlkZXMgPSB7fVxuXG4gICAgaWYgKHRoaXMuaXNEZWZpbmVkKHJlc29sdmVkUGFkZGluZ0hvcml6b250YWwpKSB7XG4gICAgICBpZiAoIXRoaXMuaXNEZWZpbmVkKHN0eWxlT2JqZWN0LnBhZGRpbmdMZWZ0KSkgb3ZlcnJpZGVzLnBhZGRpbmdMZWZ0ID0gcmVzb2x2ZWRQYWRkaW5nSG9yaXpvbnRhbFxuICAgICAgaWYgKCF0aGlzLmlzRGVmaW5lZChzdHlsZU9iamVjdC5wYWRkaW5nUmlnaHQpKSBvdmVycmlkZXMucGFkZGluZ1JpZ2h0ID0gcmVzb2x2ZWRQYWRkaW5nSG9yaXpvbnRhbFxuICAgIH1cblxuICAgIGlmICh0aGlzLmlzRGVmaW5lZChyZXNvbHZlZFBhZGRpbmdWZXJ0aWNhbCkpIHtcbiAgICAgIGlmICghdGhpcy5pc0RlZmluZWQoc3R5bGVPYmplY3QucGFkZGluZ1RvcCkpIG92ZXJyaWRlcy5wYWRkaW5nVG9wID0gcmVzb2x2ZWRQYWRkaW5nVmVydGljYWxcbiAgICAgIGlmICghdGhpcy5pc0RlZmluZWQoc3R5bGVPYmplY3QucGFkZGluZ0JvdHRvbSkpIG92ZXJyaWRlcy5wYWRkaW5nQm90dG9tID0gcmVzb2x2ZWRQYWRkaW5nVmVydGljYWxcbiAgICB9XG5cbiAgICByZXR1cm4gb3ZlcnJpZGVzXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBwYWRkaW5nIHNob3J0aGFuZCB2YWx1ZXMgZnJvbSBhIHN0eWxlIG9iamVjdC5cbiAgICogQHBhcmFtIHtSZXNvbHZlZFN0eWxlIHwgaW1wb3J0KFwicmVhY3QtbmF0aXZlXCIpLlZpZXdTdHlsZSB8IGltcG9ydChcInJlYWN0XCIpLkNTU1Byb3BlcnRpZXN9IHN0eWxlXG4gICogQHJldHVybnMge1Jlc29sdmVkU3R5bGV9XG4gICAqL1xuICBzdHJpcFBhZGRpbmdTaG9ydGhhbmQoc3R5bGUpIHtcbiAgICBjb25zdCBuZXh0U3R5bGUgPSAvKiogQHR5cGUge1Jlc29sdmVkU3R5bGV9ICovICh7Li4uc3R5bGV9KVxuXG4gICAgZGVsZXRlIG5leHRTdHlsZS5wYWRkaW5nSG9yaXpvbnRhbFxuICAgIGRlbGV0ZSBuZXh0U3R5bGUucGFkZGluZ1ZlcnRpY2FsXG5cbiAgICByZXR1cm4gbmV4dFN0eWxlXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIHdoZW4gYSB2YWx1ZSBpcyBuZWl0aGVyIG51bGwgbm9yIHVuZGVmaW5lZC5cbiAgICogQHRlbXBsYXRlIFRcbiAgICogQHBhcmFtIHtUIHwgbnVsbCB8IHVuZGVmaW5lZH0gdmFsdWVcbiAgICogQHJldHVybnMge3ZhbHVlIGlzIFR9XG4gICAqL1xuICBpc0RlZmluZWQodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZFxuICB9XG5cbiAgb25MaW5rQ2xpY2tlZCA9IChlLCAuLi5yZXN0QXJncykgPT4ge1xuICAgIGNvbnN0IHtvbkNsaWNrLCBvblByZXNzfSA9IHRoaXMucHJvcHNcblxuICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICBvbkNsaWNrKGUsIC4uLnJlc3RBcmdzKVxuICAgIH1cblxuICAgIGlmIChvblByZXNzKSB7XG4gICAgICBvblByZXNzKGUsIC4uLnJlc3RBcmdzKVxuICAgIH1cblxuICAgIGlmICghZS5kZWZhdWx0UHJldmVudGVkICYmICFlLmN0cmxLZXkgJiYgIWUubWV0YUtleSAmJiB0aGlzLnByb3BzLnRhcmdldCAhPSBcIl9ibGFua1wiKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgICAgdGhpcy5yZWRpcmVjdCgpXG4gICAgfVxuICB9XG5cbiAgb25QcmVzcyA9IChlLCAuLi5yZXN0QXJncykgPT4ge1xuICAgIGNvbnN0IHtvbkNsaWNrLCBvblByZXNzfSA9IHRoaXMucHJvcHNcblxuICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICBvbkNsaWNrKGUsIC4uLnJlc3RBcmdzKVxuICAgIH1cblxuICAgIGlmIChvblByZXNzKSB7XG4gICAgICBvblByZXNzKGUsIC4uLnJlc3RBcmdzKVxuICAgIH1cblxuICAgIHRoaXMucmVkaXJlY3QoKVxuICB9XG5cbiAgcmVkaXJlY3QgPSAoKSA9PiB7XG4gICAgLy8gSWYgbm8gdGltZW91dCBpcyB1c2VkLCB0aGlzIGNhbiBjYXVzZSBhbiBcImNvbXBvbmVudCBzdXNwZW5kZWQgd2hpbGUgcmVzcG9uZGluZyB0byBzeW5jaHJvbm91cyBpbnB1dFwiLWVycm9yXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9oaXN0b3J5UHVzaCgpXG4gICAgfSwgMClcbiAgfVxuXG4gIF9oaXN0b3J5UHVzaCgpIHtcbiAgICBjb25zdCBoaXN0b3J5ID0gdGhpcy5hcGlNYWtlci5jb25maWcuZ2V0SGlzdG9yeSgpXG5cbiAgICBpZiAoIWhpc3RvcnkpIHRocm93IG5ldyBFcnJvcihcIkhpc3RvcnkgaGFzbid0IGJlZW4gc2V0IGluIHRoZSBBUEkgbWFrZXIgY29uZmlndXJhdGlvblwiKVxuXG4gICAgaGlzdG9yeS5wdXNoKHRoaXMucHJvcHMudG8pXG4gIH1cbn0pKVxuIl19
|
package/build/logger.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** @typedef {string | number | boolean | object | null | undefined} LogMessagePart */
|
|
2
|
+
/** @typedef {string | Array<LogMessagePart> | (() => string | Array<LogMessagePart>)} LogMessage */
|
|
1
3
|
/** Small logger with global and per-instance debug toggles. */
|
|
2
4
|
export default class ApiMakerLogger {
|
|
3
5
|
/** @returns {boolean | undefined} */
|
|
@@ -13,20 +15,20 @@ export default class ApiMakerLogger {
|
|
|
13
15
|
});
|
|
14
16
|
name: string;
|
|
15
17
|
/**
|
|
16
|
-
* @param {
|
|
18
|
+
* @param {LogMessage} message
|
|
17
19
|
* @returns {void}
|
|
18
20
|
*/
|
|
19
|
-
debug(message:
|
|
21
|
+
debug(message: LogMessage): void;
|
|
20
22
|
/**
|
|
21
|
-
* @param {
|
|
23
|
+
* @param {LogMessagePart} message
|
|
22
24
|
* @returns {void}
|
|
23
25
|
*/
|
|
24
|
-
error(message:
|
|
26
|
+
error(message: LogMessagePart): void;
|
|
25
27
|
/**
|
|
26
|
-
* @param {
|
|
28
|
+
* @param {LogMessage} message
|
|
27
29
|
* @returns {void}
|
|
28
30
|
*/
|
|
29
|
-
log(message:
|
|
31
|
+
log(message: LogMessage): void;
|
|
30
32
|
/** @returns {boolean | undefined} */
|
|
31
33
|
getDebug: () => boolean | undefined;
|
|
32
34
|
/**
|
|
@@ -36,4 +38,6 @@ export default class ApiMakerLogger {
|
|
|
36
38
|
setDebug(value: boolean): void;
|
|
37
39
|
isDebugging: boolean;
|
|
38
40
|
}
|
|
41
|
+
export type LogMessagePart = string | number | boolean | object | null | undefined;
|
|
42
|
+
export type LogMessage = string | Array<LogMessagePart> | (() => string | Array<LogMessagePart>);
|
|
39
43
|
//# sourceMappingURL=logger.d.ts.map
|
package/build/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"/src/","sources":["logger.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"/src/","sources":["logger.js"],"names":[],"mappings":"AAGA,sFAAsF;AACtF,oGAAoG;AAEpG,+DAA+D;AAC/D;IACE,qCAAqC;IACrC,6BADc,OAAO,GAAG,SAAS,CACe;IAEhD;;;OAGG;IACH,gCAHW,OAAO,GACL,IAAI,CAIhB;IAED,sCAAsC;IACtC,mBADY;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAC,EAG1B;IADC,aAAqB;IAGvB;;;OAGG;IACH,eAHW,UAAU,GACR,IAAI,CAMhB;IAED;;;OAGG;IACH,eAHW,cAAc,GACZ,IAAI,CAIhB;IAED;;;OAGG;IACH,aAHW,UAAU,GACR,IAAI,CAWhB;IAED,qCAAqC;IACrC,gBADc,OAAO,GAAG,SAAS,CACA;IAEjC;;;OAGG;IACH,gBAHW,OAAO,GACL,IAAI,CAIhB;IADC,qBAAwB;CAE3B;6BAhEa,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS;yBACrD,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC"}
|
package/build/logger.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
const shared = {};
|
|
3
|
+
/** @typedef {string | number | boolean | object | null | undefined} LogMessagePart */
|
|
4
|
+
/** @typedef {string | Array<LogMessagePart> | (() => string | Array<LogMessagePart>)} LogMessage */
|
|
2
5
|
/** Small logger with global and per-instance debug toggles. */
|
|
3
6
|
export default class ApiMakerLogger {
|
|
4
7
|
/** @returns {boolean | undefined} */
|
|
@@ -15,7 +18,7 @@ export default class ApiMakerLogger {
|
|
|
15
18
|
this.name = args.name;
|
|
16
19
|
}
|
|
17
20
|
/**
|
|
18
|
-
* @param {
|
|
21
|
+
* @param {LogMessage} message
|
|
19
22
|
* @returns {void}
|
|
20
23
|
*/
|
|
21
24
|
debug(message) {
|
|
@@ -24,14 +27,14 @@ export default class ApiMakerLogger {
|
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
/**
|
|
27
|
-
* @param {
|
|
30
|
+
* @param {LogMessagePart} message
|
|
28
31
|
* @returns {void}
|
|
29
32
|
*/
|
|
30
33
|
error(message) {
|
|
31
34
|
console.error(message);
|
|
32
35
|
}
|
|
33
36
|
/**
|
|
34
|
-
* @param {
|
|
37
|
+
* @param {LogMessage} message
|
|
35
38
|
* @returns {void}
|
|
36
39
|
*/
|
|
37
40
|
log(message) {
|
|
@@ -56,4 +59,4 @@ export default class ApiMakerLogger {
|
|
|
56
59
|
this.isDebugging = value;
|
|
57
60
|
}
|
|
58
61
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJsb2dnZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtBQUVqQixzRkFBc0Y7QUFDdEYsb0dBQW9HO0FBRXBHLCtEQUErRDtBQUMvRCxNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFDakMscUNBQXFDO0lBQ3JDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQTtJQUVoRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVE7UUFDNUIsTUFBTSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUE7SUFDL0IsQ0FBQztJQUVELHNDQUFzQztJQUN0QyxZQUFZLElBQUksR0FBRyxFQUFFO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU87UUFDWCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEdBQUcsQ0FBQyxPQUFPO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFO1lBQUUsT0FBTTtRQUMzRCxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUE7UUFFeEIsSUFBSSxPQUFPLFVBQVUsSUFBSSxVQUFVO1lBQUUsVUFBVSxHQUFHLFVBQVUsRUFBRSxDQUFBO1FBQzlELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUFFLFVBQVUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3pELElBQUksSUFBSSxDQUFDLElBQUk7WUFBRSxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLFVBQVUsQ0FBQyxDQUFBO1FBRTVELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFBO0lBRWpDOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFLO1FBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7SUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuY29uc3Qgc2hhcmVkID0ge31cblxuLyoqIEB0eXBlZGVmIHtzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0IHwgbnVsbCB8IHVuZGVmaW5lZH0gTG9nTWVzc2FnZVBhcnQgKi9cbi8qKiBAdHlwZWRlZiB7c3RyaW5nIHwgQXJyYXk8TG9nTWVzc2FnZVBhcnQ+IHwgKCgpID0+IHN0cmluZyB8IEFycmF5PExvZ01lc3NhZ2VQYXJ0Pil9IExvZ01lc3NhZ2UgKi9cblxuLyoqIFNtYWxsIGxvZ2dlciB3aXRoIGdsb2JhbCBhbmQgcGVyLWluc3RhbmNlIGRlYnVnIHRvZ2dsZXMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckxvZ2dlciB7XG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgc3RhdGljIGdldEdsb2JhbERlYnVnID0gKCkgPT4gc2hhcmVkLmlzRGVidWdnaW5nXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gbmV3VmFsdWVcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBzdGF0aWMgc2V0R2xvYmFsRGVidWcobmV3VmFsdWUpIHtcbiAgICBzaGFyZWQuaXNEZWJ1Z2dpbmcgPSBuZXdWYWx1ZVxuICB9XG5cbiAgLyoqIEBwYXJhbSB7e25hbWU/OiBzdHJpbmd9fSBbYXJnc10gKi9cbiAgY29uc3RydWN0b3IoYXJncyA9IHt9KSB7XG4gICAgdGhpcy5uYW1lID0gYXJncy5uYW1lXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtMb2dNZXNzYWdlfSBtZXNzYWdlXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZGVidWcobWVzc2FnZSkge1xuICAgIGlmICh0aGlzLmdldERlYnVnKCkpIHtcbiAgICAgIHRoaXMubG9nKG1lc3NhZ2UpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7TG9nTWVzc2FnZVBhcnR9IG1lc3NhZ2VcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBlcnJvcihtZXNzYWdlKSB7XG4gICAgY29uc29sZS5lcnJvcihtZXNzYWdlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7TG9nTWVzc2FnZX0gbWVzc2FnZVxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGxvZyhtZXNzYWdlKSB7XG4gICAgaWYgKCF0aGlzLmRlYnVnICYmICFBcGlNYWtlckxvZ2dlci5nZXRHbG9iYWxEZWJ1ZygpKSByZXR1cm5cbiAgICBsZXQgbG9nTWVzc2FnZSA9IG1lc3NhZ2VcblxuICAgIGlmICh0eXBlb2YgbG9nTWVzc2FnZSA9PSBcImZ1bmN0aW9uXCIpIGxvZ01lc3NhZ2UgPSBsb2dNZXNzYWdlKClcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobG9nTWVzc2FnZSkpIGxvZ01lc3NhZ2UgPSBbbG9nTWVzc2FnZV1cbiAgICBpZiAodGhpcy5uYW1lKSBsb2dNZXNzYWdlID0gW2Ake3RoaXMubmFtZX06YCwgLi4ubG9nTWVzc2FnZV1cblxuICAgIGNvbnNvbGUubG9nKC4uLmxvZ01lc3NhZ2UpXG4gIH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGdldERlYnVnID0gKCkgPT4gdGhpcy5pc0RlYnVnZ2luZ1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbHVlXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgc2V0RGVidWcodmFsdWUpIHtcbiAgICB0aGlzLmlzRGVidWdnaW5nID0gdmFsdWVcbiAgfVxufVxuIl19
|
package/build/merge-styles.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
1
|
+
/** @typedef {import("react-native").ImageStyle | import("react-native").TextStyle | import("react-native").ViewStyle} MergeableStyle */
|
|
2
|
+
/** @typedef {false | null | undefined | MergeableStyle | MergeableStyle[]} MergeableStyleEntry */
|
|
3
|
+
/**
|
|
4
|
+
* Merge style inputs into a flat style object.
|
|
5
|
+
* @param {MergeableStyleEntry[]} stylesList
|
|
6
|
+
* @returns {MergeableStyle}
|
|
7
|
+
*/
|
|
8
|
+
export default function mergeStyles(stylesList: MergeableStyleEntry[]): MergeableStyle;
|
|
9
|
+
export type MergeableStyle = import("react-native").ImageStyle | import("react-native").TextStyle | import("react-native").ViewStyle;
|
|
10
|
+
export type MergeableStyleEntry = false | null | undefined | MergeableStyle | MergeableStyle[];
|
|
3
11
|
//# sourceMappingURL=merge-styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-styles.d.ts","sourceRoot":"/src/","sources":["merge-styles.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"merge-styles.d.ts","sourceRoot":"/src/","sources":["merge-styles.js"],"names":[],"mappings":"AAGA,wIAAwI;AACxI,kGAAkG;AAElG;;;;GAIG;AACH,gDAHW,mBAAmB,EAAE,GACnB,cAAc,CAc1B;6BApBa,OAAO,cAAc,EAAE,UAAU,GAAG,OAAO,cAAc,EAAE,SAAS,GAAG,OAAO,cAAc,EAAE,SAAS;kCACvG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,cAAc,GAAG,cAAc,EAAE"}
|
package/build/merge-styles.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { StyleSheet } from "react-native";
|
|
2
|
-
/**
|
|
3
|
+
/** @typedef {import("react-native").ImageStyle | import("react-native").TextStyle | import("react-native").ViewStyle} MergeableStyle */
|
|
4
|
+
/** @typedef {false | null | undefined | MergeableStyle | MergeableStyle[]} MergeableStyleEntry */
|
|
5
|
+
/**
|
|
6
|
+
* Merge style inputs into a flat style object.
|
|
7
|
+
* @param {MergeableStyleEntry[]} stylesList
|
|
8
|
+
* @returns {MergeableStyle}
|
|
9
|
+
*/
|
|
3
10
|
export default function mergeStyles(stylesList) {
|
|
4
|
-
const mergedStyle = {};
|
|
11
|
+
const mergedStyle = /** @type {MergeableStyle} */ ({});
|
|
5
12
|
for (const style of stylesList) {
|
|
6
13
|
if (typeof style == "object") {
|
|
7
14
|
Object.assign(mergedStyle, StyleSheet.flatten(style));
|
|
@@ -12,4 +19,4 @@ export default function mergeStyles(stylesList) {
|
|
|
12
19
|
}
|
|
13
20
|
return mergedStyle;
|
|
14
21
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2Utc3R5bGVzLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJtZXJnZS1zdHlsZXMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFFdkMsd0lBQXdJO0FBQ3hJLGtHQUFrRztBQUVsRzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxXQUFXLENBQUMsVUFBVTtJQUM1QyxNQUFNLFdBQVcsR0FBRyw2QkFBNkIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRXRELEtBQUssTUFBTSxLQUFLLElBQUksVUFBVSxFQUFFLENBQUM7UUFDL0IsSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDdkQsQ0FBQzthQUFNLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzFCLHNCQUFzQjtRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sV0FBVyxDQUFBO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcbmltcG9ydCB7U3R5bGVTaGVldH0gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KFwicmVhY3QtbmF0aXZlXCIpLkltYWdlU3R5bGUgfCBpbXBvcnQoXCJyZWFjdC1uYXRpdmVcIikuVGV4dFN0eWxlIHwgaW1wb3J0KFwicmVhY3QtbmF0aXZlXCIpLlZpZXdTdHlsZX0gTWVyZ2VhYmxlU3R5bGUgKi9cbi8qKiBAdHlwZWRlZiB7ZmFsc2UgfCBudWxsIHwgdW5kZWZpbmVkIHwgTWVyZ2VhYmxlU3R5bGUgfCBNZXJnZWFibGVTdHlsZVtdfSBNZXJnZWFibGVTdHlsZUVudHJ5ICovXG5cbi8qKlxuICogTWVyZ2Ugc3R5bGUgaW5wdXRzIGludG8gYSBmbGF0IHN0eWxlIG9iamVjdC5cbiAqIEBwYXJhbSB7TWVyZ2VhYmxlU3R5bGVFbnRyeVtdfSBzdHlsZXNMaXN0XG4gKiBAcmV0dXJucyB7TWVyZ2VhYmxlU3R5bGV9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlU3R5bGVzKHN0eWxlc0xpc3QpIHtcbiAgY29uc3QgbWVyZ2VkU3R5bGUgPSAvKiogQHR5cGUge01lcmdlYWJsZVN0eWxlfSAqLyAoe30pXG5cbiAgZm9yIChjb25zdCBzdHlsZSBvZiBzdHlsZXNMaXN0KSB7XG4gICAgaWYgKHR5cGVvZiBzdHlsZSA9PSBcIm9iamVjdFwiKSB7XG4gICAgICBPYmplY3QuYXNzaWduKG1lcmdlZFN0eWxlLCBTdHlsZVNoZWV0LmZsYXR0ZW4oc3R5bGUpKVxuICAgIH0gZWxzZSBpZiAoc3R5bGUgPT09IG51bGwpIHtcbiAgICAgIC8vIElnbm9yZSAtIGRvIG5vdGhpbmdcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWVyZ2VkU3R5bGVcbn1cbiJdfQ==
|
package/build/modal.d.ts
CHANGED
package/build/modal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.d.ts","sourceRoot":"/src/","sources":["modal.jsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"modal.d.ts","sourceRoot":"/src/","sources":["modal.jsx"],"names":[],"mappings":";;oBAOc,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;oBACrB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;kBAJjB,OAAO"}
|
package/build/modal.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// @ts-check
|
|
2
3
|
/* eslint-disable sort-imports */
|
|
3
4
|
import { Modal, Pressable, View } from "react-native";
|
|
4
|
-
import { shapeComponent } from "set-state-compare/build/shape-component.js";
|
|
5
|
-
import BaseComponent from "./base-component";
|
|
5
|
+
import { ShapeComponent, shapeComponent } from "set-state-compare/build/shape-component.js";
|
|
6
6
|
import React from "react";
|
|
7
7
|
import memo from "set-state-compare/build/memo.js";
|
|
8
|
-
|
|
8
|
+
/** @typedef {Record<string, never>} Props */
|
|
9
|
+
/** @typedef {Record<string, never>} State */
|
|
10
|
+
export default memo(shapeComponent(/** @augments {ShapeComponent<Props, State>} */ class ApiMakerModal extends ShapeComponent {
|
|
9
11
|
render() {
|
|
10
12
|
const { children, onRequestClose, ...restProps } = this.props;
|
|
11
13
|
return (_jsx(Modal, { onRequestClose: onRequestClose, ...restProps, children: _jsxs(View, { style: this.cache("rootViewStyle", {
|
|
@@ -22,4 +24,4 @@ export default memo(shapeComponent(class ApiMakerModal extends BaseComponent {
|
|
|
22
24
|
}) }), children] }) }));
|
|
23
25
|
}
|
|
24
26
|
}));
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbIm1vZGFsLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsWUFBWTtBQUNaLGlDQUFpQztBQUNqQyxPQUFPLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDbkQsT0FBTyxFQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQTtBQUN6RixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFDekIsT0FBTyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFFbEQsNkNBQTZDO0FBQzdDLDZDQUE2QztBQUM3QyxlQUFlLElBQUksQ0FBQyxjQUFjLENBQUMsK0NBQStDLENBQUMsTUFBTSxhQUFjLFNBQVEsY0FBYztJQUMzSCxNQUFNO1FBQ0osTUFBTSxFQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsR0FBRyxTQUFTLEVBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1FBRTNELE9BQU8sQ0FDTCxLQUFDLEtBQUssSUFBQyxjQUFjLEVBQUUsY0FBYyxLQUFNLFNBQVMsWUFDbEQsTUFBQyxJQUFJLElBQ0gsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFO29CQUNqQyxVQUFVLEVBQUUsUUFBUTtvQkFDcEIsY0FBYyxFQUFFLFFBQVE7b0JBQ3hCLFFBQVEsRUFBRSxNQUFNO29CQUNoQixTQUFTLEVBQUUsTUFBTTtvQkFDakIsT0FBTyxFQUFFLEVBQUU7aUJBQ1osQ0FBQyxhQUVGLEtBQUMsU0FBUyxJQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLEVBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFDLENBQUMsRUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ2xDLFFBQVEsRUFBRSxVQUFVOzRCQUNwQixRQUFRLEVBQUUsTUFBTTs0QkFDaEIsU0FBUyxFQUFFLE1BQU07NEJBQ2pCLGVBQWUsRUFBRSxvQkFBb0I7eUJBQ3RDLENBQUMsR0FDRixFQUNELFFBQVEsSUFDSixHQUNELENBQ1QsQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQge01vZGFsLCBQcmVzc2FibGUsIFZpZXd9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuaW1wb3J0IHtTaGFwZUNvbXBvbmVudCwgc2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9zaGFwZS1jb21wb25lbnQuanNcIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvbWVtby5qc1wiXG5cbi8qKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgbmV2ZXI+fSBQcm9wcyAqL1xuLyoqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBuZXZlcj59IFN0YXRlICovXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KC8qKiBAYXVnbWVudHMge1NoYXBlQ29tcG9uZW50PFByb3BzLCBTdGF0ZT59ICovIGNsYXNzIEFwaU1ha2VyTW9kYWwgZXh0ZW5kcyBTaGFwZUNvbXBvbmVudCB7XG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7Y2hpbGRyZW4sIG9uUmVxdWVzdENsb3NlLCAuLi5yZXN0UHJvcHN9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxNb2RhbCBvblJlcXVlc3RDbG9zZT17b25SZXF1ZXN0Q2xvc2V9IHsuLi5yZXN0UHJvcHN9PlxuICAgICAgICA8Vmlld1xuICAgICAgICAgIHN0eWxlPXt0aGlzLmNhY2hlKFwicm9vdFZpZXdTdHlsZVwiLCB7XG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICBtaW5XaWR0aDogXCIxMDAlXCIsXG4gICAgICAgICAgICBtaW5IZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgICAgcGFkZGluZzogMjBcbiAgICAgICAgICB9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDxQcmVzc2FibGVcbiAgICAgICAgICAgIGRhdGFTZXQ9e3RoaXMuY2FjaGUoXCJwcmVzc2FibGVEYXRhU2V0XCIsIHtjbGFzczogXCJtb2RhbC1iYWNrZHJvcFwifSl9XG4gICAgICAgICAgICBvblByZXNzPXtvblJlcXVlc3RDbG9zZX1cbiAgICAgICAgICAgIHN0eWxlPXt0aGlzLmNhY2hlKFwicHJlc3NhYmxlU3R5bGVcIiwge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICBtaW5XaWR0aDogXCIxMDAlXCIsXG4gICAgICAgICAgICAgIG1pbkhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCJyZ2JhKDAsIDAsIDAsIDAuNSlcIlxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvVmlldz5cbiAgICAgIDwvTW9kYWw+XG4gICAgKVxuICB9XG59KSlcbiJdfQ==
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
/** @typedef {import("./base-model.js").BaseModelClassType} ModelClassLike */
|
|
1
2
|
/**
|
|
2
3
|
* @param {string} modelName
|
|
3
|
-
* @returns {
|
|
4
|
+
* @returns {ModelClassLike}
|
|
4
5
|
*/
|
|
5
|
-
export default function modelClassRequire(modelName: string):
|
|
6
|
+
export default function modelClassRequire(modelName: string): ModelClassLike;
|
|
7
|
+
export type ModelClassLike = import("./base-model.js").BaseModelClassType;
|
|
6
8
|
//# sourceMappingURL=model-class-require.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-class-require.d.ts","sourceRoot":"/src/","sources":["model-class-require.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model-class-require.d.ts","sourceRoot":"/src/","sources":["model-class-require.js"],"names":[],"mappings":"AAMA,6EAA6E;AAE7E;;;GAGG;AACH,qDAHW,MAAM,GACJ,cAAc,CAa1B;6BAjBa,OAAO,iBAAiB,EAAE,kBAAkB"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import * as inflection from "inflection";
|
|
2
3
|
// @ts-expect-error
|
|
3
4
|
import * as models from "models.js"; // eslint-disable-line import/no-unresolved
|
|
5
|
+
/** @typedef {import("./base-model.js").BaseModelClassType} ModelClassLike */
|
|
4
6
|
/**
|
|
5
7
|
* @param {string} modelName
|
|
6
|
-
* @returns {
|
|
8
|
+
* @returns {ModelClassLike}
|
|
7
9
|
*/
|
|
8
10
|
export default function modelClassRequire(modelName) {
|
|
9
11
|
const requireName = inflection.camelize(modelName);
|
|
@@ -14,4 +16,4 @@ export default function modelClassRequire(modelName) {
|
|
|
14
16
|
}
|
|
15
17
|
return ModelClass;
|
|
16
18
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtY2xhc3MtcmVxdWlyZS5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsibW9kZWwtY2xhc3MtcmVxdWlyZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBQ1osT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFFeEMsbUJBQW1CO0FBQ25CLE9BQU8sS0FBSyxNQUFNLE1BQU0sV0FBVyxDQUFBLENBQUMsMkNBQTJDO0FBRS9FLDZFQUE2RTtBQUU3RTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsT0FBTyxVQUFVLGlCQUFpQixDQUFDLFNBQVM7SUFDakQsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNsRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFdEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7UUFFL0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsU0FBUyxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQy9FLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQTtBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcblxuLy8gQHRzLWV4cGVjdC1lcnJvclxuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gXCJtb2RlbHMuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGltcG9ydC9uby11bnJlc29sdmVkXG5cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLkJhc2VNb2RlbENsYXNzVHlwZX0gTW9kZWxDbGFzc0xpa2UgKi9cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gbW9kZWxOYW1lXG4gKiBAcmV0dXJucyB7TW9kZWxDbGFzc0xpa2V9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1vZGVsQ2xhc3NSZXF1aXJlKG1vZGVsTmFtZSkge1xuICBjb25zdCByZXF1aXJlTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUobW9kZWxOYW1lKVxuICBjb25zdCBNb2RlbENsYXNzID0gbW9kZWxzW3JlcXVpcmVOYW1lXVxuXG4gIGlmICghTW9kZWxDbGFzcykge1xuICAgIGNvbnN0IG1vZGVsQ2xhc3NlcyA9IE9iamVjdC5rZXlzKG1vZGVscykuc29ydCgpXG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1vZGVsIGNhbGxlZCAke21vZGVsTmFtZX0gaW4gJHttb2RlbENsYXNzZXMuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICByZXR1cm4gTW9kZWxDbGFzc1xufVxuIl19
|