gina 0.1.6-alpha.14 → 0.1.6-alpha.140
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/LICENSE +1 -1
- package/README-4Contributors.md +14 -8
- package/README.md +13 -4
- package/bin/cli +16 -2
- package/bin/gina +29 -1
- package/framework/{v0.1.6-alpha.14/lib/inherits → v0.1.6-alpha.140}/LICENSE +1 -1
- package/framework/v0.1.6-alpha.140/VERSION +1 -0
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/plugin/README.md +1 -0
- package/framework/v0.1.6-alpha.140/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/plugin/dist/vendor/gina/js/gina.js +765 -256
- package/framework/v0.1.6-alpha.140/core/asset/plugin/dist/vendor/gina/js/gina.min.js +782 -0
- package/framework/v0.1.6-alpha.140/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
- package/framework/v0.1.6-alpha.140/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
- package/framework/v0.1.6-alpha.140/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/config.js +158 -78
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/connectors/couchbase/index.js +108 -26
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/connectors/couchbase/lib/connector.v4.js +124 -22
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/connectors/couchbase/lib/session-store.v4.js +5 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/controller/controller.js +762 -189
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/controller/index.js +2 -2
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/.github/workflows/ci.yml +24 -0
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/.github/workflows/lint.yml +23 -0
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/README.md +191 -0
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-big.js +149 -0
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-small.js +143 -0
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-big.js +154 -0
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-small.js +148 -0
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-100pairs-small.js +101 -0
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-900pairs-small-alt.js +84 -0
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/lib/index.js +57 -0
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/lib/types/multipart.js +680 -0
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/lib/types/urlencoded.js +350 -0
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/lib/utils.js +596 -0
- package/framework/v0.1.6-alpha.140/core/deps/busboy-1.6.0/package.json +22 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/.travis.yml +4 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/LICENSE +21 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/bool.js +10 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/boolean_double.js +7 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/boolean_single.js +7 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/default_hash.js +8 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/default_singles.js +7 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/divide.js +8 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/line_count.js +20 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/line_count_options.js +29 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/line_count_wrap.js +29 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/nonopt.js +4 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/reflect.js +2 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/short.js +3 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/string.js +11 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/usage-options.js +19 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/example/xup.js +10 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/index.js +343 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/package.json +31 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/package.json.dist +39 -0
- package/framework/v0.1.6-alpha.140/core/deps/optimist-0.6.1/readme.markdown +513 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/HISTORY.md +498 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/LICENSE +7 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/README.md +88 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/bin/swig.js +161 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/bin/swig.js.dist +161 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/dist/swig.min.js +7 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/dist/swig.min.js.map +8 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/index.js +1 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/dateformatter.js +198 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/filters.js +630 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/lexer.js +306 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/loaders/filesystem.js +59 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/loaders/index.js +53 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/loaders/memory.js +63 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/parser.js +744 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/swig.js +740 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/autoescape.js +37 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/block.js +25 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/else.js +25 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/elseif.js +28 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/extends.js +19 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/filter.js +68 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/for.js +130 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/if.js +86 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/import.js +91 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/include.js +100 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/index.js +16 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/macro.js +79 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/parent.js +51 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/raw.js +23 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/set.js +109 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/tags/spaceless.js +42 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/lib/utils.js +184 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/package.json +57 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-1.4.2/package.json.dist +61 -0
- package/framework/v0.1.6-alpha.140/core/deps/swig-client/swig.js +5031 -0
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/dev/index.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/dev/lib/factory.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/gna.js +104 -22
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/locales/index.js +3 -3
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/locales/src/make.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/mime.types +1 -0
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/model/entity.js +5 -5
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/model/index.js +30 -26
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/model/template/entityFactory.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/model/template/index.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/index.js +3 -3
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/file/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/intl/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/storage/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/validator/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/validator/src/form-validator.js +39 -27
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/validator/src/main.js +477 -114
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/router.js +92 -47
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/server.isaac.js +94 -43
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/server.js +329 -134
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/status.codes +1 -11
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle/controllers/setup.js +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/command/gina.tpl +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/conf/env.json +19 -0
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/conf/templates.json +4 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/console.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/context.js +30 -13
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/data/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/data/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/dateFormat.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/index.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/json/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/json/src/main.js +6 -4
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/path.js +31 -15
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/plugins/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/plugins/src/api-error.js +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/plugins/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/task.js +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/text.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/archiver/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/archiver/src/main.js +11 -11
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/add.js +2 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/start.js +21 -8
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/env/get.js +1 -1
- package/framework/v0.1.6-alpha.140/lib/cmd/env/help.js +30 -0
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/build.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/dot.js +21 -0
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/init.js +19 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/link-node-modules.js +2 -3
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/link.js +3 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/restart.js +3 -3
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/start.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/tail.js +29 -12
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/version.js +15 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/helper.js +8 -4
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/index.js +1 -1
- package/framework/v0.1.6-alpha.140/lib/cmd/minion/help.txt +18 -0
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/port/reset.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/add.js +7 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/arguments.json +1 -0
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/build.js +4 -4
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/help.txt +4 -0
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/list.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/protocol/list.js +71 -50
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/collection/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/collection/src/main.js +20 -14
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/config.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cron/package.json +2 -2
- package/framework/v0.1.6-alpha.140/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +15754 -0
- package/framework/v0.1.6-alpha.140/lib/domain/dist/public_suffix_list.dat +15754 -0
- package/framework/v0.1.6-alpha.140/lib/domain/exemples/backend.js +12 -0
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/domain/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/domain/src/main.js +20 -6
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/generator/index.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/index.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140/lib/inherits}/LICENSE +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/inherits/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/inherits/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/logger/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/logger/src/containers/mq/listener.js +10 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/logger/src/helper.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/logger/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/math/index.js +1 -1
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/merge/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/model.js +3 -3
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/proc.js +10 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/routing/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/routing/src/main.js +82 -26
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/session-store.js +3 -3
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/swig-filters/package.json +2 -2
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/swig-filters/src/main.js +76 -15
- package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/validator.js +2 -2
- package/framework/v0.1.6-alpha.140/package.json +11 -0
- package/package.json +3 -3
- package/resources/package.json.template +1 -1
- package/script/post_install.js +4 -4
- package/script/pre_install.js +3 -3
- package/utils/helper.js +38 -14
- package/framework/v0.1.6-alpha.14/VERSION +0 -1
- package/framework/v0.1.6-alpha.14/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +0 -1
- package/framework/v0.1.6-alpha.14/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -766
- package/framework/v0.1.6-alpha.14/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +0 -8
- package/framework/v0.1.6-alpha.14/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -7
- package/framework/v0.1.6-alpha.14/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +0 -8
- package/framework/v0.1.6-alpha.14/core/deps/busboy/.travis.yml +0 -17
- package/framework/v0.1.6-alpha.14/core/deps/busboy/README.md +0 -225
- package/framework/v0.1.6-alpha.14/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -73
- package/framework/v0.1.6-alpha.14/core/deps/busboy/deps/encoding/encoding.js +0 -2391
- package/framework/v0.1.6-alpha.14/core/deps/busboy/lib/main.js +0 -89
- package/framework/v0.1.6-alpha.14/core/deps/busboy/lib/types/multipart.js +0 -328
- package/framework/v0.1.6-alpha.14/core/deps/busboy/lib/types/urlencoded.js +0 -214
- package/framework/v0.1.6-alpha.14/core/deps/busboy/lib/utils.js +0 -191
- package/framework/v0.1.6-alpha.14/core/deps/busboy/package.json +0 -69
- package/framework/v0.1.6-alpha.14/lib/domain/dist/public_suffix_list.dat +0 -14186
- package/framework/v0.1.6-alpha.14/lib/domain/exemples/backend.js +0 -0
- package/framework/v0.1.6-alpha.14/package.json +0 -14
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/AUTHORS +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/html/static.html +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/plugin/uuid.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.1.6-alpha.14/core/deps/busboy → v0.1.6-alpha.140/core/deps/busboy-1.6.0}/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/locales/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/locales/currency.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/locales/src/resources/currency.csv +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/locales/src/resources/region.csv +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/locales/src/resources/region.mapping.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/file/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/file/build.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/intl/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/intl/build.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/intl/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/server.express.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/_gitignore +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/conf/package.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/data/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/json/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/helpers/prototypes.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/archiver/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/archiver/build.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.1.6-alpha.14/lib/cmd/env → v0.1.6-alpha.140/lib/cmd/minion}/help.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/collection/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/collection/build.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cron/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/domain/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/domain/exemples/frontend.html +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/inherits/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/inherits/example/inheriting_eventemitter.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/inherits/example/protected_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/inherits/example/simple_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/logger/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/merge/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/merge/example/merge.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/merge/example/merge_2_literal objects.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/merge/example/merge_and_preserve_first.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/routing/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/routing/build.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/shell.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/url/README.md +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/url/index.js +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/url/mocks.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/url/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/lib/url/test.js +0 -0
package/framework/{v0.1.6-alpha.14 → v0.1.6-alpha.140}/core/asset/plugin/dist/vendor/gina/js/gina.js
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** vim: et:ts=4:sw=4:sts=4
|
|
2
|
-
* @license RequireJS 2.3.
|
|
2
|
+
* @license RequireJS 2.3.7 Copyright jQuery Foundation and other contributors.
|
|
3
3
|
* Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE
|
|
4
4
|
*/
|
|
5
5
|
//Not using strict: uneven strict support in browsers, #392, and causes
|
|
@@ -11,7 +11,7 @@ var requirejs, require, define;
|
|
|
11
11
|
(function (global, setTimeout) {
|
|
12
12
|
var req, s, head, baseElement, dataMain, src,
|
|
13
13
|
interactiveScript, currentlyAddingScript, mainScript, subPath,
|
|
14
|
-
version = '2.3.
|
|
14
|
+
version = '2.3.7',
|
|
15
15
|
commentRegExp = /\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/mg,
|
|
16
16
|
cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
|
|
17
17
|
jsSuffixRegExp = /\.js$/,
|
|
@@ -33,7 +33,8 @@ var requirejs, require, define;
|
|
|
33
33
|
contexts = {},
|
|
34
34
|
cfg = {},
|
|
35
35
|
globalDefQueue = [],
|
|
36
|
-
useInteractive = false
|
|
36
|
+
useInteractive = false,
|
|
37
|
+
disallowedProps = ['__proto__', 'constructor'];
|
|
37
38
|
|
|
38
39
|
//Could match something like ')//comment', do not lose the prefix to comment.
|
|
39
40
|
function commentReplace(match, singlePrefix) {
|
|
@@ -94,7 +95,7 @@ var requirejs, require, define;
|
|
|
94
95
|
function eachProp(obj, func) {
|
|
95
96
|
var prop;
|
|
96
97
|
for (prop in obj) {
|
|
97
|
-
if (hasProp(obj, prop)) {
|
|
98
|
+
if (hasProp(obj, prop) && disallowedProps.indexOf(prop) == -1) {
|
|
98
99
|
if (func(obj[prop], prop)) {
|
|
99
100
|
break;
|
|
100
101
|
}
|
|
@@ -3072,9 +3073,17 @@ function handleXhr(xhr, $el, options, require) {
|
|
|
3072
3073
|
|
|
3073
3074
|
// catching ready state cb
|
|
3074
3075
|
xhr.onreadystatechange = function (event) {
|
|
3076
|
+
if ( typeof(merge) == 'undefined' ) {
|
|
3077
|
+
merge = require('lib/merge');
|
|
3078
|
+
}
|
|
3075
3079
|
// In case the user is also redirecting
|
|
3076
3080
|
var redirectDelay = (/Google Inc/i.test(navigator.vendor)) ? 50 : 0;
|
|
3077
3081
|
|
|
3082
|
+
// Data loading ...
|
|
3083
|
+
// if (xhr.readyState == 3) {
|
|
3084
|
+
// $form.target.setAttribute('data-gina-form-loading', true);
|
|
3085
|
+
// }
|
|
3086
|
+
|
|
3078
3087
|
if (xhr.readyState == 2) { // responseType interception
|
|
3079
3088
|
isAttachment = ( /^attachment\;/.test( xhr.getResponseHeader('Content-Disposition') ) ) ? true : false;
|
|
3080
3089
|
// force blob response type
|
|
@@ -3108,7 +3117,7 @@ function handleXhr(xhr, $el, options, require) {
|
|
|
3108
3117
|
var url = window.URL.createObjectURL(blob);
|
|
3109
3118
|
a.href = url;
|
|
3110
3119
|
var contentDisposition = xhr.getResponseHeader('Content-Disposition');
|
|
3111
|
-
a.download = contentDisposition.match('\=(.*)')[0].
|
|
3120
|
+
a.download = contentDisposition.match('\=(.*)')[0].substring(1);
|
|
3112
3121
|
//programatically click the link to trigger the download
|
|
3113
3122
|
a.click();
|
|
3114
3123
|
//release the reference to the file by revoking the Object URL
|
|
@@ -3277,6 +3286,10 @@ function handleXhr(xhr, $el, options, require) {
|
|
|
3277
3286
|
// This fires after the blob has been read/loaded.
|
|
3278
3287
|
reader.addEventListener('loadend', (e) => {
|
|
3279
3288
|
|
|
3289
|
+
if ( typeof(merge) == 'undefined' ) {
|
|
3290
|
+
merge = require('lib/merge');
|
|
3291
|
+
}
|
|
3292
|
+
|
|
3280
3293
|
if ( /string/i.test(typeof(e.srcElement.result)) ) {
|
|
3281
3294
|
blobError += e.srcElement.result;
|
|
3282
3295
|
} else if ( typeof(e.srcElement.result) == 'object' ) {
|
|
@@ -3848,7 +3861,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
3848
3861
|
;
|
|
3849
3862
|
/*
|
|
3850
3863
|
* This file is part of the gina package.
|
|
3851
|
-
* Copyright (c) 2009-
|
|
3864
|
+
* Copyright (c) 2009-2025 Rhinostone <contact@gina.io>
|
|
3852
3865
|
*
|
|
3853
3866
|
* For the full copyright and license information, please view the LICENSE
|
|
3854
3867
|
* file that was distributed with this source code.
|
|
@@ -4629,10 +4642,9 @@ function Collection(content, options) {
|
|
|
4629
4642
|
*/
|
|
4630
4643
|
var search = function(filter, field, _content, matched, searchOptionRules) {
|
|
4631
4644
|
var reValidCount = null, searchOptCount = null;
|
|
4632
|
-
|
|
4633
|
-
|
|
4645
|
+
// null case
|
|
4646
|
+
if (filter === null && _content === null) {
|
|
4634
4647
|
++matched;
|
|
4635
|
-
|
|
4636
4648
|
} else if (
|
|
4637
4649
|
filter
|
|
4638
4650
|
&& keywords.indexOf(localeLowerCase) > -1
|
|
@@ -4698,7 +4710,6 @@ function Collection(content, options) {
|
|
|
4698
4710
|
&& searchOptions
|
|
4699
4711
|
&& typeof(searchOptions[field]) != 'undefined'
|
|
4700
4712
|
) {
|
|
4701
|
-
|
|
4702
4713
|
reValidCount = 0;
|
|
4703
4714
|
searchOptCount = searchOptions[field].count();
|
|
4704
4715
|
for ( var rule in searchOptions[field]) {
|
|
@@ -4797,7 +4808,7 @@ function Collection(content, options) {
|
|
|
4797
4808
|
|
|
4798
4809
|
field = arr[1];
|
|
4799
4810
|
if (/^\./.test(field) )
|
|
4800
|
-
field = field.
|
|
4811
|
+
field = field.substring(1);
|
|
4801
4812
|
|
|
4802
4813
|
var subMatched = 0;
|
|
4803
4814
|
if (collection) {
|
|
@@ -5124,15 +5135,15 @@ function Collection(content, options) {
|
|
|
5124
5135
|
}
|
|
5125
5136
|
|
|
5126
5137
|
// fast search with key
|
|
5127
|
-
var r
|
|
5128
|
-
, rLen
|
|
5129
|
-
, c
|
|
5130
|
-
, cLen
|
|
5131
|
-
, f
|
|
5132
|
-
, fLen
|
|
5133
|
-
, keyLen
|
|
5134
|
-
, matched
|
|
5135
|
-
, fullFiltersMatched
|
|
5138
|
+
var r = 0
|
|
5139
|
+
, rLen = foundResults.length
|
|
5140
|
+
, c = 0
|
|
5141
|
+
, cLen = currentResult.length
|
|
5142
|
+
, f = 0
|
|
5143
|
+
, fLen = filters.count()
|
|
5144
|
+
, keyLen = null
|
|
5145
|
+
, matched = 0
|
|
5146
|
+
, fullFiltersMatched = 0
|
|
5136
5147
|
;
|
|
5137
5148
|
if ( uuidSearchModeEnabled && typeof(currentResult[c]) != 'undefined' && currentResult[c].hasOwnProperty(key) ) {
|
|
5138
5149
|
// for every single result found
|
|
@@ -5593,6 +5604,13 @@ function Collection(content, options) {
|
|
|
5593
5604
|
|
|
5594
5605
|
|
|
5595
5606
|
if ( typeof(a) == 'string' && a != '' || typeof(b) == 'string' ) {
|
|
5607
|
+
// Fixed on 2025-03-08: allowed to compare with one of the fields being NULL or not defined
|
|
5608
|
+
if ( typeof(a) == 'undefined' || a == null) {
|
|
5609
|
+
a = ''; // cast to string
|
|
5610
|
+
}
|
|
5611
|
+
if ( typeof(b) == 'undefined' || b == null) {
|
|
5612
|
+
b = ''; // cast to string
|
|
5613
|
+
}
|
|
5596
5614
|
|
|
5597
5615
|
if ( typeof(a) == 'number' ) {
|
|
5598
5616
|
a = ''+a; // cast to string
|
|
@@ -5601,6 +5619,7 @@ function Collection(content, options) {
|
|
|
5601
5619
|
b = ''+b; // cast to string
|
|
5602
5620
|
}
|
|
5603
5621
|
|
|
5622
|
+
|
|
5604
5623
|
return a.localeCompare(b, undefined, {sensitivity: 'case', caseFirst: 'upper'})
|
|
5605
5624
|
}
|
|
5606
5625
|
|
|
@@ -6230,11 +6249,12 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet) {
|
|
|
6230
6249
|
// system error
|
|
6231
6250
|
systemError = result.error;
|
|
6232
6251
|
}
|
|
6233
|
-
// Fixed on 2023-01-10
|
|
6252
|
+
// Fixed added on 2023-01-10
|
|
6234
6253
|
// We want `local.errorLabels['query']` before the generic|user defined `rule` error
|
|
6235
6254
|
var optionError = ( typeof(options['error']) != 'undefined' ) ? options['error'] : null;
|
|
6236
6255
|
errors['query'] = replace(systemError || _this['error'] || optionError || local.errorLabels['query'], _this);
|
|
6237
|
-
|
|
6256
|
+
|
|
6257
|
+
console.debug('[1] query error detected !! ', result, errorFields, errors['query']);
|
|
6238
6258
|
}
|
|
6239
6259
|
|
|
6240
6260
|
if ( !errors['query'] && _this.value == '' ) {
|
|
@@ -6304,6 +6324,7 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet) {
|
|
|
6304
6324
|
|
|
6305
6325
|
var id = _this.target.id || _this.target.getAttribute('id');
|
|
6306
6326
|
console.debug('prematurely completed event `'+ 'asyncCompleted.' + id +'`');
|
|
6327
|
+
|
|
6307
6328
|
return triggerEvent(gina, _this.target, 'asyncCompleted.' + id, self[_this['name']]);
|
|
6308
6329
|
} // EO onResult
|
|
6309
6330
|
|
|
@@ -6526,7 +6547,7 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet) {
|
|
|
6526
6547
|
//instance: self.serverInstance,
|
|
6527
6548
|
//template: (routeHasViews) ? conf.content.templates[templateName] : undefined,
|
|
6528
6549
|
//isUsingTemplate: local.isUsingTemplate,
|
|
6529
|
-
|
|
6550
|
+
isCacheless: conf.isCacheless //,
|
|
6530
6551
|
//path: params.param.path || null, // user custom path : namespace should be ignored | left blank
|
|
6531
6552
|
//assets: {}
|
|
6532
6553
|
};
|
|
@@ -6699,7 +6720,7 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet) {
|
|
|
6699
6720
|
isValid = condition;
|
|
6700
6721
|
} else if (!isValid) {
|
|
6701
6722
|
var re = null, flags = null;
|
|
6702
|
-
// Fixed on 2021-03-13: $variable now replaced with real value beafore validation
|
|
6723
|
+
// Fixed added on 2021-03-13: $variable now replaced with real value beafore validation
|
|
6703
6724
|
if ( /[\!\=>\>\<a-z 0-9]+/i.test(condition) ) {
|
|
6704
6725
|
var variables = condition.match(/\${0}[-_,.\[\]a-z0-9]+/ig); // without space(s)
|
|
6705
6726
|
if (variables && variables.length > 0) {
|
|
@@ -7075,24 +7096,26 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet) {
|
|
|
7075
7096
|
|
|
7076
7097
|
|
|
7077
7098
|
self[el]['toFloat'] = function(decimals) {
|
|
7078
|
-
|
|
7079
|
-
|
|
7080
|
-
|
|
7081
|
-
|
|
7082
|
-
|
|
7083
|
-
|
|
7084
|
-
|
|
7085
|
-
|
|
7086
|
-
|
|
7087
|
-
|
|
7088
|
-
|
|
7089
|
-
}
|
|
7090
|
-
|
|
7099
|
+
// Fixed on 2025-03-12
|
|
7100
|
+
// In case we are dealing with a filtered value (swig::formatNumber())
|
|
7101
|
+
var val = document.getElementById(this.target.getAttribute('id')).value || this.value
|
|
7102
|
+
isFloatingWithCommas = false
|
|
7103
|
+
;
|
|
7104
|
+
if ( typeof(val) == 'string' ) {
|
|
7105
|
+
val = val.replace(/\s+/g, '');
|
|
7106
|
+
// Fixed on 2025-03-12
|
|
7107
|
+
// thousand separator ?
|
|
7108
|
+
if ( /\,/.test(val) && /\./.test(val) ) {
|
|
7109
|
+
val = val.replace(/\,/g,'');
|
|
7110
|
+
}
|
|
7111
|
+
else if ( /\,/.test(val) ) {
|
|
7112
|
+
val = val.replace(/\,/g,'.');
|
|
7113
|
+
isFloatingWithCommas = true;
|
|
7091
7114
|
}
|
|
7092
7115
|
}
|
|
7093
7116
|
|
|
7094
|
-
|
|
7095
|
-
|
|
7117
|
+
local.data[this.name] = val;
|
|
7118
|
+
var errors = self[this['name']]['errors'] || {}
|
|
7096
7119
|
, isValid = true
|
|
7097
7120
|
;
|
|
7098
7121
|
|
|
@@ -7107,32 +7130,40 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet) {
|
|
|
7107
7130
|
} else {
|
|
7108
7131
|
if ( this['isNumber']().valid ) {
|
|
7109
7132
|
try {
|
|
7110
|
-
|
|
7111
7133
|
if ( !Number.isFinite(val) ) {
|
|
7112
|
-
|
|
7134
|
+
// Number <> number
|
|
7135
|
+
val = new Number(parseFloat(val.match(/[0-9.,]+/g).join('').replace(/,/, '.')));
|
|
7113
7136
|
}
|
|
7114
|
-
if (isGFFCtx)
|
|
7115
|
-
this.target.setAttribute('value', val);
|
|
7116
7137
|
} catch(err) {
|
|
7117
7138
|
isValid = false;
|
|
7118
|
-
errors['toFloat'] = replace(this.error ||
|
|
7139
|
+
errors['toFloat'] = replace(this.error || local.errorLabels['toFloat'], this);
|
|
7119
7140
|
this.valid = false;
|
|
7120
7141
|
if ( errors.count() > 0 )
|
|
7121
7142
|
this['errors'] = errors;
|
|
7122
7143
|
}
|
|
7123
7144
|
} else {
|
|
7124
7145
|
isValid = false;
|
|
7125
|
-
errors['toFloat'] = replace(this.error ||
|
|
7146
|
+
errors['toFloat'] = replace(this.error || local.errorLabels['toFloatNAN'], this)
|
|
7126
7147
|
}
|
|
7127
7148
|
}
|
|
7128
7149
|
|
|
7129
7150
|
if (this['decimals'] && val && !errors['toFloat']) {
|
|
7130
|
-
|
|
7151
|
+
val = parseFloat(val.toFixed(this['decimals']));
|
|
7152
|
+
}
|
|
7153
|
+
|
|
7154
|
+
this.value = local.data[this.name] = val;
|
|
7155
|
+
if (isGFFCtx) {
|
|
7156
|
+
// restore original input format for display
|
|
7157
|
+
if (isFloatingWithCommas) {
|
|
7158
|
+
val = (''+val).replace(/\./g,',');
|
|
7159
|
+
}
|
|
7160
|
+
this.target.setAttribute('value', val);
|
|
7131
7161
|
}
|
|
7132
7162
|
|
|
7133
7163
|
this.valid = isValid;
|
|
7134
|
-
if ( errors.count() > 0 )
|
|
7164
|
+
if ( errors.count() > 0 ) {
|
|
7135
7165
|
this['errors'] = errors;
|
|
7166
|
+
}
|
|
7136
7167
|
|
|
7137
7168
|
return self[this.name]
|
|
7138
7169
|
}
|
|
@@ -7711,7 +7742,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
7711
7742
|
};
|
|
7712
7743
|
/*
|
|
7713
7744
|
* This file is part of the gina package.
|
|
7714
|
-
* Copyright (c) 2009-
|
|
7745
|
+
* Copyright (c) 2009-2025 Rhinostone <contact@gina.io>
|
|
7715
7746
|
*
|
|
7716
7747
|
* For the full copyright and license information, please view the LICENSE
|
|
7717
7748
|
* file that was distributed with this source code.
|
|
@@ -7727,7 +7758,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
7727
7758
|
|
|
7728
7759
|
function Routing() {
|
|
7729
7760
|
|
|
7730
|
-
var isGFFCtx = ((typeof (module) !== 'undefined') && module.exports) ? false :
|
|
7761
|
+
var isGFFCtx = ((typeof (module) !== 'undefined') && module.exports) ? false : true;
|
|
7731
7762
|
var self = {
|
|
7732
7763
|
allowedMethods: ['get', 'post', 'put', 'delete'],
|
|
7733
7764
|
reservedParams: ['controle', 'file','title', 'namespace', 'path'],
|
|
@@ -7782,7 +7813,7 @@ function Routing() {
|
|
|
7782
7813
|
urlProps.hostname = config.hostname;
|
|
7783
7814
|
if ( typeof(bundle) != 'undefined' ) {
|
|
7784
7815
|
// get from webroot
|
|
7785
|
-
_route =
|
|
7816
|
+
_route = this.getRoute('webroot@'+ bundle);
|
|
7786
7817
|
urlProps.hostname = _route.hostname;
|
|
7787
7818
|
urlProps.host = _route.host;
|
|
7788
7819
|
urlProps.webroot = _route.webroot;
|
|
@@ -7802,6 +7833,7 @@ function Routing() {
|
|
|
7802
7833
|
urlProps.hostname = config.envConf[bundle][env].hostname;
|
|
7803
7834
|
urlProps.host = config.envConf[bundle][env].host;
|
|
7804
7835
|
urlProps.webroot = config.envConf[bundle][env].server.webroot;
|
|
7836
|
+
console.debug("[self.getUrlProps][isProxyHost = "+ getContext('isProxyHost') +"] hostname ", config.envConf[bundle][env].hostname, vs, process.gina.PROXY_HOSTNAME);
|
|
7805
7837
|
}
|
|
7806
7838
|
|
|
7807
7839
|
return urlProps;
|
|
@@ -7883,9 +7915,11 @@ function Routing() {
|
|
|
7883
7915
|
return foundRoute;
|
|
7884
7916
|
}
|
|
7885
7917
|
|
|
7918
|
+
|
|
7886
7919
|
return await parseRouting(params, url, request, response, next);
|
|
7887
7920
|
};
|
|
7888
7921
|
|
|
7922
|
+
|
|
7889
7923
|
/**
|
|
7890
7924
|
* Check if rule has params
|
|
7891
7925
|
*
|
|
@@ -7969,13 +8003,13 @@ function Routing() {
|
|
|
7969
8003
|
++score;
|
|
7970
8004
|
continue;
|
|
7971
8005
|
}
|
|
7972
|
-
let _key = uRo[p].
|
|
8006
|
+
let _key = uRo[p].substring(1);
|
|
7973
8007
|
if ( typeof(params.requirements[_key]) == 'undefined' ) {
|
|
7974
8008
|
continue;
|
|
7975
8009
|
}
|
|
7976
8010
|
let condition = params.requirements[_key];
|
|
7977
8011
|
if ( /^\//.test(condition) ) {
|
|
7978
|
-
condition = condition.
|
|
8012
|
+
condition = condition.substring(1, condition.lastIndexOf('/')-1);
|
|
7979
8013
|
} else if ( /^validator\:\:/.test(condition) && await fitsWithRequirements(uRo[p], uRe[p], params, request, response, next) ) {
|
|
7980
8014
|
++score;
|
|
7981
8015
|
continue;
|
|
@@ -7986,7 +8020,7 @@ function Routing() {
|
|
|
7986
8020
|
&& new RegExp(condition).test(uRe[p])
|
|
7987
8021
|
) {
|
|
7988
8022
|
++score;
|
|
7989
|
-
request[method][uRo[p].
|
|
8023
|
+
request[method][uRo[p].substring(1)] = uRe[p];
|
|
7990
8024
|
}
|
|
7991
8025
|
}
|
|
7992
8026
|
hasAlreadyBeenScored = true;
|
|
@@ -8264,7 +8298,7 @@ function Routing() {
|
|
|
8264
8298
|
request[requestMethod] = {}
|
|
8265
8299
|
}
|
|
8266
8300
|
|
|
8267
|
-
key = _param[matched].
|
|
8301
|
+
key = _param[matched].substring(1);
|
|
8268
8302
|
// escaping `\` characters
|
|
8269
8303
|
// TODO - remove comment : all regex requirement must start with `/`
|
|
8270
8304
|
//regex = ( /\\/.test(params.requirements[key]) ) ? params.requirements[key].replace(/\\/, '') : params.requirements[key];
|
|
@@ -8366,7 +8400,7 @@ function Routing() {
|
|
|
8366
8400
|
} else if (c > (tplUrl.indexOf(keys[0]) + keys[0].length)) {
|
|
8367
8401
|
|
|
8368
8402
|
regex = params.requirements[keys[0]];
|
|
8369
|
-
urlVal = strVal.
|
|
8403
|
+
urlVal = strVal.substring(0, strVal.length);
|
|
8370
8404
|
|
|
8371
8405
|
if (/^\//.test(regex)) {
|
|
8372
8406
|
re = regex.match(/\/(.*)\//).pop();
|
|
@@ -8403,7 +8437,7 @@ function Routing() {
|
|
|
8403
8437
|
}
|
|
8404
8438
|
|
|
8405
8439
|
if (tested) {
|
|
8406
|
-
values[keys[0].
|
|
8440
|
+
values[keys[0].substring(1)] = urlVal
|
|
8407
8441
|
} else {
|
|
8408
8442
|
return false
|
|
8409
8443
|
}
|
|
@@ -8422,7 +8456,7 @@ function Routing() {
|
|
|
8422
8456
|
if (c == posLen - 1) {
|
|
8423
8457
|
|
|
8424
8458
|
regex = params.requirements[keys[0]];
|
|
8425
|
-
urlVal = strVal.
|
|
8459
|
+
urlVal = strVal.substring(0, strVal.length);
|
|
8426
8460
|
|
|
8427
8461
|
if (/^\//.test(regex)) {
|
|
8428
8462
|
re = regex.match(/\/(.*)\//).pop();
|
|
@@ -8435,7 +8469,7 @@ function Routing() {
|
|
|
8435
8469
|
}
|
|
8436
8470
|
|
|
8437
8471
|
if (tested) {
|
|
8438
|
-
values[keys[0].
|
|
8472
|
+
values[keys[0].substring(1)] = urlVal
|
|
8439
8473
|
} else {
|
|
8440
8474
|
return false
|
|
8441
8475
|
}
|
|
@@ -8471,7 +8505,7 @@ function Routing() {
|
|
|
8471
8505
|
if ( typeof(params) != 'undefined' && typeof(params[p]) == 'undefined' ) continue;
|
|
8472
8506
|
|
|
8473
8507
|
if ( /^:/.test(route.param[p]) ) {
|
|
8474
|
-
variable = route.param[p].
|
|
8508
|
+
variable = route.param[p].substring(1);
|
|
8475
8509
|
|
|
8476
8510
|
if ( typeof(params) != 'undefined' && typeof(params[variable]) != 'undefined' ) {
|
|
8477
8511
|
|
|
@@ -8526,7 +8560,7 @@ function Routing() {
|
|
|
8526
8560
|
p = 0;
|
|
8527
8561
|
pLen = rawUrlVars.length;
|
|
8528
8562
|
for (; p < pLen; p++) {
|
|
8529
|
-
pKey = rawUrlVars[p].
|
|
8563
|
+
pKey = rawUrlVars[p].substring(1);
|
|
8530
8564
|
if ( typeof(params[ pKey ]) != 'undefined' && params[ pKey ] ) {
|
|
8531
8565
|
rawUrlScore++;
|
|
8532
8566
|
}
|
|
@@ -8553,14 +8587,24 @@ function Routing() {
|
|
|
8553
8587
|
* */
|
|
8554
8588
|
self.getRoute = function(rule, params, urlIndex) {
|
|
8555
8589
|
|
|
8556
|
-
var config = null;
|
|
8590
|
+
var config = null, isProxyHost = false;
|
|
8557
8591
|
if (isGFFCtx) {
|
|
8592
|
+
if (
|
|
8593
|
+
!window.location.port
|
|
8594
|
+
&& window.location.hostname == window.gina.config.hostname.replace(/^(https|http|wss|ws)\:\/\//, '').replace(/\:\d+$/, '')
|
|
8595
|
+
) {
|
|
8596
|
+
isProxyHost = true;
|
|
8597
|
+
window.gina.config.hostname = window.gina.config.hostname.replace(/^(https|http|wss|ws)\:\/\//, '').replace(/\:\d+$/, '')
|
|
8598
|
+
}
|
|
8558
8599
|
config = window.gina.config;
|
|
8559
8600
|
} else {
|
|
8601
|
+
|
|
8560
8602
|
config = getContext('gina').config;
|
|
8561
8603
|
if ( typeof(getContext('argvFilename')) != 'undefined' ) {
|
|
8562
8604
|
config.getRouting = getContext('gina').Config.instance.getRouting;
|
|
8563
8605
|
}
|
|
8606
|
+
|
|
8607
|
+
isProxyHost = getContext('isProxyHost');
|
|
8564
8608
|
}
|
|
8565
8609
|
|
|
8566
8610
|
var env = config.env || GINA_ENV // by default, takes the current bundle
|
|
@@ -8605,6 +8649,25 @@ function Routing() {
|
|
|
8605
8649
|
var msg = null;
|
|
8606
8650
|
route = checkRouteParams(route, params);
|
|
8607
8651
|
|
|
8652
|
+
route.isProxyHost = isProxyHost;
|
|
8653
|
+
if (isProxyHost) {
|
|
8654
|
+
if (isGFFCtx) {
|
|
8655
|
+
route.proxy_hostname = window.location.protocol +'//'+ document.location.hostname;
|
|
8656
|
+
} else {
|
|
8657
|
+
route.proxy_hostname = process.gina.PROXY_HOSTNAME || config.envConf._proxyHostname;
|
|
8658
|
+
console.debug("[getRoute#1]["+isProxyHost+"] process.gina.PROXY_HOSTNAME ("+ process.gina.PROXY_HOSTNAME +") VS config.envConf._proxyHostname ("+ config.envConf._proxyHostname +")");
|
|
8659
|
+
}
|
|
8660
|
+
route.proxy_host = route.proxy_hostname.replace(/^(https|http)\:\/\//, '');
|
|
8661
|
+
|
|
8662
|
+
} else if (
|
|
8663
|
+
!isGFFCtx
|
|
8664
|
+
&& typeof(process.gina.PROXY_HOSTNAME) != 'undefined'
|
|
8665
|
+
) {
|
|
8666
|
+
route.proxy_hostname = process.gina.PROXY_HOSTNAME;
|
|
8667
|
+
route.proxy_host = route.proxy_hostname.replace(/^(https|http)\:\/\//, '');
|
|
8668
|
+
console.debug("[getRoute#2]["+isProxyHost+"] process.gina.PROXY_HOSTNAME ("+ process.gina.PROXY_HOSTNAME +") VS config.envConf._proxyHostname ("+ config.envConf._proxyHostname +")");
|
|
8669
|
+
}
|
|
8670
|
+
|
|
8608
8671
|
if ( /\,/.test(route.url) ) {
|
|
8609
8672
|
if ( typeof(route.urlIndex) != 'undefined' ) {
|
|
8610
8673
|
urlIndex = route.urlIndex; // set by checkRouteParams(route, params)
|
|
@@ -8617,7 +8680,7 @@ function Routing() {
|
|
|
8617
8680
|
// to prevent having a folder.
|
|
8618
8681
|
// eg.: {..., id: '/^\\s*$/'} => {..., id: ''} => /path/to/ becoming /path/to
|
|
8619
8682
|
if ( /\/$/.test(route.url) && route.url != '/' )
|
|
8620
|
-
route.url = route.url.
|
|
8683
|
+
route.url = route.url.substring(0, route.url.length-1);
|
|
8621
8684
|
|
|
8622
8685
|
// Completeting url with extra params e.g.: ?param1=val1¶m2=val2
|
|
8623
8686
|
if ( /GET/i.test(route.method) && typeof(params) != 'undefined' ) {
|
|
@@ -8674,18 +8737,30 @@ function Routing() {
|
|
|
8674
8737
|
}
|
|
8675
8738
|
|
|
8676
8739
|
var wroot = this.webroot || urlProps.webroot
|
|
8677
|
-
, hostname = this.hostname || urlProps.hostname
|
|
8678
|
-
, path = this.url
|
|
8740
|
+
, hostname = ''+this.hostname || ''+urlProps.hostname
|
|
8741
|
+
, path = ''+this.url
|
|
8679
8742
|
;
|
|
8743
|
+
if (this.isProxyHost) {
|
|
8744
|
+
hostname = ''+this.proxy_hostname;
|
|
8745
|
+
}
|
|
8746
|
+
|
|
8747
|
+
this.url = (
|
|
8748
|
+
typeof(ignoreWebRoot) != 'undefined'
|
|
8749
|
+
&& /^true$/i.test(ignoreWebRoot)
|
|
8750
|
+
) ? path.replace( new RegExp('^'+ wroot), '/') : path.replace( new RegExp('^('+wroot +'|\/$)'), wroot);
|
|
8751
|
+
|
|
8752
|
+
// this.url = (
|
|
8753
|
+
// typeof(ignoreWebRoot) != 'undefined'
|
|
8754
|
+
// && /^true$/i.test(ignoreWebRoot)
|
|
8755
|
+
// ) ? path.replace( new RegExp('\/'+ wroot), '/') : path;
|
|
8680
8756
|
|
|
8681
|
-
this.url = ( typeof(ignoreWebRoot) != 'undefined' && ignoreWebRoot == true ) ? path.replace(wroot, '/') : path;
|
|
8682
8757
|
|
|
8683
8758
|
return hostname + this.url
|
|
8684
8759
|
};
|
|
8685
8760
|
|
|
8686
8761
|
/**
|
|
8687
8762
|
* request current url
|
|
8688
|
-
*
|
|
8763
|
+
* Attention: You should first try without an authentification middleware
|
|
8689
8764
|
*
|
|
8690
8765
|
*
|
|
8691
8766
|
* @param {boolean} [ignoreWebRoot]
|
|
@@ -8710,6 +8785,10 @@ function Routing() {
|
|
|
8710
8785
|
, url = ( typeof(ignoreWebRoot) != 'undefined' && ignoreWebRoot == true ) ? path.replace(wroot, '/') : this.url || _this.url
|
|
8711
8786
|
;
|
|
8712
8787
|
|
|
8788
|
+
if ( /^\//.test(url) ) {
|
|
8789
|
+
url = hostname + url;
|
|
8790
|
+
}
|
|
8791
|
+
|
|
8713
8792
|
var scheme = ( /^https/.test(hostname) ) ? 'https' : 'http';
|
|
8714
8793
|
|
|
8715
8794
|
if (isGFFCtx) {
|
|
@@ -8792,12 +8871,13 @@ function Routing() {
|
|
|
8792
8871
|
return route
|
|
8793
8872
|
};
|
|
8794
8873
|
|
|
8874
|
+
// TODO - Remove this : deprecated && not used
|
|
8795
8875
|
var getFormatedRoute = function(route, url, hash) {
|
|
8796
8876
|
// fix url in case of empty param value allowed by the routing rule
|
|
8797
8877
|
// to prevent having a folder.
|
|
8798
8878
|
// eg.: {..., id: '/^\\s*$/'} => {..., id: ''} => /path/to/ becoming /path/to
|
|
8799
8879
|
if ( /\/$/.test(url) && url != '/' )
|
|
8800
|
-
url = url.
|
|
8880
|
+
url = url.substring(0, url.length-1);
|
|
8801
8881
|
// adding hash if found
|
|
8802
8882
|
if (hash)
|
|
8803
8883
|
url += hash;
|
|
@@ -8822,12 +8902,13 @@ function Routing() {
|
|
|
8822
8902
|
/**
|
|
8823
8903
|
* Get route by url
|
|
8824
8904
|
* N.B.: this will only work with rules declared with `GET` method property
|
|
8905
|
+
* ATTENTION !!! Not fully working for frontend because of unresolved promises !!!!
|
|
8825
8906
|
*
|
|
8826
8907
|
* @function getRouteByUrl
|
|
8827
8908
|
*
|
|
8828
8909
|
* @param {string} url e.g.: /webroot/some/url/path or http
|
|
8829
8910
|
* @param {string} [bundle] targeted bundle
|
|
8830
|
-
* @param {string} [method] request method (GET|PUT|PUT|DELETE) - GET is set by default
|
|
8911
|
+
* @param {string} [method] 2nd or 3rd - request method (GET|PUT|PUT|DELETE) - GET is set by default
|
|
8831
8912
|
* @param {object} [request]
|
|
8832
8913
|
* @param {boolean} [isOverridinMethod] // will replace request.method by the provided method - Used for redirections
|
|
8833
8914
|
*
|
|
@@ -8922,6 +9003,9 @@ function Routing() {
|
|
|
8922
9003
|
params: {},
|
|
8923
9004
|
url: url
|
|
8924
9005
|
};
|
|
9006
|
+
if (bundle) {
|
|
9007
|
+
request.bundle = bundle;
|
|
9008
|
+
}
|
|
8925
9009
|
} else {
|
|
8926
9010
|
|
|
8927
9011
|
var gnaCtx = getContext('gina');
|
|
@@ -9009,11 +9093,8 @@ function Routing() {
|
|
|
9009
9093
|
// normal case
|
|
9010
9094
|
//Parsing for the right url.
|
|
9011
9095
|
try {
|
|
9012
|
-
|
|
9013
9096
|
isRoute = self.compareUrls(params, routing[name].url, request);
|
|
9014
|
-
|
|
9015
9097
|
if (isRoute.past) {
|
|
9016
|
-
|
|
9017
9098
|
route = JSON.clone(routing[name]);
|
|
9018
9099
|
route.name = name;
|
|
9019
9100
|
|
|
@@ -9035,7 +9116,7 @@ function Routing() {
|
|
|
9035
9116
|
url == '#'
|
|
9036
9117
|
&& /GET/i.test(method)
|
|
9037
9118
|
&& isMethodProvidedByDefault
|
|
9038
|
-
||
|
|
9119
|
+
|| /^404\:/.test(url)
|
|
9039
9120
|
) {
|
|
9040
9121
|
url = location.pathname;
|
|
9041
9122
|
urlHasChanged = true;
|
|
@@ -9125,7 +9206,7 @@ function Routing() {
|
|
|
9125
9206
|
// to prevent having a folder.
|
|
9126
9207
|
// eg.: {..., id: '/^\\s*$/'} => {..., id: ''} => /path/to/ becoming /path/to
|
|
9127
9208
|
if ( /\/$/.test(url) && url != '/' )
|
|
9128
|
-
url = url.
|
|
9209
|
+
url = url.substring(0, url.length-1);
|
|
9129
9210
|
// adding hash if found
|
|
9130
9211
|
if (hash)
|
|
9131
9212
|
url += hash;
|
|
@@ -9152,6 +9233,12 @@ function Routing() {
|
|
|
9152
9233
|
}
|
|
9153
9234
|
|
|
9154
9235
|
if ((typeof (module) !== 'undefined') && module.exports) {
|
|
9236
|
+
|
|
9237
|
+
// Loading logger
|
|
9238
|
+
if ( typeof(console.err) == 'undefined' ) {
|
|
9239
|
+
console = require('../../logger');
|
|
9240
|
+
}
|
|
9241
|
+
|
|
9155
9242
|
// Publish as node.js module
|
|
9156
9243
|
module.exports = Routing()
|
|
9157
9244
|
} else if (typeof (define) === 'function' && define.amd) {
|
|
@@ -9689,7 +9776,7 @@ define("utils/effects", function(){});
|
|
|
9689
9776
|
|
|
9690
9777
|
/*
|
|
9691
9778
|
* This file is part of the gina package.
|
|
9692
|
-
* Copyright (c) 2009-
|
|
9779
|
+
* Copyright (c) 2009-2025 Rhinostone <contact@gina.io>
|
|
9693
9780
|
*
|
|
9694
9781
|
* For the full copyright and license information, please view the LICENSE
|
|
9695
9782
|
* file that was distributed with this source code.
|
|
@@ -10002,7 +10089,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10002
10089
|
* @param {object} [ data ] // from request
|
|
10003
10090
|
* @param {string} [ formId ]
|
|
10004
10091
|
* */
|
|
10005
|
-
|
|
10092
|
+
function ValidatorPlugin(rules, data, formId) {
|
|
10006
10093
|
|
|
10007
10094
|
this.plugin = 'validator';
|
|
10008
10095
|
|
|
@@ -10112,6 +10199,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10112
10199
|
'eventData' : {},
|
|
10113
10200
|
'target' : (isGFFCtx) ? document : null, // by default
|
|
10114
10201
|
'cachedErrors' : {},
|
|
10202
|
+
'lastFocused' : (isGFFCtx) ? [] : null,
|
|
10115
10203
|
'binded' : false,
|
|
10116
10204
|
'unbinded' : false,
|
|
10117
10205
|
'withUserBindings' : false,
|
|
@@ -10137,16 +10225,16 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10137
10225
|
* */
|
|
10138
10226
|
var xhr = null;
|
|
10139
10227
|
var xhrOptions = {
|
|
10140
|
-
'url'
|
|
10141
|
-
'method'
|
|
10142
|
-
'isSynchrone'
|
|
10143
|
-
'withCredentials': false,
|
|
10144
|
-
'
|
|
10228
|
+
'url' : '',
|
|
10229
|
+
'method' : 'GET',
|
|
10230
|
+
'isSynchrone' : false,
|
|
10231
|
+
'withCredentials' : false,
|
|
10232
|
+
'withRateLimit' : true,
|
|
10233
|
+
'headers' : {
|
|
10145
10234
|
// to upload, use `multipart/form-data` for `enctype`
|
|
10146
10235
|
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
|
|
10147
10236
|
// cross domain is enabled by default, but you need to setup `Access-Control-Allow-Origin`
|
|
10148
10237
|
'X-Requested-With': 'XMLHttpRequest' // in case of cross domain origin
|
|
10149
|
-
|
|
10150
10238
|
}
|
|
10151
10239
|
};
|
|
10152
10240
|
|
|
@@ -10213,6 +10301,8 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10213
10301
|
var setOptions = function (options) {
|
|
10214
10302
|
options = merge(options, xhrOptions);
|
|
10215
10303
|
xhrOptions = options;
|
|
10304
|
+
|
|
10305
|
+
return this;
|
|
10216
10306
|
}
|
|
10217
10307
|
|
|
10218
10308
|
|
|
@@ -10392,22 +10482,34 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10392
10482
|
}
|
|
10393
10483
|
|
|
10394
10484
|
var refreshWarning = function($el) {
|
|
10395
|
-
var formId = $el.form.getAttribute('id');
|
|
10485
|
+
var formId = $el.form.id || $el.form.getAttribute('id');
|
|
10486
|
+
var elName = $el.name || $el.form.getAttribute('name');
|
|
10487
|
+
var currentElName = document.activeElement.name;
|
|
10396
10488
|
if ( /^true$/i.test(instance.$forms[formId].isValidating) ) {
|
|
10397
10489
|
return;
|
|
10398
10490
|
}
|
|
10399
10491
|
|
|
10400
|
-
var $parent
|
|
10401
|
-
|
|
10492
|
+
var $parent = $el.parentNode
|
|
10493
|
+
, isErrorMessageHidden = false
|
|
10494
|
+
, $children = $parent.getElementsByTagName('div')
|
|
10495
|
+
;
|
|
10402
10496
|
|
|
10403
|
-
if ( /form\-item\-warning/.test($parent.className) ) {
|
|
10497
|
+
if ( /form\-item\-warning/.test($parent.className) && currentElName != elName ) {
|
|
10404
10498
|
$parent.className = $parent.className.replace(/form\-item\-warning/, 'form-item-error');
|
|
10405
10499
|
|
|
10406
|
-
} else if (/form\-item\-error/.test($parent.className) ) {
|
|
10500
|
+
} else if (/form\-item\-error/.test($parent.className) && currentElName == elName ) {
|
|
10407
10501
|
$parent.className = $parent.className.replace(/form\-item\-error/, 'form-item-warning');
|
|
10408
10502
|
isErrorMessageHidden = true;
|
|
10409
10503
|
}
|
|
10410
10504
|
|
|
10505
|
+
// Fixed on 2025-03-16
|
|
10506
|
+
if (
|
|
10507
|
+
/^true$/i.test(instance.$forms[formId].isValidating)
|
|
10508
|
+
&& !isErrorMessageHidden
|
|
10509
|
+
) {
|
|
10510
|
+
return;
|
|
10511
|
+
}
|
|
10512
|
+
|
|
10411
10513
|
|
|
10412
10514
|
for (var c = 0, cLen = $children.length; c<cLen; ++c) {
|
|
10413
10515
|
if ( /form\-item\-error\-message/.test($children[c].className) ) {
|
|
@@ -10429,7 +10531,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10429
10531
|
* @param {object} $form - Target (HTMLFormElement)
|
|
10430
10532
|
* @param {object} errors
|
|
10431
10533
|
* @param {object|null} data
|
|
10432
|
-
* @param {
|
|
10534
|
+
* @param {string|null} [fileName]
|
|
10433
10535
|
*/
|
|
10434
10536
|
var liveCheckErrors = {}; // Per Form & Per Element
|
|
10435
10537
|
var handleErrorsDisplay = function($form, errors, data, fieldName) {
|
|
@@ -10460,7 +10562,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10460
10562
|
if ( typeof(liveCheckErrors[formId]) == 'undefined') {
|
|
10461
10563
|
liveCheckErrors[formId] = {};
|
|
10462
10564
|
}
|
|
10463
|
-
if (errors.count() > 0) {
|
|
10565
|
+
if (errors && errors.count() > 0) {
|
|
10464
10566
|
// reset field name
|
|
10465
10567
|
liveCheckErrors[formId][fieldName] = {};
|
|
10466
10568
|
// override
|
|
@@ -10470,8 +10572,29 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10470
10572
|
}
|
|
10471
10573
|
errors = liveCheckErrors[formId];
|
|
10472
10574
|
// only if the form has not been sent yet
|
|
10473
|
-
if (
|
|
10575
|
+
if (
|
|
10576
|
+
!instance.$forms[formId].sent
|
|
10577
|
+
||
|
|
10578
|
+
instance.$forms[formId].isValidating
|
|
10579
|
+
) {
|
|
10474
10580
|
isWarning = true;
|
|
10581
|
+
// Fixed on 2025-03-16
|
|
10582
|
+
var lastFocused = instance.$forms[formId].lastFocused;
|
|
10583
|
+
// console.debug('fieldName: '+ fieldName + '\nactiveElement: '+ document.activeElement.getAttribute('name') +'\nlastFocused: ', lastFocused);
|
|
10584
|
+
if (
|
|
10585
|
+
lastFocused.length > 0
|
|
10586
|
+
&& typeof(lastFocused[1]) != 'undefined'
|
|
10587
|
+
&& lastFocused[1].name == fieldName
|
|
10588
|
+
||
|
|
10589
|
+
lastFocused.length > 0
|
|
10590
|
+
&& !lastFocused[1]
|
|
10591
|
+
&& document.activeElement.getAttribute('name') != lastFocused[0].name
|
|
10592
|
+
||
|
|
10593
|
+
document.activeElement.getAttribute('name') != fieldName
|
|
10594
|
+
) {
|
|
10595
|
+
isWarning = false;
|
|
10596
|
+
}
|
|
10597
|
+
// console.debug('isWarning: '+isWarning);
|
|
10475
10598
|
}
|
|
10476
10599
|
} else {
|
|
10477
10600
|
if ( typeof(liveCheckErrors[formId][fieldName]) != 'undefined') {
|
|
@@ -10535,7 +10658,11 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10535
10658
|
|
|
10536
10659
|
if (!name) continue;
|
|
10537
10660
|
|
|
10538
|
-
if (
|
|
10661
|
+
if (
|
|
10662
|
+
errors
|
|
10663
|
+
&& typeof(errors[name]) != 'undefined'
|
|
10664
|
+
&& !/(form\-item\-error|form\-item\-warning)/.test($parent.className)
|
|
10665
|
+
) {
|
|
10539
10666
|
|
|
10540
10667
|
if (isWarning) {
|
|
10541
10668
|
// adding warning class
|
|
@@ -10576,7 +10703,24 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10576
10703
|
|
|
10577
10704
|
|
|
10578
10705
|
|
|
10579
|
-
} else if (
|
|
10706
|
+
} else if (
|
|
10707
|
+
errors
|
|
10708
|
+
&& typeof(errors[name]) == 'undefined'
|
|
10709
|
+
&& /(form\-item\-error|form\-item\-warning)/.test($parent.className)
|
|
10710
|
+
||
|
|
10711
|
+
errors
|
|
10712
|
+
&& typeof(errors[name]) != 'undefined' && errors[name].count() == 0
|
|
10713
|
+
&& /(form\-item\-error|form\-item\-warning)/.test($parent.className)
|
|
10714
|
+
) {
|
|
10715
|
+
// Fixed on 2025-03-10
|
|
10716
|
+
// targeted field must be the active element
|
|
10717
|
+
// if (
|
|
10718
|
+
// document.activeElement.getAttribute('name') != fieldName
|
|
10719
|
+
// && errors.count() > 0
|
|
10720
|
+
// ) {
|
|
10721
|
+
// break
|
|
10722
|
+
// }
|
|
10723
|
+
console.debug('[handleErrorsDisplay] Resetting when not in error');
|
|
10580
10724
|
// reset when not in error
|
|
10581
10725
|
// remove child elements
|
|
10582
10726
|
var $children = $parent.getElementsByTagName('div');
|
|
@@ -10590,16 +10734,34 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10590
10734
|
|
|
10591
10735
|
$parent.className = $parent.className.replace(/(\s+form\-item\-error|form\-item\-error|\s+form\-item\-warning|form\-item\-warning)/, '');
|
|
10592
10736
|
|
|
10593
|
-
} else if (
|
|
10737
|
+
} else if (
|
|
10738
|
+
errors.count() > 0
|
|
10739
|
+
&& typeof(errors[name]) != 'undefined'
|
|
10740
|
+
&& errAttr
|
|
10741
|
+
) {
|
|
10594
10742
|
// refreshing already displayed error on msg update
|
|
10595
10743
|
var $divs = $parent.getElementsByTagName('div');
|
|
10596
10744
|
for (var d = 0, dLen = $divs.length; d<dLen; ++d) {
|
|
10597
|
-
|
|
10745
|
+
// Fixed on 2025-03-05: className can have more than one !!
|
|
10746
|
+
let foundMessage = $divs[d].className.match("form-item-error-message");
|
|
10747
|
+
if (
|
|
10748
|
+
foundMessage
|
|
10749
|
+
&& typeof(foundMessage.length) != 'undefined'
|
|
10750
|
+
&& foundMessage.length > 0
|
|
10751
|
+
) {
|
|
10598
10752
|
|
|
10599
10753
|
$divs[d].parentElement.removeChild($divs[d]);
|
|
10600
10754
|
$err = document.createElement('div');
|
|
10601
10755
|
$err.setAttribute('class', 'form-item-error-message');
|
|
10602
10756
|
|
|
10757
|
+
// Fixed on 2025-03-09: className cleanup
|
|
10758
|
+
if (
|
|
10759
|
+
!isWarning
|
|
10760
|
+
&& /(\s+form\-item\-warning|form\-item\-warning)/.test($parent.className)
|
|
10761
|
+
) {
|
|
10762
|
+
$parent.className = $parent.className.replace(/(\s+form\-item\-warning|form\-item\-warning)/, ' form-item-error');
|
|
10763
|
+
}
|
|
10764
|
+
|
|
10603
10765
|
// injecting error messages
|
|
10604
10766
|
// {
|
|
10605
10767
|
// field: {
|
|
@@ -10624,12 +10786,17 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10624
10786
|
}
|
|
10625
10787
|
}
|
|
10626
10788
|
|
|
10627
|
-
if ($err && $target.type != 'hidden')
|
|
10789
|
+
if ($err && $target.type != 'hidden') {
|
|
10628
10790
|
insertAfter($target, $err);
|
|
10629
|
-
|
|
10791
|
+
}
|
|
10630
10792
|
}
|
|
10631
10793
|
|
|
10632
|
-
if (
|
|
10794
|
+
if (
|
|
10795
|
+
typeof(fieldName) != 'undefined'
|
|
10796
|
+
&& fieldName === $el.name
|
|
10797
|
+
) {
|
|
10798
|
+
break;
|
|
10799
|
+
}
|
|
10633
10800
|
}
|
|
10634
10801
|
|
|
10635
10802
|
|
|
@@ -10753,7 +10920,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10753
10920
|
, value = null // current value
|
|
10754
10921
|
, defaultValue = null
|
|
10755
10922
|
;
|
|
10756
|
-
|
|
10923
|
+
$form.isBeingReseted = true;
|
|
10757
10924
|
for (var f in $form.fieldsSet) {
|
|
10758
10925
|
|
|
10759
10926
|
$element = document.getElementById(f);
|
|
@@ -10790,6 +10957,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10790
10957
|
}
|
|
10791
10958
|
|
|
10792
10959
|
}
|
|
10960
|
+
delete $form.isBeingReseted;
|
|
10793
10961
|
}
|
|
10794
10962
|
|
|
10795
10963
|
return $form
|
|
@@ -10824,31 +10992,41 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10824
10992
|
*
|
|
10825
10993
|
*
|
|
10826
10994
|
* @param {object} data - FormData object (https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects)
|
|
10827
|
-
* @param {object} [ options ] : { isSynchrone:
|
|
10995
|
+
* @param {object} [ options ] : { isSynchrone: false, withCredentials: true, withRateLimit: true }
|
|
10828
10996
|
* */
|
|
10829
10997
|
var send = function(data, options) {
|
|
10830
10998
|
|
|
10831
10999
|
|
|
10832
11000
|
var $target = this.target , id = $target.getAttribute('id');
|
|
10833
11001
|
var $form = instance.$forms[id] || this;
|
|
11002
|
+
var $submitTrigger = document.getElementById($form.submitTrigger) || null;
|
|
10834
11003
|
var result = null;
|
|
10835
11004
|
var XHRData = null;
|
|
10836
11005
|
var isAttachment = null; // handle download
|
|
10837
11006
|
var hFormIsRequired = null;
|
|
10838
11007
|
|
|
11008
|
+
options = (typeof (options) != 'undefined') ? merge(options, xhrOptions) : xhrOptions;
|
|
11009
|
+
|
|
11010
|
+
// Rate Limit to one request at the time
|
|
11011
|
+
// Attention: this should be an option
|
|
11012
|
+
// the request needs to be completed before another can be made
|
|
11013
|
+
// TODO - Check same url
|
|
10839
11014
|
if (
|
|
10840
|
-
|
|
11015
|
+
/^true$/i.test(options.withRateLimit)
|
|
11016
|
+
&& typeof($form.isSending) != 'undefined'
|
|
10841
11017
|
&& /^true$/i.test($form.isSending)
|
|
10842
11018
|
||
|
|
10843
|
-
|
|
11019
|
+
/^true$/i.test(options.withRateLimit)
|
|
11020
|
+
&& typeof($form.sent) != 'undefined'
|
|
10844
11021
|
&& /^true$/i.test($form.sent)
|
|
10845
11022
|
) {
|
|
10846
11023
|
return;
|
|
10847
11024
|
}
|
|
11025
|
+
|
|
10848
11026
|
instance.$forms[id].isSending = true;
|
|
10849
11027
|
|
|
10850
11028
|
|
|
10851
|
-
|
|
11029
|
+
|
|
10852
11030
|
// `x-gina-form`definition
|
|
10853
11031
|
//options.headers['X-Gina-Form-Location'] = gina.config.bundle;
|
|
10854
11032
|
if ( typeof($form.id) != 'undefined' ) {
|
|
@@ -10952,20 +11130,35 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10952
11130
|
|
|
10953
11131
|
if (xhr) {
|
|
10954
11132
|
// catching ready state cb
|
|
11133
|
+
// Data loading ...
|
|
11134
|
+
if ( /^(1|3)$/.test(xhr.readyState) ) {
|
|
11135
|
+
$form.target.setAttribute('data-gina-form-loading', true);
|
|
11136
|
+
if ($submitTrigger) {
|
|
11137
|
+
$submitTrigger.setAttribute('disabled', true)
|
|
11138
|
+
}
|
|
11139
|
+
}
|
|
10955
11140
|
//handleXhrResponse(xhr, $target, id, $form, hFormIsRequired);
|
|
10956
11141
|
xhr.onreadystatechange = function onValidationCallback(event) {
|
|
10957
11142
|
$form.isSubmitting = false;
|
|
10958
11143
|
$form.isSending = false;
|
|
10959
11144
|
|
|
10960
11145
|
// limit send trigger to 1 sec to prevent from double clicks
|
|
10961
|
-
setTimeout( function onSent() {
|
|
10962
|
-
|
|
10963
|
-
}, 1000);
|
|
11146
|
+
// setTimeout( function onSent() {
|
|
11147
|
+
// $form.sent = false;
|
|
11148
|
+
// }, 1000); // 1000
|
|
10964
11149
|
|
|
11150
|
+
// Data loading ...
|
|
11151
|
+
if ( /^(1|3)$/.test(xhr.readyState) ) {
|
|
11152
|
+
$form.target.setAttribute('data-gina-form-loading', true);
|
|
11153
|
+
if ($submitTrigger) {
|
|
11154
|
+
$submitTrigger.setAttribute('disabled', true)
|
|
11155
|
+
}
|
|
11156
|
+
}
|
|
10965
11157
|
// In case the user is also redirecting
|
|
10966
11158
|
var redirectDelay = (/Google Inc/i.test(navigator.vendor)) ? 50 : 0;
|
|
10967
11159
|
|
|
10968
|
-
|
|
11160
|
+
// responseType interception
|
|
11161
|
+
if (xhr.readyState == 2) {
|
|
10969
11162
|
isAttachment = ( /^attachment\;/.test( xhr.getResponseHeader("Content-Disposition") ) ) ? true : false;
|
|
10970
11163
|
// force blob response type
|
|
10971
11164
|
if ( !xhr.responseType && isAttachment ) {
|
|
@@ -10974,6 +11167,13 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10974
11167
|
}
|
|
10975
11168
|
|
|
10976
11169
|
if (xhr.readyState == 4) {
|
|
11170
|
+
|
|
11171
|
+
$form.sent = false;
|
|
11172
|
+
if ($submitTrigger) {
|
|
11173
|
+
$submitTrigger.removeAttribute('disabled')
|
|
11174
|
+
}
|
|
11175
|
+
$form.target.removeAttribute('data-gina-form-loading');
|
|
11176
|
+
|
|
10977
11177
|
var $popin = null;
|
|
10978
11178
|
var blob = null;
|
|
10979
11179
|
var contentType = xhr.getResponseHeader("Content-Type");
|
|
@@ -10999,7 +11199,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
10999
11199
|
var url = window.URL.createObjectURL(blob);
|
|
11000
11200
|
a.href = url;
|
|
11001
11201
|
var contentDisposition = xhr.getResponseHeader("Content-Disposition");
|
|
11002
|
-
a.download = contentDisposition.match('\=(.*)')[0].
|
|
11202
|
+
a.download = contentDisposition.match('\=(.*)')[0].substring(1);
|
|
11003
11203
|
//programatically click the link to trigger the download
|
|
11004
11204
|
a.click();
|
|
11005
11205
|
|
|
@@ -11018,7 +11218,9 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
11018
11218
|
size : blob.size
|
|
11019
11219
|
}
|
|
11020
11220
|
|
|
11021
|
-
}
|
|
11221
|
+
}
|
|
11222
|
+
// normal case
|
|
11223
|
+
else {
|
|
11022
11224
|
result = xhr.responseText;
|
|
11023
11225
|
}
|
|
11024
11226
|
|
|
@@ -11027,9 +11229,14 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
11027
11229
|
if ( /\/json/.test( contentType ) ) {
|
|
11028
11230
|
result = JSON.parse(xhr.responseText);
|
|
11029
11231
|
|
|
11030
|
-
if ( typeof(result.status) == 'undefined' )
|
|
11232
|
+
if ( typeof(result.status) == 'undefined' ) {
|
|
11031
11233
|
result.status = xhr.status;
|
|
11032
|
-
|
|
11234
|
+
}
|
|
11235
|
+
// Fixed on 2025-03-13 Allowing toolbar to ubdate after xhr results
|
|
11236
|
+
// TODO - Allowing to revert to previously loaded data via a close button
|
|
11237
|
+
if (gina && envIsDev && typeof(window.ginaToolbar) && typeof(result) != 'undefined') {
|
|
11238
|
+
window.ginaToolbar.update('data-xhr', result);
|
|
11239
|
+
}
|
|
11033
11240
|
}
|
|
11034
11241
|
|
|
11035
11242
|
if ( /\/html/.test( contentType ) ) {
|
|
@@ -11260,6 +11467,13 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
11260
11467
|
// } else { // external - need to remove `X-Requested-With` from `options.headers`
|
|
11261
11468
|
result.location = (!/^http/.test(result.location) && !/^\//.test(result.location) ) ? location.protocol +'//' + result.location : result.location;
|
|
11262
11469
|
//}
|
|
11470
|
+
// isProxyHost ?
|
|
11471
|
+
if (
|
|
11472
|
+
result.location.replace(/^http(.*)\:\d+/, '$1').replace(/^\:\/\//, '').split(/\//g)[0] == gina.config.hostname
|
|
11473
|
+
&& gina.config.hostname == window.location.host
|
|
11474
|
+
) {
|
|
11475
|
+
result.location = location.protocol + result.location.replace(/^http(.*)\:\d+/, '$1').replace(/^\:/, '')
|
|
11476
|
+
}
|
|
11263
11477
|
|
|
11264
11478
|
return setTimeout(() => {
|
|
11265
11479
|
window.location.href = result.location;
|
|
@@ -11471,9 +11685,12 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
11471
11685
|
|
|
11472
11686
|
$form.eventData.ontimeout = result;
|
|
11473
11687
|
|
|
11688
|
+
$form.target.setAttribute('data-gina-form-loading', false);
|
|
11689
|
+
|
|
11474
11690
|
// intercept upload
|
|
11475
|
-
if ( /^gina\-upload/i.test(id) )
|
|
11691
|
+
if ( /^gina\-upload/i.test(id) ) {
|
|
11476
11692
|
onUpload(gina, $target, 'error', id, result);
|
|
11693
|
+
}
|
|
11477
11694
|
|
|
11478
11695
|
triggerEvent(gina, $target, 'error.' + id, result);
|
|
11479
11696
|
|
|
@@ -11889,7 +12106,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
11889
12106
|
filesToBeRemoved.push(childNodeFilePreview);
|
|
11890
12107
|
}
|
|
11891
12108
|
} else {
|
|
11892
|
-
let file = childNodes[i].src.
|
|
12109
|
+
let file = childNodes[i].src.substring(childNodes[i].src.lastIndexOf('/')+1);
|
|
11893
12110
|
childNodeFile = file;
|
|
11894
12111
|
filesToBeRemoved.push(childNodeFile);
|
|
11895
12112
|
}
|
|
@@ -12325,7 +12542,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
12325
12542
|
for (let m = 0, mLen = mergingRules.length; m < mLen; m++) {
|
|
12326
12543
|
if ( re.test(mergingRules[m]) ) {
|
|
12327
12544
|
let tmpStr = JSON.stringify(rule);
|
|
12328
|
-
tmpStr = tmpStr.
|
|
12545
|
+
tmpStr = tmpStr.substring(1, tmpStr.length-1);// removing ->{ ... }<-
|
|
12329
12546
|
// is last ?
|
|
12330
12547
|
if (m < mLen-1) {
|
|
12331
12548
|
tmpStr += ','
|
|
@@ -13092,7 +13309,14 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13092
13309
|
|
|
13093
13310
|
var processEvent = function() {
|
|
13094
13311
|
|
|
13095
|
-
|
|
13312
|
+
// if ( typeof($form.isBeingReseted) != 'undefined' && /^true$/.test($form.isBeingReseted) ) {
|
|
13313
|
+
// handleErrorsDisplay(event.target.form, {}, null, event.target.name);
|
|
13314
|
+
// return cancelEvent(event);
|
|
13315
|
+
// }
|
|
13316
|
+
|
|
13317
|
+
if ( !/^(password)$/i.test(event.target.type) ) {
|
|
13318
|
+
console.debug('processing: ' + event.target.name+ '/'+ event.target.id);
|
|
13319
|
+
}
|
|
13096
13320
|
|
|
13097
13321
|
// Do not validate `onChange` if `input value` === `orignal value`
|
|
13098
13322
|
// Or else, you will get an endless loop
|
|
@@ -13110,7 +13334,6 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13110
13334
|
} else {
|
|
13111
13335
|
handleErrorsDisplay(event.target.form, errors, null, event.target.name);
|
|
13112
13336
|
}
|
|
13113
|
-
//return cancelEvent(event);
|
|
13114
13337
|
}
|
|
13115
13338
|
|
|
13116
13339
|
|
|
@@ -13120,7 +13343,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13120
13343
|
|
|
13121
13344
|
instance.$forms[event.target.form.getAttribute('id')].isValidating = true;
|
|
13122
13345
|
validate(event.target, localField, $localField, $form.rules, function onLiveValidation(result){
|
|
13123
|
-
instance.$forms[event.target.form.getAttribute('id')].isValidating = false;
|
|
13346
|
+
// instance.$forms[event.target.form.getAttribute('id')].isValidating = false;
|
|
13124
13347
|
//console.debug('validation on processEvent(...) ', result);
|
|
13125
13348
|
|
|
13126
13349
|
var isFormValid = result.isValid();
|
|
@@ -13146,8 +13369,10 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13146
13369
|
instance.$forms[formId].isValidating = true;
|
|
13147
13370
|
validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
|
|
13148
13371
|
instance.$forms[formId].isValidating = false;
|
|
13149
|
-
console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
|
|
13372
|
+
console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult, gFields);
|
|
13373
|
+
// var isFormValid = ( gResult.isValid() && instance.$forms[formId].errors && instance.$forms[formId].errors.count() == 0 )? true : false;
|
|
13150
13374
|
var isFormValid = gResult.isValid();
|
|
13375
|
+
// var isFormValid = gResult.isValid();
|
|
13151
13376
|
if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
|
|
13152
13377
|
// update toolbar
|
|
13153
13378
|
if (!gina.forms.errors)
|
|
@@ -13162,6 +13387,27 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13162
13387
|
}
|
|
13163
13388
|
|
|
13164
13389
|
|
|
13390
|
+
if ( !isFormValid && gResult.error ) {
|
|
13391
|
+
// Fixed on 2025-03-16 - we need past and live errors
|
|
13392
|
+
instance.$forms[ $el.form.getAttribute('id') ].errors = merge(result.error, gResult.error);
|
|
13393
|
+
// Fixed on 2025-03-16
|
|
13394
|
+
for (let eField in gResult.error) {
|
|
13395
|
+
refreshWarning($gFields[eField]);
|
|
13396
|
+
handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
|
|
13397
|
+
}
|
|
13398
|
+
}
|
|
13399
|
+
// Fixed on 2025-03-16
|
|
13400
|
+
// Eg.: input select change impacting another element: solve `no more errors`
|
|
13401
|
+
else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
|
|
13402
|
+
// recheck if valid
|
|
13403
|
+
//resetting error display
|
|
13404
|
+
instance.$forms[ formId ].errors = {};
|
|
13405
|
+
console.debug('resetting field: '+ $el.name);
|
|
13406
|
+
liveCheckErrors[formId] = {};
|
|
13407
|
+
// $form.dataset.ginaFormIsResetting = true;
|
|
13408
|
+
handleErrorsDisplay($gForm, {}, null, $el.name);
|
|
13409
|
+
}
|
|
13410
|
+
|
|
13165
13411
|
updateSubmitTriggerState( $gForm, isFormValid);
|
|
13166
13412
|
|
|
13167
13413
|
once = false;
|
|
@@ -13195,13 +13441,16 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13195
13441
|
// other inputs & textareas
|
|
13196
13442
|
else if ( /^focusin\./i.test(event.type) ) {
|
|
13197
13443
|
if ( /\-error/.test($el.parentNode.className) ) {
|
|
13198
|
-
console.debug('#1 you just focusin ....'+$el.id, $el.value);
|
|
13444
|
+
console.debug('#1 you just focusin ....'+$el.id, $el.value, instance.$forms[ $el.form.getAttribute('id') ].isValidating);
|
|
13199
13445
|
refreshWarning($el);
|
|
13200
13446
|
}
|
|
13201
13447
|
}
|
|
13202
13448
|
else if ( /^focusout\./i.test(event.type) ) {
|
|
13203
13449
|
if ( /\-warning/.test($el.parentNode.className) ) {
|
|
13204
13450
|
console.debug('#1 you just focusout ....'+$el.id, $el.value);
|
|
13451
|
+
// Removed on 2025-03-16
|
|
13452
|
+
instance.$forms[ $el.form.getAttribute('id') ].isValidating = false;
|
|
13453
|
+
|
|
13205
13454
|
refreshWarning($el);
|
|
13206
13455
|
// in case error context is changed by another task
|
|
13207
13456
|
handleErrorsDisplay($el.form, instance.$forms[ $el.form.getAttribute('id') ].errors, null, $el.name);
|
|
@@ -13210,12 +13459,86 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13210
13459
|
else if ( /^keyup\./i.test(event.type) ) {
|
|
13211
13460
|
$el.ginaFormValidatorTestedValue = $el.value;
|
|
13212
13461
|
liveCheckTimer = setTimeout( function onLiveCheckTimer() {
|
|
13213
|
-
//
|
|
13214
|
-
if ( ['91', '17'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
|
|
13462
|
+
// Do not trigger for copy/paste events
|
|
13463
|
+
if ( ['91', '17', '16'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
|
|
13215
13464
|
//console.debug('mapping ', keyboardMapping);
|
|
13216
13465
|
return;
|
|
13217
13466
|
}
|
|
13218
|
-
|
|
13467
|
+
|
|
13468
|
+
// Fixed on 2025-03-16:
|
|
13469
|
+
// Treat TAB as focus in/out
|
|
13470
|
+
// if ( ['9'].indexOf(''+event.keyCode) > -1 ) {
|
|
13471
|
+
|
|
13472
|
+
// console.debug('[TAB] you just focusout from "'+ instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id +'" to "'+ $el.id +'"');
|
|
13473
|
+
// var $gForm = event.target.form, gFields = null, $gFields = null, gRules = null;
|
|
13474
|
+
// var gValidatorInfos = getFormValidationInfos($gForm, rules);
|
|
13475
|
+
// gFields = gValidatorInfos.fields;
|
|
13476
|
+
// $gFields = gValidatorInfos.$fields;
|
|
13477
|
+
// var formId = $gForm.getAttribute('id');
|
|
13478
|
+
// gRules = instance.$forms[formId].rules;
|
|
13479
|
+
// // Don't be tempted to revome fields that has already been validated
|
|
13480
|
+
// instance.$forms[formId].isValidating = true;
|
|
13481
|
+
// validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
|
|
13482
|
+
// instance.$forms[formId].isValidating = false;
|
|
13483
|
+
// console.debug('['+ formId +'] [9] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult, gFields);
|
|
13484
|
+
// var isFormValid = ( gResult.isValid() && instance.$forms[formId].errors && instance.$forms[formId].errors.count() == 0 )? true : false;
|
|
13485
|
+
// // var isFormValid = gResult.isValid();
|
|
13486
|
+
// if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
|
|
13487
|
+
// // update toolbar
|
|
13488
|
+
// if (!gina.forms.errors)
|
|
13489
|
+
// gina.forms.errors = {};
|
|
13490
|
+
|
|
13491
|
+
// var objCallback = {
|
|
13492
|
+
// id : formId,
|
|
13493
|
+
// errors : gResult.error || {}
|
|
13494
|
+
// };
|
|
13495
|
+
|
|
13496
|
+
// window.ginaToolbar.update('forms', objCallback);
|
|
13497
|
+
// }
|
|
13498
|
+
|
|
13499
|
+
|
|
13500
|
+
// if ( !isFormValid && gResult.error ) {
|
|
13501
|
+
// // Fixed on 2025-03-16 - we need past and live errors
|
|
13502
|
+
// instance.$forms[ $el.form.getAttribute('id') ].errors = merge(result.error, gResult.error);
|
|
13503
|
+
// // Fixed on 2025-03-16
|
|
13504
|
+
// for (let eField in instance.$forms[ $el.form.getAttribute('id') ].errors) {
|
|
13505
|
+
// refreshWarning($gFields[eField]);
|
|
13506
|
+
// handleErrorsDisplay($gForm, instance.$forms[ $el.form.getAttribute('id') ].errors, gResult.data, eField);
|
|
13507
|
+
// }
|
|
13508
|
+
// }
|
|
13509
|
+
// // Fixed on 2025-03-16
|
|
13510
|
+
// // Eg.: input select change impacting another element: solve `no more errors`
|
|
13511
|
+
// else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
|
|
13512
|
+
// // recheck if valid
|
|
13513
|
+
// //resetting error display
|
|
13514
|
+
// instance.$forms[ formId ].errors = {};
|
|
13515
|
+
// console.debug('resetting field: '+ $el.name);
|
|
13516
|
+
// liveCheckErrors[formId] = {};
|
|
13517
|
+
// // $form.dataset.ginaFormIsResetting = true;
|
|
13518
|
+
// handleErrorsDisplay($gForm, {}, null, $el.name);
|
|
13519
|
+
// }
|
|
13520
|
+
|
|
13521
|
+
// updateSubmitTriggerState( $gForm, isFormValid);
|
|
13522
|
+
|
|
13523
|
+
// once = false;
|
|
13524
|
+
// });
|
|
13525
|
+
// // var $previeousEl = document.getElementById(instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id);
|
|
13526
|
+
// // var errors = instance.$forms[ $previeousEl.form.getAttribute('id') ].errors;
|
|
13527
|
+
// // var isFormValid = (!errors[$previeousEl.name]) ? true : false;
|
|
13528
|
+
// // console.debug('[TAB] you just focusout from "'+ instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id +'" to "'+ $el.id +'"', "errors: ", errors);
|
|
13529
|
+
// // if (errors && errors.count() > 0 ) {
|
|
13530
|
+
// // instance.$forms[ $previeousEl.form.getAttribute('id') ].isValidating = false;
|
|
13531
|
+
// // isFormValid = false;
|
|
13532
|
+
// // }
|
|
13533
|
+
// // refreshWarning($previeousEl);
|
|
13534
|
+
// // // // in case error context is changed by another task
|
|
13535
|
+
// // handleErrorsDisplay($previeousEl.form, errors, null, $previeousEl.name);
|
|
13536
|
+
// // updateSubmitTriggerState( $el.form, isFormValid);
|
|
13537
|
+
// return;
|
|
13538
|
+
// }
|
|
13539
|
+
|
|
13540
|
+
|
|
13541
|
+
console.debug('[A]['+keyboardMapping.count()+'] keyup ('+ event.keyCode +') .... '+$el.id, $el.value, ' VS ',$el.ginaFormValidatorTestedValue + '(old)');
|
|
13219
13542
|
processEvent();
|
|
13220
13543
|
}, 1000);
|
|
13221
13544
|
}
|
|
@@ -13315,16 +13638,42 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13315
13638
|
//console.debug('pressed: '+ e.key+'('+ e.keyCode+')', ' S:'+posStart, ' E:'+posEnd, ' MAP: '+ JSON.stringify(keyboardMapping));
|
|
13316
13639
|
switch (e.keyCode) {
|
|
13317
13640
|
case 46: //Delete
|
|
13641
|
+
if (posStart != posEnd) {
|
|
13642
|
+
$_el.value = str.substring(0, posStart) + str.substring(posEnd);
|
|
13643
|
+
if (posStart == 0) {
|
|
13644
|
+
$_el.value = str.substring(posEnd+1);
|
|
13645
|
+
}
|
|
13646
|
+
} else if (posStart == 0) {
|
|
13647
|
+
$_el.value = str.substring(posStart+1);
|
|
13648
|
+
} else {
|
|
13649
|
+
$_el.value = str.substring(0, posStart) + str.substring(posEnd+1);
|
|
13650
|
+
}
|
|
13651
|
+
|
|
13652
|
+
e.currentTarget.setAttribute('readonly', 'readonly');
|
|
13653
|
+
setTimeout(() => {
|
|
13654
|
+
$_el.removeAttribute('readonly');
|
|
13655
|
+
setTimeout(() => {
|
|
13656
|
+
if (posStart != posEnd) {
|
|
13657
|
+
setCaretToPos($_el, posStart);
|
|
13658
|
+
} else if (posStart == 0) {
|
|
13659
|
+
setCaretToPos($_el, posStart);
|
|
13660
|
+
} else {
|
|
13661
|
+
setCaretToPos($_el, posStart);
|
|
13662
|
+
}
|
|
13663
|
+
}, 0)
|
|
13664
|
+
|
|
13665
|
+
}, 0);
|
|
13666
|
+
break
|
|
13318
13667
|
case 8: //Backspace
|
|
13319
13668
|
if (posStart != posEnd) {
|
|
13320
|
-
$_el.value = str.
|
|
13669
|
+
$_el.value = str.substring(0, posStart) + str.substring(posEnd);
|
|
13321
13670
|
if (posStart == 0) {
|
|
13322
|
-
$_el.value = str.
|
|
13671
|
+
$_el.value = str.substring(posEnd);
|
|
13323
13672
|
}
|
|
13324
13673
|
} else if (posStart == 0) {
|
|
13325
13674
|
$_el.value = str.substring(posStart+1);
|
|
13326
13675
|
} else {
|
|
13327
|
-
$_el.value = str.
|
|
13676
|
+
$_el.value = str.substring(0, posStart-1) + str.substring(posEnd);
|
|
13328
13677
|
}
|
|
13329
13678
|
|
|
13330
13679
|
e.currentTarget.setAttribute('readonly', 'readonly');
|
|
@@ -13362,9 +13711,9 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13362
13711
|
}
|
|
13363
13712
|
break;
|
|
13364
13713
|
// Shortcuts
|
|
13365
|
-
case 17: //CTRL
|
|
13366
|
-
case 91: //CMD
|
|
13367
|
-
console.debug("CMD hit");
|
|
13714
|
+
case 17: // CTRL
|
|
13715
|
+
case 91: // CMD
|
|
13716
|
+
console.debug("CMD, CTRL hit");
|
|
13368
13717
|
e.preventDefault();
|
|
13369
13718
|
break;
|
|
13370
13719
|
case 67: // to handle CMD+C (copy)
|
|
@@ -13411,15 +13760,18 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13411
13760
|
}
|
|
13412
13761
|
default:
|
|
13413
13762
|
// Replace selection
|
|
13763
|
+
if (e.key.length > 1) {
|
|
13764
|
+
break;
|
|
13765
|
+
}
|
|
13414
13766
|
if (posStart != posEnd) {
|
|
13415
|
-
$_el.value = str.
|
|
13767
|
+
$_el.value = str.substring(0, posStart) + e.key;
|
|
13416
13768
|
if (posEnd-1 < str.length) {
|
|
13417
13769
|
$_el.value += str.substring(posEnd)
|
|
13418
13770
|
}
|
|
13419
13771
|
} else if (posStart == 0) {
|
|
13420
13772
|
$_el.value = e.key + str.substring(posStart);
|
|
13421
13773
|
} else {
|
|
13422
|
-
$_el.value = str.
|
|
13774
|
+
$_el.value = str.substring(0, posStart) + e.key + str.substring(posEnd);
|
|
13423
13775
|
}
|
|
13424
13776
|
e.currentTarget.setAttribute('readonly', 'readonly');
|
|
13425
13777
|
// Force restore last caret position
|
|
@@ -13561,24 +13913,53 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13561
13913
|
}
|
|
13562
13914
|
|
|
13563
13915
|
/**
|
|
13564
|
-
* reBindForm
|
|
13916
|
+
* reBindForm
|
|
13917
|
+
* Allows form rebinding: it is like reseting validation
|
|
13565
13918
|
*
|
|
13566
|
-
*
|
|
13567
|
-
*
|
|
13568
|
-
*
|
|
13919
|
+
* E.g.:
|
|
13920
|
+
* $validator
|
|
13921
|
+
* .getFormById('my-form-id')
|
|
13922
|
+
* .reBind();
|
|
13923
|
+
*
|
|
13924
|
+
* @param {string} [formId]
|
|
13925
|
+
* @param {string} [rules]
|
|
13926
|
+
* @param {callback} [cb]
|
|
13569
13927
|
*/
|
|
13570
|
-
var reBindForm = function(
|
|
13571
|
-
|
|
13572
|
-
|
|
13928
|
+
var reBindForm = function(formId, rules, cb) {
|
|
13929
|
+
var $form = null
|
|
13930
|
+
, _id = null
|
|
13931
|
+
;
|
|
13932
|
+
if (
|
|
13933
|
+
typeof(this.target) != 'undefined'
|
|
13934
|
+
&& /FORM/i.test(this.target.tagName)
|
|
13935
|
+
) {
|
|
13936
|
+
_id = formId = this.target.getAttribute('id')
|
|
13937
|
+
} else if ( /string/i.test(typeof(formId)) ) {
|
|
13938
|
+
_id = formId
|
|
13939
|
+
}
|
|
13940
|
+
|
|
13941
|
+
if ( typeof(instance.$forms[_id]) != 'undefined') {
|
|
13942
|
+
$form = instance.$forms[_id];
|
|
13943
|
+
} else {
|
|
13944
|
+
throw new Error('form instance `'+ _id +'` not found');
|
|
13945
|
+
}
|
|
13946
|
+
|
|
13573
13947
|
// reset errors
|
|
13574
|
-
|
|
13948
|
+
resetErrorsDisplay(_id);
|
|
13949
|
+
// Unbind form
|
|
13950
|
+
unbindForm($form.target);
|
|
13575
13951
|
// Bind
|
|
13576
|
-
|
|
13952
|
+
if ( typeof(rule) != 'undefined' ) {
|
|
13953
|
+
bindForm($form.target, rules);
|
|
13954
|
+
} else {
|
|
13955
|
+
bindForm($form.target);
|
|
13956
|
+
}
|
|
13577
13957
|
|
|
13578
13958
|
if ( cb ) {
|
|
13579
|
-
return cb(
|
|
13959
|
+
return cb($form);
|
|
13580
13960
|
}
|
|
13581
|
-
|
|
13961
|
+
|
|
13962
|
+
return $form;
|
|
13582
13963
|
}
|
|
13583
13964
|
|
|
13584
13965
|
var unbindForm = function($target) {
|
|
@@ -13596,7 +13977,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13596
13977
|
|
|
13597
13978
|
} else if ( typeof($target.target) != 'undefined' ) {
|
|
13598
13979
|
$form = $target;
|
|
13599
|
-
_id = $form.id;
|
|
13980
|
+
_id = ( $target.getAttribute && $target.getAttribute('id') ) ? $form.getAttribute('id') : $form.id;
|
|
13600
13981
|
} else {
|
|
13601
13982
|
throw new Error('Validator::unbindForm($target): `$target` must be a DOM element\n'+err.stack )
|
|
13602
13983
|
}
|
|
@@ -13635,7 +14016,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13635
14016
|
// submit buttons
|
|
13636
14017
|
$elTMP = $form.target.getElementsByTagName('button');
|
|
13637
14018
|
if ( $elTMP.length > 0 ) {
|
|
13638
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
14019
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
13639
14020
|
// if button is != type="submit", you will need to provide : data-gina-form-submit
|
|
13640
14021
|
// TODO - On button binding, you can then provide data-gina-form-action & data-gina-form-method
|
|
13641
14022
|
$els.push($elTMP[i])
|
|
@@ -13645,7 +14026,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13645
14026
|
// submit links
|
|
13646
14027
|
$elTMP = $form.target.getElementsByTagName('a');
|
|
13647
14028
|
if ( $elTMP.length > 0 ) {
|
|
13648
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
14029
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
13649
14030
|
$els.push($elTMP[i])
|
|
13650
14031
|
}
|
|
13651
14032
|
}
|
|
@@ -13701,7 +14082,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13701
14082
|
// textarea
|
|
13702
14083
|
$elTMP = $form.target.getElementsByTagName('textarea');
|
|
13703
14084
|
if ( $elTMP.length > 0 ) {
|
|
13704
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
14085
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
13705
14086
|
$els.push( $elTMP[i] )
|
|
13706
14087
|
}
|
|
13707
14088
|
}
|
|
@@ -13710,7 +14091,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13710
14091
|
// forms inside main form
|
|
13711
14092
|
$elTMP = $form.target.getElementsByTagName('form');
|
|
13712
14093
|
if ( $elTMP.length > 0 ) {
|
|
13713
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
14094
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
13714
14095
|
$els.push( $elTMP[i] )
|
|
13715
14096
|
}
|
|
13716
14097
|
}
|
|
@@ -13795,8 +14176,10 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13795
14176
|
/**
|
|
13796
14177
|
* bindForm
|
|
13797
14178
|
*
|
|
13798
|
-
* @param {object} $target - DOM element
|
|
13799
|
-
* @param {object} [customRule]
|
|
14179
|
+
* @param {object} [$target] - DOM element
|
|
14180
|
+
* @param {object|string} [customRule]
|
|
14181
|
+
*
|
|
14182
|
+
* @return {object} bindedForm
|
|
13800
14183
|
* */
|
|
13801
14184
|
var bindForm = function($target, customRule) {
|
|
13802
14185
|
|
|
@@ -13805,23 +14188,32 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
13805
14188
|
, rules = ( typeof(local.rules.count() > 0 ) ) ? local.rules : instance.rules
|
|
13806
14189
|
;
|
|
13807
14190
|
|
|
13808
|
-
|
|
13809
|
-
|
|
13810
|
-
|
|
13811
|
-
|
|
13812
|
-
|
|
13813
|
-
|
|
13814
|
-
|
|
14191
|
+
if (
|
|
14192
|
+
typeof($target) == 'undefined'
|
|
14193
|
+
&& typeof(this.target) != 'undefined'
|
|
14194
|
+
&& /FORM/i.test(this.target.tagName)
|
|
14195
|
+
||
|
|
14196
|
+
!/object/i.test( typeof($target) )
|
|
14197
|
+
) {
|
|
14198
|
+
_id = this.target.id || this.target.getAttribute('id');
|
|
14199
|
+
} else if ( /string/i.test(typeof($target)) ) {
|
|
14200
|
+
_id = $target
|
|
14201
|
+
} else {
|
|
14202
|
+
_id = $target.getAttribute('id')
|
|
14203
|
+
}
|
|
13815
14204
|
|
|
14205
|
+
try {
|
|
14206
|
+
if ( typeof(instance.$forms[_id]) != 'undefined') {
|
|
14207
|
+
$form = instance.$forms[_id];
|
|
14208
|
+
if ( typeof($form.target) == 'undefined' ) {
|
|
14209
|
+
throw new Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n');
|
|
14210
|
+
}
|
|
14211
|
+
$target = $form.target;
|
|
13816
14212
|
} else {
|
|
13817
|
-
throw new Error('
|
|
14213
|
+
throw new Error('form instance `'+ _id +'` not found');
|
|
13818
14214
|
}
|
|
13819
14215
|
} catch(err) {
|
|
13820
|
-
throw new Error('Validator::bindForm($target, customRule) could not bind form `'+ $target +'`\n'+err.stack )
|
|
13821
|
-
}
|
|
13822
|
-
|
|
13823
|
-
if ( typeof($form) != 'undefined' && $form.binded) {
|
|
13824
|
-
return false
|
|
14216
|
+
throw new Error('Validator::bindForm($target, customRule) could not bind form `'+ $target +'`\n'+err.stack );
|
|
13825
14217
|
}
|
|
13826
14218
|
|
|
13827
14219
|
console.debug('binding for: '+ _id);
|
|
@@ -14127,7 +14519,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
14127
14519
|
} else if ( /img/i.test($els[i].tagName) ) {
|
|
14128
14520
|
$img = $els[i];
|
|
14129
14521
|
deleteLinkId = uploadTriggerId + '-'+index+'-delete-trigger';
|
|
14130
|
-
let file = $img.src.
|
|
14522
|
+
let file = $img.src.substring($img.src.lastIndexOf('/')+1);
|
|
14131
14523
|
$uploadTrigger.customFiles.push({
|
|
14132
14524
|
name: file,
|
|
14133
14525
|
deleteLinkId: deleteLinkId
|
|
@@ -14486,7 +14878,10 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
14486
14878
|
var updateSelect = function($el, $form) {
|
|
14487
14879
|
$el.setAttribute('data-value', $el.value);
|
|
14488
14880
|
// If Live check enabled, proceed to silent validation
|
|
14489
|
-
if (
|
|
14881
|
+
if (
|
|
14882
|
+
/^(true)$/i.test($form.target.dataset.ginaFormLiveCheckEnabled && $form.rules.count() > 0)
|
|
14883
|
+
// && typeof($form.isBeingReseted) == 'undefined'
|
|
14884
|
+
) {
|
|
14490
14885
|
var localField = {}, $localField = {}, $localForm = null;
|
|
14491
14886
|
$localForm = $el.form;//event.target.form
|
|
14492
14887
|
localField[event.target.name] = event.target.value;
|
|
@@ -14519,7 +14914,16 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
14519
14914
|
validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
|
|
14520
14915
|
instance.$forms[formId].isValidating = false;
|
|
14521
14916
|
console.debug('[updateSelect]: onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
|
|
14917
|
+
// Fixed on 2025-03-16
|
|
14522
14918
|
var isFormValid = gResult.isValid();
|
|
14919
|
+
if (!isFormValid) {
|
|
14920
|
+
instance.$forms[formId].errors = gResult.error;
|
|
14921
|
+
for (let eField in gResult.error) {
|
|
14922
|
+
// refreshWarning($gFields[eField]);
|
|
14923
|
+
handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
|
|
14924
|
+
}
|
|
14925
|
+
}
|
|
14926
|
+
|
|
14523
14927
|
updateSubmitTriggerState( $gForm, isFormValid);
|
|
14524
14928
|
once = false;
|
|
14525
14929
|
})
|
|
@@ -15113,6 +15517,25 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
15113
15517
|
if (gina.events[_evt]) {
|
|
15114
15518
|
cancelEvent(event);
|
|
15115
15519
|
|
|
15520
|
+
// Fixed on 2025-03-05 - "last focus" vs "current focus"
|
|
15521
|
+
// To get active element: document.activeElement
|
|
15522
|
+
var formId = event.target.form.getAttribute('id') || event.currentTarget.getAttribute('id');
|
|
15523
|
+
var lastFocused = {
|
|
15524
|
+
id : $el.id,
|
|
15525
|
+
name: $el.name
|
|
15526
|
+
};
|
|
15527
|
+
if (!instance.$forms[formId].lastFocused.length) {
|
|
15528
|
+
instance.$forms[formId].lastFocused[0] = lastFocused;
|
|
15529
|
+
} else {
|
|
15530
|
+
instance.$forms[formId].lastFocused.splice(0,0,lastFocused);
|
|
15531
|
+
}
|
|
15532
|
+
lastFocused = ( typeof(instance.$forms[formId].lastFocused[1]) != 'undefined' ) ? instance.$forms[formId].lastFocused[1].id : null;
|
|
15533
|
+
|
|
15534
|
+
// cleanup
|
|
15535
|
+
instance.$forms[formId].lastFocused.splice(2);
|
|
15536
|
+
|
|
15537
|
+
// console.debug('lastFocused: ', lastFocused, ' VS current: ', $el.id);
|
|
15538
|
+
|
|
15116
15539
|
triggerEvent(gina, $el, _evt, event.detail);
|
|
15117
15540
|
}
|
|
15118
15541
|
});
|
|
@@ -15286,7 +15709,9 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
15286
15709
|
||
|
|
15287
15710
|
isCustomSubmit && !/^submit\./i.test(_evt)
|
|
15288
15711
|
) {
|
|
15289
|
-
_evt = 'submit.'+_evt
|
|
15712
|
+
_evt = 'submit.'+_evt;
|
|
15713
|
+
// Updating submitTrigger in case it has been changed on the fly
|
|
15714
|
+
instance.$forms[$form.id].submitTrigger = $form.submitTrigger = $el.id;
|
|
15290
15715
|
}
|
|
15291
15716
|
// in case we have multiple reset type buttons
|
|
15292
15717
|
if ( $el.type == 'reset' && !/^reset\./i.test(_evt) ) {
|
|
@@ -15378,10 +15803,11 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
15378
15803
|
, isDisabled = null
|
|
15379
15804
|
;
|
|
15380
15805
|
|
|
15381
|
-
|
|
15382
|
-
if
|
|
15383
|
-
|
|
15384
|
-
|
|
15806
|
+
|
|
15807
|
+
// stop there if form has already been sent - anti spam
|
|
15808
|
+
// if (instance.$forms[id].sent) {
|
|
15809
|
+
// return;
|
|
15810
|
+
// }
|
|
15385
15811
|
|
|
15386
15812
|
var validatorInfos = getFormValidationInfos($target, rules);
|
|
15387
15813
|
fields = validatorInfos.fields;
|
|
@@ -15429,7 +15855,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
15429
15855
|
;
|
|
15430
15856
|
$buttonsTMP = $target.getElementsByTagName('button');
|
|
15431
15857
|
if ( $buttonsTMP.length > 0 ) {
|
|
15432
|
-
for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
15858
|
+
for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
15433
15859
|
if ($buttonsTMP[b].type == 'submit') {
|
|
15434
15860
|
$buttons.push($buttonsTMP[b])
|
|
15435
15861
|
}
|
|
@@ -15439,7 +15865,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
15439
15865
|
// binding links
|
|
15440
15866
|
$buttonsTMP = $target.getElementsByTagName('a');
|
|
15441
15867
|
if ( $buttonsTMP.length > 0 ) {
|
|
15442
|
-
for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
15868
|
+
for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
15443
15869
|
if ( $buttonsTMP[b].attributes.getNamedItem('data-gina-form-submit') ) {
|
|
15444
15870
|
$buttons.push($buttonsTMP[b])
|
|
15445
15871
|
} else if (
|
|
@@ -15555,8 +15981,9 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
15555
15981
|
}
|
|
15556
15982
|
|
|
15557
15983
|
// prevent event to be triggered twice
|
|
15558
|
-
if ( typeof(e.defaultPrevented) != 'undefined' && e.defaultPrevented )
|
|
15984
|
+
if ( typeof(e.defaultPrevented) != 'undefined' && e.defaultPrevented ) {
|
|
15559
15985
|
return false;
|
|
15986
|
+
}
|
|
15560
15987
|
|
|
15561
15988
|
if (withRules || isBinded) {
|
|
15562
15989
|
cancelEvent(e);
|
|
@@ -15696,7 +16123,8 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
15696
16123
|
}
|
|
15697
16124
|
updateSubmitTriggerState( $form, result.isValid() );
|
|
15698
16125
|
});
|
|
15699
|
-
}
|
|
16126
|
+
}
|
|
16127
|
+
else if (!/^(true)$/i.test($form.target.dataset.ginaFormLiveCheckEnabled) ) {
|
|
15700
16128
|
updateSubmitTriggerState( $form , true );
|
|
15701
16129
|
}
|
|
15702
16130
|
|
|
@@ -15713,10 +16141,18 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
15713
16141
|
}
|
|
15714
16142
|
//if (!$formInstance) return;
|
|
15715
16143
|
|
|
15716
|
-
|
|
16144
|
+
|
|
16145
|
+
if (
|
|
16146
|
+
typeof($formInstance.submitTrigger) == 'undefined'
|
|
16147
|
+
&& /^(true)$/i.test($formInstance.target.dataset.ginaFormLiveCheckEnabled)
|
|
16148
|
+
) {
|
|
15717
16149
|
console.warn('This might be normal, so do not worry if this form is handled by your javascript: `'+ $formInstance.id +'`\nGina could not complete `updateSubmitTriggerState()`: `submitTrigger` might not be attached to form instance `'+ $formInstance.id +'`\nTo disable this warning, You just need to disable `Form Live Checking on your form by adding to your <form>: `data-gina-form-live-check-enabled=false``')
|
|
15718
16150
|
} else if ( document.getElementById($formInstance.submitTrigger) ) {
|
|
15719
|
-
if (
|
|
16151
|
+
if (
|
|
16152
|
+
/^true$/i.test(isFormValid)
|
|
16153
|
+
||
|
|
16154
|
+
!/^(true)$/i.test($formInstance.target.dataset.ginaFormLiveCheckEnabled)
|
|
16155
|
+
) { // show submitTrigge
|
|
15720
16156
|
document.getElementById($formInstance.submitTrigger).disabled = false;
|
|
15721
16157
|
} else { // hide submitTrigger
|
|
15722
16158
|
document.getElementById($formInstance.submitTrigger).disabled = true;
|
|
@@ -16159,7 +16595,8 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
16159
16595
|
if ( !/^form$/i.test($formOrElement.tagName) ) {
|
|
16160
16596
|
$currentForm = $formOrElement.form;
|
|
16161
16597
|
}
|
|
16162
|
-
var formId
|
|
16598
|
+
var formId = $currentForm.getAttribute('id');
|
|
16599
|
+
var isFormValid = null;
|
|
16163
16600
|
|
|
16164
16601
|
if (
|
|
16165
16602
|
hasParsedAllRules
|
|
@@ -16180,10 +16617,16 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
16180
16617
|
if ( typeof(instance.$forms[formId].errors) == 'undefined' ) {
|
|
16181
16618
|
instance.$forms[formId].errors = {}
|
|
16182
16619
|
}
|
|
16620
|
+
// Fixed on 2025-03-16
|
|
16621
|
+
if ( typeof(cb._errors[field]) != 'undefined' ) {
|
|
16622
|
+
instance.$forms[formId].errors[field] = cb._errors[field];
|
|
16623
|
+
}
|
|
16624
|
+
console.debug('[A] Refreshing warning/error on field '+ field);
|
|
16625
|
+
if (
|
|
16626
|
+
!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)
|
|
16627
|
+
|| d[field].target.value != ''
|
|
16183
16628
|
|
|
16184
|
-
|
|
16185
|
-
|
|
16186
|
-
if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating) || d[field].target.value != '' ) {
|
|
16629
|
+
) {
|
|
16187
16630
|
refreshWarning($allFields[field]);
|
|
16188
16631
|
handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
|
|
16189
16632
|
updateSubmitTriggerState( $currentForm, isFormValid);
|
|
@@ -16191,8 +16634,9 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
16191
16634
|
|
|
16192
16635
|
if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
|
|
16193
16636
|
// update toolbar
|
|
16194
|
-
if (!gina.forms.errors)
|
|
16637
|
+
if (!gina.forms.errors) {
|
|
16195
16638
|
gina.forms.errors = {};
|
|
16639
|
+
}
|
|
16196
16640
|
|
|
16197
16641
|
var objCallback = {
|
|
16198
16642
|
id : formId,
|
|
@@ -16209,13 +16653,13 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
16209
16653
|
}
|
|
16210
16654
|
|
|
16211
16655
|
// is this the last or the only field to be validated ?
|
|
16212
|
-
var needsGlobalReValidation = false
|
|
16656
|
+
var needsGlobalReValidation = false;
|
|
16213
16657
|
if ( listedFields.length == 1 || listedFields[listedFields.length-1] == field) {
|
|
16214
16658
|
// trigger end of validation
|
|
16215
16659
|
// console.debug(field +' is the last element to be validated for formId: '+ formId, cb._errors, instance.$forms[formId].errors);
|
|
16216
16660
|
isFormValid = ( cb._errors.count() > 0 ) ? false : true;
|
|
16217
16661
|
if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)) {
|
|
16218
|
-
|
|
16662
|
+
console.debug('[1] Should update error display now ', cb._errors);
|
|
16219
16663
|
instance.$forms[formId].errors = merge(cb._errors, instance.$forms[formId].errors);
|
|
16220
16664
|
refreshWarning($allFields[field]);
|
|
16221
16665
|
handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
|
|
@@ -16247,8 +16691,6 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
16247
16691
|
window.ginaToolbar.update('forms', objCallback);
|
|
16248
16692
|
}
|
|
16249
16693
|
|
|
16250
|
-
|
|
16251
|
-
|
|
16252
16694
|
handleErrorsDisplay($currentForm, gResult.error, gResult.data, field);
|
|
16253
16695
|
updateSubmitTriggerState( $currentForm, isFormValid);
|
|
16254
16696
|
})
|
|
@@ -16392,7 +16834,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
16392
16834
|
|
|
16393
16835
|
for (var c in rules) {
|
|
16394
16836
|
if (!/^\_case\_/.test(c) ) continue;
|
|
16395
|
-
if ( typeof(rules[c].conditions) == 'undefined' ||
|
|
16837
|
+
if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
|
|
16396
16838
|
if ( typeof(rules[c].conditions[0].rules) == 'undefined' ) continue;
|
|
16397
16839
|
|
|
16398
16840
|
|
|
@@ -16574,7 +17016,14 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
16574
17016
|
// filtering conditions
|
|
16575
17017
|
for (var _c = 0, _cLen = rules[c].conditions.length; _c < _cLen; ++_c) {
|
|
16576
17018
|
|
|
16577
|
-
if (
|
|
17019
|
+
if (
|
|
17020
|
+
Array.isArray(rules[c].conditions[_c].case)
|
|
17021
|
+
&& rules[c].conditions[_c].case.indexOf(caseValue) == -1
|
|
17022
|
+
||
|
|
17023
|
+
!Array.isArray(rules[c].conditions[_c].case)
|
|
17024
|
+
&& rules[c].conditions[_c].case != caseValue
|
|
17025
|
+
|
|
17026
|
+
) {
|
|
16578
17027
|
continue;
|
|
16579
17028
|
}
|
|
16580
17029
|
|
|
@@ -16719,7 +17168,8 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
16719
17168
|
if (
|
|
16720
17169
|
conditions[c]['case'] === caseValue
|
|
16721
17170
|
||
|
|
16722
|
-
Array.isArray(conditions[c]['case'])
|
|
17171
|
+
Array.isArray(conditions[c]['case'])
|
|
17172
|
+
&& conditions[c]['case'].indexOf(caseValue) > -1
|
|
16723
17173
|
||
|
|
16724
17174
|
/^\//.test(conditions[c]['case'])
|
|
16725
17175
|
) {
|
|
@@ -16836,8 +17286,6 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
16836
17286
|
}
|
|
16837
17287
|
--i;
|
|
16838
17288
|
}
|
|
16839
|
-
|
|
16840
|
-
|
|
16841
17289
|
} // EO for
|
|
16842
17290
|
}
|
|
16843
17291
|
|
|
@@ -16858,7 +17306,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
16858
17306
|
}
|
|
16859
17307
|
|
|
16860
17308
|
if (isGFFCtx)
|
|
16861
|
-
$fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].
|
|
17309
|
+
$fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].substring(0, fieldErrorsAttributes[field].length-1))
|
|
16862
17310
|
}
|
|
16863
17311
|
|
|
16864
17312
|
//calling back
|
|
@@ -16929,6 +17377,8 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
|
16929
17377
|
'data' : formatData( _data )
|
|
16930
17378
|
});
|
|
16931
17379
|
removeListener(gina, event.target, 'validated.' + event.target.id);
|
|
17380
|
+
|
|
17381
|
+
|
|
16932
17382
|
return
|
|
16933
17383
|
}
|
|
16934
17384
|
});
|
|
@@ -17157,6 +17607,11 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
17157
17607
|
try {
|
|
17158
17608
|
|
|
17159
17609
|
txt = ($json) ? $json.text() : '';
|
|
17610
|
+
// txt = txt
|
|
17611
|
+
// .replace(/:null/gi, ':\"null\"')
|
|
17612
|
+
// .replace(/:true/gi, ':\"true\"')
|
|
17613
|
+
// .replace(/:false/gi, ':\"false\"');
|
|
17614
|
+
|
|
17160
17615
|
if (txt == '' || txt == 'null' ) {
|
|
17161
17616
|
// $json.text('Empty')
|
|
17162
17617
|
$json.text('{}')
|
|
@@ -17180,8 +17635,9 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
17180
17635
|
|
|
17181
17636
|
var sectionStr = ( section ) ? ' [ '+ section + ' ] ' : ' ';
|
|
17182
17637
|
// var _err = 'Could not load'+ sectionStr +'json\n' + (err.stack||err.message||err);
|
|
17183
|
-
var _err = 'Could not load'+ sectionStr +'json\n' + err.message +'\n'+ err.stack;
|
|
17638
|
+
var _err = 'Could not load ['+ sectionStr +'] json\n' + err.message +'\n'+ err.stack;
|
|
17184
17639
|
console.error(_err);
|
|
17640
|
+
return;
|
|
17185
17641
|
// if ($json) {
|
|
17186
17642
|
// $json.text(_err);
|
|
17187
17643
|
// } else {
|
|
@@ -17806,7 +18262,7 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
17806
18262
|
|
|
17807
18263
|
foldingStateName += name
|
|
17808
18264
|
} else {
|
|
17809
|
-
foldingStateName = foldingStateName.
|
|
18265
|
+
foldingStateName = foldingStateName.substring(0, foldingStateName.length-1)
|
|
17810
18266
|
}
|
|
17811
18267
|
|
|
17812
18268
|
return foldingStateName.trim()
|
|
@@ -17843,8 +18299,8 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
17843
18299
|
html += '<ul class="gina-toolbar-object">' + parseObject(obj[i], ginaObj[i], id, elIsXHR, elSection) +'</ul>';
|
|
17844
18300
|
html += '</li>';
|
|
17845
18301
|
// clear one level
|
|
17846
|
-
//id = id.
|
|
17847
|
-
id = id.
|
|
18302
|
+
//id = id.substring(0, id.length - i.length - 1);
|
|
18303
|
+
id = id.substring(0, id.length - i.length);
|
|
17848
18304
|
} else if ( Array.isArray(obj[i]) ) {
|
|
17849
18305
|
//id += i + '-';
|
|
17850
18306
|
id += '-' + i.replace(/[^A-Za-z0-9_-]/g, '_');
|
|
@@ -17855,8 +18311,8 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
17855
18311
|
html += '<ul class="gina-toolbar-collection">' + parseCollection(obj[i], ginaObj[i], id, elIsXHR, elSection) +'</ul>';
|
|
17856
18312
|
html += '</li>';
|
|
17857
18313
|
// clear one level
|
|
17858
|
-
//id = id.
|
|
17859
|
-
id = id.
|
|
18314
|
+
//id = id.substring(0, id.length - i.length - 1);
|
|
18315
|
+
id = id.substring(0, id.length - i.length);
|
|
17860
18316
|
} else {
|
|
17861
18317
|
objType = (ginaObj[i] === null) ? 'null' : typeof(ginaObj[i]);
|
|
17862
18318
|
if ( objType == 'undefined' ) { // new key declaration added by user
|
|
@@ -17913,7 +18369,7 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
17913
18369
|
html += '<ul class="gina-toolbar-object">' + parseObject(arr[i], ginaArr[i], id, elIsXHR, elSection) +'</ul>';
|
|
17914
18370
|
html += '</li>';
|
|
17915
18371
|
// clear one level
|
|
17916
|
-
id = id.
|
|
18372
|
+
id = id.substring(0, id.length - i.toString().length - 1);
|
|
17917
18373
|
|
|
17918
18374
|
} else if ( Array.isArray(arr[i]) ) {
|
|
17919
18375
|
//id += i + '-';
|
|
@@ -17926,8 +18382,8 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
17926
18382
|
html += '<ul class="gina-toolbar-collection">' + parseCollection(arr[i], ginaArr[i], id, elIsXHR, elSection) +'</ul>';
|
|
17927
18383
|
html += '</li>';
|
|
17928
18384
|
// clear one level
|
|
17929
|
-
//id = id.
|
|
17930
|
-
id = id.
|
|
18385
|
+
//id = id.substring(0, id.length - i.toString().length - 1);
|
|
18386
|
+
id = id.substring(0, id.length - i.toString().length);
|
|
17931
18387
|
} else {
|
|
17932
18388
|
html += '<li class="gina-toolbar-key-value"><span class="gina-toolbar-key">'+ i +':</span> <span class="gina-toolbar-value">'+ arr[i] +'</span></li>';
|
|
17933
18389
|
}
|
|
@@ -17956,16 +18412,16 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
17956
18412
|
section = i;
|
|
17957
18413
|
if ( typeof(obj[i]) == 'object' && !Array.isArray(obj[i]) && obj[i] !== null ) { // parse
|
|
17958
18414
|
|
|
17959
|
-
$parent = $('#gina-toolbar-view-' + id.
|
|
18415
|
+
$parent = $('#gina-toolbar-view-' + id.substring(0, id.length - 1));
|
|
17960
18416
|
hasParent = ( $parent.length ) ? true : false;
|
|
17961
18417
|
|
|
17962
18418
|
if (!hasParent ) {
|
|
17963
18419
|
id += i.replace(/[^A-Za-z0-9_-]/g, '_') + '-';
|
|
17964
18420
|
|
|
17965
18421
|
if (i == 'params') { // force to top
|
|
17966
|
-
var htmlParams = '<div id="gina-toolbar-view-'+ id.
|
|
17967
|
-
'<h2 class="gina-toolbar-section-title">'+ id.
|
|
17968
|
-
'<ul class="'+ id.
|
|
18422
|
+
var htmlParams = '<div id="gina-toolbar-view-'+ id.substring(0, id.length - 1) +'" class="gina-toolbar-section">' +
|
|
18423
|
+
'<h2 class="gina-toolbar-section-title">'+ id.substring(0, id.length - 1) +'</h2>' +
|
|
18424
|
+
'<ul class="'+ id.substring(0, id.length - 1) +'"></ul>' +
|
|
17969
18425
|
'</div>';
|
|
17970
18426
|
|
|
17971
18427
|
$('#gina-toolbar-view-html-properties')
|
|
@@ -17974,9 +18430,9 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
17974
18430
|
|
|
17975
18431
|
if ( !/^html/.test(id) ) {
|
|
17976
18432
|
|
|
17977
|
-
var htmlOther = '<div id="gina-toolbar-view-'+ id.
|
|
17978
|
-
'<h2 class="gina-toolbar-section-title">'+ id.
|
|
17979
|
-
'<ul class="'+ id.
|
|
18433
|
+
var htmlOther = '<div id="gina-toolbar-view-'+ id.substring(0, id.length - 1) +'" class="gina-toolbar-section">' +
|
|
18434
|
+
'<h2 class="gina-toolbar-section-title">'+ id.substring(0, id.length - 1) +'</h2>' +
|
|
18435
|
+
'<ul class="'+ id.substring(0, id.length - 1) +'"></ul>' +
|
|
17980
18436
|
'</div>';
|
|
17981
18437
|
|
|
17982
18438
|
$html
|
|
@@ -17984,36 +18440,36 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
17984
18440
|
}/** else { // add to properties section
|
|
17985
18441
|
$root
|
|
17986
18442
|
.find('.gina-toolbar-properties')
|
|
17987
|
-
.append('ul.' + id.
|
|
18443
|
+
.append('ul.' + id.substring(0, id.length - 1))
|
|
17988
18444
|
}*/
|
|
17989
18445
|
|
|
17990
18446
|
}
|
|
17991
18447
|
|
|
17992
|
-
parseView(obj[i], ginaObj[i], id, elIsXHR, $html.find('ul.'+ id.
|
|
18448
|
+
parseView(obj[i], ginaObj[i], id, elIsXHR, $html.find('ul.'+ id.substring(0, id.length - 1)), $root );
|
|
17993
18449
|
|
|
17994
18450
|
} else {
|
|
17995
18451
|
|
|
17996
18452
|
parentId = id + i.replace(/[^A-Za-z0-9_-]/g, '_') + '-';
|
|
17997
18453
|
|
|
17998
18454
|
$parent
|
|
17999
|
-
.find('ul.'+ id.
|
|
18000
|
-
.append('<li class="gina-toolbar-object"><a href="#" class="gina-toolbar-key gina-toolbar'+ isXHR +'-folding-state-'+ normalizeFoldingStateName( i.replace(/[^A-Za-z0-9_-]/g, '_'), parentId.
|
|
18455
|
+
.find('ul.'+ id.substring(0, id.length - 1))
|
|
18456
|
+
.append('<li class="gina-toolbar-object"><a href="#" class="gina-toolbar-key gina-toolbar'+ isXHR +'-folding-state-'+ normalizeFoldingStateName( i.replace(/[^A-Za-z0-9_-]/g, '_'), parentId.substring(0, parentId.length - 1) ) +'">'+ i +' <span>{ }</span></a><ul class="gina-toolbar-object '+ parentId.substring(0, parentId.length - 1) +'"></ul></li>');
|
|
18001
18457
|
|
|
18002
|
-
parseView(obj[i], ginaObj[i], parentId, elIsXHR, $parent.find('ul.'+ id.
|
|
18458
|
+
parseView(obj[i], ginaObj[i], parentId, elIsXHR, $parent.find('ul.'+ id.substring(0, id.length - 1)), $root );
|
|
18003
18459
|
|
|
18004
18460
|
id += i.replace(/[^A-Za-z0-9_-]/g, '_') + '-';
|
|
18005
18461
|
}
|
|
18006
18462
|
|
|
18007
18463
|
|
|
18008
18464
|
// clear one level
|
|
18009
|
-
id = id.
|
|
18465
|
+
id = id.substring(0, id.length - i.length - 1);
|
|
18010
18466
|
|
|
18011
18467
|
|
|
18012
18468
|
} else if ( Array.isArray(obj[i]) ) { // parse collection
|
|
18013
18469
|
|
|
18014
18470
|
|
|
18015
18471
|
|
|
18016
|
-
$parent = $('#gina-toolbar-view-' + id.
|
|
18472
|
+
$parent = $('#gina-toolbar-view-' + id.substring(0, id.length - 1));
|
|
18017
18473
|
|
|
18018
18474
|
hasParent = ( $parent.length ) ? true : false;
|
|
18019
18475
|
|
|
@@ -18023,16 +18479,16 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
18023
18479
|
parentId = id + i.replace(/[^A-Za-z0-9_-]/g, '_') + '-';
|
|
18024
18480
|
|
|
18025
18481
|
$parent
|
|
18026
|
-
//.find('ul.'+ id.
|
|
18027
|
-
.append('<li class="gina-toolbar-collection"><a href="#" class="gina-toolbar-key gina-toolbar'+ isXHR +'-folding-state-'+ normalizeFoldingStateName( i.replace(/[^A-Za-z0-9_-]/g, '_'), parentId.
|
|
18482
|
+
//.find('ul.'+ id.substring(0, id.length - 1))
|
|
18483
|
+
.append('<li class="gina-toolbar-collection"><a href="#" class="gina-toolbar-key gina-toolbar'+ isXHR +'-folding-state-'+ normalizeFoldingStateName( i.replace(/[^A-Za-z0-9_-]/g, '_'), parentId.substring(0, parentId.length - 1) ) +'">'+ i +' <span>['+ obj[i].length +']</span></a><ul> '+ parseCollection(obj[i], ginaObj[i], parentId, $parent.find('li ul.'+ id.substring(0, id.length - 1)), section )+'</ul></li>');
|
|
18028
18484
|
|
|
18029
18485
|
|
|
18030
|
-
//parentId = parentId.
|
|
18031
|
-
//parentId = id.
|
|
18032
|
-
//parseView(obj[i], ginaObj[i], parentId, elIsXHR, $parent.find('ul.'+ parentId.
|
|
18486
|
+
//parentId = parentId.substring(0, parentId.length - 1)+ '-';
|
|
18487
|
+
//parentId = id.substring(0, id.length - i.length - 1);
|
|
18488
|
+
//parseView(obj[i], ginaObj[i], parentId, elIsXHR, $parent.find('ul.'+ parentId.substring(0, parentId.length - 1)), $root );
|
|
18033
18489
|
|
|
18034
18490
|
//id += i.replace(/[^A-Za-z0-9_-]/g, '_') + '-';
|
|
18035
|
-
//$parent = $('#gina-toolbar-view-' + id.
|
|
18491
|
+
//$parent = $('#gina-toolbar-view-' + id.substring(0, id.length - 1));
|
|
18036
18492
|
id += i.replace(/[^A-Za-z0-9_-]/g, '_') + '-';
|
|
18037
18493
|
} else {
|
|
18038
18494
|
|
|
@@ -18040,8 +18496,8 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
18040
18496
|
parentId = id + i.replace(/[^A-Za-z0-9_-]/g, '_') + '-';
|
|
18041
18497
|
|
|
18042
18498
|
$parent
|
|
18043
|
-
.find('li.'+ id.
|
|
18044
|
-
.append('<li class="gina-toolbar-collection"><a class="gina-toolbar-key gina-toolbar'+ isXHR +'-folding-state-'+ normalizeFoldingStateName( i.replace(/[^A-Za-z0-9_-]/g, '_'), parentId.
|
|
18499
|
+
.find('li.'+ id.substring(0, id.length - 1) +' ul')
|
|
18500
|
+
.append('<li class="gina-toolbar-collection"><a class="gina-toolbar-key gina-toolbar'+ isXHR +'-folding-state-'+ normalizeFoldingStateName( i.replace(/[^A-Za-z0-9_-]/g, '_'), parentId.substring(0, parentId.length - 1) ) +'">'+ i +' <span>['+ obj[i].length +']</span></a><ul>'+ parseCollection(obj[i], ginaObj[i], parentId, $parent.find('li ul.'+ id.substring(0, id.length - 1)), section ) +'</ul></li>');
|
|
18045
18501
|
|
|
18046
18502
|
id += i.replace(/[^A-Za-z0-9_-]/g, '_') + '-';
|
|
18047
18503
|
|
|
@@ -18052,7 +18508,7 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
18052
18508
|
// id = id + i.replace(/[^A-Za-z0-9_-]/g, '_') + '-';
|
|
18053
18509
|
// $root
|
|
18054
18510
|
// .find('.gina-toolbar-properties')
|
|
18055
|
-
// .append('<li class="gina-toolbar-collection"><a class="gina-toolbar-key gina-toolbar'+ isXHR +'-folding-state-'+ normalizeFoldingStateName( i.replace(/[^A-Za-z0-9_-]/g, '_'), id.
|
|
18511
|
+
// .append('<li class="gina-toolbar-collection"><a class="gina-toolbar-key gina-toolbar'+ isXHR +'-folding-state-'+ normalizeFoldingStateName( i.replace(/[^A-Za-z0-9_-]/g, '_'), id.substring(0, id.length - 1) ) +'">'+ i +' <span>['+ obj[i].length +']</span></a><ul>'+ parseCollection(obj[i], ginaObj[i], parentId, $root.find('.gina-toolbar-properties'), section) +'</ul></li>');
|
|
18056
18512
|
|
|
18057
18513
|
|
|
18058
18514
|
// } else {
|
|
@@ -18061,14 +18517,14 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
18061
18517
|
// parentId = id + i.replace(/[^A-Za-z0-9_-]/g, '_') + '-';
|
|
18062
18518
|
|
|
18063
18519
|
// $parent
|
|
18064
|
-
// .find('li.'+ id.
|
|
18065
|
-
// .append('<li class="gina-toolbar-collection"><a class="gina-toolbar-key gina-toolbar'+ isXHR +'-folding-state-'+ normalizeFoldingStateName( i.replace(/[^A-Za-z0-9_-]/g, '_'), parentId.
|
|
18520
|
+
// .find('li.'+ id.substring(0, id.length - 1) +' ul')
|
|
18521
|
+
// .append('<li class="gina-toolbar-collection"><a class="gina-toolbar-key gina-toolbar'+ isXHR +'-folding-state-'+ normalizeFoldingStateName( i.replace(/[^A-Za-z0-9_-]/g, '_'), parentId.substring(0, parentId.length - 1) ) +'">'+ i +' <span>['+ obj[i].length +']</span></a><ul>'+ parseCollection(obj[i], ginaObj[i], parentId, $parent.find('li ul.'+ id.substring(0, id.length - 1)), section ) +'</ul></li>');
|
|
18066
18522
|
|
|
18067
18523
|
// id += i.replace(/[^A-Za-z0-9_-]/g, '_') + '-';
|
|
18068
18524
|
// }
|
|
18069
18525
|
|
|
18070
18526
|
// clear one level
|
|
18071
|
-
id = id.
|
|
18527
|
+
id = id.substring(0, id.length - i.length - 1);
|
|
18072
18528
|
} else {
|
|
18073
18529
|
|
|
18074
18530
|
|
|
@@ -18076,7 +18532,7 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
18076
18532
|
objType = (ginaObj[i] === null) ? 'null' : typeof(ginaObj[i]);
|
|
18077
18533
|
if ( objType == 'undefined' ) { // new key declaration added by user
|
|
18078
18534
|
if (/\-$/.test(id)) {
|
|
18079
|
-
id = id.
|
|
18535
|
+
id = id.substring(0, id.length - 1);
|
|
18080
18536
|
}
|
|
18081
18537
|
|
|
18082
18538
|
if (!id) continue;
|
|
@@ -18123,7 +18579,7 @@ define('gina/toolbar', ['require', 'jquery', 'vendor/uuid'/**, 'lib/merge'*/, 'l
|
|
|
18123
18579
|
} else {
|
|
18124
18580
|
|
|
18125
18581
|
$root
|
|
18126
|
-
.find('ul.' + id.
|
|
18582
|
+
.find('ul.' + id.substring(0, id.length - 1))
|
|
18127
18583
|
.append('<li class="gina-toolbar-key-value"><span class="gina-toolbar-key">'+ i +':</span> <span class="gina-toolbar-value gina-toolbar-value-type-is-'+ objType +'">'+ obj[i] +'</span></li>')
|
|
18128
18584
|
}
|
|
18129
18585
|
}
|
|
@@ -18643,11 +19099,11 @@ define('gina', [ 'require', 'vendor/uuid', 'lib/merge', 'utils/events', 'helpers
|
|
|
18643
19099
|
return construct
|
|
18644
19100
|
});
|
|
18645
19101
|
/*!
|
|
18646
|
-
* Engine.IO v6.
|
|
18647
|
-
* (c) 2014-
|
|
19102
|
+
* Engine.IO v6.6.3
|
|
19103
|
+
* (c) 2014-2025 Guillermo Rauch
|
|
18648
19104
|
* Released under the MIT License.
|
|
18649
19105
|
*/
|
|
18650
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define('vendor/engine.io',e):(t="undefined"!=typeof globalThis?globalThis:t||self).eio=e()}(this,(function(){"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function n(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),t}function o(){return o=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},o.apply(this,arguments)}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}function s(t){return s=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},s(t)}function a(t,e){return a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},a(t,e)}function u(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}function c(t,e,r){return c=u()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&a(o,r.prototype),o},c.apply(null,arguments)}function p(t){var e="function"==typeof Map?new Map:void 0;return p=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return c(t,arguments,s(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),a(n,t)},p(t)}function h(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function l(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?h(t):e}function f(t){var e=u();return function(){var r,n=s(t);if(e){var o=s(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}function d(t,e,r){return d="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,r){var n=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=s(t)););return t}(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(r):o.value}},d(t,e,r||t)}var y=Object.create(null);y.open="0",y.close="1",y.ping="2",y.pong="3",y.message="4",y.upgrade="5",y.noop="6";var v=Object.create(null);Object.keys(y).forEach((function(t){v[y[t]]=t}));for(var m={type:"error",data:"parser error"},g="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),b="function"==typeof ArrayBuffer,k=function(t,e,r){var n,o=t.type,i=t.data;return g&&i instanceof Blob?e?r(i):w(i,r):b&&(i instanceof ArrayBuffer||(n=i,"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(n):n&&n.buffer instanceof ArrayBuffer))?e?r(i):w(new Blob([i]),r):r(y[o]+(i||""))},w=function(t,e){var r=new FileReader;return r.onload=function(){var t=r.result.split(",")[1];e("b"+t)},r.readAsDataURL(t)},T="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",S="undefined"==typeof Uint8Array?[]:new Uint8Array(256),R=0;R<T.length;R++)S[T.charCodeAt(R)]=R;var x="function"==typeof ArrayBuffer,O=function(t,e){if("string"!=typeof t)return{type:"message",data:P(t,e)};var r=t.charAt(0);return"b"===r?{type:"message",data:E(t.substring(1),e)}:v[r]?t.length>1?{type:v[r],data:t.substring(1)}:{type:v[r]}:m},E=function(t,e){if(x){var r=function(t){var e,r,n,o,i,s=.75*t.length,a=t.length,u=0;"="===t[t.length-1]&&(s--,"="===t[t.length-2]&&s--);var c=new ArrayBuffer(s),p=new Uint8Array(c);for(e=0;e<a;e+=4)r=S[t.charCodeAt(e)],n=S[t.charCodeAt(e+1)],o=S[t.charCodeAt(e+2)],i=S[t.charCodeAt(e+3)],p[u++]=r<<2|n>>4,p[u++]=(15&n)<<4|o>>2,p[u++]=(3&o)<<6|63&i;return c}(t);return P(r,e)}return{base64:!0,data:t}},P=function(t,e){return"blob"===e&&t instanceof ArrayBuffer?new Blob([t]):t},B=String.fromCharCode(30);function C(t){if(t)return function(t){for(var e in C.prototype)t[e]=C.prototype[e];return t}(t)}C.prototype.on=C.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this},C.prototype.once=function(t,e){function r(){this.off(t,r),e.apply(this,arguments)}return r.fn=e,this.on(t,r),this},C.prototype.off=C.prototype.removeListener=C.prototype.removeAllListeners=C.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var r,n=this._callbacks["$"+t];if(!n)return this;if(1==arguments.length)return delete this._callbacks["$"+t],this;for(var o=0;o<n.length;o++)if((r=n[o])===e||r.fn===e){n.splice(o,1);break}return 0===n.length&&delete this._callbacks["$"+t],this},C.prototype.emit=function(t){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),r=this._callbacks["$"+t],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(r){n=0;for(var o=(r=r.slice(0)).length;n<o;++n)r[n].apply(this,e)}return this},C.prototype.emitReserved=C.prototype.emit,C.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks["$"+t]||[]},C.prototype.hasListeners=function(t){return!!this.listeners(t).length};var L="undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")();function q(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];return r.reduce((function(e,r){return t.hasOwnProperty(r)&&(e[r]=t[r]),e}),{})}var A=setTimeout,j=clearTimeout;function _(t,e){e.useNativeTimers?(t.setTimeoutFn=A.bind(L),t.clearTimeoutFn=j.bind(L)):(t.setTimeoutFn=setTimeout.bind(L),t.clearTimeoutFn=clearTimeout.bind(L))}var U,H=function(t){i(n,t);var r=f(n);function n(t,o,i){var s;return e(this,n),(s=r.call(this,t)).description=o,s.context=i,s.type="TransportError",s}return n}(p(Error)),F=function(t){i(o,t);var r=f(o);function o(t){var n;return e(this,o),(n=r.call(this)).writable=!1,_(h(n),t),n.opts=t,n.query=t.query,n.readyState="",n.socket=t.socket,n}return n(o,[{key:"onError",value:function(t,e,r){return d(s(o.prototype),"emitReserved",this).call(this,"error",new H(t,e,r)),this}},{key:"open",value:function(){return"closed"!==this.readyState&&""!==this.readyState||(this.readyState="opening",this.doOpen()),this}},{key:"close",value:function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}},{key:"send",value:function(t){"open"===this.readyState&&this.write(t)}},{key:"onOpen",value:function(){this.readyState="open",this.writable=!0,d(s(o.prototype),"emitReserved",this).call(this,"open")}},{key:"onData",value:function(t){var e=O(t,this.socket.binaryType);this.onPacket(e)}},{key:"onPacket",value:function(t){d(s(o.prototype),"emitReserved",this).call(this,"packet",t)}},{key:"onClose",value:function(t){this.readyState="closed",d(s(o.prototype),"emitReserved",this).call(this,"close",t)}}]),o}(C),D="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),M={},I=0,W=0;function N(t){var e="";do{e=D[t%64]+e,t=Math.floor(t/64)}while(t>0);return e}function X(){var t=N(+new Date);return t!==U?(I=0,U=t):t+"."+N(I++)}for(;W<64;W++)M[D[W]]=W;function $(t){var e="";for(var r in t)t.hasOwnProperty(r)&&(e.length&&(e+="&"),e+=encodeURIComponent(r)+"="+encodeURIComponent(t[r]));return e}function z(t){for(var e={},r=t.split("&"),n=0,o=r.length;n<o;n++){var i=r[n].split("=");e[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return e}var V=!1;try{V="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(t){}var G=V;function J(t){var e=t.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!e||G))return new XMLHttpRequest}catch(t){}if(!e)try{return new(L[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(t){}}function K(){}var Q=null!=new J({xdomain:!1}).responseType,Y=function(t){i(s,t);var r=f(s);function s(t){var n;if(e(this,s),(n=r.call(this,t)).polling=!1,"undefined"!=typeof location){var o="https:"===location.protocol,i=location.port;i||(i=o?"443":"80"),n.xd="undefined"!=typeof location&&t.hostname!==location.hostname||i!==t.port,n.xs=t.secure!==o}var a=t&&t.forceBase64;return n.supportsBinary=Q&&!a,n}return n(s,[{key:"doOpen",value:function(){this.poll()}},{key:"pause",value:function(t){var e=this;this.readyState="pausing";var r=function(){e.readyState="paused",t()};if(this.polling||!this.writable){var n=0;this.polling&&(n++,this.once("pollComplete",(function(){--n||r()}))),this.writable||(n++,this.once("drain",(function(){--n||r()})))}else r()}},{key:"poll",value:function(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}},{key:"onData",value:function(t){var e=this;(function(t,e){for(var r=t.split(B),n=[],o=0;o<r.length;o++){var i=O(r[o],e);if(n.push(i),"error"===i.type)break}return n})(t,this.socket.binaryType).forEach((function(t){if("opening"===e.readyState&&"open"===t.type&&e.onOpen(),"close"===t.type)return e.onClose({description:"transport closed by the server"}),!1;e.onPacket(t)})),"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.poll())}},{key:"doClose",value:function(){var t=this,e=function(){t.write([{type:"close"}])};"open"===this.readyState?e():this.once("open",e)}},{key:"write",value:function(t){var e=this;this.writable=!1,function(t,e){var r=t.length,n=new Array(r),o=0;t.forEach((function(t,i){k(t,!1,(function(t){n[i]=t,++o===r&&e(n.join(B))}))}))}(t,(function(t){e.doWrite(t,(function(){e.writable=!0,e.emitReserved("drain")}))}))}},{key:"uri",value:function(){var t=this.query||{},e=this.opts.secure?"https":"http",r="";!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=X()),this.supportsBinary||t.sid||(t.b64=1),this.opts.port&&("https"===e&&443!==Number(this.opts.port)||"http"===e&&80!==Number(this.opts.port))&&(r=":"+this.opts.port);var n=$(t);return e+"://"+(-1!==this.opts.hostname.indexOf(":")?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+(n.length?"?"+n:"")}},{key:"request",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o(t,{xd:this.xd,xs:this.xs},this.opts),new Z(this.uri(),t)}},{key:"doWrite",value:function(t,e){var r=this,n=this.request({method:"POST",data:t});n.on("success",e),n.on("error",(function(t,e){r.onError("xhr post error",t,e)}))}},{key:"doPoll",value:function(){var t=this,e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(function(e,r){t.onError("xhr poll error",e,r)})),this.pollXhr=e}},{key:"name",get:function(){return"polling"}}]),s}(F),Z=function(t){i(o,t);var r=f(o);function o(t,n){var i;return e(this,o),_(h(i=r.call(this)),n),i.opts=n,i.method=n.method||"GET",i.uri=t,i.async=!1!==n.async,i.data=void 0!==n.data?n.data:null,i.create(),i}return n(o,[{key:"create",value:function(){var t=this,e=q(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");e.xdomain=!!this.opts.xd,e.xscheme=!!this.opts.xs;var r=this.xhr=new J(e);try{r.open(this.method,this.uri,this.async);try{if(this.opts.extraHeaders)for(var n in r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0),this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(n)&&r.setRequestHeader(n,this.opts.extraHeaders[n])}catch(t){}if("POST"===this.method)try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(t){}try{r.setRequestHeader("Accept","*/*")}catch(t){}"withCredentials"in r&&(r.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(r.timeout=this.opts.requestTimeout),r.onreadystatechange=function(){4===r.readyState&&(200===r.status||1223===r.status?t.onLoad():t.setTimeoutFn((function(){t.onError("number"==typeof r.status?r.status:0)}),0))},r.send(this.data)}catch(e){return void this.setTimeoutFn((function(){t.onError(e)}),0)}"undefined"!=typeof document&&(this.index=o.requestsCount++,o.requests[this.index]=this)}},{key:"onError",value:function(t){this.emitReserved("error",t,this.xhr),this.cleanup(!0)}},{key:"cleanup",value:function(t){if(void 0!==this.xhr&&null!==this.xhr){if(this.xhr.onreadystatechange=K,t)try{this.xhr.abort()}catch(t){}"undefined"!=typeof document&&delete o.requests[this.index],this.xhr=null}}},{key:"onLoad",value:function(){var t=this.xhr.responseText;null!==t&&(this.emitReserved("data",t),this.emitReserved("success"),this.cleanup())}},{key:"abort",value:function(){this.cleanup()}}]),o}(C);if(Z.requestsCount=0,Z.requests={},"undefined"!=typeof document)if("function"==typeof attachEvent)attachEvent("onunload",tt);else if("function"==typeof addEventListener){addEventListener("onpagehide"in L?"pagehide":"unload",tt,!1)}function tt(){for(var t in Z.requests)Z.requests.hasOwnProperty(t)&&Z.requests[t].abort()}var et="function"==typeof Promise&&"function"==typeof Promise.resolve?function(t){return Promise.resolve().then(t)}:function(t,e){return e(t,0)},rt=L.WebSocket||L.MozWebSocket,nt="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),ot=function(t){i(o,t);var r=f(o);function o(t){var n;return e(this,o),(n=r.call(this,t)).supportsBinary=!t.forceBase64,n}return n(o,[{key:"doOpen",value:function(){if(this.check()){var t=this.uri(),e=this.opts.protocols,r=nt?{}:q(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=nt?new rt(t,e,r):e?new rt(t,e):new rt(t)}catch(t){return this.emitReserved("error",t)}this.ws.binaryType=this.socket.binaryType||"arraybuffer",this.addEventListeners()}}},{key:"addEventListeners",value:function(){var t=this;this.ws.onopen=function(){t.opts.autoUnref&&t.ws._socket.unref(),t.onOpen()},this.ws.onclose=function(e){return t.onClose({description:"websocket connection closed",context:e})},this.ws.onmessage=function(e){return t.onData(e.data)},this.ws.onerror=function(e){return t.onError("websocket error",e)}}},{key:"write",value:function(t){var e=this;this.writable=!1;for(var r=function(r){var n=t[r],o=r===t.length-1;k(n,e.supportsBinary,(function(t){try{e.ws.send(t)}catch(t){}o&&et((function(){e.writable=!0,e.emitReserved("drain")}),e.setTimeoutFn)}))},n=0;n<t.length;n++)r(n)}},{key:"doClose",value:function(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}},{key:"uri",value:function(){var t=this.query||{},e=this.opts.secure?"wss":"ws",r="";this.opts.port&&("wss"===e&&443!==Number(this.opts.port)||"ws"===e&&80!==Number(this.opts.port))&&(r=":"+this.opts.port),this.opts.timestampRequests&&(t[this.opts.timestampParam]=X()),this.supportsBinary||(t.b64=1);var n=$(t);return e+"://"+(-1!==this.opts.hostname.indexOf(":")?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+(n.length?"?"+n:"")}},{key:"check",value:function(){return!!rt}},{key:"name",get:function(){return"websocket"}}]),o}(F),it={websocket:ot,polling:Y},st=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,at=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function ut(t){var e=t,r=t.indexOf("["),n=t.indexOf("]");-1!=r&&-1!=n&&(t=t.substring(0,r)+t.substring(r,n).replace(/:/g,";")+t.substring(n,t.length));for(var o,i,s=st.exec(t||""),a={},u=14;u--;)a[at[u]]=s[u]||"";return-1!=r&&-1!=n&&(a.source=e,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,":"),a.authority=a.authority.replace("[","").replace("]","").replace(/;/g,":"),a.ipv6uri=!0),a.pathNames=function(t,e){var r=/\/{2,9}/g,n=e.replace(r,"/").split("/");"/"!=e.substr(0,1)&&0!==e.length||n.splice(0,1);"/"==e.substr(e.length-1,1)&&n.splice(n.length-1,1);return n}(0,a.path),a.queryKey=(o=a.query,i={},o.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(t,e,r){e&&(i[e]=r)})),i),a}var ct=function(r){i(a,r);var s=f(a);function a(r){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e(this,a),n=s.call(this),r&&"object"===t(r)&&(i=r,r=null),r?(r=ut(r),i.hostname=r.host,i.secure="https"===r.protocol||"wss"===r.protocol,i.port=r.port,r.query&&(i.query=r.query)):i.host&&(i.hostname=ut(i.host).host),_(h(n),i),n.secure=null!=i.secure?i.secure:"undefined"!=typeof location&&"https:"===location.protocol,i.hostname&&!i.port&&(i.port=n.secure?"443":"80"),n.hostname=i.hostname||("undefined"!=typeof location?location.hostname:"localhost"),n.port=i.port||("undefined"!=typeof location&&location.port?location.port:n.secure?"443":"80"),n.transports=i.transports||["polling","websocket"],n.readyState="",n.writeBuffer=[],n.prevBufferLen=0,n.opts=o({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!0},i),n.opts.path=n.opts.path.replace(/\/$/,"")+"/","string"==typeof n.opts.query&&(n.opts.query=z(n.opts.query)),n.id=null,n.upgrades=null,n.pingInterval=null,n.pingTimeout=null,n.pingTimeoutTimer=null,"function"==typeof addEventListener&&(n.opts.closeOnBeforeunload&&addEventListener("beforeunload",(function(){n.transport&&(n.transport.removeAllListeners(),n.transport.close())}),!1),"localhost"!==n.hostname&&(n.offlineEventListener=function(){n.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",n.offlineEventListener,!1))),n.open(),n}return n(a,[{key:"createTransport",value:function(t){var e=o({},this.opts.query);e.EIO=4,e.transport=t,this.id&&(e.sid=this.id);var r=o({},this.opts.transportOptions[t],this.opts,{query:e,socket:this,hostname:this.hostname,secure:this.secure,port:this.port});return new it[t](r)}},{key:"open",value:function(){var t,e=this;if(this.opts.rememberUpgrade&&a.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))t="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn((function(){e.emitReserved("error","No transports available")}),0);t=this.transports[0]}this.readyState="opening";try{t=this.createTransport(t)}catch(t){return this.transports.shift(),void this.open()}t.open(),this.setTransport(t)}},{key:"setTransport",value:function(t){var e=this;this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",(function(t){return e.onClose("transport close",t)}))}},{key:"probe",value:function(t){var e=this,r=this.createTransport(t),n=!1;a.priorWebsocketSuccess=!1;var o=function(){n||(r.send([{type:"ping",data:"probe"}]),r.once("packet",(function(t){if(!n)if("pong"===t.type&&"probe"===t.data){if(e.upgrading=!0,e.emitReserved("upgrading",r),!r)return;a.priorWebsocketSuccess="websocket"===r.name,e.transport.pause((function(){n||"closed"!==e.readyState&&(h(),e.setTransport(r),r.send([{type:"upgrade"}]),e.emitReserved("upgrade",r),r=null,e.upgrading=!1,e.flush())}))}else{var o=new Error("probe error");o.transport=r.name,e.emitReserved("upgradeError",o)}})))};function i(){n||(n=!0,h(),r.close(),r=null)}var s=function(t){var n=new Error("probe error: "+t);n.transport=r.name,i(),e.emitReserved("upgradeError",n)};function u(){s("transport closed")}function c(){s("socket closed")}function p(t){r&&t.name!==r.name&&i()}var h=function(){r.removeListener("open",o),r.removeListener("error",s),r.removeListener("close",u),e.off("close",c),e.off("upgrading",p)};r.once("open",o),r.once("error",s),r.once("close",u),this.once("close",c),this.once("upgrading",p),r.open()}},{key:"onOpen",value:function(){if(this.readyState="open",a.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade&&this.transport.pause)for(var t=0,e=this.upgrades.length;t<e;t++)this.probe(this.upgrades[t])}},{key:"onPacket",value:function(t){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this.resetPingTimeout(),this.sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong");break;case"error":var e=new Error("server error");e.code=t.data,this.onError(e);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data)}}},{key:"onHandshake",value:function(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this.upgrades=this.filterUpgrades(t.upgrades),this.pingInterval=t.pingInterval,this.pingTimeout=t.pingTimeout,this.maxPayload=t.maxPayload,this.onOpen(),"closed"!==this.readyState&&this.resetPingTimeout()}},{key:"resetPingTimeout",value:function(){var t=this;this.clearTimeoutFn(this.pingTimeoutTimer),this.pingTimeoutTimer=this.setTimeoutFn((function(){t.onClose("ping timeout")}),this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}},{key:"onDrain",value:function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}},{key:"flush",value:function(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){var t=this.getWritablePackets();this.transport.send(t),this.prevBufferLen=t.length,this.emitReserved("flush")}}},{key:"getWritablePackets",value:function(){if(!(this.maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;for(var t,e=1,r=0;r<this.writeBuffer.length;r++){var n=this.writeBuffer[r].data;if(n&&(e+="string"==typeof(t=n)?function(t){for(var e=0,r=0,n=0,o=t.length;n<o;n++)(e=t.charCodeAt(n))<128?r+=1:e<2048?r+=2:e<55296||e>=57344?r+=3:(n++,r+=4);return r}(t):Math.ceil(1.33*(t.byteLength||t.size))),r>0&&e>this.maxPayload)return this.writeBuffer.slice(0,r);e+=2}return this.writeBuffer}},{key:"write",value:function(t,e,r){return this.sendPacket("message",t,e,r),this}},{key:"send",value:function(t,e,r){return this.sendPacket("message",t,e,r),this}},{key:"sendPacket",value:function(t,e,r,n){if("function"==typeof e&&(n=e,e=void 0),"function"==typeof r&&(n=r,r=null),"closing"!==this.readyState&&"closed"!==this.readyState){(r=r||{}).compress=!1!==r.compress;var o={type:t,data:e,options:r};this.emitReserved("packetCreate",o),this.writeBuffer.push(o),n&&this.once("flush",n),this.flush()}}},{key:"close",value:function(){var t=this,e=function(){t.onClose("forced close"),t.transport.close()},r=function r(){t.off("upgrade",r),t.off("upgradeError",r),e()},n=function(){t.once("upgrade",r),t.once("upgradeError",r)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(function(){t.upgrading?n():e()})):this.upgrading?n():e()),this}},{key:"onError",value:function(t){a.priorWebsocketSuccess=!1,this.emitReserved("error",t),this.onClose("transport error",t)}},{key:"onClose",value:function(t,e){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&removeEventListener("offline",this.offlineEventListener,!1),this.readyState="closed",this.id=null,this.emitReserved("close",t,e),this.writeBuffer=[],this.prevBufferLen=0)}},{key:"filterUpgrades",value:function(t){for(var e=[],r=0,n=t.length;r<n;r++)~this.transports.indexOf(t[r])&&e.push(t[r]);return e}}]),a}(C);ct.protocol=4;return function(t,e){return new ct(t,e)}}));
|
|
19106
|
+
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define('vendor/engine.io',n):(t="undefined"!=typeof globalThis?globalThis:t||self).eio=n()}(this,(function(){"use strict";function t(t,n){for(var i=0;i<n.length;i++){var r=n[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,u(r.key),r)}}function n(n,i,r){return i&&t(n.prototype,i),r&&t(n,r),Object.defineProperty(n,"prototype",{writable:!1}),n}function i(){return i=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var i=arguments[n];for(var r in i)({}).hasOwnProperty.call(i,r)&&(t[r]=i[r])}return t},i.apply(null,arguments)}function r(t){return r=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},r(t)}function e(t,n){t.prototype=Object.create(n.prototype),t.prototype.constructor=t,s(t,n)}function o(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(o=function(){return!!t})()}function s(t,n){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},s(t,n)}function u(t){var n=function(t,n){if("object"!=typeof t||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var r=i.call(t,n||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}(t,"string");return"symbol"==typeof n?n:n+""}function f(t){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f(t)}function h(t){var n="function"==typeof Map?new Map:void 0;return h=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(n){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,i)}function i(){return function(t,n,i){if(o())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,n);var e=new(t.bind.apply(t,r));return i&&s(e,i.prototype),e}(t,arguments,r(this).constructor)}return i.prototype=Object.create(t.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),s(i,t)},h(t)}var c=Object.create(null);c.open="0",c.close="1",c.ping="2",c.pong="3",c.message="4",c.upgrade="5",c.noop="6";var a=Object.create(null);Object.keys(c).forEach((function(t){a[c[t]]=t}));var p,l={type:"error",data:"parser error"},v="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),d="function"==typeof ArrayBuffer,y=function(t){return"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer instanceof ArrayBuffer},b=function(t,n,i){var r=t.type,e=t.data;return v&&e instanceof Blob?n?i(e):g(e,i):d&&(e instanceof ArrayBuffer||y(e))?n?i(e):g(new Blob([e]),i):i(c[r]+(e||""))},g=function(t,n){var i=new FileReader;return i.onload=function(){var t=i.result.split(",")[1];n("b"+(t||""))},i.readAsDataURL(t)};function w(t){return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}for(var m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",k="undefined"==typeof Uint8Array?[]:new Uint8Array(256),A=0;A<64;A++)k[m.charCodeAt(A)]=A;var j,B="function"==typeof ArrayBuffer,E=function(t,n){if("string"!=typeof t)return{type:"message",data:U(t,n)};var i=t.charAt(0);return"b"===i?{type:"message",data:O(t.substring(1),n)}:a[i]?t.length>1?{type:a[i],data:t.substring(1)}:{type:a[i]}:l},O=function(t,n){if(B){var i=function(t){var n,i,r,e,o,s=.75*t.length,u=t.length,f=0;"="===t[t.length-1]&&(s--,"="===t[t.length-2]&&s--);var h=new ArrayBuffer(s),c=new Uint8Array(h);for(n=0;n<u;n+=4)i=k[t.charCodeAt(n)],r=k[t.charCodeAt(n+1)],e=k[t.charCodeAt(n+2)],o=k[t.charCodeAt(n+3)],c[f++]=i<<2|r>>4,c[f++]=(15&r)<<4|e>>2,c[f++]=(3&e)<<6|63&o;return h}(t);return U(i,n)}return{base64:!0,data:t}},U=function(t,n){return"blob"===n?t instanceof Blob?t:new Blob([t]):t instanceof ArrayBuffer?t:t.buffer},T=String.fromCharCode(30);function S(){return new TransformStream({transform:function(t,n){!function(t,n){v&&t.data instanceof Blob?t.data.arrayBuffer().then(w).then(n):d&&(t.data instanceof ArrayBuffer||y(t.data))?n(w(t.data)):b(t,!1,(function(t){p||(p=new TextEncoder),n(p.encode(t))}))}(t,(function(i){var r,e=i.length;if(e<126)r=new Uint8Array(1),new DataView(r.buffer).setUint8(0,e);else if(e<65536){r=new Uint8Array(3);var o=new DataView(r.buffer);o.setUint8(0,126),o.setUint16(1,e)}else{r=new Uint8Array(9);var s=new DataView(r.buffer);s.setUint8(0,127),s.setBigUint64(1,BigInt(e))}t.data&&"string"!=typeof t.data&&(r[0]|=128),n.enqueue(r),n.enqueue(i)}))}})}function M(t){return t.reduce((function(t,n){return t+n.length}),0)}function x(t,n){if(t[0].length===n)return t.shift();for(var i=new Uint8Array(n),r=0,e=0;e<n;e++)i[e]=t[0][r++],r===t[0].length&&(t.shift(),r=0);return t.length&&r<t[0].length&&(t[0]=t[0].slice(r)),i}function C(t){if(t)return function(t){for(var n in C.prototype)t[n]=C.prototype[n];return t}(t)}C.prototype.on=C.prototype.addEventListener=function(t,n){return this.t=this.t||{},(this.t["$"+t]=this.t["$"+t]||[]).push(n),this},C.prototype.once=function(t,n){function i(){this.off(t,i),n.apply(this,arguments)}return i.fn=n,this.on(t,i),this},C.prototype.off=C.prototype.removeListener=C.prototype.removeAllListeners=C.prototype.removeEventListener=function(t,n){if(this.t=this.t||{},0==arguments.length)return this.t={},this;var i,r=this.t["$"+t];if(!r)return this;if(1==arguments.length)return delete this.t["$"+t],this;for(var e=0;e<r.length;e++)if((i=r[e])===n||i.fn===n){r.splice(e,1);break}return 0===r.length&&delete this.t["$"+t],this},C.prototype.emit=function(t){this.t=this.t||{};for(var n=new Array(arguments.length-1),i=this.t["$"+t],r=1;r<arguments.length;r++)n[r-1]=arguments[r];if(i){r=0;for(var e=(i=i.slice(0)).length;r<e;++r)i[r].apply(this,n)}return this},C.prototype.emitReserved=C.prototype.emit,C.prototype.listeners=function(t){return this.t=this.t||{},this.t["$"+t]||[]},C.prototype.hasListeners=function(t){return!!this.listeners(t).length};var L="function"==typeof Promise&&"function"==typeof Promise.resolve?function(t){return Promise.resolve().then(t)}:function(t,n){return n(t,0)},R="undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")();function D(t){for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];return i.reduce((function(n,i){return t.hasOwnProperty(i)&&(n[i]=t[i]),n}),{})}var P=R.setTimeout,I=R.clearTimeout;function $(t,n){n.useNativeTimers?(t.setTimeoutFn=P.bind(R),t.clearTimeoutFn=I.bind(R)):(t.setTimeoutFn=R.setTimeout.bind(R),t.clearTimeoutFn=R.clearTimeout.bind(R))}function q(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}var N=function(t){function n(n,i,r){var e;return(e=t.call(this,n)||this).description=i,e.context=r,e.type="TransportError",e}return e(n,t),n}(h(Error)),V=function(t){function n(n){var i;return(i=t.call(this)||this).writable=!1,$(i,n),i.opts=n,i.query=n.query,i.socket=n.socket,i.supportsBinary=!n.forceBase64,i}e(n,t);var i=n.prototype;return i.onError=function(n,i,r){return t.prototype.emitReserved.call(this,"error",new N(n,i,r)),this},i.open=function(){return this.readyState="opening",this.doOpen(),this},i.close=function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this},i.send=function(t){"open"===this.readyState&&this.write(t)},i.onOpen=function(){this.readyState="open",this.writable=!0,t.prototype.emitReserved.call(this,"open")},i.onData=function(t){var n=E(t,this.socket.binaryType);this.onPacket(n)},i.onPacket=function(n){t.prototype.emitReserved.call(this,"packet",n)},i.onClose=function(n){this.readyState="closed",t.prototype.emitReserved.call(this,"close",n)},i.pause=function(t){},i.createUri=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t+"://"+this.i()+this.o()+this.opts.path+this.u(n)},i.i=function(){var t=this.opts.hostname;return-1===t.indexOf(":")?t:"["+t+"]"},i.o=function(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""},i.u=function(t){var n=function(t){var n="";for(var i in t)t.hasOwnProperty(i)&&(n.length&&(n+="&"),n+=encodeURIComponent(i)+"="+encodeURIComponent(t[i]));return n}(t);return n.length?"?"+n:""},n}(C),X=function(t){function i(){var n;return(n=t.apply(this,arguments)||this).h=!1,n}e(i,t);var r=i.prototype;return r.doOpen=function(){this.p()},r.pause=function(t){var n=this;this.readyState="pausing";var i=function(){n.readyState="paused",t()};if(this.h||!this.writable){var r=0;this.h&&(r++,this.once("pollComplete",(function(){--r||i()}))),this.writable||(r++,this.once("drain",(function(){--r||i()})))}else i()},r.p=function(){this.h=!0,this.doPoll(),this.emitReserved("poll")},r.onData=function(t){var n=this;(function(t,n){for(var i=t.split(T),r=[],e=0;e<i.length;e++){var o=E(i[e],n);if(r.push(o),"error"===o.type)break}return r})(t,this.socket.binaryType).forEach((function(t){if("opening"===n.readyState&&"open"===t.type&&n.onOpen(),"close"===t.type)return n.onClose({description:"transport closed by the server"}),!1;n.onPacket(t)})),"closed"!==this.readyState&&(this.h=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.p())},r.doClose=function(){var t=this,n=function(){t.write([{type:"close"}])};"open"===this.readyState?n():this.once("open",n)},r.write=function(t){var n=this;this.writable=!1,function(t,n){var i=t.length,r=new Array(i),e=0;t.forEach((function(t,o){b(t,!1,(function(t){r[o]=t,++e===i&&n(r.join(T))}))}))}(t,(function(t){n.doWrite(t,(function(){n.writable=!0,n.emitReserved("drain")}))}))},r.uri=function(){var t=this.opts.secure?"https":"http",n=this.query||{};return!1!==this.opts.timestampRequests&&(n[this.opts.timestampParam]=q()),this.supportsBinary||n.sid||(n.b64=1),this.createUri(t,n)},n(i,[{key:"name",get:function(){return"polling"}}])}(V),H=!1;try{H="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(t){}var F=H;function z(){}var G=function(t){function n(n){var i;if(i=t.call(this,n)||this,"undefined"!=typeof location){var r="https:"===location.protocol,e=location.port;e||(e=r?"443":"80"),i.xd="undefined"!=typeof location&&n.hostname!==location.hostname||e!==n.port}return i}e(n,t);var i=n.prototype;return i.doWrite=function(t,n){var i=this,r=this.request({method:"POST",data:t});r.on("success",n),r.on("error",(function(t,n){i.onError("xhr post error",t,n)}))},i.doPoll=function(){var t=this,n=this.request();n.on("data",this.onData.bind(this)),n.on("error",(function(n,i){t.onError("xhr poll error",n,i)})),this.pollXhr=n},n}(X),J=function(t){function n(n,i,r){var e;return(e=t.call(this)||this).createRequest=n,$(e,r),e.l=r,e.v=r.method||"GET",e.m=i,e.k=void 0!==r.data?r.data:null,e.A(),e}e(n,t);var i=n.prototype;return i.A=function(){var t,i=this,r=D(this.l,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");r.xdomain=!!this.l.xd;var e=this.j=this.createRequest(r);try{e.open(this.v,this.m,!0);try{if(this.l.extraHeaders)for(var o in e.setDisableHeaderCheck&&e.setDisableHeaderCheck(!0),this.l.extraHeaders)this.l.extraHeaders.hasOwnProperty(o)&&e.setRequestHeader(o,this.l.extraHeaders[o])}catch(t){}if("POST"===this.v)try{e.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(t){}try{e.setRequestHeader("Accept","*/*")}catch(t){}null===(t=this.l.cookieJar)||void 0===t||t.addCookies(e),"withCredentials"in e&&(e.withCredentials=this.l.withCredentials),this.l.requestTimeout&&(e.timeout=this.l.requestTimeout),e.onreadystatechange=function(){var t;3===e.readyState&&(null===(t=i.l.cookieJar)||void 0===t||t.parseCookies(e.getResponseHeader("set-cookie"))),4===e.readyState&&(200===e.status||1223===e.status?i.B():i.setTimeoutFn((function(){i.O("number"==typeof e.status?e.status:0)}),0))},e.send(this.k)}catch(t){return void this.setTimeoutFn((function(){i.O(t)}),0)}"undefined"!=typeof document&&(this.U=n.requestsCount++,n.requests[this.U]=this)},i.O=function(t){this.emitReserved("error",t,this.j),this.T(!0)},i.T=function(t){if(void 0!==this.j&&null!==this.j){if(this.j.onreadystatechange=z,t)try{this.j.abort()}catch(t){}"undefined"!=typeof document&&delete n.requests[this.U],this.j=null}},i.B=function(){var t=this.j.responseText;null!==t&&(this.emitReserved("data",t),this.emitReserved("success"),this.T())},i.abort=function(){this.T()},n}(C);if(J.requestsCount=0,J.requests={},"undefined"!=typeof document)if("function"==typeof attachEvent)attachEvent("onunload",W);else if("function"==typeof addEventListener){addEventListener("onpagehide"in R?"pagehide":"unload",W,!1)}function W(){for(var t in J.requests)J.requests.hasOwnProperty(t)&&J.requests[t].abort()}var K,Q=(K=Z({xdomain:!1}))&&null!==K.responseType,Y=function(t){function n(n){var i;i=t.call(this,n)||this;var r=n&&n.forceBase64;return i.supportsBinary=Q&&!r,i}return e(n,t),n.prototype.request=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return i(t,{xd:this.xd},this.opts),new J(Z,this.uri(),t)},n}(G);function Z(t){var n=t.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!n||F))return new XMLHttpRequest}catch(t){}if(!n)try{return new(R[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(t){}}var _="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),tt=function(t){function i(){return t.apply(this,arguments)||this}e(i,t);var r=i.prototype;return r.doOpen=function(){var t=this.uri(),n=this.opts.protocols,i=_?{}:D(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(i.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,n,i)}catch(t){return this.emitReserved("error",t)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()},r.addEventListeners=function(){var t=this;this.ws.onopen=function(){t.opts.autoUnref&&t.ws.S.unref(),t.onOpen()},this.ws.onclose=function(n){return t.onClose({description:"websocket connection closed",context:n})},this.ws.onmessage=function(n){return t.onData(n.data)},this.ws.onerror=function(n){return t.onError("websocket error",n)}},r.write=function(t){var n=this;this.writable=!1;for(var i=function(){var i=t[r],e=r===t.length-1;b(i,n.supportsBinary,(function(t){try{n.doWrite(i,t)}catch(t){}e&&L((function(){n.writable=!0,n.emitReserved("drain")}),n.setTimeoutFn)}))},r=0;r<t.length;r++)i()},r.doClose=function(){void 0!==this.ws&&(this.ws.onerror=function(){},this.ws.close(),this.ws=null)},r.uri=function(){var t=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=q()),this.supportsBinary||(n.b64=1),this.createUri(t,n)},n(i,[{key:"name",get:function(){return"websocket"}}])}(V),nt=R.WebSocket||R.MozWebSocket,it=function(t){function n(){return t.apply(this,arguments)||this}e(n,t);var i=n.prototype;return i.createSocket=function(t,n,i){return _?new nt(t,n,i):n?new nt(t,n):new nt(t)},i.doWrite=function(t,n){this.ws.send(n)},n}(tt),rt=function(t){function i(){return t.apply(this,arguments)||this}e(i,t);var r=i.prototype;return r.doOpen=function(){var t=this;try{this.M=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this.M.closed.then((function(){t.onClose()})).catch((function(n){t.onError("webtransport error",n)})),this.M.ready.then((function(){t.M.createBidirectionalStream().then((function(n){var i=function(t,n){j||(j=new TextDecoder);var i=[],r=0,e=-1,o=!1;return new TransformStream({transform:function(s,u){for(i.push(s);;){if(0===r){if(M(i)<1)break;var f=x(i,1);o=!(128&~f[0]),e=127&f[0],r=e<126?3:126===e?1:2}else if(1===r){if(M(i)<2)break;var h=x(i,2);e=new DataView(h.buffer,h.byteOffset,h.length).getUint16(0),r=3}else if(2===r){if(M(i)<8)break;var c=x(i,8),a=new DataView(c.buffer,c.byteOffset,c.length),p=a.getUint32(0);if(p>Math.pow(2,21)-1){u.enqueue(l);break}e=p*Math.pow(2,32)+a.getUint32(4),r=3}else{if(M(i)<e)break;var v=x(i,e);u.enqueue(E(o?v:j.decode(v),n)),r=0}if(0===e||e>t){u.enqueue(l);break}}}})}(Number.MAX_SAFE_INTEGER,t.socket.binaryType),r=n.readable.pipeThrough(i).getReader(),e=S();e.readable.pipeTo(n.writable),t.C=e.writable.getWriter();!function n(){r.read().then((function(i){var r=i.done,e=i.value;r||(t.onPacket(e),n())})).catch((function(t){}))}();var o={type:"open"};t.query.sid&&(o.data='{"sid":"'.concat(t.query.sid,'"}')),t.C.write(o).then((function(){return t.onOpen()}))}))}))},r.write=function(t){var n=this;this.writable=!1;for(var i=function(){var i=t[r],e=r===t.length-1;n.C.write(i).then((function(){e&&L((function(){n.writable=!0,n.emitReserved("drain")}),n.setTimeoutFn)}))},r=0;r<t.length;r++)i()},r.doClose=function(){var t;null===(t=this.M)||void 0===t||t.close()},n(i,[{key:"name",get:function(){return"webtransport"}}])}(V),et={websocket:it,webtransport:rt,polling:Y},ot=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,st=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function ut(t){if(t.length>8e3)throw"URI too long";var n=t,i=t.indexOf("["),r=t.indexOf("]");-1!=i&&-1!=r&&(t=t.substring(0,i)+t.substring(i,r).replace(/:/g,";")+t.substring(r,t.length));for(var e,o,s=ot.exec(t||""),u={},f=14;f--;)u[st[f]]=s[f]||"";return-1!=i&&-1!=r&&(u.source=n,u.host=u.host.substring(1,u.host.length-1).replace(/;/g,":"),u.authority=u.authority.replace("[","").replace("]","").replace(/;/g,":"),u.ipv6uri=!0),u.pathNames=function(t,n){var i=/\/{2,9}/g,r=n.replace(i,"/").split("/");"/"!=n.slice(0,1)&&0!==n.length||r.splice(0,1);"/"==n.slice(-1)&&r.splice(r.length-1,1);return r}(0,u.path),u.queryKey=(e=u.query,o={},e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(t,n,i){n&&(o[n]=i)})),o),u}var ft="function"==typeof addEventListener&&"function"==typeof removeEventListener,ht=[];ft&&addEventListener("offline",(function(){ht.forEach((function(t){return t()}))}),!1);var ct=function(t){function n(n,r){var e;if((e=t.call(this)||this).binaryType="arraybuffer",e.writeBuffer=[],e.L=0,e.R=-1,e.D=-1,e.P=-1,e.I=1/0,n&&"object"===f(n)&&(r=n,n=null),n){var o=ut(n);r.hostname=o.host,r.secure="https"===o.protocol||"wss"===o.protocol,r.port=o.port,o.query&&(r.query=o.query)}else r.host&&(r.hostname=ut(r.host).host);return $(e,r),e.secure=null!=r.secure?r.secure:"undefined"!=typeof location&&"https:"===location.protocol,r.hostname&&!r.port&&(r.port=e.secure?"443":"80"),e.hostname=r.hostname||("undefined"!=typeof location?location.hostname:"localhost"),e.port=r.port||("undefined"!=typeof location&&location.port?location.port:e.secure?"443":"80"),e.transports=[],e.$={},r.transports.forEach((function(t){var n=t.prototype.name;e.transports.push(n),e.$[n]=t})),e.opts=i({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},r),e.opts.path=e.opts.path.replace(/\/$/,"")+(e.opts.addTrailingSlash?"/":""),"string"==typeof e.opts.query&&(e.opts.query=function(t){for(var n={},i=t.split("&"),r=0,e=i.length;r<e;r++){var o=i[r].split("=");n[decodeURIComponent(o[0])]=decodeURIComponent(o[1])}return n}(e.opts.query)),ft&&(e.opts.closeOnBeforeunload&&(e.q=function(){e.transport&&(e.transport.removeAllListeners(),e.transport.close())},addEventListener("beforeunload",e.q,!1)),"localhost"!==e.hostname&&(e.N=function(){e.V("transport close",{description:"network connection lost"})},ht.push(e.N))),e.opts.withCredentials&&(e.X=void 0),e.H(),e}e(n,t);var r=n.prototype;return r.createTransport=function(t){var n=i({},this.opts.query);n.EIO=4,n.transport=t,this.id&&(n.sid=this.id);var r=i({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this.$[t](r)},r.H=function(){var t=this;if(0!==this.transports.length){var i=this.opts.rememberUpgrade&&n.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket")?"websocket":this.transports[0];this.readyState="opening";var r=this.createTransport(i);r.open(),this.setTransport(r)}else this.setTimeoutFn((function(){t.emitReserved("error","No transports available")}),0)},r.setTransport=function(t){var n=this;this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this.F.bind(this)).on("packet",this.G.bind(this)).on("error",this.O.bind(this)).on("close",(function(t){return n.V("transport close",t)}))},r.onOpen=function(){this.readyState="open",n.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush()},r.G=function(t){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this.J("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this.W();break;case"error":var n=new Error("server error");n.code=t.data,this.O(n);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data)}},r.onHandshake=function(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this.R=t.pingInterval,this.D=t.pingTimeout,this.P=t.maxPayload,this.onOpen(),"closed"!==this.readyState&&this.W()},r.W=function(){var t=this;this.clearTimeoutFn(this.K);var n=this.R+this.D;this.I=Date.now()+n,this.K=this.setTimeoutFn((function(){t.V("ping timeout")}),n),this.opts.autoUnref&&this.K.unref()},r.F=function(){this.writeBuffer.splice(0,this.L),this.L=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()},r.flush=function(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){var t=this.Y();this.transport.send(t),this.L=t.length,this.emitReserved("flush")}},r.Y=function(){if(!(this.P&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;for(var t,n=1,i=0;i<this.writeBuffer.length;i++){var r=this.writeBuffer[i].data;if(r&&(n+="string"==typeof(t=r)?function(t){for(var n=0,i=0,r=0,e=t.length;r<e;r++)(n=t.charCodeAt(r))<128?i+=1:n<2048?i+=2:n<55296||n>=57344?i+=3:(r++,i+=4);return i}(t):Math.ceil(1.33*(t.byteLength||t.size))),i>0&&n>this.P)return this.writeBuffer.slice(0,i);n+=2}return this.writeBuffer},r.Z=function(){var t=this;if(!this.I)return!0;var n=Date.now()>this.I;return n&&(this.I=0,L((function(){t.V("ping timeout")}),this.setTimeoutFn)),n},r.write=function(t,n,i){return this.J("message",t,n,i),this},r.send=function(t,n,i){return this.J("message",t,n,i),this},r.J=function(t,n,i,r){if("function"==typeof n&&(r=n,n=void 0),"function"==typeof i&&(r=i,i=null),"closing"!==this.readyState&&"closed"!==this.readyState){(i=i||{}).compress=!1!==i.compress;var e={type:t,data:n,options:i};this.emitReserved("packetCreate",e),this.writeBuffer.push(e),r&&this.once("flush",r),this.flush()}},r.close=function(){var t=this,n=function(){t.V("forced close"),t.transport.close()},i=function i(){t.off("upgrade",i),t.off("upgradeError",i),n()},r=function(){t.once("upgrade",i),t.once("upgradeError",i)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(function(){t.upgrading?r():n()})):this.upgrading?r():n()),this},r.O=function(t){if(n.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&"opening"===this.readyState)return this.transports.shift(),this.H();this.emitReserved("error",t),this.V("transport error",t)},r.V=function(t,n){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState){if(this.clearTimeoutFn(this.K),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),ft&&(this.q&&removeEventListener("beforeunload",this.q,!1),this.N)){var i=ht.indexOf(this.N);-1!==i&&ht.splice(i,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this.L=0}},n}(C);ct.protocol=4;var at=function(t){function n(){var n;return(n=t.apply(this,arguments)||this)._=[],n}e(n,t);var i=n.prototype;return i.onOpen=function(){if(t.prototype.onOpen.call(this),"open"===this.readyState&&this.opts.upgrade)for(var n=0;n<this._.length;n++)this.tt(this._[n])},i.tt=function(t){var n=this,i=this.createTransport(t),r=!1;ct.priorWebsocketSuccess=!1;var e=function(){r||(i.send([{type:"ping",data:"probe"}]),i.once("packet",(function(t){if(!r)if("pong"===t.type&&"probe"===t.data){if(n.upgrading=!0,n.emitReserved("upgrading",i),!i)return;ct.priorWebsocketSuccess="websocket"===i.name,n.transport.pause((function(){r||"closed"!==n.readyState&&(c(),n.setTransport(i),i.send([{type:"upgrade"}]),n.emitReserved("upgrade",i),i=null,n.upgrading=!1,n.flush())}))}else{var e=new Error("probe error");e.transport=i.name,n.emitReserved("upgradeError",e)}})))};function o(){r||(r=!0,c(),i.close(),i=null)}var s=function(t){var r=new Error("probe error: "+t);r.transport=i.name,o(),n.emitReserved("upgradeError",r)};function u(){s("transport closed")}function f(){s("socket closed")}function h(t){i&&t.name!==i.name&&o()}var c=function(){i.removeListener("open",e),i.removeListener("error",s),i.removeListener("close",u),n.off("close",f),n.off("upgrading",h)};i.once("open",e),i.once("error",s),i.once("close",u),this.once("close",f),this.once("upgrading",h),-1!==this._.indexOf("webtransport")&&"webtransport"!==t?this.setTimeoutFn((function(){r||i.open()}),200):i.open()},i.onHandshake=function(n){this._=this.nt(n.upgrades),t.prototype.onHandshake.call(this,n)},i.nt=function(t){for(var n=[],i=0;i<t.length;i++)~this.transports.indexOf(t[i])&&n.push(t[i]);return n},n}(ct),pt=function(t){function n(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="object"===f(n)?n:i;return(!r.transports||r.transports&&"string"==typeof r.transports[0])&&(r.transports=(r.transports||["polling","websocket","webtransport"]).map((function(t){return et[t]})).filter((function(t){return!!t}))),t.call(this,n,r)||this}return e(n,t),n}(at);return function(t,n){return new pt(t,n)}}));
|
|
18651
19107
|
//# sourceMappingURL=engine.io.min.js.map
|
|
18652
19108
|
;
|
|
18653
19109
|
function BindingHelper(handlerContext) {
|
|
@@ -18743,12 +19199,13 @@ function BindingHelper(handlerContext) {
|
|
|
18743
19199
|
define( 'helpers/binding',[],function() { return BindingHelper });
|
|
18744
19200
|
/*
|
|
18745
19201
|
* This file is part of the gina package.
|
|
18746
|
-
* Copyright (c) 2009-
|
|
19202
|
+
* Copyright (c) 2009-2025 Rhinostone <contact@gina.io>
|
|
18747
19203
|
*
|
|
18748
19204
|
* For the full copyright and license information, please view the LICENSE
|
|
18749
19205
|
* file that was distributed with this source code.
|
|
18750
19206
|
*/
|
|
18751
19207
|
|
|
19208
|
+
|
|
18752
19209
|
// nodejs dependencies
|
|
18753
19210
|
if ( typeof(module) !== 'undefined' && module.exports) {
|
|
18754
19211
|
var fs = require('fs');
|
|
@@ -18786,8 +19243,10 @@ function Domain(options, cb) {
|
|
|
18786
19243
|
var isGFFCtx = ( ( typeof(module) !== 'undefined' ) && module.exports ) ? false : true;
|
|
18787
19244
|
// Detect if user is on IE browser
|
|
18788
19245
|
var isIE = false;
|
|
19246
|
+
var defaultUrl = "/_gina/assets/public_suffix_list.dat";
|
|
18789
19247
|
if (isGFFCtx) {
|
|
18790
19248
|
isIE = !!window.MSInputMethodContext && !!document.documentMode;
|
|
19249
|
+
defaultUrl = gina.config.webroot + defaultUrl.substring(1);
|
|
18791
19250
|
}
|
|
18792
19251
|
|
|
18793
19252
|
if ( typeof(arguments[0]) == 'function' ) {
|
|
@@ -18799,20 +19258,31 @@ function Domain(options, cb) {
|
|
|
18799
19258
|
// if isGFFCtx, should be place in the public folder to be served by your own host
|
|
18800
19259
|
// e.g.: "./public_suffix_list.dat" located under "/my-www-folder/"
|
|
18801
19260
|
filename : "../dist/public_suffix_list.dat",
|
|
18802
|
-
url :
|
|
19261
|
+
url : defaultUrl,
|
|
19262
|
+
// url : "https://publicsuffix.org/list/public_suffix_list.dat",
|
|
18803
19263
|
alternativeUrl : "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat",
|
|
18804
19264
|
// only available from backend calls
|
|
18805
19265
|
isCachingRequired : false,
|
|
18806
19266
|
isUpdating : false
|
|
18807
19267
|
}
|
|
18808
19268
|
|
|
19269
|
+
if (
|
|
19270
|
+
!isGFFCtx
|
|
19271
|
+
&& typeof(options) != 'undefined'
|
|
19272
|
+
&& typeof(options.webroot) != 'undefined'
|
|
19273
|
+
) {
|
|
19274
|
+
defaultOptions.url = options.webroot + defaultUrl.substring(1);
|
|
19275
|
+
}
|
|
19276
|
+
|
|
19277
|
+
// Get the commit version
|
|
19278
|
+
// cat ./framework/v0.1.6-alpha.83/core/asset/data/public_suffix_list.dat|grep 'COMMIT:'|sed 's/^\/\/ COMMIT\: //'
|
|
19279
|
+
|
|
18809
19280
|
var self = {
|
|
18810
19281
|
options : null,
|
|
18811
19282
|
rawPSL : null,
|
|
18812
19283
|
PSL : [],
|
|
18813
19284
|
};
|
|
18814
19285
|
|
|
18815
|
-
|
|
18816
19286
|
var init = function(proto, options, cb) {
|
|
18817
19287
|
if ( typeof(options) == 'undefined' ) {
|
|
18818
19288
|
options = defaultOptions
|
|
@@ -18843,9 +19313,8 @@ function Domain(options, cb) {
|
|
|
18843
19313
|
return
|
|
18844
19314
|
}
|
|
18845
19315
|
|
|
18846
|
-
console.debug('[DOMAIN] PSL Loaded');
|
|
19316
|
+
console.debug('[DOMAIN][CB] PSL Loaded');
|
|
18847
19317
|
// return proto
|
|
18848
|
-
|
|
18849
19318
|
cb(err, proto)
|
|
18850
19319
|
});
|
|
18851
19320
|
}
|
|
@@ -19045,7 +19514,7 @@ function Domain(options, cb) {
|
|
|
19045
19514
|
return host
|
|
19046
19515
|
}
|
|
19047
19516
|
|
|
19048
|
-
console.debug('[DOMAIN][getFQDN]
|
|
19517
|
+
console.debug('[DOMAIN][getFQDN] FQDN: ' + host);
|
|
19049
19518
|
var ipObj = null
|
|
19050
19519
|
, err = null
|
|
19051
19520
|
;
|
|
@@ -19094,6 +19563,7 @@ function Domain(options, cb) {
|
|
|
19094
19563
|
if ( typeof(jsonFormat) == 'undefined' ) {
|
|
19095
19564
|
jsonFormat = false
|
|
19096
19565
|
}
|
|
19566
|
+
urlOrHostname = urlOrHostname.trim();
|
|
19097
19567
|
var isSLD = false
|
|
19098
19568
|
, isRegisteredTldOrSld = false
|
|
19099
19569
|
, rootDomain = urlOrHostname.replace(/^(.*)\:\/\/|\/(.*)/g, '')
|
|
@@ -19739,13 +20209,15 @@ define('gina/link', [ 'require', 'jquery', 'vendor/uuid', 'lib/domain', 'lib/mer
|
|
|
19739
20209
|
instance.getLinkByUrl = getLinkByUrl;
|
|
19740
20210
|
}
|
|
19741
20211
|
|
|
19742
|
-
|
|
19743
|
-
|
|
19744
|
-
|
|
19745
|
-
|
|
20212
|
+
if (!domainInstance) {
|
|
20213
|
+
new Domain( function onReady(err, _domainInstance) {
|
|
20214
|
+
if (err) {
|
|
20215
|
+
throw err
|
|
20216
|
+
}
|
|
19746
20217
|
|
|
19747
|
-
|
|
19748
|
-
|
|
20218
|
+
domainInstance = _domainInstance;
|
|
20219
|
+
});
|
|
20220
|
+
}
|
|
19749
20221
|
|
|
19750
20222
|
return init(options)
|
|
19751
20223
|
}
|
|
@@ -19921,7 +20393,7 @@ define('gina/popin', [ 'require', 'vendor/uuid', 'jquery', 'lib/domain', 'lib/me
|
|
|
19921
20393
|
|
|
19922
20394
|
var attr = 'data-gina-popin-name';
|
|
19923
20395
|
var $els = getElementsByAttribute(attr);
|
|
19924
|
-
var $el = null, name = null;
|
|
20396
|
+
var $el = null, name = null, id = null;
|
|
19925
20397
|
var url = null;
|
|
19926
20398
|
var proceed = null, evt = null;
|
|
19927
20399
|
var i = null, len = null;
|
|
@@ -19954,16 +20426,27 @@ define('gina/popin', [ 'require', 'vendor/uuid', 'jquery', 'lib/domain', 'lib/me
|
|
|
19954
20426
|
}
|
|
19955
20427
|
|
|
19956
20428
|
if (name == $popin.name) {
|
|
20429
|
+
id = $el.id || $el.getAttribute('id') || null;
|
|
20430
|
+
// By default
|
|
19957
20431
|
evt = 'popin.click.'+ 'gina-popin-' + instance.id +'-'+ uuid.v4() +'-'+ name;
|
|
19958
|
-
|
|
19959
|
-
|
|
19960
|
-
|
|
20432
|
+
// console.debug("[POPIN CLICK #1]", id, " VS ", evt);
|
|
20433
|
+
// Retrieving existing event
|
|
20434
|
+
if ( id && new RegExp( '^popin.click.gina-popin-').test(id) ) {
|
|
20435
|
+
// if ( id && new RegExp( '^popin.click.gina-popin-' + instance.id).test(id) ) {
|
|
20436
|
+
// console.debug("[POPIN CLICK #2]", id, " VS ", evt);
|
|
20437
|
+
evt = id;
|
|
20438
|
+
}
|
|
19961
20439
|
|
|
19962
20440
|
if (!gina.events[evt]) {
|
|
20441
|
+
$el['id'] = evt;
|
|
20442
|
+
$el.setAttribute( 'id', evt);
|
|
20443
|
+
// $el.setAttribute( 'data-dialog', evt);
|
|
19963
20444
|
|
|
19964
20445
|
// attach click events
|
|
19965
20446
|
addListener(gina, $el, evt, function(e) {
|
|
19966
20447
|
cancelEvent(e);
|
|
20448
|
+
// console.debug("[POPIN CLICK #3]", $popin.openTrigger, " VS ", e.currentTarget.id);
|
|
20449
|
+
$popin.openTrigger = e.currentTarget.id || e.currentTarget.getAttribute('id');
|
|
19967
20450
|
|
|
19968
20451
|
var fired = false;
|
|
19969
20452
|
addListener(gina, $popin.target, 'loaded.'+$popin.id, function(e) {
|
|
@@ -20040,8 +20523,10 @@ define('gina/popin', [ 'require', 'vendor/uuid', 'jquery', 'lib/domain', 'lib/me
|
|
|
20040
20523
|
//console.log('popin.click !! ', event.target);
|
|
20041
20524
|
var _evt = event.target.id;
|
|
20042
20525
|
|
|
20043
|
-
if ( new RegExp( '^popin.click.gina-popin-' + instance.id).test(_evt) )
|
|
20526
|
+
if ( new RegExp( '^popin.click.gina-popin-' + instance.id).test(_evt) ) {
|
|
20044
20527
|
triggerEvent(gina, event.target, _evt, event.detail);
|
|
20528
|
+
}
|
|
20529
|
+
|
|
20045
20530
|
}
|
|
20046
20531
|
});
|
|
20047
20532
|
|
|
@@ -20147,8 +20632,9 @@ define('gina/popin', [ 'require', 'vendor/uuid', 'jquery', 'lib/domain', 'lib/me
|
|
|
20147
20632
|
cancelEvent(event);
|
|
20148
20633
|
var _evt = event.target.id;
|
|
20149
20634
|
|
|
20150
|
-
if ( new RegExp( '^popin.click.gina-popin-' + instance.id).test(_evt) )
|
|
20635
|
+
if ( new RegExp( '^popin.click.gina-popin-' + instance.id).test(_evt) ) {
|
|
20151
20636
|
triggerEvent(gina, event.target, _evt, event.detail);
|
|
20637
|
+
}
|
|
20152
20638
|
|
|
20153
20639
|
}
|
|
20154
20640
|
}
|
|
@@ -20634,8 +21120,9 @@ define('gina/popin', [ 'require', 'vendor/uuid', 'jquery', 'lib/domain', 'lib/me
|
|
|
20634
21120
|
this.name = name;
|
|
20635
21121
|
}
|
|
20636
21122
|
// popin object
|
|
20637
|
-
var $popin
|
|
20638
|
-
var id
|
|
21123
|
+
var $popin = getPopinByName(name);
|
|
21124
|
+
var id = $popin.id;
|
|
21125
|
+
var $popinTrigger = document.getElementById($popin.openTrigger) || null;
|
|
20639
21126
|
|
|
20640
21127
|
// set as active if none is active
|
|
20641
21128
|
if ( !gina.popin.activePopinId ) {
|
|
@@ -20777,12 +21264,27 @@ define('gina/popin', [ 'require', 'vendor/uuid', 'jquery', 'lib/domain', 'lib/me
|
|
|
20777
21264
|
xhr.setRequestHeader(header, options.headers[header]);
|
|
20778
21265
|
}
|
|
20779
21266
|
|
|
21267
|
+
// Data loading ...
|
|
21268
|
+
if ( /^(1|3)$/.test(xhr.readyState) ) {
|
|
21269
|
+
$popin.target.setAttribute('data-gina-popin-loading', true);
|
|
21270
|
+
if ($popinTrigger) {
|
|
21271
|
+
$popinTrigger.setAttribute('disabled', true);
|
|
21272
|
+
}
|
|
21273
|
+
}
|
|
20780
21274
|
|
|
20781
21275
|
// catching ready state cb
|
|
20782
21276
|
xhr.onreadystatechange = function (event) {
|
|
21277
|
+
// Data loading ...
|
|
21278
|
+
if ( /^(1|3)$/.test(xhr.readyState) ) {
|
|
21279
|
+
$popin.target.setAttribute('data-gina-popin-loading', true);
|
|
21280
|
+
if ($popinTrigger) {
|
|
21281
|
+
$popinTrigger.setAttribute('disabled', true);
|
|
21282
|
+
}
|
|
21283
|
+
}
|
|
20783
21284
|
if (xhr.readyState == 4) {
|
|
20784
21285
|
// 200, 201, 201' etc ...
|
|
20785
|
-
var result = null
|
|
21286
|
+
var result = null;
|
|
21287
|
+
|
|
20786
21288
|
if ( /^2/.test(xhr.status) ) {
|
|
20787
21289
|
try {
|
|
20788
21290
|
result = xhr.responseText;
|
|
@@ -21308,7 +21810,7 @@ define('gina/popin', [ 'require', 'vendor/uuid', 'jquery', 'lib/domain', 'lib/me
|
|
|
21308
21810
|
name = this.name;
|
|
21309
21811
|
$popin = this;
|
|
21310
21812
|
} else {
|
|
21311
|
-
$popin = getPopinByName(name) ||
|
|
21813
|
+
$popin = getPopinByName(name) || getActivePopin();
|
|
21312
21814
|
if (!$popin)
|
|
21313
21815
|
return;
|
|
21314
21816
|
|
|
@@ -21332,6 +21834,7 @@ define('gina/popin', [ 'require', 'vendor/uuid', 'jquery', 'lib/domain', 'lib/me
|
|
|
21332
21834
|
return;
|
|
21333
21835
|
|
|
21334
21836
|
$el = $popin.target;
|
|
21837
|
+
var $popinTrigger = document.getElementById($popin.openTrigger) || null;
|
|
21335
21838
|
|
|
21336
21839
|
if ( typeof($el.close) === "function" ) {
|
|
21337
21840
|
$el.close();
|
|
@@ -21369,6 +21872,10 @@ define('gina/popin', [ 'require', 'vendor/uuid', 'jquery', 'lib/domain', 'lib/me
|
|
|
21369
21872
|
}
|
|
21370
21873
|
$popin.$headers = [];
|
|
21371
21874
|
}
|
|
21875
|
+
|
|
21876
|
+
if ($popinTrigger) {
|
|
21877
|
+
$popinTrigger.removeAttribute('disabled');
|
|
21878
|
+
}
|
|
21372
21879
|
triggerEvent(gina, $popin.target, 'close.'+ $popin.id, $popin);
|
|
21373
21880
|
}
|
|
21374
21881
|
}
|
|
@@ -21528,13 +22035,15 @@ define('gina/popin', [ 'require', 'vendor/uuid', 'jquery', 'lib/domain', 'lib/me
|
|
|
21528
22035
|
popinGetContainer()
|
|
21529
22036
|
}
|
|
21530
22037
|
|
|
21531
|
-
|
|
21532
|
-
|
|
21533
|
-
|
|
21534
|
-
|
|
22038
|
+
if (!domainInstance) {
|
|
22039
|
+
new Domain( function onReady(err, _domainInstance) {
|
|
22040
|
+
if (err) {
|
|
22041
|
+
throw err
|
|
22042
|
+
}
|
|
21535
22043
|
|
|
21536
|
-
|
|
21537
|
-
|
|
22044
|
+
domainInstance = _domainInstance;
|
|
22045
|
+
});
|
|
22046
|
+
}
|
|
21538
22047
|
|
|
21539
22048
|
return init(options)
|
|
21540
22049
|
}
|
|
@@ -21654,7 +22163,7 @@ define("utils/polyfill", function(){});
|
|
|
21654
22163
|
|
|
21655
22164
|
/**
|
|
21656
22165
|
* This file is part of the gina package.
|
|
21657
|
-
* Copyright (c) 2009-
|
|
22166
|
+
* Copyright (c) 2009-2025 Rhinostone <contact@gina.io>
|
|
21658
22167
|
*
|
|
21659
22168
|
* For the full copyright and license information, please view the LICENSE
|
|
21660
22169
|
* file that was distributed with this source code.
|