@itfin/components 1.5.1 → 1.5.3

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.
Files changed (120) hide show
  1. package/dist/ITFComponents.common.js +87 -0
  2. package/dist/ITFComponents.common.js.map +1 -0
  3. package/dist/ITFComponents.umd.js +98 -0
  4. package/dist/ITFComponents.umd.js.map +1 -0
  5. package/dist/ITFComponents.umd.min.js +2 -0
  6. package/dist/ITFComponents.umd.min.js.map +1 -0
  7. package/dist/demo.html +1 -0
  8. package/package.json +12 -1
  9. package/src/ITFSettings.js +0 -6
  10. package/src/components/alert/AlertBanner.vue +70 -14
  11. package/src/components/button/Button.vue +1 -3
  12. package/src/components/button/NativeButton.js +0 -4
  13. package/src/components/button/index.stories.js +2 -2
  14. package/src/components/checkbox/NestedCheckboxGroup.vue +109 -0
  15. package/src/components/customize/PropertiesList.vue +2 -0
  16. package/src/components/customize/PropertiesPopupMenu.vue +1 -1
  17. package/src/components/customize/PropertyItem.vue +24 -6
  18. package/src/components/datepicker/DatePicker.vue +1 -1
  19. package/src/components/datepicker/MonthPicker.vue +21 -1
  20. package/src/components/dropdown/Dropdown.vue +1 -1
  21. package/src/components/dropdown/DropdownMenu.vue +1 -1
  22. package/src/components/editable/EditButton.vue +1 -1
  23. package/src/components/filter/FilterBadge.vue +4 -3
  24. package/src/components/filter/FilterFacetsList.vue +16 -9
  25. package/src/components/filter/FilterPanel.vue +20 -6
  26. package/src/components/icon/components/nomi-.DS_Store +0 -0
  27. package/src/components/icon/components/nomi-approval-chain.vue +5 -0
  28. package/src/components/icon/components/nomi-calendar-view.vue +4 -0
  29. package/src/components/icon/components/nomi-close-alt.vue +5 -0
  30. package/src/components/icon/components/nomi-cog-lightning.vue +5 -0
  31. package/src/components/icon/components/nomi-comment-add.vue +5 -0
  32. package/src/components/icon/components/nomi-comment.vue +4 -0
  33. package/src/components/icon/components/nomi-comments.vue +5 -0
  34. package/src/components/icon/components/nomi-copy.vue +5 -0
  35. package/src/components/icon/components/nomi-dollar.vue +4 -0
  36. package/src/components/icon/components/nomi-expense-requests.vue +5 -0
  37. package/src/components/icon/components/nomi-file-doc.vue +7 -0
  38. package/src/components/icon/components/nomi-file-excel.vue +9 -0
  39. package/src/components/icon/components/nomi-file-image.vue +6 -0
  40. package/src/components/icon/components/nomi-file-pdf.vue +5 -0
  41. package/src/components/icon/components/nomi-help.vue +3 -2
  42. package/src/components/icon/components/nomi-kanban-view.vue +6 -0
  43. package/src/components/icon/components/nomi-light-bulb.vue +4 -0
  44. package/src/components/icon/components/nomi-list-view.vue +7 -0
  45. package/src/components/icon/components/nomi-lock.vue +1 -1
  46. package/src/components/icon/components/nomi-money-alt.vue +4 -0
  47. package/src/components/icon/components/nomi-money-requests.vue +12 -0
  48. package/src/components/icon/components/nomi-pending.vue +4 -0
  49. package/src/components/icon/components/nomi-plus.vue +5 -0
  50. package/src/components/icon/components/nomi-project.vue +2 -2
  51. package/src/components/icon/components/nomi-scissors.vue +1 -1
  52. package/src/components/icon/components/nomi-secure.vue +4 -0
  53. package/src/components/icon/components/nomi-stop.vue +4 -0
  54. package/src/components/icon/components/nomi-table-config.vue +9 -0
  55. package/src/components/icon/components/nomi-table-view.vue +4 -1
  56. package/src/components/icon/components/nomi-thumbs-down.vue +4 -0
  57. package/src/components/icon/components/nomi-thumbs-up.vue +4 -0
  58. package/src/components/icon/components/nomi-undo.vue +4 -0
  59. package/src/components/icon/components/nomi-user-settings.vue +5 -0
  60. package/src/components/icon/components/nomi-user.vue +3 -3
  61. package/src/components/icon/convert-icons.js +0 -3
  62. package/src/components/icon/icons.js +403 -372
  63. package/src/components/icon/new-icons/approval-chain.svg +4 -0
  64. package/src/components/icon/new-icons/budget.svg +3 -0
  65. package/src/components/icon/new-icons/calendar-view.svg +3 -0
  66. package/src/components/icon/new-icons/close-alt.svg +4 -0
  67. package/src/components/icon/new-icons/cog-lightning.svg +4 -0
  68. package/src/components/icon/new-icons/comment-add.svg +4 -0
  69. package/src/components/icon/new-icons/comment.svg +3 -0
  70. package/src/components/icon/new-icons/comments.svg +4 -0
  71. package/src/components/icon/new-icons/copy.svg +4 -0
  72. package/src/components/icon/new-icons/dollar.svg +3 -0
  73. package/src/components/icon/new-icons/expense-requests.svg +4 -0
  74. package/src/components/icon/new-icons/file-doc.svg +6 -0
  75. package/src/components/icon/new-icons/file-excel.svg +8 -0
  76. package/src/components/icon/new-icons/file-image.svg +5 -0
  77. package/src/components/icon/new-icons/file-pdf.svg +4 -0
  78. package/src/components/icon/new-icons/help.svg +3 -2
  79. package/src/components/icon/new-icons/kanban-view.svg +5 -0
  80. package/src/components/icon/new-icons/light-bulb.svg +3 -0
  81. package/src/components/icon/new-icons/list-view.svg +6 -0
  82. package/src/components/icon/new-icons/lock.svg +1 -1
  83. package/src/components/icon/new-icons/money-alt.svg +3 -0
  84. package/src/components/icon/new-icons/money-requests.svg +11 -0
  85. package/src/components/icon/new-icons/pending.svg +3 -0
  86. package/src/components/icon/new-icons/plus.svg +4 -0
  87. package/src/components/icon/new-icons/project.svg +2 -2
  88. package/src/components/icon/new-icons/scissors.svg +1 -1
  89. package/src/components/icon/new-icons/secure.svg +3 -0
  90. package/src/components/icon/new-icons/stop.svg +3 -0
  91. package/src/components/icon/new-icons/table-config.svg +8 -0
  92. package/src/components/icon/new-icons/table-view.svg +4 -1
  93. package/src/components/icon/new-icons/thumbs-down.svg +3 -0
  94. package/src/components/icon/new-icons/thumbs-up.svg +3 -0
  95. package/src/components/icon/new-icons/undo.svg +3 -0
  96. package/src/components/icon/new-icons/user-settings.svg +4 -0
  97. package/src/components/icon/new-icons/user.svg +3 -3
  98. package/src/components/kanban/BoardCard.vue +1 -1
  99. package/src/components/kanban/BoardCardTimer.vue +1 -1
  100. package/src/components/modal/Modal.vue +6 -1
  101. package/src/components/overlay/SensitiveOverlay.vue +4 -2
  102. package/src/components/pagination/Pagination2.vue +4 -3
  103. package/src/components/panels/Panel.vue +23 -1
  104. package/src/components/panels/PanelItemEdit.vue +91 -10
  105. package/src/components/panels/PanelList.vue +19 -6
  106. package/src/components/table/Table2.vue +65 -60
  107. package/src/components/table/TableBody.vue +6 -0
  108. package/src/components/table/TableGroup.vue +13 -4
  109. package/src/components/table/TableHeader.vue +77 -76
  110. package/src/components/table/TableRowToggle.vue +9 -1
  111. package/src/components/table/TableRows.vue +54 -30
  112. package/src/components/table/table2.scss +15 -34
  113. package/src/components/text-field/TextField.vue +8 -0
  114. package/src/components/tree/TreeEditor.vue +2 -3
  115. package/src/components/view/View.vue +217 -56
  116. package/src/helpers/validators.js +35 -9
  117. package/src/helpers/validators.spec.js +48 -11
  118. package/src/locales/en.js +8 -2
  119. package/src/locales/pl.js +2 -1
  120. package/src/locales/uk.js +7 -6
@@ -0,0 +1,87 @@
1
+ /******/ (function() { // webpackBootstrap
2
+ /******/ "use strict";
3
+ /******/ // The require scope
4
+ /******/ var __webpack_require__ = {};
5
+ /******/
6
+ /************************************************************************/
7
+ /******/ /* webpack/runtime/define property getters */
8
+ /******/ !function() {
9
+ /******/ // define getter functions for harmony exports
10
+ /******/ __webpack_require__.d = function(exports, definition) {
11
+ /******/ for(var key in definition) {
12
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
13
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
14
+ /******/ }
15
+ /******/ }
16
+ /******/ };
17
+ /******/ }();
18
+ /******/
19
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
20
+ /******/ !function() {
21
+ /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
22
+ /******/ }();
23
+ /******/
24
+ /******/ /* webpack/runtime/make namespace object */
25
+ /******/ !function() {
26
+ /******/ // define __esModule on exports
27
+ /******/ __webpack_require__.r = function(exports) {
28
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
29
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
30
+ /******/ }
31
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
32
+ /******/ };
33
+ /******/ }();
34
+ /******/
35
+ /******/ /* webpack/runtime/publicPath */
36
+ /******/ !function() {
37
+ /******/ __webpack_require__.p = "";
38
+ /******/ }();
39
+ /******/
40
+ /************************************************************************/
41
+ var __webpack_exports__ = {};
42
+ // ESM COMPAT FLAG
43
+ __webpack_require__.r(__webpack_exports__);
44
+
45
+ // EXPORTS
46
+ __webpack_require__.d(__webpack_exports__, {
47
+ "default": function() { return /* binding */ entry_lib; }
48
+ });
49
+
50
+ ;// ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
51
+ /* eslint-disable no-var */
52
+ // This file is imported into lib/wc client bundles.
53
+
54
+ if (typeof window !== 'undefined') {
55
+ var currentScript = window.document.currentScript
56
+ if (false) // removed by dead control flow
57
+ { var getCurrentScript; }
58
+
59
+ var src = currentScript && currentScript.src.match(/(.+\/)[^/]+\.js(\?.*)?$/)
60
+ if (src) {
61
+ __webpack_require__.p = src[1] // eslint-disable-line
62
+ }
63
+ }
64
+
65
+ // Indicate to webpack that this file can be concatenated
66
+ /* harmony default export */ var setPublicPath = (null);
67
+
68
+ ;// ./src/main.js
69
+ function install(Vue) {}
70
+ install.version = '__VERSION__';
71
+ if (typeof window !== 'undefined') {
72
+ window.Vue && window.Vue.use(install);
73
+ window['ITFComponents'] = install;
74
+ if (install.installed) {
75
+ install.installed = false;
76
+ }
77
+ }
78
+ ;// ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js
79
+
80
+
81
+ /* harmony default export */ var entry_lib = (install);
82
+
83
+
84
+ module.exports = __webpack_exports__;
85
+ /******/ })()
86
+ ;
87
+ //# sourceMappingURL=ITFComponents.common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITFComponents.common.js","mappings":";;UAAA;UACA;;;;;WCDA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA,E;;;;;WCPA,8CAA8C,yD;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D,E;;;;;WCNA,2B;;;;;;;;;;;;;;ACAA;AACA;;AAEA;AACA;AACA,MAAM,KAAuC,EAAE;AAAA,yBAQ5C;;AAEH;AACA;AACA,IAAI,qBAAuB;AAC3B;AACA;;AAEA;AACA,kDAAe,IAAI;;;ACtBJ,SAASA,OAAOA,CAACC,GAAG,EAAE,CACrC;AACAD,OAAO,CAACE,OAAO,GAAG,aAAa;AAE/B,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;EACjCA,MAAM,CAACF,GAAG,IAAIE,MAAM,CAACF,GAAG,CAACG,GAAG,CAACJ,OAAO,CAAC;EACrCG,MAAM,CAAC,eAAe,CAAC,GAAGH,OAAO;EAEjC,IAAIA,OAAO,CAACK,SAAS,EAAE;IACrBL,OAAO,CAACK,SAAS,GAAG,KAAK;EAC3B;AACF,C;;ACXwB;AACA;AACxB,8CAAe,OAAG;AACI","sources":["webpack://@itfin/components/webpack/bootstrap","webpack://@itfin/components/webpack/runtime/define property getters","webpack://@itfin/components/webpack/runtime/hasOwnProperty shorthand","webpack://@itfin/components/webpack/runtime/make namespace object","webpack://@itfin/components/webpack/runtime/publicPath","webpack://@itfin/components/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://@itfin/components/./src/main.js","webpack://@itfin/components/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","export default function install(Vue) {\n}\ninstall.version = '__VERSION__';\n\nif (typeof window !== 'undefined') {\n window.Vue && window.Vue.use(install);\n window['ITFComponents'] = install;\n\n if (install.installed) {\n install.installed = false;\n }\n}\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["install","Vue","version","window","use","installed"],"sourceRoot":""}
@@ -0,0 +1,98 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if(typeof define === 'function' && define.amd)
5
+ define([], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["ITFComponents"] = factory();
8
+ else
9
+ root["ITFComponents"] = factory();
10
+ })((typeof self !== 'undefined' ? self : this), function() {
11
+ return /******/ (function() { // webpackBootstrap
12
+ /******/ "use strict";
13
+ /******/ // The require scope
14
+ /******/ var __webpack_require__ = {};
15
+ /******/
16
+ /************************************************************************/
17
+ /******/ /* webpack/runtime/define property getters */
18
+ /******/ !function() {
19
+ /******/ // define getter functions for harmony exports
20
+ /******/ __webpack_require__.d = function(exports, definition) {
21
+ /******/ for(var key in definition) {
22
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
23
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
24
+ /******/ }
25
+ /******/ }
26
+ /******/ };
27
+ /******/ }();
28
+ /******/
29
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
30
+ /******/ !function() {
31
+ /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
32
+ /******/ }();
33
+ /******/
34
+ /******/ /* webpack/runtime/make namespace object */
35
+ /******/ !function() {
36
+ /******/ // define __esModule on exports
37
+ /******/ __webpack_require__.r = function(exports) {
38
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
39
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
40
+ /******/ }
41
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
42
+ /******/ };
43
+ /******/ }();
44
+ /******/
45
+ /******/ /* webpack/runtime/publicPath */
46
+ /******/ !function() {
47
+ /******/ __webpack_require__.p = "";
48
+ /******/ }();
49
+ /******/
50
+ /************************************************************************/
51
+ var __webpack_exports__ = {};
52
+ // ESM COMPAT FLAG
53
+ __webpack_require__.r(__webpack_exports__);
54
+
55
+ // EXPORTS
56
+ __webpack_require__.d(__webpack_exports__, {
57
+ "default": function() { return /* binding */ entry_lib; }
58
+ });
59
+
60
+ ;// ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
61
+ /* eslint-disable no-var */
62
+ // This file is imported into lib/wc client bundles.
63
+
64
+ if (typeof window !== 'undefined') {
65
+ var currentScript = window.document.currentScript
66
+ if (false) // removed by dead control flow
67
+ { var getCurrentScript; }
68
+
69
+ var src = currentScript && currentScript.src.match(/(.+\/)[^/]+\.js(\?.*)?$/)
70
+ if (src) {
71
+ __webpack_require__.p = src[1] // eslint-disable-line
72
+ }
73
+ }
74
+
75
+ // Indicate to webpack that this file can be concatenated
76
+ /* harmony default export */ var setPublicPath = (null);
77
+
78
+ ;// ./src/main.js
79
+ function install(Vue) {}
80
+ install.version = '__VERSION__';
81
+ if (typeof window !== 'undefined') {
82
+ window.Vue && window.Vue.use(install);
83
+ window['ITFComponents'] = install;
84
+ if (install.installed) {
85
+ install.installed = false;
86
+ }
87
+ }
88
+ ;// ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js
89
+
90
+
91
+ /* harmony default export */ var entry_lib = (install);
92
+
93
+
94
+ /******/ return __webpack_exports__;
95
+ /******/ })()
96
+ ;
97
+ });
98
+ //# sourceMappingURL=ITFComponents.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITFComponents.umd.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;UCVA;UACA;;;;;WCDA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA,E;;;;;WCPA,8CAA8C,yD;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D,E;;;;;WCNA,2B;;;;;;;;;;;;;;ACAA;AACA;;AAEA;AACA;AACA,MAAM,KAAuC,EAAE;AAAA,yBAQ5C;;AAEH;AACA;AACA,IAAI,qBAAuB;AAC3B;AACA;;AAEA;AACA,kDAAe,IAAI;;;ACtBJ,SAASA,OAAOA,CAACC,GAAG,EAAE,CACrC;AACAD,OAAO,CAACE,OAAO,GAAG,aAAa;AAE/B,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;EACjCA,MAAM,CAACF,GAAG,IAAIE,MAAM,CAACF,GAAG,CAACG,GAAG,CAACJ,OAAO,CAAC;EACrCG,MAAM,CAAC,eAAe,CAAC,GAAGH,OAAO;EAEjC,IAAIA,OAAO,CAACK,SAAS,EAAE;IACrBL,OAAO,CAACK,SAAS,GAAG,KAAK;EAC3B;AACF,C;;ACXwB;AACA;AACxB,8CAAe,OAAG;AACI","sources":["webpack://ITFComponents/webpack/universalModuleDefinition","webpack://ITFComponents/webpack/bootstrap","webpack://ITFComponents/webpack/runtime/define property getters","webpack://ITFComponents/webpack/runtime/hasOwnProperty shorthand","webpack://ITFComponents/webpack/runtime/make namespace object","webpack://ITFComponents/webpack/runtime/publicPath","webpack://ITFComponents/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://ITFComponents/./src/main.js","webpack://ITFComponents/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ITFComponents\"] = factory();\n\telse\n\t\troot[\"ITFComponents\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","export default function install(Vue) {\n}\ninstall.version = '__VERSION__';\n\nif (typeof window !== 'undefined') {\n window.Vue && window.Vue.use(install);\n window['ITFComponents'] = install;\n\n if (install.installed) {\n install.installed = false;\n }\n}\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["install","Vue","version","window","use","installed"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (function(e,n){"object"===typeof exports&&"object"===typeof module?module.exports=n():"function"===typeof define&&define.amd?define([],n):"object"===typeof exports?exports["ITFComponents"]=n():e["ITFComponents"]=n()})("undefined"!==typeof self?self:this,function(){return function(){"use strict";var e={};!function(){e.d=function(n,o){for(var t in o)e.o(o,t)&&!e.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:o[t]})}}(),function(){e.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)}}(),function(){e.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}}(),function(){e.p=""}();var n={};if(e.r(n),e.d(n,{default:function(){return r}}),"undefined"!==typeof window){var o=window.document.currentScript,t=o&&o.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);t&&(e.p=t[1])}function i(e){}i.version="__VERSION__","undefined"!==typeof window&&(window.Vue&&window.Vue.use(i),window["ITFComponents"]=i,i.installed&&(i.installed=!1));var r=i;return n}()});
2
+ //# sourceMappingURL=ITFComponents.umd.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITFComponents.umd.min.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,kBAAZC,SAA0C,kBAAXC,OACxCA,OAAOD,QAAUD,IACQ,oBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,kBAAZC,QACdA,QAAQ,iBAAmBD,IAE3BD,EAAK,iBAAmBC,GACzB,EATD,CASoB,qBAATK,KAAuBA,KAAOC,KAAO,WAChD,O,wBCTA,IAAIC,EAAsB,CAAC,G,WCA3BA,EAAoBC,EAAI,SAASP,EAASQ,GACzC,IAAI,IAAIC,KAAOD,EACXF,EAAoBI,EAAEF,EAAYC,KAASH,EAAoBI,EAAEV,EAASS,IAC5EE,OAAOC,eAAeZ,EAASS,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAG3E,C,eCPAH,EAAoBI,EAAI,SAASK,EAAKC,GAAQ,OAAOL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,EAAO,C,eCCtGV,EAAoBc,EAAI,SAASpB,GACX,qBAAXqB,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAeZ,EAASqB,OAAOC,YAAa,CAAEC,MAAO,WAE7DZ,OAAOC,eAAeZ,EAAS,aAAc,CAAEuB,OAAO,GACvD,C,eCNAjB,EAAoBkB,EAAI,E,aCGxB,G,6CAAsB,qBAAXC,OAAwB,CACjC,IAAIC,EAAgBD,OAAOE,SAASD,cAWhCE,EAAMF,GAAiBA,EAAcE,IAAIC,MAAM,2BAC/CD,IACF,IAA0BA,EAAI,GAElC,CCnBe,SAASE,EAAQC,GAChC,CACAD,EAAQE,QAAU,cAEI,qBAAXP,SACTA,OAAOM,KAAON,OAAOM,IAAIE,IAAIH,GAC7BL,OAAO,iBAAmBK,EAEtBA,EAAQI,YACVJ,EAAQI,WAAY,ICPxB,Q","sources":["webpack://ITFComponents/webpack/universalModuleDefinition","webpack://ITFComponents/webpack/bootstrap","webpack://ITFComponents/webpack/runtime/define property getters","webpack://ITFComponents/webpack/runtime/hasOwnProperty shorthand","webpack://ITFComponents/webpack/runtime/make namespace object","webpack://ITFComponents/webpack/runtime/publicPath","webpack://ITFComponents/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://ITFComponents/./src/main.js","webpack://ITFComponents/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ITFComponents\"] = factory();\n\telse\n\t\troot[\"ITFComponents\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","export default function install(Vue) {\n}\ninstall.version = '__VERSION__';\n\nif (typeof window !== 'undefined') {\n window.Vue && window.Vue.use(install);\n window['ITFComponents'] = install;\n\n if (install.installed) {\n install.installed = false;\n }\n}\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["root","factory","exports","module","define","amd","self","this","__webpack_require__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","p","window","currentScript","document","src","match","install","Vue","version","use","installed"],"sourceRoot":""}
package/dist/demo.html ADDED
@@ -0,0 +1 @@
1
+ <!doctype html><meta charset="utf-8"><title>ITFComponents demo</title><script src="./ITFComponents.umd.js"></script><link rel="stylesheet" href="./ITFComponents.css"><script>console.log(ITFComponents)</script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itfin/components",
3
- "version": "1.5.1",
3
+ "version": "1.5.3",
4
4
  "author": "Vitalii Savchuk <esvit666@gmail.com>",
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -59,7 +59,11 @@
59
59
  },
60
60
  "devDependencies": {
61
61
  "@babel/eslint-parser": "^7.19.1",
62
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
63
+ "@babel/plugin-proposal-decorators": "^7.29.0",
62
64
  "@babel/plugin-proposal-numeric-separator": "^7.18.6",
65
+ "@babel/plugin-proposal-optional-chaining": "^7.21.0",
66
+ "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
63
67
  "@babel/plugin-syntax-numeric-separator": "^7.10.4",
64
68
  "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4",
65
69
  "@vue/cli-plugin-babel": "^5.0.8",
@@ -81,6 +85,7 @@
81
85
  "vue-class-component": "^7.2.6",
82
86
  "vue-eslint-parser": "^9.1.0",
83
87
  "vue-jest": "^3.0.7",
88
+ "vue-loader": "^15.11.1",
84
89
  "vue-template-compiler": "=2.6.14"
85
90
  },
86
91
  "eslintConfig": {
@@ -130,5 +135,11 @@
130
135
  "lcov"
131
136
  ]
132
137
  },
138
+ "overrides": {
139
+ "@vue/vue-loader-v15": {
140
+ ".": "npm:vue-loader@^15.11.1",
141
+ "webpack": "^5.88.0"
142
+ }
143
+ },
133
144
  "license": "ISC"
134
145
  }
@@ -1,9 +1,3 @@
1
- if (typeof CSS !== 'undefined' && 'paintWorklet' in CSS) {
2
- CSS.paintWorklet.addModule(
3
- "https://www.unpkg.com/css-houdini-squircle@0.1.3/squircle.min.js"
4
- );
5
- }
6
-
7
1
  class ITFSettings {
8
2
  options = {
9
3
  firstDayOfWeek: 'Monday',
@@ -1,16 +1,19 @@
1
1
  <template>
2
- <div class="itf-alert-banner">
2
+ <div class="itf-alert-banner" :class="styleVariant">
3
3
  <div v-if="count" class="itf-alert-banner__counter px-2 bg-danger text-white fw-bold text-smaller text-decoration-none d-block rounded-pill">
4
4
  {{ count > 99 ? '99+' : count }}
5
5
  </div>
6
- <div v-if="multiple" class="itf-alert-banner__panel itf-alert-banner__multiple rounded-3 border bg-muted-2"></div>
7
- <div class="itf-alert-banner__panel px-3 rounded-3 border bg-muted-2 d-flex gap-3 align-items-start align-items-sm-center flex-sm-row flex-column">
6
+ <div v-if="$listeners.close" class="itf-alert-banner__close position-absolute text-muted cursor-pointer" @click="$emit('close')">
7
+ <itf-icon new name="close-alt" :size="20" />
8
+ </div>
9
+ <div v-if="multiple" class="itf-alert-banner__panel itf-alert-banner__multiple h-100 position-absolute rounded-3 border bg-muted-2"></div>
10
+ <div class="itf-alert-banner__panel h-100 rounded-3 border bg-muted-2 d-flex gap-2 gap-md-3 align-items-start align-items-md-center">
8
11
  <slot name="icon">
9
12
  <div v-if="icon" class="itf-alert-banner__icon rounded-2 bg-danger flex-shrink-0 d-flex align-items-center justify-content-center">
10
13
  <itf-icon new :name="icon" :size="24" class="text-white" />
11
14
  </div>
12
15
  </slot>
13
- <div class="flex-grow-1">
16
+ <div class="itf-alert-banner__content flex-grow-1 d-flex flex-column">
14
17
  <div class="fw-bold"><slot name="title">{{title}}</slot></div>
15
18
  <div class="small text-muted"><slot></slot></div>
16
19
  </div>
@@ -24,33 +27,85 @@
24
27
  max-width: 420px;
25
28
 
26
29
  &__counter {
27
- top: 0;
28
- right: -4px;
30
+ top: -12px;
31
+ right: -12px;
29
32
  position: absolute;
30
- z-index: 3;
31
- padding-top: 0.375rem;
32
- padding-bottom: 0.375rem;
33
- min-width: 1.75rem;
33
+ z-index: 4;
34
+ padding-top: 3px;
35
+ padding-bottom: 3px;
36
+ min-width: 24px;
34
37
  text-align: center;
38
+ @media (max-width: 768px) {
39
+ right: 0;
40
+ }
41
+ }
42
+ &__close {
43
+ top: 8px;
44
+ right: 8px;
45
+ z-index: 3;
46
+ @media (max-width: 768px) {
47
+ top: 12px;
48
+ right: 12px;
49
+ }
35
50
  }
36
51
  &__panel {
37
52
  position: relative;
38
53
  padding-top: 0.75rem;
39
54
  padding-bottom: 0.75rem;
40
- top: 4px;
55
+ padding-left: 1rem;
56
+ padding-right: 1rem;
41
57
  z-index: 2;
58
+ @media (max-width: 768px) {
59
+ flex-direction: column;
60
+ padding-left: 0.75rem;
61
+ padding-right: 0.75rem;
62
+ }
42
63
  }
43
64
  &__icon {
44
65
  width: 48px;
45
66
  height: 48px;
67
+ @media (max-width: 768px) {
68
+ width: 32px;
69
+ height: 32px;
70
+ }
71
+
72
+ ::v-deep .itf-icon {
73
+
74
+ svg {
75
+ @media (max-width: 768px) {
76
+ width: 16px!important;
77
+ height: 16px!important;
78
+ }
79
+ }
80
+ }
81
+ }
82
+ &__content {
83
+ @media (max-width: 768px) {
84
+ gap: 0.25rem;
85
+ }
46
86
  }
47
87
  &__multiple {
48
- position: absolute;
49
- top: 0;
88
+ top: -4px;
50
89
  right: -4px;
51
90
  z-index: 1;
52
- height: 100%;
53
91
  width: 100%;
92
+ @media (max-width: 768px) {
93
+ width: calc(100% - 8px);
94
+ right: 4px;
95
+ }
96
+ }
97
+
98
+ &.mobile-content-row {
99
+
100
+ @media (max-width: 768px) {
101
+ .itf-alert-banner__panel {
102
+ flex-direction: row;
103
+ padding-right: 2.5rem;
104
+ }
105
+ .itf-alert-banner__content {
106
+ gap: 0;
107
+ }
108
+ }
54
109
  }
55
110
  }
56
111
  </style>
@@ -71,5 +126,6 @@ class AlertBanner extends Vue {
71
126
  @Prop(String) icon;
72
127
  @Prop() count;
73
128
  @Prop(Boolean) multiple;
129
+ @Prop({ type: String, default: '' }) styleVariant;
74
130
  }
75
131
  </script>
@@ -17,7 +17,6 @@ class itfButton extends Vue {
17
17
  @Prop(Boolean) large;
18
18
  @Prop(Boolean) icon;
19
19
  @Prop(Boolean) block;
20
- @Prop(Boolean) squircle;
21
20
  @Prop(String) loadingText;
22
21
  @Prop(String) color;
23
22
  @Prop(Boolean) disabled;
@@ -28,7 +27,7 @@ class itfButton extends Vue {
28
27
 
29
28
  render (createElement, { data, slots, children, props }) {
30
29
  const {
31
- to, href, target, disabled, color, block, loading, labeled, secondary, primary, small, large, icon, loadingText, squircle, default: defaultStyle,
30
+ to, href, target, disabled, color, block, loading, labeled, secondary, primary, small, large, icon, loadingText, default: defaultStyle,
32
31
  class: classNames
33
32
  } = props;
34
33
  const component = to ? 'nuxt-link' : (props.href ? 'a' : 'button');
@@ -48,7 +47,6 @@ class itfButton extends Vue {
48
47
  'btn-default': defaultStyle,
49
48
  'btn-basic': !primary && !secondary && !color && !defaultStyle,
50
49
  'btn-secondary': secondary,
51
- // 'btn-squircle': squircle,
52
50
  'btn-sm': small,
53
51
  'btn-lg': large,
54
52
  // 'px-3': small && !icon,
@@ -7,7 +7,6 @@ const CSS_CLASSES = {
7
7
  small: ['btn-sm'],
8
8
  block: ['itf-button__block'],
9
9
  labeled: ['labeled'],
10
- squircle: ['btn-squircle'],
11
10
  icon: ['btn-icon'],
12
11
  loading: ['loading'],
13
12
  spinner: ['itf-spinner'],
@@ -36,9 +35,6 @@ class Button extends HTMLElement {
36
35
  if (this.hasAttribute('labeled')) {
37
36
  styles.push(CSS_CLASSES.labeled);
38
37
  }
39
- if (this.hasAttribute('squircle')) {
40
- styles.push(CSS_CLASSES.squircle);
41
- }
42
38
  if (this.hasAttribute('icon')) {
43
39
  styles.push(CSS_CLASSES.icon);
44
40
  }
@@ -66,7 +66,7 @@ storiesOf('Common', module)
66
66
 
67
67
  <h3>Standart button</h3>
68
68
 
69
- <itf-button squircle primary>Primary button</itf-button>
69
+ <itf-button primary>Primary button</itf-button>
70
70
  <itf-button secondary>Secondary button</itf-button>
71
71
  <itf-button>Basic button</itf-button>
72
72
  <itf-button icon>
@@ -92,7 +92,7 @@ storiesOf('Common', module)
92
92
 
93
93
  <h3>Large button</h3>
94
94
 
95
- <itf-button squircle large primary>Primary button</itf-button>
95
+ <itf-button large primary>Primary button</itf-button>
96
96
  <itf-button large secondary>Secondary button</itf-button>
97
97
  <itf-button large>Basic button</itf-button>
98
98
  <itf-button large icon>
@@ -0,0 +1,109 @@
1
+ <template>
2
+
3
+ <div>
4
+ <div v-for="(item, n) in items" :key="n">
5
+ <slot name="item" :item="item" :isChecked="isChecked(item)" :onToggle="(isChecked) => onToggleOption(item, isChecked)" :isDisabled="disabled || isDisabled(item)">
6
+ <itf-checkbox
7
+ :value="isChecked(item)"
8
+ :label="item.name"
9
+ :disabled="disabled || isDisabled(item)"
10
+ @input="onToggleOption(item, $event)"
11
+ >
12
+ {{ item[itemKey] || item }}
13
+ </itf-checkbox>
14
+ </slot>
15
+
16
+ <div v-if="item[childrenKey] && item[childrenKey].length" class="ps-4 mb-2">
17
+ <itf-nested-checkbox-group
18
+ :value="value"
19
+ @input="$emit('input', $event)"
20
+ :items="item[childrenKey]"
21
+ :disabled="disabled || isDisabled(item)"
22
+ :item-key="itemKey"
23
+ :children-key="childrenKey"
24
+ :max="max"
25
+ :disabled-ids="disabledIds"
26
+ >
27
+ <template v-for="(_, name) in $slots" #[name]="slotData">
28
+ <slot :name="name" v-bind="slotData || {}"/>
29
+ </template>
30
+ <template v-for="(_, name) in $scopedSlots" #[name]="slotData">
31
+ <slot :name="name" v-bind="slotData || {}"/>
32
+ </template>
33
+ </itf-nested-checkbox-group>
34
+ </div>
35
+ </div>
36
+
37
+ <slot />
38
+ </div>
39
+
40
+ </template>
41
+ <script>
42
+ import { Vue, Component, Prop, Model } from 'vue-property-decorator';
43
+ import itfCheckbox from './Checkbox';
44
+ import itfTableRows from '@itfin/components/src/components/table/TableRows.vue';
45
+
46
+ export default @Component({
47
+ name: 'itfNestedCheckboxGroup',
48
+ components: {
49
+ itfTableRows,
50
+ itfCheckbox
51
+ },
52
+ })
53
+ class itfNestedCheckboxGroup extends Vue {
54
+ @Model('input', { type: Array, default: () => [] }) value;
55
+
56
+ @Prop(Array) items;
57
+ @Prop(Boolean) disabled;
58
+ @Prop({ type: Array, default: () => [] }) disabledIds;
59
+
60
+ @Prop({ type: String }) itemKey;
61
+ @Prop({ type: String, default: 'children' }) childrenKey;
62
+
63
+ @Prop(Number) max;
64
+
65
+ onToggleOption(value, isChecked) {
66
+ const arr = this.value ? [ ...this.value ] : [];
67
+ if (value[this.childrenKey] && value[this.childrenKey].length) {
68
+ for (const child of value[this.childrenKey]) {
69
+ const index = arr.findIndex(item => this.itemKey ? item[this.itemKey] === child[this.itemKey] : item === child);
70
+ if (index !== -1 && isChecked === false) {
71
+ arr.splice(index, 1);
72
+ } else if (isChecked === true) {
73
+ arr.push(child);
74
+ }
75
+ }
76
+ this.$emit('input', arr);
77
+ return;
78
+ }
79
+ const index = this.getCheckedIndex(value);
80
+ if (index !== -1 && isChecked === false) {
81
+ arr.splice(index, 1);
82
+ } else if (isChecked === true) {
83
+ arr.push(value);
84
+ }
85
+ this.$emit('input', arr);
86
+ }
87
+
88
+ getCheckedIndex(value) {
89
+ if (this.itemKey) {
90
+ return this.value && this.value.findIndex(item => item[this.itemKey] === value[this.itemKey]);
91
+ }
92
+ return this.value.indexOf(value);
93
+ }
94
+
95
+ isChecked(value) {
96
+ if (value[this.childrenKey] && value[this.childrenKey].length) {
97
+ return value[this.childrenKey].every(child => this.isChecked(child)) || this.getCheckedIndex(value) !== -1;
98
+ }
99
+ return this.getCheckedIndex(value) !== -1;
100
+ }
101
+
102
+ isDisabled(value) {
103
+ if (this.disabledIds.includes(value)) {
104
+ return true;
105
+ }
106
+ return this.getCheckedIndex(value) === -1 && (this.max !== 'undefined' && this.value.length >= this.max);
107
+ }
108
+ }
109
+ </script>
@@ -15,6 +15,7 @@
15
15
  :field="field"
16
16
  :editable="editable"
17
17
  :lock-fields="lockFields"
18
+ :full-name="fullName"
18
19
  :value="value[field.Id]"
19
20
  @input="$emit('input', { ...value, [field.Id]: $event })"
20
21
  @delete="onDelete(field)"
@@ -104,6 +105,7 @@ class itfPropertiesList extends Vue {
104
105
  @Prop({ type: Boolean, default: false }) loading;
105
106
  @Prop({ type: Boolean, default: false }) editable;
106
107
  @Prop({ type: Boolean, default: false }) lockFields;
108
+ @Prop({ type: Boolean, default: false }) fullName;
107
109
 
108
110
  isShowAll = false;
109
111
 
@@ -27,7 +27,7 @@
27
27
  </div>
28
28
  </template>
29
29
  <script>
30
- import { Vue, Component, Prop, Watch } from 'vue-property-decorator';
30
+ import { Vue, Component, Prop } from 'vue-property-decorator';
31
31
  import itfTextField from '../text-field/TextField.vue';
32
32
  import itfIcon from '../icon/Icon';
33
33
  import itfButton from '../button/Button';