@yoobic/yobi 8.3.0-43 → 8.3.0-46

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 (108) hide show
  1. package/dist/cjs/design-system.cjs.js +1 -1
  2. package/dist/cjs/{entities-helpers-e77cfd61.js → entities-helpers-99fc4a8a.js} +29 -1
  3. package/dist/cjs/{filters-helpers-536b7b88.js → filters-helpers-63712f8d.js} +6 -13
  4. package/dist/cjs/{form-choice-helpers-b2ec494b.js → form-choice-helpers-e28efa04.js} +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/yoo-detail-bar.cjs.entry.js +1 -1
  7. package/dist/cjs/yoo-entity-query-builder.cjs.entry.js +1 -1
  8. package/dist/cjs/yoo-entity-search-filters.cjs.entry.js +1 -1
  9. package/dist/cjs/yoo-entity.cjs.entry.js +47 -70
  10. package/dist/cjs/yoo-form-autocomplete.cjs.entry.js +4 -3
  11. package/dist/cjs/yoo-form-choice-button.cjs.entry.js +1 -1
  12. package/dist/cjs/yoo-form-choice-card.cjs.entry.js +1 -1
  13. package/dist/cjs/yoo-form-choice-chat.cjs.entry.js +1 -1
  14. package/dist/cjs/yoo-form-choice-image.cjs.entry.js +1 -1
  15. package/dist/cjs/yoo-form-choice-radio.cjs.entry.js +1 -1
  16. package/dist/cjs/yoo-form-connect.cjs.entry.js +2 -1
  17. package/dist/cjs/yoo-form-creator-workflow-step.cjs.entry.js +1 -1
  18. package/dist/cjs/yoo-form-dynamic.cjs.entry.js +1 -0
  19. package/dist/cjs/yoo-form-missionfield.cjs.entry.js +7 -1
  20. package/dist/cjs/yoo-form-swipe-cards.cjs.entry.js +1 -1
  21. package/dist/cjs/yoo-form-text-editor.cjs.entry.js +64 -46
  22. package/dist/cjs/yoo-form-todo-task-list.cjs.entry.js +1 -2
  23. package/dist/cjs/yoo-grid.cjs.entry.js +1 -1
  24. package/dist/cjs/yoo-input-bar.cjs.entry.js +12948 -12743
  25. package/dist/cjs/yoo-login.cjs.entry.js +1 -1
  26. package/dist/cjs/yoo-scratch-card-creator.cjs.entry.js +1 -3
  27. package/dist/cjs/yoo-section-list.cjs.entry.js +3 -3
  28. package/dist/cjs/yoo-slides-media.cjs.entry.js +1 -1
  29. package/dist/cjs/yoo-user-profile.cjs.entry.js +1 -1
  30. package/dist/cjs/yoo-videoplayer-videojs.cjs.entry.js +3 -3
  31. package/dist/collection/components/entities/entity/entity.js +47 -70
  32. package/dist/collection/components/form/form-autocomplete/form-autocomplete.js +27 -5
  33. package/dist/collection/components/form/form-choice/form-choice-helpers.js +1 -1
  34. package/dist/collection/components/form/form-connect/form-connect.js +2 -1
  35. package/dist/collection/components/form/form-dynamic/form-dynamic.js +1 -0
  36. package/dist/collection/components/form/form-missionfield/form-missionfield.js +7 -1
  37. package/dist/collection/components/form/form-swipe-cards/form-swipe-cards.css +1 -1
  38. package/dist/collection/components/form/form-todo-task-list/form-todo-task-list.js +1 -2
  39. package/dist/collection/components/form-creator/scratch-card-creator/scratch-card-creator.js +1 -3
  40. package/dist/collection/feature-learn/learning/section-list/section-list.js +3 -3
  41. package/dist/collection/feature-platform/login/login/login.css +1 -2
  42. package/dist/collection/utils/helpers/entities-helpers.js +29 -2
  43. package/dist/collection/utils/helpers/filters-helpers.js +6 -13
  44. package/dist/design-system/design-system.esm.js +1 -1
  45. package/dist/{esm/entities-helpers-9ea378f0.js → design-system/entities-helpers-67ff3fa4.js} +30 -3
  46. package/dist/{esm/filters-helpers-41224cde.js → design-system/filters-helpers-ded9ed03.js} +6 -13
  47. package/dist/design-system/{form-choice-helpers-800a6124.js → form-choice-helpers-b6936c42.js} +1 -1
  48. package/dist/design-system/yoo-detail-bar.entry.js +1 -1
  49. package/dist/design-system/yoo-entity-query-builder.entry.js +1 -1
  50. package/dist/design-system/yoo-entity-search-filters.entry.js +1 -1
  51. package/dist/design-system/yoo-entity.entry.js +47 -70
  52. package/dist/design-system/yoo-form-autocomplete.entry.js +4 -3
  53. package/dist/design-system/yoo-form-choice-button.entry.js +1 -1
  54. package/dist/design-system/yoo-form-choice-card.entry.js +1 -1
  55. package/dist/design-system/yoo-form-choice-chat.entry.js +1 -1
  56. package/dist/design-system/yoo-form-choice-image.entry.js +1 -1
  57. package/dist/design-system/yoo-form-choice-radio.entry.js +1 -1
  58. package/dist/design-system/yoo-form-connect.entry.js +2 -1
  59. package/dist/design-system/yoo-form-creator-workflow-step.entry.js +1 -1
  60. package/dist/design-system/yoo-form-dynamic.entry.js +1 -0
  61. package/dist/design-system/yoo-form-missionfield.entry.js +7 -1
  62. package/dist/design-system/yoo-form-swipe-cards.entry.js +1 -1
  63. package/dist/design-system/yoo-form-text-editor.entry.js +64 -46
  64. package/dist/design-system/yoo-form-todo-task-list.entry.js +1 -2
  65. package/dist/design-system/yoo-grid.entry.js +1 -1
  66. package/dist/design-system/yoo-input-bar.entry.js +12948 -12743
  67. package/dist/design-system/yoo-login.entry.js +1 -1
  68. package/dist/design-system/yoo-scratch-card-creator.entry.js +1 -3
  69. package/dist/design-system/yoo-section-list.entry.js +4 -4
  70. package/dist/design-system/yoo-slides-media.entry.js +1 -1
  71. package/dist/design-system/yoo-user-profile.entry.js +1 -1
  72. package/dist/design-system/yoo-videoplayer-videojs.entry.js +3 -3
  73. package/dist/esm/design-system.js +1 -1
  74. package/dist/{design-system/entities-helpers-9ea378f0.js → esm/entities-helpers-67ff3fa4.js} +30 -3
  75. package/dist/{design-system/filters-helpers-41224cde.js → esm/filters-helpers-ded9ed03.js} +6 -13
  76. package/dist/esm/{form-choice-helpers-800a6124.js → form-choice-helpers-b6936c42.js} +1 -1
  77. package/dist/esm/loader.js +1 -1
  78. package/dist/esm/yoo-detail-bar.entry.js +1 -1
  79. package/dist/esm/yoo-entity-query-builder.entry.js +1 -1
  80. package/dist/esm/yoo-entity-search-filters.entry.js +1 -1
  81. package/dist/esm/yoo-entity.entry.js +47 -70
  82. package/dist/esm/yoo-form-autocomplete.entry.js +4 -3
  83. package/dist/esm/yoo-form-choice-button.entry.js +1 -1
  84. package/dist/esm/yoo-form-choice-card.entry.js +1 -1
  85. package/dist/esm/yoo-form-choice-chat.entry.js +1 -1
  86. package/dist/esm/yoo-form-choice-image.entry.js +1 -1
  87. package/dist/esm/yoo-form-choice-radio.entry.js +1 -1
  88. package/dist/esm/yoo-form-connect.entry.js +2 -1
  89. package/dist/esm/yoo-form-creator-workflow-step.entry.js +1 -1
  90. package/dist/esm/yoo-form-dynamic.entry.js +1 -0
  91. package/dist/esm/yoo-form-missionfield.entry.js +7 -1
  92. package/dist/esm/yoo-form-swipe-cards.entry.js +1 -1
  93. package/dist/esm/yoo-form-text-editor.entry.js +64 -46
  94. package/dist/esm/yoo-form-todo-task-list.entry.js +1 -2
  95. package/dist/esm/yoo-grid.entry.js +1 -1
  96. package/dist/esm/yoo-input-bar.entry.js +12948 -12743
  97. package/dist/esm/yoo-login.entry.js +1 -1
  98. package/dist/esm/yoo-scratch-card-creator.entry.js +1 -3
  99. package/dist/esm/yoo-section-list.entry.js +4 -4
  100. package/dist/esm/yoo-slides-media.entry.js +1 -1
  101. package/dist/esm/yoo-user-profile.entry.js +1 -1
  102. package/dist/esm/yoo-videoplayer-videojs.entry.js +3 -3
  103. package/dist/types/components/form/form-autocomplete/form-autocomplete.d.ts +1 -1
  104. package/dist/types/components.d.ts +2 -0
  105. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/custom-app/custom-app.interface.d.ts +10 -3
  106. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/form-field/form-field.interface.d.ts +1 -0
  107. package/dist/types/utils/helpers/entities-helpers.d.ts +1 -0
  108. package/package.json +1 -1
@@ -5,7 +5,7 @@ import { q as isString, n as compact, s as assign, i as isArray } from './lodash
5
5
  import { cZ as require$$2, c9 as process_1, d8 as MODAL_BASE_ZINDEX, aN as getUUID, C as debounce, ao as replaceAtTagToMentionTag, a3 as getSession, P as getAsyncExtraData, dm as getCustomApp, t as translate, dn as images, dp as videos, A as isWeb, dq as getColorSwatches, au as isCloudinaryLink, d2 as getVideoPoster, ag as isVideo, aS as isImageUrl, dr as asyncWaterfall, ds as showContextMenu, z as showModal, p as closeModal, av as getCurrentLanguage, dt as containsUrls, cg as replaceAndGetAllLinks, Z as translateMulti } from './overlays-be5a9ab3.js';
6
6
  import { B as Buffer } from './buffer-es6-3df916b6.js';
7
7
  import { q as querySelectorDeep, g as getAppContext } from './common-helpers-0071c2da.js';
8
- import { s as sanitizeMentionTag } from './entities-helpers-9ea378f0.js';
8
+ import { s as sanitizeMentionTag } from './entities-helpers-67ff3fa4.js';
9
9
  import { a as setValueAndValidateInput } from './form-input-helpers-a792a9ab.js';
10
10
  import { g as getInsertElementProp, s as safeReplaceElement, i as isMentionTag, a as safeInsert, b as getTagHTML, c as safeInsertElements } from './form-text-area-helpers-fb84fe65.js';
11
11
  import { d as destroyMountPoints, g as generateRandomMountElementId, i as initShadowMountPoints } from './shadow-dom-helper-98f06c2b.js';
@@ -20368,7 +20368,7 @@ NoWorkResult.default = NoWorkResult;
20368
20368
 
20369
20369
  class Processor {
20370
20370
  constructor(plugins = []) {
20371
- this.version = '8.4.13';
20371
+ this.version = '8.4.14';
20372
20372
  this.plugins = this.normalize(plugins);
20373
20373
  }
20374
20374
 
@@ -20511,25 +20511,27 @@ function postcss(...plugins) {
20511
20511
  }
20512
20512
 
20513
20513
  postcss.plugin = function plugin(name, initializer) {
20514
- // eslint-disable-next-line no-console
20515
- if (console && console.warn) {
20514
+ let warningPrinted = false;
20515
+ function creator(...args) {
20516
20516
  // eslint-disable-next-line no-console
20517
- console.warn(
20518
- name +
20519
- ': postcss.plugin was deprecated. Migration guide:\n' +
20520
- 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'
20521
- );
20522
- if (process_1.env.LANG && process_1.env.LANG.startsWith('cn')) {
20523
- /* c8 ignore next 7 */
20517
+ if (console && console.warn && !warningPrinted) {
20518
+ warningPrinted = true;
20524
20519
  // eslint-disable-next-line no-console
20525
20520
  console.warn(
20526
20521
  name +
20527
- ': 里面 postcss.plugin 被弃用. 迁移指南:\n' +
20528
- 'https://www.w3ctech.com/topic/2226'
20522
+ ': postcss.plugin was deprecated. Migration guide:\n' +
20523
+ 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'
20529
20524
  );
20525
+ if (process_1.env.LANG && process_1.env.LANG.startsWith('cn')) {
20526
+ /* c8 ignore next 7 */
20527
+ // eslint-disable-next-line no-console
20528
+ console.warn(
20529
+ name +
20530
+ ': 里面 postcss.plugin 被弃用. 迁移指南:\n' +
20531
+ 'https://www.w3ctech.com/topic/2226'
20532
+ );
20533
+ }
20530
20534
  }
20531
- }
20532
- function creator(...args) {
20533
20535
  let transformer = initializer(...args);
20534
20536
  transformer.postcssPlugin = name;
20535
20537
  transformer.postcssVersion = new processor().version;
@@ -20871,7 +20873,6 @@ function sanitizeHtml(html, options, _recursing) {
20871
20873
  delete frame.attribs[a];
20872
20874
  return;
20873
20875
  }
20874
- let parsed;
20875
20876
  // check allowedAttributesMap for the element and attribute and modify the value
20876
20877
  // as necessary if there are specific values defined.
20877
20878
  let passedAllowedAttributesMapCheck = false;
@@ -20919,14 +20920,14 @@ function sanitizeHtml(html, options, _recursing) {
20919
20920
  let allowed = true;
20920
20921
 
20921
20922
  try {
20922
- const parsed = new URL(value);
20923
+ const parsed = parseUrl(value);
20923
20924
 
20924
20925
  if (options.allowedScriptHostnames || options.allowedScriptDomains) {
20925
20926
  const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {
20926
- return hostname === parsed.hostname;
20927
+ return hostname === parsed.url.hostname;
20927
20928
  });
20928
20929
  const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {
20929
- return parsed.hostname === domain || parsed.hostname.endsWith(`.${domain}`);
20930
+ return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);
20930
20931
  });
20931
20932
  allowed = allowedHostname || allowedDomain;
20932
20933
  }
@@ -20943,29 +20944,9 @@ function sanitizeHtml(html, options, _recursing) {
20943
20944
  if (name === 'iframe' && a === 'src') {
20944
20945
  let allowed = true;
20945
20946
  try {
20946
- // Chrome accepts \ as a substitute for / in the // at the
20947
- // start of a URL, so rewrite accordingly to prevent exploit.
20948
- // Also drop any whitespace at that point in the URL
20949
- value = value.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/, '$1//');
20950
- if (value.startsWith('relative:')) {
20951
- // An attempt to exploit our workaround for base URLs being
20952
- // mandatory for relative URL validation in the WHATWG
20953
- // URL parser, reject it
20954
- throw new Error('relative: exploit attempt');
20955
- }
20956
- // naughtyHref is in charge of whether protocol relative URLs
20957
- // are cool. Here we are concerned just with allowed hostnames and
20958
- // whether to allow relative URLs.
20959
- //
20960
- // Build a placeholder "base URL" against which any reasonable
20961
- // relative URL may be parsed successfully
20962
- let base = 'relative://relative-site';
20963
- for (let i = 0; (i < 100); i++) {
20964
- base += `/${i}`;
20965
- }
20966
- const parsed = new URL(value, base);
20967
- const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';
20968
- if (isRelativeUrl) {
20947
+ const parsed = parseUrl(value);
20948
+
20949
+ if (parsed.isRelativeUrl) {
20969
20950
  // default value of allowIframeRelativeUrls is true
20970
20951
  // unless allowedIframeHostnames or allowedIframeDomains specified
20971
20952
  allowed = has(options, 'allowIframeRelativeUrls')
@@ -20973,10 +20954,10 @@ function sanitizeHtml(html, options, _recursing) {
20973
20954
  : (!options.allowedIframeHostnames && !options.allowedIframeDomains);
20974
20955
  } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {
20975
20956
  const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {
20976
- return hostname === parsed.hostname;
20957
+ return hostname === parsed.url.hostname;
20977
20958
  });
20978
20959
  const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {
20979
- return parsed.hostname === domain || parsed.hostname.endsWith(`.${domain}`);
20960
+ return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);
20980
20961
  });
20981
20962
  allowed = allowedHostname || allowedDomain;
20982
20963
  }
@@ -20991,7 +20972,7 @@ function sanitizeHtml(html, options, _recursing) {
20991
20972
  }
20992
20973
  if (a === 'srcset') {
20993
20974
  try {
20994
- parsed = parseSrcset(value);
20975
+ let parsed = parseSrcset(value);
20995
20976
  parsed.forEach(function(value) {
20996
20977
  if (naughtyHref('srcset', value.url)) {
20997
20978
  value.evil = true;
@@ -21217,7 +21198,17 @@ function sanitizeHtml(html, options, _recursing) {
21217
21198
  // Clobber any comments in URLs, which the browser might
21218
21199
  // interpret inside an XML data island, allowing
21219
21200
  // a javascript: URL to be snuck through
21220
- href = href.replace(/<!--.*?-->/g, '');
21201
+ while (true) {
21202
+ const firstIndex = href.indexOf('<!--');
21203
+ if (firstIndex === -1) {
21204
+ break;
21205
+ }
21206
+ const lastIndex = href.indexOf('-->', firstIndex + 4);
21207
+ if (lastIndex === -1) {
21208
+ break;
21209
+ }
21210
+ href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);
21211
+ }
21221
21212
  // Case insensitive so we don't get faked out by JAVASCRIPT #1
21222
21213
  // Allow more characters after the first so we don't get faked
21223
21214
  // out by certain schemes browsers accept
@@ -21240,6 +21231,33 @@ function sanitizeHtml(html, options, _recursing) {
21240
21231
  return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1;
21241
21232
  }
21242
21233
 
21234
+ function parseUrl(value) {
21235
+ value = value.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/, '$1//');
21236
+ if (value.startsWith('relative:')) {
21237
+ // An attempt to exploit our workaround for base URLs being
21238
+ // mandatory for relative URL validation in the WHATWG
21239
+ // URL parser, reject it
21240
+ throw new Error('relative: exploit attempt');
21241
+ }
21242
+ // naughtyHref is in charge of whether protocol relative URLs
21243
+ // are cool. Here we are concerned just with allowed hostnames and
21244
+ // whether to allow relative URLs.
21245
+ //
21246
+ // Build a placeholder "base URL" against which any reasonable
21247
+ // relative URL may be parsed successfully
21248
+ let base = 'relative://relative-site';
21249
+ for (let i = 0; (i < 100); i++) {
21250
+ base += `/${i}`;
21251
+ }
21252
+
21253
+ const parsed = new URL(value, base);
21254
+
21255
+ const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';
21256
+ return {
21257
+ isRelativeUrl,
21258
+ url: parsed
21259
+ };
21260
+ }
21243
21261
  /**
21244
21262
  * Filters user input css properties by allowlisted regex attributes.
21245
21263
  * Modifies the abstractSyntaxTree object.
@@ -107,9 +107,8 @@ const YooFormTodoTaskListComponent = class {
107
107
  return updated;
108
108
  }
109
109
  async deleteTask(index, withConfirmation = true) {
110
- var _a, _b;
111
110
  const result = withConfirmation
112
- ? await showAlert(translate('DELETETASK'), [translate('CANCEL'), { cssClass: 'danger', text: translate('DELETE') }], translate('CONFIRMDELETETASK', { title: ((_b = (_a = this.value.values[index]) === null || _a === void 0 ? void 0 : _a.text) === null || _b === void 0 ? void 0 : _b.value) || '' }))
111
+ ? await showAlert(translate('DELETETASK'), [translate('CANCEL'), { cssClass: 'danger', text: translate('DELETE') }], translate('CONFIRMDELETETASK'))
113
112
  : true;
114
113
  if (result) {
115
114
  this.updateValue({ ...this.value, values: [...this.value.values.slice(0, index), ...this.value.values.slice(index + 1)] });
@@ -7,7 +7,7 @@ import './index-4d88723b.js';
7
7
  import { g as getButton } from './button.factory-6c7aab55.js';
8
8
  import { a as assignPressActions } from './index-0ecbfd27.js';
9
9
  import { c as querySelectorAllDeep, r as hideShowSearchBar, t as getNextValueInArray, g as getAppContext } from './common-helpers-0071c2da.js';
10
- import { m as mapCustomViewToButton, l as isKanbanColumnField } from './filters-helpers-41224cde.js';
10
+ import { m as mapCustomViewToButton, l as isKanbanColumnField } from './filters-helpers-ded9ed03.js';
11
11
  import { s as setValidator, a as setValueAndValidateInput } from './form-input-helpers-a792a9ab.js';
12
12
  import { g as getRenderer } from './grid-renderers-43b55d35.js';
13
13
  import { es as HorizontalSlidesAnimation, A as isWeb, aq as pipes, aF as isPresent, dS as safeScrollIntoView, P as getAsyncExtraData, et as MONGODB_ID_REGEX, bC as filterListByText, a3 as getSession, da as isAnimationsDisabled, eu as isMapField, X as isNullOrUndefined, t as translate, z as showModal, Z as translateMulti, az as toButton, cR as getAuthentication, af as showActionSheet, bi as isOffline, bz as isDateTimeField, al as dispatchCustomEvent, dP as isFirefox, ev as isForceScrollbar } from './overlays-be5a9ab3.js';